Skip to content

๐Ÿš€ v1.22.0 โ€” Released (2026-06-28)ย #82

Description

@xg-gh-25

๐Ÿš€ 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)

  • Build (./prod.sh build)
  • Tests (affected suites)
  • Eval (regression gate)
  • CI green on the final commits

Status: RELEASED โ€” SwarmAI v1.22.0 ยท s_swarm-release completed. Issue kept open for release discussion.

๐Ÿค– Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions