v0.3.2 — HF2 + HF3 + tauri 2.11.1
Two backlog hand-fixes plus a clean Dependabot bump.
HF2 — Cancel actually stops the wizard
Cancel previously just set a JS-side flag and let the bash subprocess keep running in the background until natural completion. The wizard would happily finish bringing up containers, write state, pull images, etc. — meanwhile the user was on another screen wondering why their stack was up.
Fix: plumb AbortSignal from the Cancel button through engine.runWizardNonInteractive to the ProcessRunner. On abort, the spawned Tauri Child gets killed.
Caveat (documented): killing the bash leader does NOT kill its docker compose up grandchild — that's reparented to PID 1 and keeps running. The proper kernel-level fix (kill the process group via setsid/process_group(0) on the Rust side) is deferred. As a workable mitigation, handleCancel calls compose down twice with a 1.5 s gap so the second pass catches anything the orphan brought up during the first. User-visible delay between click and navigation is ~1.5 s, which is fine for a destructive action.
HF3 — Clear error when frontend image is missing
When the locally built f13-frontend:v2.0.0_based image isn't on disk (user pruned it, daemon was reinstalled, etc.), Compose's default pull-when-missing behavior surfaced a confusing pull access denied against registry.opencode.de — where this image was never pushed.
Fix in two layers:
- Pinned
pull_policy: neveron the frontend service in the compose template. The image is built locally; a registry pull is always wrong for it. - Added a precondition check in
compose::upthat runsdocker image inspect ${FRONTEND_IMAGE}beforedocker compose up. On miss, returns a clear "frontend image is missing locally — re-run the wizard so it can rebuild" message. The shell wizard's--compose-uphandler propagates that message into thedoneevent so the GUI's error toast surfaces the friendly text instead of a generic "compose up failed".
Dependencies
tauri2.10.3 → 2.11.1 (Dependabot #2). Cargo.lock only; no API changes required in our Rust glue. Backpressure clean.
Known loose ends carried forward
- HF5 (new) — auto-regenerate broken stack on Start instead of forcing the user through the full Reconfigure wizard walk. The HF3 precondition fix surfaces a clear error, but recovery still requires walking preflight → inference → ollama → ports just to rebuild the frontend image. PRD entry added; deferred to a future v0.3.x patch.
- HF2's kill-process-group proper fix is deferred (current double-down mitigation works).
Validated on
- macOS (Apple Silicon, manual smoke test of both HF2 cancel-during-pipeline and HF3 missing-image error in the GUI)
Backpressure
shellcheck -S warning bin/* lib/*.sh— cleanbats tests/— 281/282 (the 1 fail is the same pre-existing local-Ollama-running flake from v0.3.1 that fails onmaintoo)npm run check— cleannpm run test:unit— 299/299cargo check— clean against tauri 2.11.1
Full Changelog: v0.3.1...v0.3.2