Skip to content

v3.2.3 Karnak

Choose a tag to compare

@amrmelsayed amrmelsayed released this 16 Jul 01:56

v3.2.3 Karnak

Released: 2026-07-16

Summary

A multi-architect UX polish sweep across the Agents view and workspace surfaces: childless architects stay visible so a row can't disappear mid-session (#1174), idle siblings group under a collapsible "Idle Architects" node once more than one is idle (#1182), the architect QuickPick honors the user's selection (#1139), the per-window terminal cap is configurable via codev.maxTerminals with a new default of 25 to accommodate multi-architect workspaces (#1180), and group-header context menus no longer offer builder-scoped actions on group rows (#1170).

Tower's recovery pathways get four independent fixes that together close out the machine-crash investigation kicked off from user reports. afx workspace recover preserves each builder's original owning architect (#1140). codev adopt and main-architect launch no longer hijack unrelated Claude Code sessions (#1145). Deliberately-removed sibling architects stay removed across Tower stop/start cycles even after partial DB delete failures (#1150). Claude-architect crash-loops on stale --resume UUIDs degrade to a fresh session after three fast failures (#1149).

The VS Code extension lands an IDE-mode foundation (#1144) — dual-mode activation via codev.hasWorkspace and codev.ideMode context keys, provably-inert marketplace behaviour when there is no Codev workspace, and a first-run empty-window surface for the Codev IDE fork. Sidebar defaults collapse lower-priority views to give the primary surfaces more room (#1169).

The "Dev Server" phrasing throughout the runnable-worktrees feature becomes just "Dev" so users of non-web stacks can see themselves in it (#1158). Breaking change: keybindings.json entries for codev.devServer.* must migrate to codev.dev.*.

The Codex CMAP lane is restored on macOS 26 by moving off a codex-sdk version whose vendor binary Apple had certificate-revoked (#1128). The VS Code extension prepublish now builds every workspace dependency so fresh clones and CI cold caches pass check-types (#1154). The Codev Mobile design refresh lands as a research artifact (#1153) — no runtime impact, groundwork for a future mobile workstream.

Polish

  • Agents view (architect axis): childless architects stay visible (#1174, PR #1175). Previously an architect's group header vanished the moment its last builder was cleaned up. The axis now sources headers from the registered-architect roster, so every architect renders as MAIN (0) etc. with click-to-open-terminal. Stage and area axes unchanged.
    image
  • Agents view: idle sibling architects grouped under 'Idle Architects' collapsed node (#1182, PR #1183). Follow-up to #1174. When 2+ sibling architects are idle they group under a single collapsible node instead of consuming a row each. Main is always its own row. Only affects the architect axis.
    image
  • VS Code terminal cap: raised to 25 and configurable via codev.maxTerminals (#1180, PR #1181). The 10-terminal per-window cap was impractical in multi-architect workspaces. Setting range is 5-100 (the max matches Tower's own backstop). The at-limit toast now points at the setting.
  • Agents tree: group headers no longer surface builder-scoped context-menu entries (#1170, PR #1172). Right-clicking a group header (architect, phase, or area axis) previously offered builder-only actions like View Diff that silently no-op'd. A contextValue rename (builder-groupgroup-builder) closes the collision.
  • IDE-mode foundation: dual-mode activation, empty-window surfaces, no dead actions (#1144, PR #1148). The Workspace section (Architects / Spawn Builder / New Shell) is gated on vscode.workspace.workspaceFolders?.length > 0, so opening VS Code with no folder shows empty-view content instead of dead rows. Two new context keys — codev.hasWorkspace and codev.ideMode (via vscode.env.appName === 'Codev') — model the four operating quadrants explicitly. Under onStartupFinished activation, the guest+no-codev-workspace path is provably inert (no Tower spawn, no UI mutation, no state writes). In the Codev IDE fork, ideMode && !hasWorkspace focuses the Codev container, shows Open Folder / Open Recent welcome content, and fires a one-time first-run notification.
  • Sidebar defaults: Pull Requests / Recently Closed / Team / Status collapse on fresh install (#1169, PR #1171). Reclaims sidebar vertical space for the primary Workspace / Agents / Backlog surfaces. Existing users' persisted view state is respected.
  • Runnable-worktrees terminology: "Dev Server" → "Dev" (#1158, PR #1173). The feature is stack-agnostic — your worktree.devCommand can start a Vite dev server, cargo run, expo start, a test watcher, whatever. Palette titles, command IDs, context key, view id, and source files all rename accordingly. worktree.devCommand, afx dev, and the terminal tab name were already neutral. Breaking: keybindings.json entries for codev.devServer.* must migrate to codev.dev.*.

Other fixes

  • Backlog: "Reference issue in architect" honors the QuickPick selection (#1139, PR #1157). The inline reference button on Backlog rows now injects into the architect the user picks in the QuickPick, instead of always routing to main. Same fix applied to "Reference PR in architect". Single-architect workspaces unchanged.
  • afx workspace recover preserves per-builder architect attribution (#1140, PR #1156). Respawning builders after a Tower recovery event no longer re-attributes every builder to whichever architect owned the shell that ran the command. The recover flow now reads each builder's original owner from Tower state.
  • codev adopt / main-architect launch no longer hijacks unrelated Claude Code sessions (#1145, PR #1160). Main-architect launch previously fell back to picking the newest jsonl by mtime in the working directory when no Codev-owned session id was stored, resuming personal off-Codev conversations. The mtime fallback is removed for architects; only Codev-recorded session ids resume.
  • Removed sibling architects no longer resurrect after Tower recovery (#1150, PR #1178). An architect deliberately removed via afx workspace remove-architect --name X could reappear on the next stop/start after a partial DB delete failure. Reconciliation now gates respawn on liveness evidence, and removeArchitect purges both DB layers atomically and surfaces errors instead of swallowing them.
  • Claude architect crash-loop on stale --resume no longer traps the user (#1149, PR #1184). Tower now detects the fast-failure pattern (≥3 restarts failing within 30s with --resume args), strips the stale UUID, and nulls the stored session_id so the architect degrades to a fresh conversation instead of retrying 50 times. Closes the four-issue recovery-family investigation.
  • Codex CMAP lane restored on macOS 26 (#1128, PR #1141). Bumps the bundled codex vendor to a signature Apple hasn't revoked. macOS 26 XProtect was SIGKILL'ing the previous binary and auto-Trashing it, breaking every consult -m codex invocation. Any consult protocol with a codex lane is unblocked.
  • VS Code extension prepublish builds all workspace dependencies (#1154, PR #1155). Fresh clones no longer fail check-types with TS2307: Cannot find module '@cluesmith/codev-artifact-canvas'. Switched to a topological filter (pnpm --filter 'codev-vscode^...' build) that builds the whole workspace-dep graph.

Breaking changes

  • VS Code keybindings targeting codev.devServer.* must migrate to codev.dev.* (#1158, PR #1173). Any user-authored keybindings.json entry for codev.devServer.stop / .restart / .switchTarget / .showSidebar / .hideSidebar no longer resolves — swap devServer for dev in the command id. Palette items and the CLI are unaffected.

Install

npm install -g @cluesmith/codev@3.2.3
afx tower stop && afx tower start

The VS Code extension ships separately via the Marketplace — Codev extension by cluesmith.codev, version 3.2.3.

Contributors

  • The Codev architect plus builders working under the PIR, BUGFIX, and AIR protocols across the PRs in this release. No external contributors this cycle.