Skip to content

Latest commit

 

History

History
547 lines (459 loc) · 46.1 KB

File metadata and controls

547 lines (459 loc) · 46.1 KB

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

[0.13.1] - 2026-08-26

Fixed

  • Allow runtime state tools to persist the casting policy, registry, and history keys required by the coordinator (casting/policy.json, casting/registry.json, and casting/history.json), while continuing to reject unrelated casting paths (#1876, #1898).

[0.13.0] - 2026-08-25

This release is focused on hardening the gh-aw (Agentic Workflows) integration shipped in v0.12.0: the install contract, workflow router, plan lifecycle, dispatch reliability, and CI coverage are all tightened. It also adds squad health, fixes squad watch/squad loop externalized-state routing, fixes squad nap archival, and hardens the SDK's state and scheduler paths.

Added

CLI

  • squad health — new readiness diagnostics command; shared workflows can gate on environment readiness before running (#1877).
  • {prompt} token in custom watch/loop agent commands as an unambiguous placement for the generated prompt; the existing -p <prompt> fallback is preserved (#1708).
  • squad doctor now checks that every eol=lf-pinned file is actually LF on disk (not just in the index), names stale files, and points at npm run fix:crlf; closes #1793.
  • Two stop signals for squad watch/squad loop previously parsed but never read — --sentinel-file <path> and .squad/ralph-stop — are now wired to the graceful shutdown path; closes #1711.
  • Workflow files are now backed up before squad upgrade refreshes them (#1709).
  • Shell detection now fails loudly instead of silently skipping when no POSIX shell resolves (#1857).

gh-aw / Agentic Workflows

  • feat(workflows): add advisory Squad reviewer — a lightweight advisory review step added to the gh-aw workflow so plan output is reviewed before activation (#1871).
  • Team Guard Step TG-2 — roster certification emitted into generated workflow output, letting an outer coordinator verify the cast is complete before dispatching (#1837).
  • squad-deps-worker — a new fail-closed dependency-manifest worker that validates and routes dependency-update tasks; Wave 1 protected-files.exclude included (#1882, #1883, #1888).

SDK

  • feat(sdk): advertise real team capabilities in squad.agent.md — a generated Team Capabilities block lists the actual cast, supported task types, and domain-to-agent routing hints; the block is rewritten on init, upgrade, and cast changes (#1881).
  • "max" added to SquadReasoningEffort and VALID_REASONING_EFFORTS to match Copilot SDK 1.0.9 (#1693).

Release / distribution

  • Activation pin drift guard: a daily CI job checks that the Squad CLI activation pin in gh-aw templates matches the latest published release and opens a PR when it drifts (#1855).
  • Activation pin is now automatically updated when a new CLI version publishes (#1858).

Changed

  • (cli) Model catalog tiers and fallback routing updated for GPT-5.6 Sol, Terra, and Luna, and Gemini 3.1 Pro. Terra is the new default standard model for code and prompt tasks; Luna is its economy fallback (#1749, #1750).

Fixed

gh-aw / Agentic Workflows — install and activation

  • fix(gh-aw): preserve Squad CLI install contract — all four gh-aw workflow templates (squad.yml, squad-cast.yml, squad-research.yml, squad-review.yml) now install the Squad CLI before gh aw install, preventing squad from being absent when the gh-aw extension invokes it; this was the root cause of new-repo activation failures (#1887).
  • fix(gh-aw): bump activation CLI pin 0.11.0 → 0.12.0 for new-repo readiness (#1818).
  • ci: pin gh-aw v0.86.2 and add strict compile gate for all four workflows — each workflow file is compiled and validated in CI; the compile job now non-skippably installs the gh-aw extension so the gate cannot be green-washed (#1886, #1775).

gh-aw / Agentic Workflows — router and dispatch

  • fix(gh-aw): fail loudly when /squad parses no command — prevents a no-op silent run when the slash command payload is malformed (#1824, #1832).
  • fix(gh-aw): scan the first non-empty line in PC-0, not record 1 — fixes plan-coordinator step parsing for plans whose first line is blank (#1841).
  • fix(gh-aw): enforce activation agent bindings — agent binding is now validated before an activation step is dispatched (#1865).
  • fix(gh-aw): bind squad:{agent} labels to each issue's own plan row — labels were previously applied to the wrong issue row in multi-issue plans (#1863).
  • fix(gh-aw): stop the validation schema from shipping its own verdict — schema self-reference loop that caused validation to always pass removed (#1853).
  • fix(gh-aw): refill dispatch slots from the root, not the parent epic — epic dispatch slot exhaustion no longer blocks sibling dispatch (#1787).
  • fix(workflows): harden squad router — router hardening pass: improved command parsing, guard conditions, and error reporting (#1868).
  • fix(workflows): harden implement relay provenance — provenance metadata is now correctly threaded through the implement relay step (#1869).
  • fix(workflows): give plan validation adversarial teeth — plan validation now checks for injection-style patterns and structural violations (#1870).
  • fix(dispatch): raise max to 2 and add schema static gate — dispatch parallelism cap raised and enforced by a static schema check (#1772, #1777).
  • fix(gh-aw): refill dispatch slots from root and long-path planning lifecycle defects corrected (#1778).
  • Continuation dispatch inputs interpolated so merge continuation resolves the correct epic (#1741).
  • Nested source files and package-registry egress now allowed in workflow scope (#1744).
  • Protected writes fall back to a review issue instead of failing silently.
  • Dispatch workflow schema probes prevented (#1766).
  • fix(squad.md): stop seeding Owner/Agent binding with the tokens it forbids (#1789).
  • test(gh-aw): enforce dispatcher-first install order — CI test asserts the install ordering contract is maintained (#1879).
  • test(gh-aw): enforce shell input security contract over compiled output — compiled workflow output is scanned for unsafe input expansion patterns (#1834, #1866).
  • fix(ci): lint gh-aw generated workflows instead of skipping them — generated workflow YAML is now included in the actionlint pass (#1854).

CLI

  • fix(cli): route watch/loop capability state through the effective state dir — after squad externalize, all capability state reads/writes (decision hygiene, cleanup, retro, subsquad discovery, ralph-instructions check) now use stateRoot from effectiveSquadDir().stateDir instead of a bare .squad/ join; closes #1490 (#1660).
  • fix(cli): verify process identity before killing tracked watch PIDs — cross-checks the live process's OS start time against spawnedAt before killing, preventing collateral kills after crash + PID reuse (#1641, #1665).
  • fix(squad): make Scribe archival incapable of destroying statesquad nap / archiveDecisions now refuses to run when the destination is untracked and git-ignored, verifies entry count before trimming the source, and uses fence-aware record-boundary scanning. SDK adds archiveEntries(), resolveTrackedDestination(), prepareInboxBodyForMerge(), demoteHeadings(); fixes #1774, #1783, #1760 (#1792).
  • fix(sdk): refuse consult when info/exclude resolves outside the projectsetupConsultMode now verifies info/exclude belongs to the repository rooted at projectRoot; prevents hiding .squad/ across the main checkout and all sibling worktrees when called from a linked worktree (#1850).
  • Watch's PID tracker cross-checks a live process's actual OS start time against spawnedAt before killing it, preventing collateral kills after a crash + PID reuse (#1665).

SDK

  • fix(sdk): wire FSStorageProvider rootDir in resolveSquadStateresolveSquadState() now passes rootDir: paths.teamDir to FSStorageProvider so the path-traversal guard validates state writes; also fixes resolveSquadPaths() treating config.teamRoot: "." as remote mode, which pointed teamDir one level above .squad/; fixes #1555 (#1695).
  • fix(sdk): decode URL-encoded segments in Azure DevOps remote parsingparseAzureDevOpsRemote() decodes percent-encoded characters in org/project/repo segments for all three URL formats (dev.azure.com, SSH, legacy visualstudio.com), fixing az CLI calls for projects with spaces in their names; fixes #1526 (#1637).
  • fix(sdk): support command paths containing spaces in scheduler script tasksLocalPollingProvider now parses task.ref with quote awareness and longest-match path resolution, fixing scheduler tasks on the default Windows Node.js install path (C:\Program Files\nodejs\node.exe). Adds TaskConfig.argv as the unambiguous alternative. Spawn failures now surface a spawnError code instead of silently producing empty output; fixes #1794 (#1802).
  • Insider tag promotion now split by package so SDK and CLI are promoted independently (#1710).

[0.12.0] - 2026-08-12

Added

  • (cli) Ship GitHub Agentic Workflows (gh-aw): an executable SDLC lifecycle for Squad with /squad research, /squad plan (split into scope/impl/activate phases), /squad cast, and phased plan activation/acceptance, plus program-level planning (initiatives, epics, milestones), a planning policy schema, native dependency edges, and body-metadata sizing (#1649-#1658, #1680, #1685).
  • (cli) Add standalone, npm-free distribution: Homebrew and winget packaging, a native squad.exe, and npm-free squad_state MCP spec generation for standalone bundles (#1593, #1610, #1611).
  • (cli) Ship the ralph-instructions.md template and install pipeline for squad watch --execute (#1314).
  • (sdk+cli) Add category-based model cost policy with a live catalog/pricing refresh and squad models refresh (#1080, #1183, #1445).
  • (cli) Support custom universes and descriptive default naming in casting, and add descriptive run-names to the Squad GitHub Actions workflow (#1635, #1643, #1646).
  • (cli) Assign unique colors to squad member labels via deterministic hashing of slugified names (#1663).
  • (cli) Add squad update-check --json for tooling/CI (#1440).
  • (sdk) Hydrate WorkItem.body via getWorkItem and route the two-pass scan through the platform adapter (#1414).
  • (cli) Default new VS Code chat sessions to Squad on squad init.
  • (sdk+cli) Add Layer A/B/C dispatch-enforcement governance: coordinator tool-profile restriction plus Scribe DispatchGuard audit infrastructure, with an identity lock and routing guard in copilot-instructions.md (#1537).
  • Docs: add Azure hosting guides (Dockerfile contract, ACA, AKS), a production security-hardening guide (threat model, prompt-injection defense, credential hygiene), a production-operations runbook (observability, state-backend selection, troubleshooting), and a Microsoft Agent Framework integration guide (#1574, #1575, #1578, #1579).
  • (cli) Add gh aw init tooling — skills, MCP config, and setup/maintenance workflows — for consuming gh-aw from a project (#1592).
  • (sdk) Expose memory.* tools (classify, write, search, promote, delete, audit) through the squad_state MCP server so agents can manage tiered memory directly.
  • (cli) Add a Squad implementation mode: /squad implement dispatches regular issues and ready epic tasks to an isolated implementation worker workflow, guarding dependency handling, duplicate-PR detection, concurrency, and PR file scope (#1682).
  • (cli) Ship an Auto-Cast pivot for gh-aw: when a repo has no team yet, workflows write a pending-intent marker, dedupe in-flight Cast PRs, and resume the original request once casting completes, so a single issue can guide resumable work end-to-end (#1690).
  • (sdk) Add "max" to SquadReasoningEffort and VALID_REASONING_EFFORTS, matching Copilot SDK 1.0.9's ReasoningEffort = "max" (#1693).

Changed

  • (cli) Harden the Squad coordinator workflow prompt for gh-aw reliability: hard completion gates, atomic task-call contracts, configurable model selection, forward-ported safe-output hardening, and prompt-size compression (135KB → under the 100KB gh-aw limit) (#1669, #1678, #1680, #1683, #1685).
  • (cli) Make the coordinator canary check three-state and add a HEAD canary to catch false positives (#1461, #1517).
  • (cli) Warn before launching 2+ parallel background agents in a shared worktree (#1484).
  • (cli) CI: pin GitHub Actions references to immutable commit SHAs across shipped workflow templates, and fail CI when unreleased changesets accumulate (#1475, #1481).
  • Docs: restructure navigation and do a voice pass across get-started, concepts, and issue-truth content; add the agentic-SDLC demo walkthrough (#1570-#1573).
  • Refresh dependencies across the workspace, including TypeScript, Vitest 4, Ink 7, @github/copilot-sdk, @github/copilot, and OpenTelemetry, plus routine security/patch bumps.
  • Bump @hono/node-server to 2.1.0 and the workspace's minor-patch dependency group (@typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, eslint-plugin-n, @types/node, @github/copilot-sdk, ws) (#1692, #1694).

Fixed

  • (cli) Pin the CLI's squad-sdk dependency to the exact published version in publish-cli so installs can no longer resolve a stale SDK (#1638).
  • (cli) squad watch's self-pull capability no longer abandons stashed local changes when git pull --ff-only fails (#1640).
  • (sdk) Normalize dotted ToolRegistry names at the Copilot external-tool boundary.
  • (sdk) Add a recursive deleteDir and rename the external stub to external-stub (#1487).
  • (cli) Fix squad externalize/internalize corrupting non-UTF-8 files under .squad/ (#1492).
  • (sdk+cli) Promote the insider dist-tag when latest is newer (#1495).
  • (cli) Follow externalized state in squad copilot and squad rc (#1464).
  • (cli) Quote GITHUB_OUTPUT/GITHUB_STEP_SUMMARY redirects (SC2086) and add an actionlint CI gate (#1557).
  • (cli) Downgrade the issues permission to read in the gh-aw workflow, and fix the gh-aw guide link in the README.
  • Docs: fix pre-existing broken links, correct platform-specific path examples, and add PATH-fix installation troubleshooting guidance (#1459).
  • (cli) ralph-triage no longer hardcodes api.github.com; it resolves the GitHub API base from GITHUB_API_URL/GITHUB_SERVER_URL so Squad Heartbeat triage works on GitHub Enterprise runners (#1142).
  • (cli) squad export now resolves externalized state: after squad externalize, export reads from the external state directory instead of the stale local .squad/ copy (#1396).

Security

  • (cli) Exclude nested/alumni agent history paths from the unsafe-git scanner so DispatchGuard audits don't false-positive on archived agent state (#1559).

[0.11.0] - 2026-06-29

Added

  • (cli) Add squad preset install <source> for installing shared presets from GitHub URLs or local paths (#1224).
  • (cli) Add squad registry add/list/remove for discovery-only peer squads, plus the bundled cross-squad communication skill.
  • (cli) Add cast terminology across help and docs while keeping hire as a silent compatibility alias (#1394).
  • (sdk+cli) Add Copilot App sub-session spawning for cast members and thread reasoning-effort settings through agent dispatch (#1385).
  • (sdk+cli) Expose memory tools through the squad_state MCP server and improve Fact Checker auto-scaffolding/plumbing.

Changed

  • (sdk+cli) Slim the bundled squad.agent.md by extracting long guidance into satellite skills (#1311).
  • (cli) Move bundled skills from .copilot/skills/ to .github/skills/ so they are visible to all Copilot surfaces.
  • (cli) Rename user-facing ".NET Aspire" references to "Aspire" in CLI help and command output (#1239).
  • (sdk+cli) Refresh the toolchain and integrations, including @github/copilot-sdk 1.0.4, TypeScript 6, Vitest 4, Ink 7, OpenTelemetry 2.x, and Node type updates.

Fixed

  • (cli) Pin CLI-to-SDK workspace resolution so local builds and runtime use the workspace SDK instead of a stale published package (#1406).
  • (sdk+cli) Restore the green test suite by reconciling personal squad paths, stabilizing observer category handling, guarding storage case-insensitivity, and skipping environment-dependent tests when prerequisites are missing (#1416).
  • (sdk+cli) Guard symlink-sensitive tests on Windows or restricted CI filesystems (#1418).
  • (sdk+cli) Harden observer change resolution for directory events, symlinks, and filesystem scan errors.
  • (sdk+cli) Fix state-backend handshake, SQUAD_HOME/SQUAD_PERSONAL_DIR resolution, preset apply wiring, routing example quote stripping, YAML escaping, and MCP config pollution regressions.
  • (cli) Fix Windows command escaping, top-level help coverage for externalize/internalize, slash-command discovery, and upgrade/self-repair flows.
  • (sdk) Export gitignore-state helpers, update OTel resource APIs for 2.x, and align the adapter client with @github/copilot-sdk 1.0.4.

[0.10.0] — 2026-06-07

First stable release since v0.9.4 (April 25). Consumes 97 changesets (sdk: 50, cli: 71).

Security

  • (cli) iter-9: inject --yolo --additional-mcp-config @.mcp.json in all non-interactive copilot spawns; fix path regression from .copilot/mcp-config.json (iter-7) to .mcp.json (iter-8 canonical location); add fallback warning when .mcp.json is absent; add --yolo deduplication guard; document Copilot CLI 1.0.59+ folder-trust security gate

Performance

  • (cli) Add /fleet hybrid dispatch mode for squad watch --execute (#775) — enables parallel issue analysis via Copilot CLI /fleet, 2.9x faster than sequential dispatch for read-heavy work
  • (sdk) perf(agents): parallelize charter discovery with concurrency limit to reduce multi-agent load time
  • (sdk+cli) perf(resolution): memoize squad-dir lookups; deduplicate squads.json reads to reduce filesystem I/O on repeated resolution calls
  • (sdk) perf(scheduler): convert sequential async execution to concurrent with bounded concurrency to improve multi-agent dispatch throughput

Added

  • (sdk) Add rework rate OTEL metrics (#265) — tracks PR revision patterns as the emerging 5th DORA metric
  • (sdk+cli) Add routing.md to squad export/import functionality
  • (sdk) Add SkillScriptLoader, handler types, and applySkillHandlers for executable skill handler scripts
  • (cli) feat: APM integration — squad skill publish/install + apm.yml in init
  • (sdk) feat: Cooperative rate limiting with predictive circuit breaker
  • (sdk+cli) Cross-squad orchestration — discovery, delegation, and manifest (#316). Adds manifest schema, squad discover / squad delegate commands, and runtime module for coordinating work across multiple Squad instances.
  • (cli) Add deprecation warnings for tunnel, rc, and REPL commands. The interactive shell (no-args), squad start, squad start --tunnel, squad rc, and squad rc-tunnel now emit yellow deprecation notices pointing users to the GitHub Copilot CLI. No behavior changes — all commands still work.
  • (cli) docs: add fork contribution workflow to CONTRIBUTING.md
  • (cli) Add user-facing documentation for state backends (local, orphan-branch, two-layer)
  • (sdk) Add dual-mode deployment support for capabilities routing.
  • (sdk+cli) feat: add error-recovery skill for standard agent failure recovery patterns
  • (sdk+cli) Add external state storage — move .squad/ out of the working tree (#792)
  • (sdk+cli) Add fact-checker as a built-in agent role (#789)
  • (cli) Fix squad doctor and upgrade for insiders installs: add .squad/casting/ to ENSURE_DIRECTORIES, scaffold casting defaults from templates with permission-safe fallback, and clarify ESM warnings for global installs.
  • (sdk) Sync squad.agent.md roster when agents added to team.md
  • (cli) fix(ci): fix multiple CI test failures introduced by PR #1035 coordinator slimming
  • (sdk+cli) Warn when squad.agent.md template is missing during upgrade or init instead of silently skipping file creation. Adds warnings field to InitResult for structured error reporting.
  • (sdk+cli) feat(sdk): git-notes + orphan-branch state backends for .squad/
  • (sdk+cli) feat: add iterative-retrieval skill for structured max-3-cycle agent spawning
  • (cli) docs: Add KEDA external scaler template for GitHub issue-driven autoscaling
  • (cli) feat(cli): Add squad loop command — prompt-driven continuous work loop
  • (sdk+cli) feat: Machine capability discovery and needs:* label-based issue routing
  • (sdk+cli) Add squad init --mcp-frontmatter to write MCP server config into the Squad agent frontmatter instead of .copilot/mcp-config.json for compatible agent harnesses.
  • (sdk+cli) feat: add notification-routing skill for pub-sub channel routing
  • (sdk+cli) feat: add declarative plugin behavior context proof
  • (cli) Add --notify-level to control watch round reporting noise (#803)
  • (sdk+cli) Add Rai as Squad's third built-in agent — a Responsible AI (RAI) reviewer
  • (sdk+cli) feat: add reflect skill for in-session learning capture and mistake prevention
  • (sdk+cli) Add --repo and --branch flags to squad export and squad import commands, enabling users to push/pull Squad configuration directly to/from a GitHub repository via the GitHub Contents API.
  • (sdk+cli) Add retro enforcement skill with Test-RetroOverdue and ceremonies template update.
  • (sdk) Add .squad/.scratch/ directory for organized temp file management (#790)
  • (sdk) Add SDK feature parity batch 2 — 64 tests covering manual ceremonies (#27), ceremony cooldown (#28), human team members (#36), constraint budget enforcement (#49 — rate limiter, file-write guards, shell restrictions, PII scrubbing), multi-agent artifact coordination (#50), and builder validation edge cases.
  • (sdk) test: SDK feature parity batch 3 — 46 tests for #31, #47, #45, #46
  • (cli) Add squad upgrade --self to upgrade the CLI package itself (#798)
  • (cli) feat: session init update check with extensible session-init reference
  • (cli) feat: add squad-commands skill for in-chat command discovery
  • (sdk+cli) feat: add SQUAD_HOME env var and preset system
  • (cli) Fix Windows spawn EINVAL in watch capabilities by adding shell: true to execFile() calls in monitor-teams, monitor-email, retro, and decision-hygiene capabilities. Add Copilot CLI preflight check to squad doctor and monitor capabilities so missing gh copilot extension is flagged early. Improve team hire confirmation UX to show member names inline with the prompt. (closes #920, closes #880, closes #1107)
  • (sdk) Bump @github/copilot-sdk from ^0.1.32 to ^0.3.0 to fix ESM module resolution error (ERR_MODULE_NOT_FOUND for vscode-jsonrpc/node). Add explicit GitHub repo config support in .squad/config.json ({ "github": { "owner": "...", "repo": "..." } }) so platform adapter prefers user-specified repo over auto-detection from origin remote. (closes #1062, closes #905)
  • (sdk+cli) Add delete() and append() to StateBackend interface; add resolveSquadState() entry point; add StateBackendStorageAdapter; add git-notes agent protocol templates
  • (sdk) feat(sdk): Add Microsoft Teams communication adapter
  • (sdk+cli) feat: add tiered-memory skill for hot/cold/wiki agent context management
  • (cli) feat(watch): circuit breaker integration for rate limit protection (#515)
  • (cli) feat(watch): health check — show running watch instance status (#808)
  • (cli) Add --verbose flag to squad watch for debugging empty boards and silent failures (#781)

Fixed

  • (sdk+cli) Fix hardcoded "Brady" in template files — LLMs now use actual git username instead of example name (closes #977)
  • (cli) Fix changelog-gate CI to accept .changeset/ files as alternative to direct CHANGELOG.md edits
  • (sdk+cli) fix: bump CLI version to 0.9.7-preview; align E2E skill and policy gate with CONTRIBUTING.md
  • (sdk+cli) fix: context overflow sentinel and coordinator size reduction (retroactive for #1035)
  • (sdk+cli) Fix coordinator and Scribe templates so spawned agents receive and write the resolved current datetime instead of placeholder text.
  • (cli) fix(cli): revert detect-squad-dir to zero-dependency bootstrap
  • (cli) fix: restore CI green on dev — 25 regression fixes + 6 test corrections
  • (cli) Fix export/import producing blank decisions.md and team.md files. Export now includes these files in the manifest, and import restores their content.
  • (cli) Fix runtime commands to correctly resolve externalized state paths
  • (sdk+cli) Fix 5 bugs: dotted repo names, icon spacing, board owner, charter passing, missing playbooks
  • (cli) fix: /init with no args now accepts follow-up message as cast prompt, and createTeam correctly creates team.md/routing.md in fresh projects
  • (cli) fix(nap): account for separator newlines in decision archival budget
  • (cli) fix(cli): wire --team-root / SQUAD_TEAM_ROOT into squad resolution for nap, status, and cost commands (#734)
  • (cli) fix: CLI no longer bails when configured is false; starts onboarding session instead (#843)
  • (cli) fix(coordinator): resolve externalized state, teamRoot, stale work, and cleanup loops
  • (sdk+cli) Fix permission handler to use approve-once instead of deprecated approved kind, aligning with Copilot CLI v1.0.54+ permission contract
  • (cli) Fix post-init message to recommend copilot --agent squad instead of deprecated squad command (closes #1034, closes #1007)
  • (sdk+cli) Fix state-backend and upgrade regressions (#1163, #1185, #1190, #1191, #1194)
  • (cli) Fix squad <command> --help silently running the command instead of showing help (#1201)
  • (cli) Extend SQUAD_TEAM_ROOT to all resolveSquad() call sites for subprocess compatibility
  • (sdk+cli) Fix triage label slug derivation: use slugify() instead of toLowerCase() so multi-word agent names produce valid GitHub labels (e.g. "Steve Rogers" → squad:steve-rogers instead of squad:steve rogers).
  • (cli) fix(watch): Windows shell:true, shared agent-spawn, round-level fetch (#920, #923)
  • (sdk+cli) fix: use TEMPLATE_MANIFEST to drive skill installation instead of wholesale directory copy
  • (sdk) Fix squad-commands skill routing and configuration for Copilot integration
  • (sdk) State backend hardening: retry with exponential backoff for transient git errors, circuit-breaker to prevent cascading failures, read-only startup verification, and observable error surfacing replacing silent swallowing.
  • (cli) fix(watch): 3 UX improvements — round timing output, --log-file tee flag, immediate startup feedback (#2141)
  • (sdk+cli) Fix Windows Azure CLI execution and ADO state mapping in squad watch
  • (sdk) fix(sdk): wire squad_route tool handler to actually create target sessions

Changed

  • Communications: createCommunicationAdapter is now async. Downstream consumers building custom adapters must await the factory call. Not flagged as breaking per pre-1.0 SemVer.
  • (sdk) ADO configurable work item types, area paths, and iteration support (#240)
  • (cli) Ship 8 built-in skills with squad init/upgrade (#788)
  • (cli) Allow memory diagnostics log level to be configured from .squad/config.json.
  • (sdk+cli) Enable persistent Ralph — heartbeat cron + healthCheck timer
  • (sdk+cli) Squad coordinator now scans all 5 project skill directories: Copilot CLI's 3
  • (sdk+cli) Generic, provider-agnostic scheduler for Squad (#296) — unified schedule.json manifest with LocalPolling and GitHubActions provider adapters, CLI commands (list, run, init, status), schema validation, and cron/interval trigger evaluation.
  • (sdk+cli) Harden runtime state tools so write, append, and delete only mutate approved Squad runtime state paths, and refresh prompt templates to require state-tool persistence and literal datetime propagation.
  • (cli) Widen changelog-gate coverage for template and scaffolding paths

Internal / Tests / Docs

  • (cli) docs: point README migration guide links to the published docs site

[0.1.0-preview] - 2026-06-02

Added — Squad.Agents.AI NuGet preview

  • Added Squad.Agents.AI, a net10.0 Microsoft Agent Framework package that exposes a Squad team as an AIAgent.
  • Public surface: SquadAgent, SquadAgentOptions, SquadConnectionFactory, and SquadServiceCollectionExtensions.
  • Added DI registration, PATH/URI connection-string parsing, GitHub token/provider options, and XML documentation for the public preview surface.
  • Added README documentation for the Squad.Agents.AI package in src/Squad.Agents.AI/README.md.

[0.9.0] - 2026-03-23

Added — Personal Squad Governance Layer

  • Personal Squad concept (#508) — isolated developer workspace with own team.md, routing.md, and agent roster
  • Ambient discovery — automatic detection of personal squad at ~/.squad/ via environment variables and fallback paths
  • CLI commands (#508) — squad personal init, squad personal list, squad personal use, squad personal remove
  • Governance integration (#508) — hooks, ceremonies, telemetry isolated per personal squad
  • Unit & integration tests (#508) — full test coverage for personal squad flows

Added — Worktree Spawning & Orchestration

  • Worktree creation (#529) — coordinator spawns managed worktrees for parallel agent work via squad worktree spawn
  • Cross-squad orchestration (#446) — agents coordinate work across multiple squads and worktrees
  • Persistent Ralph — watch + heartbeat (#443) — long-running Ralph daemon with health monitoring
  • Regression guard (#521) — worktree .git detection (file vs directory) with full test coverage

Added — Machine Capability Discovery

  • Capability inference (#514) — automatic detection of available tools, models, and hardware specs at session start
  • needs: Label Routing* (#514) — agents self-route based on discovered capabilities vs work requirements

Added — Cooperative Rate Limiting

  • Predictive circuit breaker (#515) — model token budget forecasting to prevent runtime exhaustion
  • Rate limit recovery (#464) — surface errors with actionable recovery options
  • Circuit breaker for Ralph (#451) — graceful degradation under model quota pressure

Added — Economy Mode

  • Cost-conscious model selection (#500) — automatic selection of cheaper models when quality thresholds permit
  • Economy mode skill (#503) — governance proposals for balanced cost/quality tradeoffs
  • Token usage tracking (#453) — visibility into per-agent token consumption and costs

Added — Auto-Wire Telemetry

  • Auto-wire in initSquadTelemetry() (#281) — telemetry initialization no longer requires manual wiring
  • OpenTelemetry integration — automatic context propagation across squad sessions

Added — Issue Lifecycle Template

  • Template document (#527) — standardized issue lifecycle workflow (creation → triage → assignment → completion)
  • Integrated into squad init — available to all new teams via .squad/templates/issue-lifecycle.md

Added — KEDA External Scaler Template

  • Agent autoscaling template (#516) — KEDA-based horizontal scaling for compute-intensive agent work
  • Documentation (#519) — setup guide for Kubernetes-based squad deployments

Added — GAP Analysis Verification Loop

  • After Agent Work flow (#473) — gap analysis verification loop ensures all requirements are met before task completion
  • Checklist-driven completion — structured validation to prevent incomplete deliverables

Added — Session Recovery Skill

  • Session recovery (#442) — find and resume lost sessions without restarting work
  • Integration — available as a core team skill via .squad/skills/session-recovery/SKILL.md

Added — Token Usage Visibility

  • Per-agent cost tracking (#453) — token consumption and estimated costs per agent
  • Dashboard integration — visible in session UI for cost-conscious workflows

Added — GitHub Auth Isolation Skill

  • Multi-account GitHub workflows (#470) — safely switch GitHub identities within a squad session
  • Integration — available as .squad/skills/gh-auth-isolation/SKILL.md

Added — Docs Site Improvements (Astro)

  • 10 Astro feature items (#524) — implemented search tuning, section badges, test coverage indicators
  • Autonomous agents guide (#492) — comprehensive guide for building autonomous agents with Squad SDK
  • Blog posts (#029) — upgrade cross-testing at scale post
  • Expanded search (#482) — Pagefind tuning with section badges for better discoverability
  • CLI README expansion (#487) — detailed CLI reference with workflow examples
  • Teams MCP integration refresh (#496) — updated Workflows webhook documentation
  • Migration guide updates (#320, #468) — @latest installation instructions and heartbeat config

Added — ESLint Runtime Anti-Pattern Detection

  • ESLint with TypeScript support (#493) — static analysis for common runtime anti-patterns
  • Integration — available in CLI pre-flight checks

Fixed — CLI Terminal Rendering

  • Eliminated scroll-to-top flicker caused by Ink's fullscreen clearTerminal path firing on every render cycle
  • Reduced re-render churn via memoized elapsed-time display (one-second granularity gate) and consolidated animation intervals
  • Stabilized component keys (timestamp-based instead of shifting array indices) to prevent Ink remounts
  • Pinned live viewport height to keep input prompt above fold on all terminal sizes

Fixed — Upgrade Path & Installation

  • P0 upgrade gaps (#544) — context-aware footer and EPERM handling for permission issues
  • Gitignore parent coverage (#549) — .gitignore updates for nested squad directories
  • ADO configurable work item types (#444) — flexible schema for Azure DevOps work items
  • Template directory audit (#461) — all template references aligned with .squad/templates/
  • Package template sync (#462) — monorepo workspace templates now in sync

Fixed — ESM Compatibility

  • Complete exports check — verify all ESM exports before applying patch
  • Dual-layer ESM fix (#449) — Node 22/24 compatibility for vscode-jsonrpc resolution
  • Node 24+ hard-fail (#502) — clear error message for Node <22.5.0 with upgrade guidance

Fixed — Runtime Stability

  • SIGINT/SIGTERM handling (#486) — graceful shutdown with 22+ tests for signal handling
  • Read-modify-write race condition (#480) — fixed history-shadow.ts file access race
  • az CLI timeout (#483) — 2s timeout for getAvailableWorkItemTypes to prevent hangs
  • Memory safety caps (#259) — file watcher filtering and memory limits
  • User model preference persistence (#284) — model selection now persists across sessions
  • Repository auto-detection (#437) — auto-detect repo owner/name at session start

Fixed — GitHub Integration

  • CI hardening — stale lockfile handling, manual rerun workflow, merge ref fixes
  • Casting universe alignment (#459) — align casting universe count with reality

Changed — npm Distribution & Installation

  • npm-only distribution — removed GitHub-native distribution channel
  • Installation: npm install -g @bradygaster/squad-cli (standard npm registry)
  • Verified upgrade path — tested at scale across 100+ projects

Documentation — Guides & References

  • Agent anatomy & hiring checklist (#439) — detailed guide for building team rosters
  • Behavior documentation (#448) — nap, reskill, and compact behavior reference
  • Content gap fill — 7 recent PRs documented
  • PAO external communications (#426) — Phase 1 infrastructure for multi-channel squad updates
  • Casting reference (#814133d) — comprehensive casting configuration guide

By the Numbers

  • 40+ commits merged since v0.8.25
  • 6+ major features (Personal Squad, Worktree Spawning, Capability Discovery, Cooperative Rate Limiting, Economy Mode, Auto-wire Telemetry)
  • 10+ docs site improvements via Astro
  • 15+ stability & compatibility fixes
  • Tested at scale — upgrade process verified across 100+ projects
  • Governance layer — new Personal Squad feature enables distributed developer workflows

[0.8.24] - 2026-03-08

Added — Azure DevOps Platform Adapter

  • PlatformAdapter interface — unified API for GitHub, ADO, and Microsoft Planner
  • AzureDevOpsAdapteraz boards CLI for work items, az repos for PRs
  • GitHubAdaptergh CLI wrapper implementing PlatformAdapter
  • PlannerAdapter — Microsoft Graph API for hybrid work-item tracking
  • Cross-project ADO config via .squad/config.json — work items can live in a different org/project than the repo

Added — CommunicationAdapter

  • Pluggable agent-human messaging — Scribe/Ralph can post updates through platform-appropriate channels
  • Four adapters: FileLog (zero-config), GitHub Discussions, ADO Work Item Discussions, Teams Webhook (stub)
  • Factory auto-detectioncreateCommunicationAdapter(repoRoot) selects the right adapter

Added — SubSquads (Community-Voted Rename)

  • Workstreams → SubSquads across CLI, types, and docs
  • CLI: squad subsquads (with workstreams and streams as deprecated aliases)
  • Old names preserved as @deprecated re-exports for backward compatibility

Fixed — Security Hardening

  • execSyncexecFileSync (prevents shell injection)
  • escapeWiql() helper (prevents WIQL injection in ADO queries)
  • curl --config stdin (hides bearer tokens from process listing)
  • Case-insensitive URL detection for ADO remotes
  • Cross-platform draft filter (findstr → JMESPath)
  • PR status mapping (activeopen for gh CLI)
  • gh issue create fix (parse URL from stdout, not --json)

Fixed — ESM Runtime Patch + Secret Guardrails

  • Runtime Module._resolveFilename intercept for Node 24+ ESM compatibility
  • 5-layer secret defense architecture
  • 59 TDD security hook tests
  • .squad/skills/secret-handling/SKILL.md team reference

Added — Docs Site Improvements

  • Contributor Guide page in docs site Guide section
  • Squad Contributors Guide page (36+ contributors honored)
  • Concepts and Cookbook sections wired into docs build
  • Broken links fixed across docs site

By the Numbers

  • 8 PRs merged (#191, #263, #268, #270, #272, #275, #277, #266)
  • 153 new tests (92 platform + 15 comms + 46 SubSquads)
  • 59 security tests
  • 8 issues closed
  • 3 new docs pages, 6+ broken links fixed

[0.8.23] - 2026-03-12

Fixed — Node 24+ ESM Import Crash

  • Node 24+ squad init crash fix (#XXX) — v0.8.23 resolves ERR_MODULE_NOT_FOUND: Cannot find module 'vscode-jsonrpc/node' crash that occurs on Node.js 24+ and GitHub Codespaces. Root cause: upstream ESM import issue in @github/copilot-sdk. Two-layer defense implemented:
    • Lazy imports — Commands init, build, link, migrate no longer eagerly load copilot-sdk at startup
    • Postinstall patch — Automatically fixes broken ESM import at install time
    • Side benefit: Faster CLI startup for non-session commands

Added — Squad RC Documentation

  • Comprehensive guide for squad rc (Remote Control) covering:
    • ACP (Azure Communication Platform) passthrough architecture
    • 7-layer security model for session isolation and encryption
    • Mobile keyboard shortcuts and accessibility features
    • Troubleshooting guide for common connection issues

By the Numbers

  • 2 issues closed
  • 3 PRs merged
  • 3,811 tests passing (3,840 total, 0 logic failures)
  • 1 critical crash fix (Node 24+ compatibility)

[0.8.22] - 2026-03-11

Added — SDK-First Mode (Phase 1)

  • Builder functions — Type-safe team configuration with runtime validation
    • defineTeam() — Team metadata, project context, member roster
    • defineAgent() — Agent definition with role, model, tools, capabilities
    • defineRouting() — Routing rules with pattern matching and priority
    • defineCeremony() — Ceremony scheduling (standups, retros, etc.)
    • defineHooks() — Governance hooks (write paths, blocked commands, PII scrubbing)
    • defineCasting() — Casting configuration (universe allowlists, overflow strategy)
    • defineTelemetry() — OpenTelemetry configuration
    • defineSquad() — Top-level composition builder
  • squad build command — Compile TypeScript definitions to .squad/ markdown
    • Generates .squad/team.md, .squad/routing.md, agent charters, ceremonies
    • Supports --check (validation), --dry-run (preview), --watch (file monitoring stub)
    • Protected files (decisions.md, history.md) never overwritten
  • SDK Mode Detection — Coordinator prompt includes SDK-First mode awareness
  • Documentation
    • New guide: SDK-First Mode — concepts, builder reference, examples
    • Updated SDK Reference — builder function signatures and types
    • README quick reference for SDK-First teams

Added — Remote Squad Mode (ported from @spboyer's bradygaster/squad#131)

  • resolveSquadPaths() dual-root resolver — project-local vs team identity directories
  • squad doctor command — 9-check setup validation with emoji output
  • squad link <path> command — link a project to a remote team root
  • squad init --mode remote — initialize with remote team root config
  • ensureSquadPathDual() / ensureSquadPathResolved() — dual-root write guards

Fixed — Critical Crash & Stability Issues

  • Installation crash fix (#247)npx @bradygaster/squad-cli was failing on fresh installs due to hard dependency on @opentelemetry/api that couldn't resolve in isolated npm environments. Created otel-api.ts resilient wrapper with full no-op fallbacks. Moved OTel to optional dependencies. Telemetry now gracefully degrades when absent.
  • CLI command wiring (#244) — Commands rc, copilot-bridge, init-remote, rc-tunnel were implemented but never wired into CLI entry point. Now properly connected and discoverable.
  • Model config round-trip (#245)AgentDefinition.model now accepts string | ModelPreference for structured model configuration. Charter compiler updated to emit and parse the new format correctly.
  • ExperimentalWarning suppression — Node's ExperimentalWarning for node:sqlite no longer leaks into terminal output. Suppressed via process.emit override in cli-entry.ts.
  • Blankspace fix (#239) — Idle blank space below agent panel removed. Conditional height constraint only active during processing.
  • Windows race condition (EBUSY)fs.rm with retry logic and exponential backoff. Tests now pass reliably on Windows.
  • Test hardening — Speed gate threshold adjustments for growing CLI codebase. 25 regression tests fixed (PR #221).
  • CI stabilization — GitHub Actions pipeline fixed and green (PRs #232, #228).

Changed — Distribution & Versioning

  • Distribution: npm-only distribution channel. No more GitHub-native distribution (npx github:bradygaster/squad). Users now install via npm install -g @bradygaster/squad-cli or npx @bradygaster/squad-cli from npm registry.
  • Semantic Versioning fix (#692): Version format changed from X.Y.Z.N-preview to X.Y.Z-preview.N to comply with semantic versioning spec (prerelease identifier after patch, build metadata after prerelease). Example: 0.8.6-preview.1 instead of 0.8.6.1-preview.
  • Version transition: Public repo final version was 0.8.5.1. Private repo continues at 0.8.x cadence (next publish after 0.8.17 is 0.8.18), following semver prerelease convention for development.

Community

  • Thanks to Shayne Boyer (@spboyer) for the original remote mode design.
  • PR #199 (migration command) received, reviewed, and feedback captured as issue #231 for future implementation.
  • PR #243 (blankspace fix) — community contribution cherry-picked and credited.

By the Numbers

  • 26 issues closed
  • 16 PRs merged
  • 3,724 tests passing (3,740 total, 13 known Windows timeout flakes, 0 logic failures)
  • 8 builder functions shipped
  • 4 CLI commands wired
  • 1 critical crash fix (OTel dependency)
  • 25 regression tests fixed

[Unreleased]

[0.8.20] - 2025-01-08

Fixed

  • Template path fix (#190): Corrected all references from .squad-templates/ to .squad/templates/ to align with the project's directory structure. This ensures the CLI correctly resolves team member charters and other template resources.
  • Init test templates: Updated initialization tests to reference the corrected .squad/templates/ directory path.

[0.8.18-preview] - TBD

Added — Remote Squad Mode (ported from @spboyer's bradygaster/squad#131)

  • resolveSquadPaths() dual-root resolver — project-local vs team identity directories (#311)
  • squad doctor command — 9-check setup validation with emoji output (#312)
  • squad link <path> command — link a project to a remote team root (#313)
  • squad init --mode remote — initialize with remote team root config (#313)
  • ensureSquadPathDual() / ensureSquadPathResolved() — dual-root write guards (#314)

Changed — npm Distribution & Monorepo Structure

  • Distribution: Migrated from GitHub-native (npx github:bradygaster/squad) to npm packages (npm install -g @bradygaster/squad-cli / npx @bradygaster/squad-cli)
  • Packages: Independent versioning via @changesets/cli — @bradygaster/squad-sdk and @bradygaster/squad-cli evolve on separate cadences
  • Structure: Monorepo layout with workspace packages (SDK + CLI)
  • Directory: .squad/ directory structure (migration from .ai-team/)
  • Semantic Versioning: All versions now comply with semver spec (prerelease format X.Y.Z-preview.N)

Fixed

  • CLI entry point moved from dist/index.js to dist/cli-entry.js. If you reference the binary directly, update your path. npx and npm bin resolution is unchanged. (#187)
  • CRLF normalization: All parsers now normalize line endings before parsing. Windows users with core.autocrlf=true no longer get \r-tainted values. (#220, #221)
  • process.exit() removed from library-consumable functions. VS Code extensions can now safely import CLI functions without risking extension host termination. (#189)
  • Removed .squad branch protection guard (squad-main-guard.yml) — no longer needed with npm workspace files field exclusions

Internal

  • New utility: normalizeEol() in src/utils/normalize-eol.ts
  • New entry point: src/cli-entry.ts (CLI bootstrap separated from library exports)
  • Migrated to npm workspace publishing (@bradygaster/squad-sdk, @bradygaster/squad-cli)
  • Changesets infrastructure for independent package versioning