Skip to content

v0.3.2 — HF2 + HF3 + tauri 2.11.1

Choose a tag to compare

@revolutionaryPhoton revolutionaryPhoton released this 14 May 16:15

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:

  1. Pinned pull_policy: never on the frontend service in the compose template. The image is built locally; a registry pull is always wrong for it.
  2. Added a precondition check in compose::up that runs docker image inspect ${FRONTEND_IMAGE} before docker 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-up handler propagates that message into the done event so the GUI's error toast surfaces the friendly text instead of a generic "compose up failed".

Dependencies

  • tauri 2.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 — clean
  • bats tests/ — 281/282 (the 1 fail is the same pre-existing local-Ollama-running flake from v0.3.1 that fails on main too)
  • npm run check — clean
  • npm run test:unit — 299/299
  • cargo check — clean against tauri 2.11.1

Full Changelog: v0.3.1...v0.3.2