v3.1.2 Jacobean Released (critical hotfix) #835
waleedkadous
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
v3.1.2 Jacobean is now on npm — a critical hotfix for v3.1.1.
npm install -g @cluesmith/codev@3.1.2 afx tower stop && afx tower startWhat this fixes
In v3.1.1, opening a workspace OTHER than the one that registered sibling architects caused those siblings to be re-spawned as fresh PTYs in the new workspace. Concrete symptom: shannon had
ob-refineregistered; openingmanazilfor the first time showedmain + ob-refine + bug-backlogin manazil's terminal list — runningclaudeprocesses none of which belonged to manazil.If you ran v3.1.1 with multiple workspaces, you may have seen this. v3.1.2 silently fixes it on Tower restart (migration v11 runs automatically). Confirm by opening any previously-unused workspace and verifying its architect list shows only its own architects.
Root cause + fix
state.db.architecthad noworkspace_pathcolumn — the table was global per Tower-daemon. v3.1.1's #786 added alaunchInstancereconcile loop that iterated this global table and re-spawned every architect it found, without workspace-scoping. The fix is at the schema level (Option A): addworkspace_pathto the architect table with composite PK(workspace_path, id), update all state accessors to require workspace context, canonicalize via realpath at the boundary.The data model now eliminates the cross-workspace leak by construction — no per-call-site guards needed for workspace isolation.
Process: dual-CMAP discipline caught 7 real bugs
This fix went through 7 iterations of CMAP-driven review across two PRs (#827 + #834). At every iteration, the architect's independent CMAP caught a real bug that the builder's own CMAP missed: original cross-workspace fix had a race condition, then a stop+start regression, then exit-handler delete leakage, then stale-row cleanup wiping preserved rows, then migration backfill non-determinism, then path canonicalization mismatch on symlinks, then a migration-ordering bug that broke upgrade installs. Single-CMAP review would have shipped a regression — every time.
Spec 786 stop+start is preserved
Sibling architects still survive
afx workspace stop+afx workspace start. With the schema-level fix, that preservation is now narrowly scoped to one concern (skip the architect-row delete on graceful stop) rather than a maze of intent-flag guards scattered across delete sites.Breaking changes
None at the CLI / dashboard / VSCode level. The migration is automatic on first state.db read after upgrade.
For internal TypeScript consumers of
@cluesmith/codev-corestate accessors:getArchitects,setArchitect,setArchitectByName,removeArchitect,loadStatenow require aworkspacePathparameter.Full release notes
docs/releases/v3.1.2-jacobean.md
Beta Was this translation helpful? Give feedback.
All reactions