v0.2.2 — macOS GUI mostly stable
Phase 7.5 closeout: the desktop GUI is now usable for daily local work on macOS. Path resolution, Stop/Start cycles, Reset confirmation, and the Ollama picker all behave correctly. The shell wizard and the GUI now write to the same generated/ tree, so cross-surface stop/reset Just Works.
ℹ️ Mostly stable, not yet hardened. We have not checked every possible combination of state transitions, error paths, and inputs. Edge cases may still surface bugs. Treat as good for daily local exploration on macOS; for production-adjacent work, the shell wizard (
bin/f13-config) remains the recommended surface.
What's new
Phase 7.5 — loop fixes
bba394dS32 —f13-resetandf13-stophonourF13_GENERATED_DIR(bats-verified).b192f98S34 — Wizard's keep-state path emits per-stageskipped:trueevents; the GUI's six-stage pipeline graph now fills instantly on re-runs instead of looking stuck.
HF1 — path resolution (4 iterations)
6510ca1→d2defe1→387699c→18cbacf— settled on detecting dev mode by the executable's own path (target/debug/ortarget/release/), since Tauri symlinks resources into the dev binary's directory and made sentinel-file checks unreliable. Final off-by-one in the workspace walk-up was the actual blocker.
Status page UX
86cc560Stop/Start cycle — Stop stays on/statusand flips the badge to "Stopped" with a contextual white "Start F13" CTA in the hero card. Postgres data preserved between cycles.46549acStopped badge reads "Stopped" with a red pulsing dot rather than the ambiguous "Running · Issues".7bcaac4Reset modal submits on Enter onceRESETis typed, with a small<kbd>Enter</kbd>hint.
Ollama picker
84dde9bFree-text "Use any model name" input below the radio list — works for cloud-hosted models (which never appear in/api/tags) and any model Ollama can pull on first request. Cloud-tag inline note reminds aboutollama signin.7317918Empty-state pull hint generalised toollama pull modelname:tag, with a clickable ollama.com/search link via the Tauri opener plugin. Cloud-tag example unified atgemma4:31b-cloud.
Security & dependencies
f7cb906Dependabot #1 —cookie@0.6.0→0.7.2vianpm overrides. The two Rust alerts (rand@0.7.3andglib@0.18.5) traced to Tauri 2.10.3's deep dep stack and were dismissed viagh apiwithtolerable_riskrationale (no exploit path in our usage; null GitHub severity).
Test maintenance
d452fc3Refresh 27 vitest assertions stale from v0.2.1 polish. Suite restored to 288/288 green.
Known issues / on the backlog
These are tracked but didn't block this release:
- HF2 — Cancel button mid-launch only flips a JS-side flag; the underlying bash subprocess keeps running. No orphan-container cleanup on cancel. Workaround: let the pipeline complete, then Stop or Reset.
- HF3 — Sporadic
pull access deniedfor the locally builtf13-frontend:configurator-v1image when compose's first pass races with image presence checks. Not seen since HF1 v4 landed but the precondition guard isn't in place yet. - Linux GUI — Untouched. Wizard runs fine on Linux from the shell, but the Tauri app hasn't been validated. Phase 8 lands this in v0.3.0.
What's stable
The shell wizard from v0.1.0 is unchanged and remains the trustable surface for any production-adjacent work — bin/f13-config for first-time deployment, bin/f13-stop / bin/f13-reset / bin/f13-rebuild-frontend for ops.
What's coming
- v0.3.0 — Phase 8: validate the GUI end-to-end on Linux (Ubuntu 22.04 / 24.04). No new screens.
- v0.4.0 — Phase 9: signed
.dmg,.AppImage+.deb, GitHub Releases automation, optional auto-update.appLocalDataDirswap for bundled mode.
See PRD for the full story sequence.