v5.1.2 — legacy nexa shims completed, actionable safe update/rollback, test portability
What's in v5.1.2 (PATCH)
Full backward-compat for legacy nexa imports (D1)
import nexanow also hasnexa.configandnexa.constantssubmodule shims
(DeprecationWarning emitted; re-export fromopenforge.*). Closes the last
partial backward-compat gap flagged by QA.
Actionable, safe self-management (D2)
openforge update— real, conservative flow: requires a cleanlib/git
checkout (as created by the installer), snapshots the previous checkout to
~/.openforge/.versions/, fast-forwards fromorigin/main, then refreshes the
integrity LOCK. Offline or a dirty tree = safe no-op with a clear message.openforge rollback --list/openforge rollback --to <snapshot>—
lists snapshots, and restores one explicitly (code-only; data in
memory/sessions/secrets is never touched). LOCK refreshed after restore.
Cross-platform test suite (D3)
- Fixed OS-specific test assertions (Windows vs Linux) in
tests/test_category9.py,
test_*hardened*.py, andtest_terminal_tool.py(exact-match executable
assertions; OS-aware traversal separator handling;catvstype). - Production behaviour unchanged — these were test bugs, not code bugs.
Regression guards added for D1+D2. No breaking changes; no data migration.
Upgrade
git pull && pip install -e . then openforge doctor.
Rollback
git checkout v5.1.1 or openforge rollback --to <snapshot> after upgrading once.