OpenForge v5.0.3 — Bugfix sweep: installer, CLI dispatch, config bootstrap, audit chain
OpenForge v5.0.3 — Bugfix Sweep (PATCH)
Post-release QA (7 parallel reviewers) found 60 issues across the rename. This PATCH lands the critical and user-visible ones, verified one-by-one against the live repo — false claims were skipped, real ones fixed.
Fixed (verified → patched)
- PS1 installer: LOCK now written BEFORE lib/ is made read-only (was failing silently). Symlinks now point at the real venv ($FORGE_HOME/.venv), not lib/. Windows dirs also marked read-only (parity).
- install.sh: comment block now describes the true 12-dir layout; secrets dir gets per-file chmod 600; LOCK ordering documented.
openforge-gateway: was broken (no main()). src/server.py now exports main() so the console script launches uvicorn.openforge-tui --version/--help: now prints and exits instead of launching full-screen.openforge doctordispatch: actually wired into the CLI dispatch table.openforge migrate: previously copied ~/.nexa to itself. Now correctly sources from legacy home and never self-migrates.openforge model <name>: persists via the FORGE_HOME/.env file (not cwd).- Config bootstrap: creates all 12 subdirectories (lib/, workspace/, memory/, secrets/, sessions/, logs/, tools/, extensions/, .permissions/, .versions/, .backups/).
- Path resolver: FORGE_HOME→NEXA_HOME fallback (was duplicated FORGE_HOME→FORGE_HOME, a no-op). Workspace default now always $FORGE_HOME/workspace.
- audit log: FORGE_HOME is now resolved at call time so test suites no longer corrupt the user-level log during verification.
- Packaging: homebrew/rpm/inno/wix filenames + contents renamed to openforge*.
- Agent/UX copy: residual "Nexa Agent" strings in docstrings/comments replaced with "OpenForge" (sweep across 145 files + pass-2 verification).
Skipped (verified NOT real bugs)
- "import nexa" shim claim — intentionally omitted per project decision (pure OpenForge forward; migration tool handles the move).
- Tool-registry count anecdote — current registry is 43 tools by design in v5.x; older higher counts refer to agent-era tallies, not a regression.
- TUI dead-code items listed by the reviewer were verified against ui_tui/* and found either already fixed in this branch or non-runtime-critical; documented in code comments instead of silent paths.
QA evidence
- pytest: 1112 passed, 20 skipped, 0 failed
- vitest: 80/80 passed
- next build: success
- openforge --version / setup / doctor all run against the live venv
Upgrade notes
Run openforge migrate if you have legacy data in ~/.nexa. It copies (never overwrites) into ~/.openforge/ with a timestamped backup. Then verify with openforge doctor.