SquadSquad

What’s New

Full release history for Squad — from beta through the v1 TypeScript replatform. Jump to the version you’re looking for, or read top-down to see how the project evolved.


v2.0.0 — Multi-Host Clients & Experimental Backend Contract

v2.0.0-preview.3 — safe legacy recovery, opt-in work claims, and a patched standalone runtime

v2.0.0-preview.3 keeps insider as the canonical npm channel and preview as its compatibility alias; latest, Homebrew, WinGet, and stable promotion remain held. Legacy Squad 0.9.x casting arrays now migrate natively when charter and assignment evidence is unambiguous, preserving identities, assignments, timestamps, and byte-exact originals. Ambiguous casting remains unchanged and is reported accurately, but no longer blocks managed bridge repair or the rest of squad upgrade. Optional built-ins remain opt-in with squad roster add, and multi-machine squad watch claims remain off by default (--claims git-ref enables them). Whatever claim provider is configured, squad watch now stops on a malformed, empty, or unreadable .squad/config.json (only a missing file selects defaults) or an invalid watch.claims value, applies needs:* capability routing, and never dispatches the same issue twice in one round.

Standalone archives now vendor Node.js 22.23.4. The official Node.js October 21, 2026 security advisory and Node.js v22.23.4 release notes cover the fixed 22.x vulnerabilities, including CVE-2026-111497 (Brotli decoder out-of-bounds write with possible remote code execution) and CVE-2026-106074 (snapshot/SEA entropy-cache reuse). Runtime downloads verify Node’s signed SHASUMS256 data and never fall back to an older runtime. Preview.1 and preview.2 standalone archives embedded Node.js 22.20.0, so standalone users should download preview.3 again. npm installs rely on the host runtime and should use Node.js 22.23.4 or a newer patched release; the package engines value remains a compatibility floor.

v2.0.0-preview.2 — upgrade safety and bridge reliability

v2.0.0-preview.2 keeps insider as the canonical npm channel and preview as its compatibility alias; latest remains on v1.1.0. It incorporates the preview.1 dogfood fixes: content-aware idempotent upgrades with verified backups, safe self-upgrade dry runs and downgrade refusal, resolvable versioned state bridges with bounded lifecycle cleanup, root-safe state operations, legacy charter/routing compatibility with fail-closed routing validation, INFO-only available but not configured notices for optional built-ins until users opt in with squad roster add <rai|fact-checker|all> (squad upgrade preserves team.md), fixed client and migration commands, optional charter Examples support, and improved skill frontmatter parsing.

v2.0.0-preview.1 — insider channel with preview alias

v2.0.0-preview.1 is the first Squad 2.0 build. The canonical npm channel is insider (squad upgrade --self --insider or npm install -g @bradygaster/squad-cli@insider), with preview retained as a compatibility alias; latest stays at v1.1.0 until 2.0.0 ships stable. Before upgrading an existing project read Upgrading to Squad 2.0 and the tested upgrade paths; the full list of breaking changes is in the table below.

