Repository navigation
Conversation
…ity projects and agent pairing desktop/ wraps the local build in Electron (Windows x64): - Help → Hardware picks the ANGLE backend (DirectX 11 default, DirectX 12, Vulkan, OpenGL) and shows GPU, WebGPU, threads, isolation and WebNN. - The page is translated at run time from i18n/<lang>.json, node by node, and kept translated as React redraws; pt-BR today, first language from the OS, Language menu to switch. The app source is not touched. - Creality Scan project.obp opens from menu, CLI, drop or file picker, resolving to result/Mesh.ply; a folder watcher offers each new mesh. - The app runs the relay itself and writes agent.json; scanruler-mcp.cmd next to the exe joins that app so agents drive the open window. - Tests: smoke (isolation, threads, WebGL2, WebGPU), Creality watcher, i18n overlay, agent relay end to end; each on its own user-data dir. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…the title, relay leaves with the app - i18n: a language is a file in i18n/ (de, es, fr, it, ja, pt-BR, zh-CN); each carries _name, _menu and _hw so the native menu and the Hardware panel follow the page. First language from the OS locale; English fallback. pt-BR reviewed (Extrudar, Contrair/expandir, manipulador…). test/dicts.mjs checks every dictionary against the English keys. - The window title names the graphics API in use (ScanRuler — Vulkan); the Hardware panel words its rows from the dictionary. - agent-bridge.mjs exits when the app's agent.json disappears, so a relay started for the app cannot take its port over after it quits; the app also closes its HTTP server on quit. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Pushed a second commit: dictionaries for de, es, fr, it, ja, pt-BR and zh-CN (each file also carries the shell's menu and Hardware-panel strings; |
electron-builder bundles 7-Zip (LGPL), which CONTRIBUTING.md's dependency policy does not allow and the licence check cannot see — the same reason PR CNCKitchen#66 avoids it. scripts/package.mjs stages the shell, copies the web build, the agent server and the bridge into resources/, and puts scanruler-mcp.cmd beside the exe, in the same release/win-unpacked layout. The electron-builder file associations went with it (they only applied through an installer). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Relation to #66 (Mearman's per-platform builds, tray app and installers): the two overlap only in "an Electron window on the local build, paired with the agent relay". #66 is the distribution side — detached background server, tray, installers, CI matrix across six platforms; this one is the feature side — graphics backend choice (DirectX 11/12, Vulkan, OpenGL, shown in the title and in Help → Hardware), run-time translation in seven languages, Creality Scan To make them easier to take together I switched this PR to One behavioural difference worth deciding: #66's background server outlives the window and even the tray's Quit; here the relay ends with the app (the agent entry exits once |
Chromium on Windows hands out no WebGPU adapter under the Vulkan or OpenGL ANGLE backends, whatever --use-webgpu-adapter asks for (checked on Chromium 156 with every value, Skia-on-Vulkan included). The Hardware panel now says so in each language instead of a bare "unavailable"; the app draws with WebGL2 and does not use WebGPU. Dictionaries re-indented uniformly. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
What
A
desktop/folder with an Electron shell around the local build — Windows x64 for now, self-contained (ownpackage.json; nothing insrc/changes):desktop/i18n/<lang>.json, node by node, and kept translated as React redraws (MutationObserver), so the app source needs no i18n plumbing.pt-BRtoday; the first language follows the OS, the Language menu switches. Canvas text and run-time numbers are not covered.project.obpopens from menu, command line, drag & drop and the file picker, resolving to the project'sresult/Mesh.ply(or the newest session'sFused.ply); File → Watch Creality Scan folder… offers each new mesh the scanner writes.agent.json(port, token) in its user-data folder;scanruler-mcp.cmdnext to the exe joins that app, soclaude mcp add …scanruler-mcp.cmddrives the window the user is looking at instead of a background copy..scanruler .stl .ply .obj .3mf .step .obp.Dependencies
electron (MIT), electron-builder (MIT), puppeteer-core (Apache-2.0), dev-only. New files carry the SPDX header. Everything written from scratch.
Checks (Windows 11, Node 24)
npm testindesktop/: smoke (isolated, 24 threads, WebGL2, WebGPU) and Creality watcher — oknode test/i18n.mjs— ok;node test/e2e-agent.mjs— relay connected, page reacheddesktop/), macOS/Linux packaging.Happy to split this into smaller PRs (shell alone, then translation, Creality, agent pairing) if that is easier to review.
🤖 Generated with Claude Code