๐ v1.22.0 โ Released
โ
Shipped 2026-06-28. GitHub Release published ยท tag v1.22.0 (38f8db6) ยท CI green. This issue stays open as the release announcement / discussion thread.
213 commits ยท 212 files ยท +22,832 / โ2,371 since v1.21.0.
This is a stability + cognition-system release โ quality work dominates (fix 89 / feat 61), not a single headline feature. The theme: the READ path of SwarmAI's knowledge system (Recall) returning to a pure-filesystem philosophy, a decoupled Eval subsystem, pipeline hardening, the long-standing frontend reconcile race finally closed at the render-source layer, and a family of structural gates that live outside the agent's discretion.
Note: the Recall architecture was deliberately reversed mid-cycle โ the vector/Titan leg shipped earlier in this window was then physically removed in favor of pure keyword/FTS5 (correctness + legibility over a semantic leg that wasn't earning its complexity). The Recall section below reflects the final state, not the intermediate hybrid.
๐ง Recall โ the READ path, pure-filesystem
- Pure-filesystem recall โ vector/Titan leg physically deleted from all recall paths (
memory_vec writer + reader removed). allow_embed=False is now the only real path โ zero Bedrock embeds, zero writes on the read line.
- Entry-level slice + BM25 rank (a query-matching entry surfaces regardless of its position โ no more whole-section front-truncation)
- No-truncate read line + Archives FTS5 + freshness/agentic guard
- FTS write-bug root-fix + auto-heal (transcript / knowledge / session FTS); SessionRecall resurrected (dead import had silently killed it in prod)
- Reversible Context Recall โ named exclusion manifest + scoped
recall_context, with a fail-closed privacy gate
[RECALLED] provenance header โ flags injected recall as FTS-retrieved prior context, not this-turn reasoning
๐งฉ Context assembly โ observability + correctness
- O2 coding-gate removed โ EVOLUTION.md now loads unconditionally on desktop (the cognitive-failure registry shouldn't vanish in non-coding sessions)
- Ephemeral-budget ceiling = WARN, never truncate; L1-bypass intentional-doc
- Session-prompt briefing cut 8 feed sections (cognition-admission โ less feed noise, more signal)
- MEMORY.md write-path dedup unified to a single-source helper; caps reconciled to live counts; first-msg context instrumentation + unified token estimator
- Elastic budget-driven resume-extraction caps (per-layer char budgets)
โ๏ธ Eval โ decoupled system-level subsystem
- Eval decoupled from DDD (
Projects/SwarmAI/ โ Eval/)
- Git-bound regression gate wired as
prod.sh Step -1 + a CI Eval-Gate workflow + STEERING Content as Black Box โ one message in, published media outย #5 three-green push gate
- public / private golden-set split-write with privacy allowlist
s_golden-case skill + 4-gate validator (schema / duplicate / non-vacuous / privacy)
- New runtime-teeth probes:
memory_select, assembly_floor, resume_fill, spine canaries
- Eval UI: RunDetail panel, upgraded Sparkline, origin / eval-method badges; nightly full-eval โ drift-to-Slack
๐ง Pipeline โ diagnose before build
- Gate-0 Understanding Gate (shift diagnosis left, made universal)
- Self-Socratic ambiguity scan in EVALUATE + THINK; greenfield-only Working-Backwards lens
- In-band L2 escalation via AskUserQuestion (human-in-the-loop without leaving the channel)
- Profile-selection ordering fix; confabulated-self-state checkpoints hard-blocked; deliberately-paused runs no longer auto-archived
- COMPLETE format extracted to a fresh-read stage
๐ฅ๏ธ Frontend reconcile race โ #1 recurring bug source, closed
- Single render-source authority; merge prefers the more-complete content
- Heartbeat-aware watchdog (kills the "stuck for 18 minutes" blank-freeze); heartbeats forwarded to the stream handler
- In-flight cold-resume exempt from reconcile force-clear; background-completed answer recovered on tab switch
๐ก๏ธ Structural gates โ defense outside the agent
pytest_command_guard โ DENY no-wall-clock pytest | tail (C040)
bash_syntax_guard โ parse-check every Bash command with the EXEC shell (<shell> -n) before it runs; DENY the syntactically-incomplete set (unterminated quote/backtick, unclosed block) that would HANG forever waiting on stdin in headless mode, fail-open on everything else. Kills the 12-min-hang class a bad command caused; checks with the resolved exec shell (zsh on macOS) so it never false-kills valid shell syntax.
_build_chain โ a terminal permissionDecision short-circuits the hook chain
- Irreversible-external-op gate (C041) โ
gh repo visibility / force-push / branch-delete now route through an approval flow
- Soft-compact 300s hang ceiling + fail-safe (not a 30s guillotine)
๐ Governance
- 5 universal engineering-discipline rules promoted from STEERING โ AGENT (R25โR29)
- Principle cap 5 โ 12; cap reframed as smoke-test, not guillotine; ่ฎค็ฅ้ฒ็บฟโP7 + ่ฟ่กๆถๆ็ฅโP1 Runtime-State Trap
- R6 reframed post-push CI โ pre-push quality gate; R11 commit-count scope gate dropped (noise โ eval/quality is the real gate)
โ
Release gate (R6 โ all green at ship)
Status: RELEASED โ SwarmAI v1.22.0 ยท s_swarm-release completed. Issue kept open for release discussion.
๐ค Generated with Claude Code
๐ v1.22.0 โ Released
213 commits ยท 212 files ยท +22,832 / โ2,371 since
v1.21.0.This is a stability + cognition-system release โ quality work dominates (
fix 89 / feat 61), not a single headline feature. The theme: the READ path of SwarmAI's knowledge system (Recall) returning to a pure-filesystem philosophy, a decoupled Eval subsystem, pipeline hardening, the long-standing frontend reconcile race finally closed at the render-source layer, and a family of structural gates that live outside the agent's discretion.๐ง Recall โ the READ path, pure-filesystem
memory_vecwriter + reader removed).allow_embed=Falseis now the only real path โ zero Bedrock embeds, zero writes on the read line.recall_context, with a fail-closed privacy gate[RECALLED]provenance header โ flags injected recall as FTS-retrieved prior context, not this-turn reasoning๐งฉ Context assembly โ observability + correctness
โ๏ธ Eval โ decoupled system-level subsystem
Projects/SwarmAI/โEval/)prod.shStep -1 + a CI Eval-Gate workflow + STEERING Content as Black Box โ one message in, published media outย #5 three-green push gates_golden-caseskill + 4-gate validator (schema / duplicate / non-vacuous / privacy)memory_select,assembly_floor,resume_fill, spine canaries๐ง Pipeline โ diagnose before build
๐ฅ๏ธ Frontend reconcile race โ #1 recurring bug source, closed
๐ก๏ธ Structural gates โ defense outside the agent
pytest_command_guardโ DENY no-wall-clockpytest | tail(C040)bash_syntax_guardโ parse-check every Bash command with the EXEC shell (<shell> -n) before it runs; DENY the syntactically-incomplete set (unterminated quote/backtick, unclosed block) that would HANG forever waiting on stdin in headless mode, fail-open on everything else. Kills the 12-min-hang class a bad command caused; checks with the resolved exec shell (zsh on macOS) so it never false-kills valid shell syntax._build_chainโ a terminalpermissionDecisionshort-circuits the hook chaingh repo visibility/ force-push / branch-delete now route through an approval flow๐ Governance
โ Release gate (R6 โ all green at ship)
./prod.sh build)๐ค Generated with Claude Code