Highlights (v2.0.0)

  • Seven AI hosts via --client — squad init --client <list> and squad upgrade [--dry-run] --client <list> project the Squad coordinator and squad_state MCP wiring across GitHub Copilot (copilot), Claude Code (claude), Kiro (kiro), OpenCode (opencode), Cursor (cursor), OpenAI Codex (codex), and Google Antigravity (antigravity), or all, persisting portable slugs in .squad/config.json clients[]
  • Shared charters & capability negotiation (@bradygaster/squad-sdk/client) — Every host uses one coordinator that dispatches specialists from shared .squad/agents/<member>/charter.md files; HostProjection, ClientAdapter, and CAPABILITY_TOKENS_BY_HOST negotiate effective capabilities as client ∩ backend ∩ policy (@bradygaster/squad-sdk/clients remains as a deprecated alias)
  • Transactional casting repair & roster backfill — squad upgrade normalizes handwritten .squad/casting/registry.json files per record (preserving retired/inactive agents and extra metadata), backfills empty registries from team.md using .squad/agents/<id>/charter.md folder IDs, archives pre-repair originals under .squad/casting/handwritten-archive-<sha256>/, and fails closed with an explicit dropped list when entries cannot be proven
  • Experimental backend & harness SPI (@bradygaster/squad-sdk/backend) — Ships the experimental SquadBackend (LocalSquadBackend, DurableHttpSquadBackend, createStateBackendStore) and HarnessAdapter / DefaultHarnessRegistry contracts plus 11 opt-in squad_backend_* MCP tools in squad state-mcp (--experimental-backend or SQUAD_EXPERIMENTAL_BACKEND=1), validated against the squad-protocol-v2.0-rc1 golden trace (G1–G9); server-side DurableSquad Phase 2 integration (remote durable approvals and lease-epoch coordination) is pending
  • Strict opt-in & byte-preserving rollback — Existing Copilot-only repos see no extra host files or client-specific .gitignore entries unless --client is passed; shared JSON, TOML, .gitignore, and markdown marker merges preserve formatting and roll back byte-for-byte via uninstallClients
  • Upstream inheritance is real at runtime — squad_state_upstreams (exposed by squad state-mcp to every host) resolves .squad/upstream.json from locally synced snapshots only (never fetches at session start), with deterministic precedence (local .squad/ wins, then declared order, depth-first, depth limit 3), cycle detection, soft failure for missing/stale/unavailable sources and upstream:<name>@<ref> provenance on every inherited skill, decision, routing rule and casting policy; the canonical coordinator gains an Upstream Inheritance section and squad doctor / squad status show the same resolution
  • Bridge fixes — squad_state_health names the backend (local / orphan / two-layer), squad_state_list without dir lists the root on git-backed backends, and Claude Code declares background-runs

Breaking & Behavior Changes (v2.0.0)

AreaChange in 2.0.0Migration
Client SDK import path@bradygaster/squad-sdk/client is canonical; @bradygaster/squad-sdk/clients is a deprecated aliasUpdate imports to @bradygaster/squad-sdk/client
Experimental backend exports@bradygaster/squad-sdk/backend is exported only from ./backend (not the root barrel)Import SquadBackend / HarnessAdapter from @bradygaster/squad-sdk/backend
squad state-mcp backend toolssquad_backend_* tools require --experimental-backend or SQUAD_EXPERIMENTAL_BACKEND=1 (SQUAD_BACKEND_URL alone does not enable them)Pass --experimental-backend or set SQUAD_EXPERIMENTAL_BACKEND=1
DurableHttpSquadBackend optionsRequires an explicit https:// baseUrl (http:// only for localhost) and does not read SQUAD_BACKEND_URL in SDK codePass baseUrl (and optional token) explicitly to createSquadBackend / DurableHttpSquadBackend
Static config vs. mutable statesquad_state_write rejects static team config (team.md, routing.md, config.json, charter.md); .squad/casting/ must not be hand-editedEdit static files in the workspace and register roster changes with npx squad cast --name <Name> --role "<Role>"
Removed 1.x profile featuresBREAKING: Personal squads, consult mode and the global squad (--global) were removed; existing personal-squad/ and global .squad/ directories under the user profile are no longer read or written and may be deleted manually.No migration tool; copy anything you still want into a project .squad/ by hand
Squad resolutionSquad resolves .squad/ only from the current directory and its parents; squad status / doctor / cast / cost outside a project fail with No squad in this directory instead of falling back to a user-profile directoryRun squad init in the project, or pass --team-root
Upstream inheritanceSessions now load upstream.json through squad_state_upstreams; earlier entries win conflicts (the 1.x docs said later), and git upstreams are only read from the clone made by squad upstream syncRun squad upstream sync after upgrading; reorder entries if you relied on later-wins

v1.1.0 — Stable Release

  • Smarter model routing — Central model resolution, GA quality profiles, and safer economy fallbacks make model selection predictable and observable
  • HydraFusion opt-in — Preview HydraFusion models are available through an explicit profile without entering default or GA recommendation chains
  • Safer upgrades — Legacy casting state migrates automatically, portable MCP configuration and CRLF style are preserved, and user-authored Copilot instructions survive upgrades
  • CLI completeness — Cast/hire persistence, build watch mode, explicit memory-provider errors, and reliable multiline Windows watch prompts close command gaps
  • Release reliability — Homebrew and WinGet reads use anonymous clones, with credentials scoped only to later pushes

