| name | tauri-gui-builder |
| description | Build and qualify the Mklink AI Probe Tauri v2 Windows desktop app, bundled Python sidecar, and standard NSIS installer. |
Mklink AI Probe Tauri Builder
Use this skill for desktop GUI compilation, installer generation, bundled-sidecar checks, overwrite installation, and release-candidate packaging.
Source Of Truth
- Read
AGENTS.md and docs/ai/CURRENT_HANDOFF.md before building.
- Use the repository script at
skills/tauri-gui-builder/scripts/build.py.
- Do not use completed files under
docs/superpowers/ as active instructions.
- The packaged application must work without Python, Node, Rust, Keil, or a source checkout on the target computer.
Architecture
Tauri/Rust executable
-> Vue 3 production assets
-> bundled mklink-sidecar.exe
-> FastAPI on 127.0.0.1:8765
-> MKLink CMSIS-DAP hardware
Development builds may fall back to a Python backend. Release installers must contain mklink-sidecar.exe, and the Rust launcher must prefer that bundled sidecar.
Commands
Run from the project root:
python skills/tauri-gui-builder/scripts/build.py --check
python skills/tauri-gui-builder/scripts/build.py
python skills/tauri-gui-builder/scripts/build.py --bundle
python skills/tauri-gui-builder/scripts/build.py --clean
Outputs:
- executable:
gui/src-tauri/target/release/mklink-ai-probe.exe
- setup/updater executable:
gui/src-tauri/target/release/bundle/nsis/*.exe
- updater signature:
gui/src-tauri/target/release/bundle/nsis/*.exe.sig
--bundle must force a fresh PyInstaller sidecar and collect:
mklink package data;
- pyOCD plugins and package metadata;
cmsis_pack_manager native/runtime data;
- HID runtime support.
Signed bundles require MKLINK_TAURI_UPDATER_KEY or the external key at
~/.config/mklink-ai-probe/updater.key. The builder passes the key only to the
Tauri child process and never prints it. Set MKLINK_TAURI_UPDATER_KEY_PASSWORD
when the key uses a non-empty password; the generated local key uses an empty
password by default.
Release Candidates
Copy candidate installers to the main repository release directory. Include the source commit in every filename and generate a SHA-256 list. Keep installers, sidecars, checksums, logs, and extracted MSI contents out of Git.
Generate only the standard NSIS by default. MSI and WebView2-offline variants require explicit user authorization.
Required Verification
- Build exits successfully and produces the standard NSIS setup/updater executable and signature.
- Install NSIS with a PATH containing only Windows system directories.
- Start the installed app and verify
GET /api/health returns status=ok.
- Verify
GET /api/online-flash/probes runs without exposing complete probe identifiers in evidence.
- Verify the process tree contains no
python.exe or pythonw.exe.
- Close normally and verify Mklink processes and port
8765 are released.
- Recompute every published SHA-256 value.
Do not use the removed /api/dashboard/status endpoint. Use the current /api/dash/<name>/status routes when a dashboard-specific check is needed.
Cleanup
After copying external release artifacts, restore tracked gui/dist files and remove only generated paths from the current build:
build/
dist/
gui/src-tauri/binaries/
gui/src-tauri/target/
mklink-sidecar.spec
- generated
__pycache__/ directories
The final worktree must be clean. Windows installers are currently unsigned, so qualification reports must retain the unknown-publisher limitation.