feat(configurator): add Tauri desktop configurator app#26
Conversation
22607ee to
ba38d72
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new Tauri-based desktop “Configurator” to simplify setting up lox-mcp for non-technical users, alongside updated documentation and a CI workflow to build/publish desktop binaries.
Changes:
- Introduces
configurator/: a Tauri (React + Rust) desktop app for Java checks, JAR download/upgrade, MCP client config scanning/editing, and connection verification. - Adds a GitHub Actions workflow to build and publish Configurator binaries on
configurator-v*tags. - Streamlines
README.mdand moves detailed setup/reference material intodocs/SETUP.md(plus adds a dedicated statistics-tool implementation guide).
Reviewed changes
Copilot reviewed 32 out of 55 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates project intro/quickstart and links users to the Configurator + docs/SETUP.md. |
| docs/SETUP.md | Adds detailed setup/reference documentation (clients, transports, config, build). |
| docs/mcp-statistics-tool-guide.md | Adds an implementation guide for a future statistics-reading MCP tool. |
| configurator/vite.config.ts | Vite configuration for the Configurator frontend. |
| configurator/tsconfig.json | TypeScript compiler settings for the Configurator frontend. |
| configurator/tailwind.config.js | Tailwind configuration for Configurator styling. |
| configurator/postcss.config.js | PostCSS setup for Tailwind/autoprefixer. |
| configurator/package.json | Frontend dependencies and scripts for building/running the Configurator UI. |
| configurator/index.html | Vite entry HTML for the Configurator UI. |
| configurator/src/vite-env.d.ts | Vite type declarations for the frontend. |
| configurator/src/main.tsx | React entrypoint wiring App into the DOM. |
| configurator/src/index.css | Tailwind CSS base/components/utilities import. |
| configurator/src/App.tsx | Main UI flow: checks, download/install, config list, add/edit forms. |
| configurator/src/lib/types.ts | Shared frontend types for Java/JAR/config/release state. |
| configurator/src/components/StatusBar.tsx | Displays Java/JAR status and upgrade actions. |
| configurator/src/components/ConfigList.tsx | Lists detected MCP client configs and their Loxone server entries. |
| configurator/src/components/ServerTree.tsx | Renders per-config server entries with edit/delete actions. |
| configurator/src/components/ServerForm.tsx | Add/edit server form incl. connection verification. |
| configurator/src/components/JavaSetup.tsx | Java install guidance with Adoptium link per platform. |
| configurator/src-tauri/tauri.conf.json | Tauri app configuration incl. CSP and bundling settings. |
| configurator/src-tauri/build.rs | Tauri build script hook. |
| configurator/src-tauri/Cargo.toml | Rust crate definition and dependencies for the Tauri backend. |
| configurator/src-tauri/src/main.rs | Registers Tauri commands and initializes required plugins. |
| configurator/src-tauri/src/platform.rs | OS/arch detection and Adoptium download URL generation. |
| configurator/src-tauri/src/java_check.rs | Java detection + version parsing for the prereq check. |
| configurator/src-tauri/src/jar_manager.rs | Fetches latest release metadata, downloads JAR, verifies checksum, stores version. |
| configurator/src-tauri/src/config_scanner.rs | Scans known MCP client config locations and extracts loxone* entries. |
| configurator/src-tauri/src/config_editor.rs | Adds/edits/deletes server entries in detected MCP client config formats (with backups). |
| configurator/src-tauri/src/connection_verifier.rs | Spawns the JAR in --stdio and verifies MCP initialize response. |
| configurator/src-tauri/capabilities/default.json | Grants default Tauri capability permissions (core + shell open). |
| configurator/src-tauri/gen/schemas/desktop-schema.json | Generated schema used by Tauri capabilities configuration. |
| configurator/src-tauri/gen/schemas/capabilities.json | Generated capabilities schema/manifest output. |
| configurator/src-tauri/gen/schemas/acl-manifests.json | Generated ACL manifests used by Tauri permissions system. |
| configurator/src-tauri/icons/android/values/ic_launcher_background.xml | Android icon background color resource for generated app assets. |
| configurator/src-tauri/icons/android/mipmap-anydpi-v26/ic_launcher.xml | Android adaptive launcher icon definition. |
| .github/workflows/build-configurator.yml | CI build/release workflow for Configurator binaries on configurator-v* tags. |
| .gitignore | Ignores Configurator build artifacts and Node/Rust outputs. |
ba38d72 to
dc64ce6
Compare
1e86d22 to
4dc9762
Compare
4dc9762 to
9d1ed9f
Compare
9d1ed9f to
4dc9762
Compare
|
Code Review — Bug: Silent checksum skip on download failure
When the checksum file fetch returns a non-2xx status, the download proceeds and the binary is written to disk without any verification or user notification. If the checksum URL was published by the release, a 404 is unexpected and likely indicates a problem. A corrupted download is indistinguishable from a valid one in this path. At minimum, surface a warning to the frontend. Bug:
|
Introduces a Tauri-based GUI app for non-technical users to set up lox-mcp without editing config files manually. Features: - Java 21+ detection with OS-specific Adoptium download links - JAR download/upgrade from GitHub Releases with SHA256 verification - Scan all known MCP config files (Claude Desktop, Cursor, VS Code, OpenCode, Zed, Continue.dev, Windsurf, Antigravity) - Add, edit, delete Loxone server entries across any detected config - Live connection test via MCP initialize handshake - CSP-hardened Tauri security config
Builds Tauri DMG (macOS arm64 + x86_64), AppImage (Linux), and NSIS installer (Windows) on configurator-v* tag push. Publishes artifacts as a draft release.
README trimmed to essentials: what it does, quick start via Configurator or manual JAR, tools/resources tables, license summary. Moved credentials, per-client config, transport modes, custom YAML config, build instructions, and project structure to docs/SETUP.md.
4dc9762 to
15edd09
Compare
Excludes configurator/node_modules/, dist/, src-tauri/target/ and .DS_Store files from version control.
15edd09 to
7ce327e
Compare
jimirocks
left a comment
There was a problem hiding this comment.
All previously raised issues are resolved. One minor edge case remains in ServerForm.tsx:15 — a server named exactly loxone will round-trip to loxone- due to the loxone-? regex stripping the full name to an empty string. Low impact in practice but worth a follow-up fix.
Summary
configurator-v*tagdocs/SETUP.mdChanges
configurator/— Tauri app (React + Rust)~/.lox-mcp/lox-mcp.jarwith SHA256 verification; HTTP status checked before writeloxone-*entries.bakcreated before each write--stdiomode, sends MCPinitialize, verifies responsedefault-src 'self'), nonullpolicy.github/workflows/build-configurator.ymlBuilds DMG (macOS arm64 + x86_64), AppImage (Linux), NSIS installer (Windows) on
configurator-v*tag; publishes as draft release.docs/SETUP.mdNew secondary doc with credentials, per-client config snippets, transport modes, custom YAML config, build instructions, and project structure — moved from README.
README.mdTrimmed to essentials: what it does, quick start (Configurator vs manual JAR), tools/resources tables, license summary.