v1.0.1 — Stable Release

  • Routing health fix — squad health now accepts persistent casting names as valid routing references
  • Activation integrity — Stable standalone installs fail closed when checksums are missing, invalid, or tampered with
  • Aligned packages — CLI and SDK npm packages now publish together at 1.0.1

v1.0.0 — Stable Release

  • Stable npm packages — @bradygaster/squad-cli and @bradygaster/squad-sdk graduated to 1.0
  • No breaking migration — v1.0.0 stabilized the existing 0.13.1 API and command surface
  • Stable documentation — Removed the blanket alpha disclaimer while preserving genuine preview and feature-specific warnings

v0.9.1

  • Shell agent name extraction — Robust multi-pattern fallback for extracting agent names from shell transcripts (#577)
  • Init scaffolding — squad init --sdk now scaffolds typed casting files; silences remote-lookup warnings (#579)
  • Personal squad global mode — squad personal init --global auto-discovers ~/.config/squad/ (#576)
  • Release hardening — CI playbook rewrite, publish policy linting, docs consistency checks (#564, #557)
  • Doctor improvements — Actionable warnings and squad.agent.md existence checks (#565, #533)

v0.9.0 — Major Feature Release

Governance & Personal Squads

  • Personal Squad concept — Isolated developer workspace with own team.md, routing.md, and roster (#508)
  • Ambient discovery — Auto-detect personal squad at ~/.squad/ via environment variables
  • Personal squad CLI — Commands: squad personal init, list, use, remove (#508)
  • Governance isolation — Hooks, ceremonies, telemetry scoped per personal squad (#508)

Worktree Spawning & Distributed Work

  • Worktree creation — Coordinator spawns managed worktrees for parallel agent work (#529)
  • Cross-squad orchestration — Agents coordinate across multiple squads and worktrees (#446)
  • Persistent Ralph — Long-running daemon with watch + heartbeat health monitoring (#443)
  • Worktree .git guard — Regression detection for file vs directory confusion (#521)

Capability Discovery & Routing

  • Machine capability inference — Auto-detect available tools, models, hardware specs at session start (#514)
  • needs:* label routing — Agents self-route based on discovered capabilities (#514)

Rate Limiting & Cost Control

  • Cooperative rate limiting — Predictive circuit breaker with token budget forecasting (#515)
  • Economy Mode — Automatic cheaper-model selection when quality thresholds permit (#500)
  • Token usage tracking — Per-agent cost visibility in session UI (#453)
  • Rate limit recovery — Actionable error messages for quota pressure (#464)
  • Ralph circuit breaker — Graceful degradation under model quota limits (#451)

Telemetry & Infrastructure

  • Auto-wire telemetry — initSquadTelemetry() now self-configures, no manual wiring (#281)
  • OpenTelemetry propagation — Automatic context flow across squad sessions
  • Issue lifecycle template — Standardized workflow (creation → triage → assignment → completion) (#527)
  • KEDA autoscaling template — Kubernetes-based horizontal scaling for agent work (#516, #519)
  • GAP analysis verification — After-work checklist ensures all requirements met before completion (#473)
  • Session recovery skill — Find and resume lost sessions without restart (#442)
  • GitHub auth isolation skill — Multi-account GitHub workflows (#470)

Docs, Stability & Distribution

  • Astro site enhancements — Search tuning, section badges, coverage indicators (#524)
  • Autonomous agents guide — Comprehensive SDK guide for building agents (#492)
  • CLI terminal rendering — Fixed scroll flicker, reduced re-render churn, stabilized component keys
  • Upgrade hardening — Context-aware footers, EPERM handling, gitignore coverage (#544, #549)
  • ESM compatibility — Node 22/24 dual-layer fix, Node 24+ hard-fail with guidance (#449, #502)
  • Signal handling — SIGINT/SIGTERM graceful shutdown with 22+ regression tests (#486)
  • npm-only distribution — Removed GitHub-native channel; standard npm registry install

v0.8.2

  • Version alignment — CLI (0.8.1) and SDK (0.8.0) snapped to 0.8.2 across all packages
  • Published to npm — @bradygaster/squad-sdk@0.8.2 and @bradygaster/squad-cli@0.8.2
  • Init flow improvements — Ralph now included in the initial agent set during squad init; routing templates no longer reference @copilot by default (#337, #338, #339)
  • --sdk switch — squad init --sdk generates typed squad.config.ts with useRole() calls (#424)
  • --roles opt-in — squad init --roles uses the base role catalog instead of fictional universe casting (#412)
  • CastingEngine — CLI init now uses CastingEngine to map recognized universes to curated character names and backstories (#417)
  • Session Recovery skill — New skill for finding and resuming interrupted sessions via session_store queries (#442)
  • Model defaults updated — Standard code → Sonnet 4.6, premium visual → Opus 4.6, code specialist → GPT-5.3-codex, GPT-5.4 added to catalog (#429)
  • Rework rate OTEL metrics — Four new instruments (squad.rework.rate, squad.rework.cycles, squad.rework.rejection_rate, squad.rework.time_ms) for the 5th DORA metric (#415)
  • Remote squad mode (ported from @spboyer’s PR #131):
    • resolveSquadPaths() dual-root resolver for project-local vs team identity directories (#311)
    • squad doctor command — 9-check setup validation with emoji output (#312)
    • squad link command — link a project to a remote team root (#313)
    • squad init --mode remote — initialize with remote team config (#313)
    • ensureSquadPathDual() and ensureSquadPathResolved() dual-root write guards (#314)
  • CopilotSessionAdapter (#315) — Wraps @github/copilot-sdk CopilotSession to map sendMessage→send, on→unsubscribe tracking, destroy→close. Fixed P0 “sendMessage is not a function” Codespace bug.
  • Adapter hardening (#316–#322) — 7 issues fixed:
    • EVENT_MAP with 10 event type mappings and REVERSE_EVENT_MAP for normalization
    • Typed field mapping replacing all as unknown as casts
    • Per-event-type unsubscribe tracking
    • Zero unsafe casts remaining in adapter layer
  • Docs restructure — 85 pages across 6 sections:
    • Getting Started (10), CLI (3), SDK (3), Features (25), Scenarios (21), Blog (23)
    • Ported all 44 scenario + feature docs from beta
    • 8 new blog posts covering the replatform arc
    • Custom static site generator with markdown-it, frontmatter, search index
  • GitHub Pages — Live docs site with dark mode, client-side search, sidebar nav, beta site UI
  • Test baseline — 2232 tests across 85 test files

v0.6.0 — The TypeScript Replatform

The big rewrite. Everything moved to TypeScript with a clean SDK + CLI split.

  • Full rewrite — JavaScript → TypeScript with strict mode, ESM modules, Node.js ≥20
  • SDK + CLI split — Two npm packages: @bradygaster/squad-sdk (runtime, adapter, resolution) and @bradygaster/squad-cli (commands, shell, REPL)
  • npm workspace — Monorepo with packages/squad-sdk and packages/squad-cli
  • Interactive shell — squad with no args launches rich REPL with streaming, welcome banner, session registry
  • OpenTelemetry integration — 3-layer API (low-level otel.ts, bridge otel-bridge.ts, init otel-init.ts), SquadObserver file watcher, Aspire dashboard support
  • Adapter layer — CopilotSessionAdapter bridging @github/copilot-sdk to Squad’s session interface
  • Constants extraction — MODELS, TIMEOUTS, AGENT_ROLES centralized in constants.ts
  • Security — execFileSync with array args replacing execSync template strings (CWE-78 fix)
  • Wave-based development — 3 waves of parallel fan-out:
    • Wave 1: OTel, Aspire, SquadObserver, upstream docs
    • Wave 2: REPL polish, CWE-78 fix, config extraction, 119 new tests, Aspire E2E
    • Wave 3: Docs migration, site engine, 5 guides
  • CLI entry point — Moved from dist/index.js to dist/cli-entry.js
  • CRLF normalization — All 8 parsers normalize line endings; Windows users with core.autocrlf=true work correctly

Breaking Changes (v0.6.0)

ChangeMigration
Config file: squad.agent.md → squad.config.tsRun squad init to generate typed config
Team dir: .squad/Standard directory for all team state
Routing: markdown rules → typed RoutingRule[]Export existing rules with squad export
Models: string names → tier-based ModelConfigUse defaultTier + fallbackChains in config

v0.6.0-alpha.0

  • Initial replatform — First working TypeScript build
  • CLI commands — init, upgrade, shell, doctor, link
  • npm distribution — npm install @bradygaster/squad-cli
  • Branch protection — main requires PR + build check
  • Changesets — Infrastructure for independent package versioning

v0.5.2

  • upgrade --migrate-directory exits early fix — The directory rename step no longer calls process.exit(0), so the full upgrade now runs in one command
  • .slnx, .fsproj, .vbproj not detected as .NET — Proper Visual Studio solution files and F#/VB.NET project files now detected
  • Migrations use detected squad directory — Migration steps and .gitattributes rules now use the detected squad directory

v0.5.1

  • squad watch — Local Watchdog — Persistent polling for unattended work processing. Run squad watch to check GitHub every 10 minutes for untriaged squad work; use --interval flag to customize polling
  • Project type detection — Squad detects your project’s language and stack to intelligently configure workflows
  • Git safety rules — Guardrails enforced based on detected project type

v0.5.0 — The .squad/ Rename Release

  • .squad/ directory — Full directory rename with backward-compatible migration utilities. Existing repos continue to work; migration required by v1.0.0.
  • Decision lifecycle management — Archival and versioning support for design decisions
  • Identity layer — New wisdom.md and now.md files for agent context and temporal awareness
  • ISO 8601 UTC timestamps — Standardized timestamp format throughout
  • Cold-path extraction — Refactored coordinator from ~30KB to ~17KB
  • Skills export/import verification — Enhanced validation for agent skill extension
  • Email scrubbing — Automatic PII removal during migration

v0.4.2

  • /agent vs /agents CLI command fix — Correctly reference /agent (CLI) and /agents (VS Code)
  • Insider Program infrastructure — insider branch with guard workflow enforcement
  • Branch content policy — Formal decision document for branch safety
  • Custom universe support — Star Trek universe added by community contributor @codebytes

v0.4.1

  • Task spawn UI — Role emoji for visual consistency (🏗️ Lead, 🔧 Backend, ⚛️ Frontend, 🧪 Tester, etc.)
  • squad upgrade --self command — Refresh .squad/ from templates while preserving agent history
  • Deprecation banner — CLI and coordinator warn about the .squad/ rename

v0.4.0

  • Client Compatibility — Full platform support matrix for CLI and VS Code
  • VS Code Support — First-class VS Code guide with runSubagent parallel spawning
  • Project Boards — GitHub Projects V2 integration with board + Kanban views
  • Label Taxonomy — 7-namespace label system (status:, type:, priority:, squad:, go:, release:, era:)
  • Notifications — Squad pings you on Teams, iMessage, or Discord when input is needed
  • MCP Setup Guide — Step-by-step MCP configuration for CLI and VS Code
  • Plugin Marketplace — Discover and install curated agent templates and skills
  • Universe Expansion — 20 → 33 casting universes
  • Context Optimization — decisions.md pruned from ~80K to ~33K tokens; per-agent context usage dropped from 41–46% to 17–23%

v0.3.0

  • Per-Agent Model Selection — Cost-first routing with 16-model catalog and fallback chains
  • Ralph — Work Monitor — Built-in squad member that autonomously processes backlogs
  • @copilot Coding Agent — GitHub’s Copilot agent as a squad member with three-tier capability profile
  • Universe Expansion — 14 → 20 casting universes

v0.2.0

  • Export & Import CLI — Portable team snapshots for moving squads between repos
  • GitHub Issues Mode — Issue-driven development with gh CLI integration
  • PRD Mode — Product requirements decomposition into work items
  • Human Team Members — Mixed AI/human teams with routing
  • Skills System — Earned knowledge with confidence lifecycle
  • Tiered Response Modes — Direct/Lightweight/Standard/Full response depth
  • Smart Upgrade — Version-aware upgrades with migrations

v0.1.0

  • Coordinator agent — Orchestrates team formation and parallel work
  • Init command — squad copies agent file and templates
  • Upgrade command — squad upgrade updates Squad-owned files without touching team state
  • Template system — Charter, history, roster, routing, and more
  • Persistent thematic casting — Agents named from film universes
  • Parallel agent execution — Coordinator fans out work to multiple specialists simultaneously
  • Memory architecture — Per-agent history.md, shared decisions.md, session log/
  • Reviewer protocol — Agents with review authority can reject work and reassign
  • Scribe agent — Silent memory manager, merges decisions, maintains logs