Releases: xg-gh-25/SwarmAI
Release list
SwarmAI v1.24.0
SwarmAI v1.24.0
86 commits since v1.23.0 — Eval OS, Radar, Pollinate & Knowledge-lifecycle release.
Eval System
- Eval OS reframed as the agent-era
assertsuccessor; recovery is now a first-class 6th dimension - Load-time fail-loud guard for off-canonical case dimension/category; Guide tab shows 5 canonical dimensions
- Judge fail-fast throwaway client — one hung judge can't blow the wall; throttle-retry preserved
- Admit safety/memory/runtime_health categories to report buckets
Radar — Jobs & Runs
- New Jobs & Runs section restores job + run-status visibility; shows only ACTIVE pipeline runs
- Crash-residue split from decision pauses in NEEDS YOU (and dropped from the roster)
- 🔔 job cards surface
last_error— show WHY a job failed; disabled jobs excluded from the queue - Needs You shows top 3 + "See more" fold; category tags + click-processing state
Pollinate
- HTML-deck build layer — zero-network render of 34 design systems
- Cross-format gate given teeth (3 hard invariants); verb-anchor PPT-to-web conversion detection
- Latin font backfill; html-deck style-select + PPT import fixes
Knowledge Lifecycle
- Agent-directed
retire_entry+ddd-retireCLI (the "out" side); tightened decay (60/150) _ENTRY_REwidened to parse emoji-prefix prose entries; prose-matching made opt-in (fixed 2 HIGH data-corruption vectors)
Pipeline / Jobs / Health
- Terminal runs never treated as crash-zombies; publish back-fills artifact_id correctly
- Permission: deny streams through
continueso the agent responds - Health-probe: revived 2 silently-dead runtime checks
- Release skill: dropped stale commit-count scope gate — R6/R11 quality gate is the real readiness bar
Full changelog: v1.23.0...v1.24.0
Full Changelog: v1.23.0...v1.24.0
SwarmAI v1.23.0
Reliability + self-evaluation release. 76 commits since v1.22.0 (36 fix · 11 feat · 3 test · 1 perf · docs/chore). Preview: #92
🔁 Session resilience — resume that actually resumes
- DEAD-state resume recovery +
_cleanup_deadTOCTOU guard — asend()hitting a dead subprocess self-recovers instead of waiting out the 60s lifecycle loop. - First-send zombie fix —
_last_turn_cleanfail-closed guard recycles a soft-interrupt-poisoned warm subprocess before reuse. - Bounded tool-call-leak recovery — 1st leak injects a correction prefix + resumes; 2nd does a clean cold restart. No self-reinforcing retry loops.
- Serialized subprocess IO — single SDK channel per session, concurrency-safe
_force_kill.
🖥️ Streaming spinner — honest & backend-authoritative (OT01)
- Spinner self-heals within ~3s via streaming-aware reconcile cadence.
- Render-freeze on long streaming turns fixed at the render-source layer.
- Terminal backend states clear the spinner immediately; hard-cap backstop clock guarantees a churn-immune force-clear bound.
- Spinner stays honest while the backend flushes post-disconnect.
🧪 Eval subsystem — golden cases you can trust
- gate_refs anti-drift gate — every case reference must resolve to live content or the case fails.
- hard_delete_cases — physical, resurrection-proof golden-case removal.
- validate-corpus sweep closes the resting-corpus drift hole; score-drift hard gate + weekly scheduled cadence.
- Judge-infra coverage-collapse alerting — an errored case no longer masquerades as a clean pass.
🧠 Governance & memory
- AGENT R30 — context files as cognitive organs (verify-before-quote, touch-it-fix-it) + s_persist Step-0 admission gate.
- perf(memory): index titles capped to pointers, recall keywords recovered.
- Credential-expiry banner driven by /health auth.
🔧 Build/deps
- Tauri 2.11.3 to 2.11.4; time pinned to 0.3.51 (cookie 0.18.1 break).
No breaking changes to the desktop app contract.
Full Changelog: v1.22.0...v1.23.0
SwarmAI v1.22.0
SwarmAI v1.22.0 — 212 commits since v1.21.0 (89 fix · 61 feat · 18 test · 13 docs · 7 governance · 5 refactor · 4 harden · 3 perf · 3 ddd · 1 revert)
Highlights
Recall & Context (READ path — pure-filesystem rebuild)
- Recall returns to pure-filesystem: vector/Titan leg physically removed from all recall paths; keyword/FTS5 + entry-level BM25 slice
- Entry-level slice+rank replaces whole-section front-truncation — query-matching entries surface regardless of position
- Archives FTS5 + no-truncate read line +
[RECALLED]provenance header - recall#5 opener un-latch + keyword-miss cap; recall#3 degraded counter (loud-on-degradation)
- Token estimator recalibrated to real tokenizer + unified CJK range; self-report drift check
System Prompt / Briefing
- Cognition-admission: CUT 8 feed sections from system-prompt briefing (
700→290 tok) — system prompt is cognition real-estate, not a dashboard - Ephemeral-budget WARN observability (never truncates load-bearing context)
- EVOLUTION.md loads unconditionally on desktop (O2 coding-gate removed)
Memory
- Per-section dormant threshold — MEMORY ages at 45d, others 90d
- Single-source write-path dedup; caps reconciled to live counts
- SessionRecall resurrected (dead import had killed it in prod)
Eval (decoupled system-level subsystem)
- eval_command_guard — structurally bans running eval inside coding pipeline (DEC05/PIT179)
- Runtime canary teeth for spine probes; memory/resume/assembly-floor probes
- Judge self-heals on transient credential error
Security & Hooks (defense outside the agent)
- bash_syntax_guard — prevents headless hang on syntactically-broken commands
- eval_command_guard, persist-skill routing guard, irreversible-external-op gate (C041 fix)
Chat / Frontend
- Bridge store-phase→isStreaming — kills frozen-tab-no-indicator desync
- Live per-tool elapsed timer on pending tool card
- 10s grace on desync guard
Pipeline
- In-band L2 escalation via AskUserQuestion (true human-in-the-loop)
Critical fix
- spawn: pass allowed_tools=[] not None — SDK 0.2.109 was crashing all sessions
Full Changelog: v1.21.0...v1.22.0
SwarmAI v1.21.0
SwarmAI v1.21.0 — 294 commits since v1.20.1 (8 days). The biggest release to date: a full session-lifecycle resilience overhaul, the #1-recurring frontend reconcile bug fixed at its root, a self-evolution closed loop, and a universal pipeline understanding gate.
🧠 Session Lifecycle & Resource Arbitration (R3–R6)
- Unified RecoveryCoordinator — RSS kill, stuck-WAITING, streaming-timeout, tool-hang, and OOM all route through one coordinator (R3b–R3e). RecoveryTransaction closes the
_crash_to_coldTOCTOU. - R6 multi-tab isolation — spawn/resume decoupled from the UX tab ceiling; pure
spawn_budgetRAM arbitration; independent concurrent-streaming cap; orphan-only eviction makes cross-tab eviction structurally impossible; orphan-session reaper; slot release on tab close. recovery_exhaustednow surfaces to the user when the self-heal breaker trips.
🖥️ Frontend Streaming & Reconcile (OT01 — #1 recurring bug)
- Render-source split-brain fixed at the root — store is now the sole render authority; stale-prop fallback deleted. 33 prior patches all hit innocent layers; the real defect was the React render-source.
- Foreground-resume reconcile kills the App-Nap stale-store freeze; background-tab re-render gated on
isActive(cross-tab render saturation). - Streaming text rendered as plaintext (kills O(n²) markdown re-parse jank);
[DONE]survives mid-stream gen churn; blue active-tab underline; LeftSidebar nav redesign.
🔬 Self-Evolution Closed Loop
- Autonomous cognitive recording + growth report (OT07); meta-cognitive intake + active maintenance escalation.
- M0–M5 DDD knowledge governance: honest per-entry noise metric, physical reclaim of stale noise, keep-class protection, auto-cultivation quality gate, authoritative-zone write-protect, self-evolving eval with Goodhart guard.
- M3 SELF.md resident self-portrait + Recurrence Radar.
⚙️ Pipeline
- Universal Understanding Gate at the EVALUATE→THINK boundary — diagnosis before build.
- REPRO gate + diagnostic-challenge sub-agent;
artifact_cli publish --quiet(parse-proof orchestrator output); schema subcommand.
🛡️ Safety & Hardening
- PreToolUse guard default-denies Bash backgrounding; default 120s Bash timeout (15min opt-in); connection-phase reconnect budget extended to ~65s; auto-resend of swallowed question on backend recovery.
📊 Tally
150 fix · 77 feat · 23 test · 24 docs · 5 refactor · 2 governance — all CI-green.
🤖 Generated with Claude Code
Full Changelog: v1.20.1...v1.21.0
SwarmAI v1.20.0
SwarmAI v1.20.0
Major release: 142 commits delivering 6 major subsystem upgrades.
Highlights
🧠 Session Unit Extraction — God module split (4167→2802 lines, −33%) via strangler-fig pattern into SessionUnit + StreamingOrchestrator + RetryManager.
📦 MessageStore Single-Writer — Structural protection for chat messages. Phase-gated writes, rAF-gated subscriptions, cross-tab isolation.
🔄 Streaming State Machine — 11-mode explicit reducer replaces 18 implicit booleans. Per-tab on UnifiedTab. 300 matrix tests.
🏥 Session Lifecycle Resilience — HealthSensor (5 triggers) + HealingLoop (max 3 attempts) + unified _arm_recovery_checkpoint. Self-heal re-enabled with user-stop guard.
📊 OS Eval System — 115 cases, 97.4% score. Two-tier: session canary (31 programmatic, 0.07s) + bi-weekly LLM judge (84 cases, ~$0.12). Dashboard live.
🧬 Evolution L1: Governance Mining — Weekly evolution cycle now mines EVOLUTION.md for recurring judgment patterns (correction classes + GC candidates) → governance proposals surfaced in session briefing.
Other Notable Changes
- Cross-tab strict isolation (subscription guard fix)
- Unified recovery primitive (
_arm_recovery_checkpoint) - RSS kill thresholds raised (3.5GB/7GB for 36GB machine)
- Frontend viewport lock for Settings/Eval pages
- Security sanitization for v1.20.0 public release
- Stall/watchdog timeout raised to 90s for cold-start
- Queued message ops routed through MessageStore
Stats
- 142 commits | 6 major subsystems | 9/9 smoke tests pass
- Backend: session_unit 4167→2802 LOC (−33%)
- Frontend: 300+ new streaming state tests
- Eval: 115 golden set cases operational
Full Changelog: v0.0.86...v1.20.0
SwarmAI v1.19.0
What's New
Sub-Agent Progress Observability
- Tiered elapsed-time banners show when sub-agents (pipeline, deep-research) are running longer than expected
- New
/api/chat/sessions/streaming-stateendpoint for real-time agent status - Cross-turn bleed protection + concurrent agent tracking
DDD Runtime Read-Side Activation (F1-F5)
- 5 new callers wired into DDD documents for real-time project context during coding
UX Improvements
- R17: Mandatory prompt suggestions after every task completion
- Amazon Narrative Format added to s_docx style standard
- Workspace explorer: race condition fix, path-escape, portability improvements
Quality
- 3 adversarial review rounds: 2 HIGH + 1 MEDIUM bugs caught and fixed pre-ship
- Document metadata convention with lint + auto-update
Full Changelog: v1.18.2...v1.19.0
Full Changelog: v1.18.2...v1.19.0
SwarmAI v1.18.2
What's New
Bug Fixes
- fix(chat): message swallowing during queue drain — P1 UX bug where user messages were lost (
246dd0d3) - fix(chat): reconcile race — streaming indicator stuck + layout overflow (
9f0821ef) - fix(layout): viewport-lock — structural fix for page scroll (
71f3675f) - fix(ui): ChatInput spacing — softer separator + tighter action bar (
bff7785f,c1ce43c3) - fix(ui): memoize PDF data decoding — prevent re-load on every render (
f24cbd10)
Features
- feat: max_turns 200→400 — prevent deep pipeline sessions from being truncated (
a786b9e8)
Pipeline Quality
- Iron Law enforcement on R1 (
05a49d75) - Anti-rationalization tables at BUILD/REVIEW/TEST/DELIVER decision points (
171abbd0) - Spec-compliance enforced as fresh sub-agent (
1c29ff48) - Graphviz decision trees for profile selection + checkpoint logic (
06097681) - Iron Law framing + P5 gate sequence + "zero-context" plan specs (
088e856c)
Tests
- Regression guards for drain lifecycle, viewport lock, and streaming fixes
Full Changelog: v1.18.1...v1.18.2
Full Changelog: v1.18.1...v1.18.2
SwarmAI v1.18.1
Highlights
🔬 Pipeline Meta-Intelligence (v5)
- 5-layer self-learning system: Observe → Analyze → Adapt → Recover → Specialize
- All 6 profiles now include THINK stage — no profile skips reasoning
- 9 code gates (non-bypassable) — including goal adversarial, REPORT.md mandatory, profile immutability
- Non-skippable stages enforced (goal_cycle, deliver, reflect)
- Mandatory completion summary — no more silent pipeline endings
📝 File Editor Enhancements
- Selection-based review: select code → send feedback with full context
- SSE-driven auto-refresh: real-time reload after agent edits (replaces polling)
- Diff highlight on reload: changed lines visually highlighted after edit
- Comment popover fix: positioning + race condition resolved
⏱️ Streaming UX
- Elapsed time shown during tool execution (no more "is it stuck?" uncertainty)
🛡️ Pipeline Quality Gates
- Goal profile gets full stage coverage + aggressive detection heuristic
- REPORT.md enforced as mandatory deliver output
- Pipeline reports use requirement as title (not batch H1)
- run-update --status completed emits reminder to output summary
- Docs compressed -122 lines (formatting templates → descriptions)
Stats
- 27 commits | 24 files changed | +2,825 / -425 lines
- Focus: Pipeline hardening + File Editor UX + Streaming polish
Full Changelog
Full Changelog: v1.18.0...v1.18.1
v1.18.0 — Streaming Spinner-Hang Root Cause Fix
What's New
Streaming Fixes (P0)
- Root cause fix: spinner-hang on background tabs eliminated via
readonly isStreaming+Omit<>type enforcement — direct mutation now impossible at compile time - Atomic clear primitive: all 9 streaming-clear paths now go through
setIsStreaming()— no more scattered.isStreaming = false - L2 reconciliation poll: 15s background check against backend streaming-state endpoint catches any residual stale flags
Workspace & Editor
- Bare-filename resolution via Projects + workspace root walk (Stage 3/4)
- 39 adversarial security tests (symlink traversal, path injection, dot-segment attacks)
Signals
- Weibo trending adapter (China social)
- East Money (东方财富) market adapter (replaced Xueqiu which required auth)
Infrastructure
streaming-stateendpoint added to post-build smoke test- Co-Authored-By identity fixed to
Swarm <swarm@swarmai.dev>
Upgrade Notes
- Frontend-only changes — no backend migration needed
- Requires app relaunch after DMG install to load new JS bundle
Full Changelog: v1.17.7...v1.18.0
SwarmAI v1.17.7
Bug Fixes
- Chat text duplication — merge consecutive assistant DB rows on read, eliminating duplicate content (#63)
- Cross-turn response bleed — prevent interrupted sends from leaking into next response (#62)
- DailyActivity checkpoint noise — reduce redundant checkpoint entries (#66)
- Radar Todo noise flooding — dedup gate + confidence filter + auto-purge (#67)
- Scheduler event race — close race condition in emit_event_atomic + pagination merge seam
- Build verification deadlock — drain stdout pipe to prevent 64KB buffer deadlock in verify_build
- Build timeout — increase startup timeout 90s → 180s for PyInstaller cold extraction
Enhancements
- Memory decay scoring — Ebbinghaus + Hebbian decay integration into distillation hook
- Governance audit — P5 proactive propose, R15 any-API verification, stale data cleanup
- Context refinement — convergence metrics, session_unit timeout docs
Stats
- 21 commits, 16 bug fixes, 2 new features
- All fixes verified by adversarial review sub-agents
Full Changelog: v1.17.6...v1.17.7
Full Changelog: v1.17.6...v1.17.7