Releases: bradygaster/squad
v0.9.4
What's Changed
- chore: release process hardening + docs dark mode fix by @bradygaster in #569
- chore: promote dev to main (docs dark mode fix) by @bradygaster in #570
- feat(docs): add version badge to footer by @diberry in #571
- feat(capabilities): dual-mode deployment — agent-per-node + squad-per-pod (#514) by @tamirdresher in #555
- feat(watch): circuit breaker integration — additive patch (#515) by @tamirdresher in #552
- docs: v0.9.0 missing feature docs (capability routing, rate limiting, economy mode, cross-machine, KEDA) by @diberry in #568
- docs: update Chinese README translation by @bradygaster in #572
- feat(skills): add cross-machine-coordination skill for multi-machine squad deployments by @tamirdresher in #513
- docs: add link to Tamir's Squad Skills Workshop by @diberry in #573
- docs: add case-insensitive path comparison to windows-compatibility skill by @diberry in #574
- fix(shell): robust agent name extraction with multi-pattern fallback (#577) by @bradygaster in #578
- fix(init): scaffold casting files + silence no-remote errors (#579) by @bradygaster in #583
- fix: personal squad init via npx discovers ~/.config/squad/ (#576) by @bradygaster in #580
- ci+docs: release hardening — playbook rewrite + publish-policy lint (#564, #557) by @bradygaster in #584
- fix(doctor): actionable warnings + squad.agent.md check (#565, #533) by @bradygaster in #586
- fix: getPersonalSquadRoot() returns correct personal-squad path (#590) by @bradygaster in #620
- fix: add count-based fallback to archiveDecisions() (#626) by @bradygaster in #627
- fix: rename template copies to prevent CLI instruction merging (#613) by @bradygaster in #624
- docs: TypeDoc API reference — build pipeline, tests, navigation by @diberry in #611
- fix: platform-neutral routing enforcement for VS Code (#613) by @bradygaster in #617
- Add enforcement wiring step to hiring process + workflow wiring guide by @joniba in #592
- chore: update model catalog in squad.agent.md (#588) by @bradygaster in #619
- feat(skills): add notification-routing skill -- pub-sub channel routing to prevent alert fatigue by @tamirdresher in #625
- Revise security policy with reporting and disclosure info by @eric-vanartsdalen in #608
- feat(agents): add Challenger / Devil's Advocate agent template + fact-checking skill by @tamirdresher in #603
- feat(cli): add squad config model command for model pinning (#618) by @bradygaster in #628
- CI: Add source tree canary and large deletion guard by @bradygaster in #634
- Add git safety rules to copilot-instructions.md by @bradygaster in #635
- fix(scribe): add HARD GATE archival with two-tier thresholds to Scribe workflow by @diberry in #637
- chore(scribe): mandate YYYY-MM-DD date format in charter by @diberry in #649
- docs: circuit breaker pattern guide by @diberry in #647
- docs(nap): add archiveDecisions() contract comment by @diberry in #648
- feat(skills): add iterative-retrieval skill -- max-3-cycle agent spawn protocol by @tamirdresher in #622
- feat(skills): add error-recovery skill -- standard agent failure recovery patterns by @tamirdresher in #623
- feat(skills): add reflect skill -- in-session learning capture and mistake prevention by @tamirdresher in #621
- feat(skills): add ralph-two-pass-scan skill -- two-pass lightweight scan before selective hydration by @tamirdresher in #629
- feat(ceremonies): automated retro enforcement - GitHub Issues over markdown by @tamirdresher in #630
- feat(memory): tiered agent memory skill — hot/cold/wiki tiers by @tamirdresher in #606
- fix(ci): rename node:test files to .cjs for ESM compatibility by @tamirdresher in #671
- feat: add PR requirements spec and PR template by @diberry in #672
- feat(ci): add CHANGELOG and exports map completeness gates by @diberry in #673
- feat(ci): add samples build validation gate by @diberry in #674
- fix(sdk,cli): remove prerelease version suffixes by @diberry in #690
- feat(ci): add workspace integrity, prerelease guard, and export smoke gates by @diberry in #691
- docs(skill): add versioning policy by @diberry in #692
- fix(ci): strip trailing slash from sample_dir path variable by @diberry in #693
- fix(ci): remove all cron schedules from GitHub Actions workflows (#694) by @bradygaster in #695
- fix(ci): remove all cron schedules — push to main by @bradygaster in #696
- fix(ci): combined CI workarounds (#697 + #698) by @diberry in #699
- fix(ci): 5 quick-win CI hardening improvements (#121) by @diberry in #700
- feat(sdk): StorageProvider abstraction — complete migration + example providers by @diberry in #640
- feat(ci): CI hardening phase 2 — items 6-10 + security hardening by @diberry in #701
- feat(cli): upgrade squad watch to full work monitor with --execute mode (#708) by @tamirdresher in #709
- docs: contributor guide improvements proposal by @diberry in #702
- devops(ci): add concurrency controls to 5 workflows (Phase 3 item A1) by @diberry in #705
- fix(nap): account for separator newlines in decision archival budget by @diberry in #726
- fix(ci): changelog-gate accepts .changeset/ files by @diberry in #746
- fix(cli): revert detect-squad-dir to zero-dependency bootstrap by @diberry in #756
- feat(cli): Add squad loop command (#761) by @diberry in #767
- fix(cli,sdk): warn when squad.agent.md template is missing during upgrade/init by @diberry in #762
- skill(review): add architectural and security review skills by @diberry in #766
- feat(ci): automated PR readiness checks — contributor feedback before review by @diberry in #752
- fix(triage): slugify agent names for labels + pre-create missing labels by @tamirdresher in #785
- fix: eliminate PR contamination from broad git staging (#777) by @diberry in #783
- feat(ci): add repo health checks by @diberry in #769
- feat(ci): add pull request template with contributor checklist by @diberry in #779
- fix: ignore outdated Copilot review threads in PR readiness check by @diberry in #780
- feat(ci): add PR architectural impact analysis (#733) by @diberry in #786
- fix(ci): impact workflow permission — issues:write → pull-requests:write by @diberry in #816
- fix(watch): 3 UX improvements — round timing, --log-file, immediate feedback (#2141) by @tamirdresher in #831
- feat(watch): /fleet hybrid dispatch — 2.9x faster parallel execution by @tamirdresher in #776
- feat(watch): --verbose flag for debugging empty boards by @tamirdresher in #782
- fix(cli): squad doctor — add casting dir to upgrade, improve global install warnings by @diberry in #823
- feat(watch): next-gen watch with execute redesign, robustness, and PS1 parity by @tamirdresher in #830
- feat(sdk,cli): built-in fact-checker agent role (#789) by @tamirdresher in #795
- feat(cli): ship 8 built-in skills on init/upgrade (#788) by @tamirdresher in #796
- fix(cli): wire SQUAD_TEAM_ROOT into squad resolution for subprocess compatibility (#734) by @Amand...
v0.9.1
Hotfix: fixes broken npm install from v0.9.0
v0.9.0
See CHANGELOG.md for full release notes.
v0.8.25
Release v0.8.25
✨ Highlights
CLI Packaging Smoke Test & Pre-Publish Gate
- Added comprehensive CLI packaging smoke test suite (32 tests)
- Validates all 27 CLI commands + 3 aliases in packaged artifact before publish
- Pre-publish CI gate in publish.yml blocks broken releases from reaching npm
- Test baseline: 3,963+ tests passing
🔒 Quality Assurance
- Full test suite validated before release
- Smoke test verifies packaged CLI integrity
- Pre-publish gate ensures production readiness
📦 Packages
- @bradygaster/squad-sdk@0.8.25
- @bradygaster/squad-cli@0.8.25
This release was orchestrated by Surgeon (Release Manager) with approval from FIDO and EECOM.
v0.8.24
v0.8.24 — Azure DevOps, CommunicationAdapter, SubSquads, Security Hardening
Highlights
- Azure DevOps Platform Adapter — Native ADO support with PlatformAdapter interface (GitHub, ADO, Planner)
- CommunicationAdapter — Pluggable agent-human messaging (FileLog, GitHub Discussions, ADO, Teams stub)
- SubSquads — Community-voted rename from Workstreams
- Security Hardening — Shell injection, WIQL injection, bearer token exposure fixes
- ESM Runtime Patch — Node 24+ compatibility fix
- Secret Guardrails — 5-layer defense architecture with 59 TDD tests
- Docs Improvements — Contributor guide, contributors page, broken links fixed
Stats
- 8 PRs merged
- 153+ new tests (92 platform + 15 comms + 46 SubSquads + 59 security)
- 8 issues closed
- 3 new docs pages
Install
npm install -g @bradygaster/squad-cli@0.8.24
Contributors
@tamirdresher @wiisaacs @dfberry @lbouriez @eric-vanartsdalen @LasseAtSparkron @bradygaster
Full changelog: https://bradygaster.github.io/squad/blog/026-whats-new-ado-comms-subsquads.html
v0.8.23 — Node 24 ESM Fix
What's New
🔴 Critical Fix: Node 24+ Compatibility
- Fixed
ERR_MODULE_NOT_FOUNDcrash when runningsquad initon Node.js 24+ (GitHub Codespaces) - Root cause:
@github/copilot-sdkimportsvscode-jsonrpc/nodewithout.jsextension — Node 24 enforces strict ESM - Two-layer defense: lazy copilot-sdk imports (commands that don't need it never load it) + postinstall patch script
📡 Squad RC Documentation
- New comprehensive guide:
docs/features/squad-rc.md(15KB) — full ACP passthrough architecture, security model, mobile experience - 43 new tests for the RC command (
test/cli/rc.test.ts) - 3 bug fixes: PWA static files not copied to dist, hardcoded Windows copilot path, uncleaned interval on shutdown
📋 CI/CD PRD
- Unified CI/CD & GitOps PRD from Trejo and Drucker audits (29 prioritized work items)
- Team restructure: Kobayashi retired, Trejo (Release Manager) and Drucker (CI/CD Engineer) hired
Full Changelog: v0.8.22...v0.8.23
v0.8.22
Squad v0.8.22
SDK-first architecture, defineSkill builder, squad migrate command, terminal flicker fix, and CI-based npm publishing.
See CHANGELOG.md for full details.
v0.8.21
Changelog
All notable changes to this project will be documented in this file.
[0.8.21] - 2026-03-11
Added — SDK-First Mode (Phase 1)
- Builder functions — Type-safe team configuration with runtime validation
defineTeam()— Team metadata, project context, member rosterdefineAgent()— Agent definition with role, model, tools, capabilitiesdefineRouting()— Routing rules with pattern matching and prioritydefineCeremony()— Ceremony scheduling (standups, retros, etc.)defineHooks()— Governance hooks (write paths, blocked commands, PII scrubbing)defineCasting()— Casting configuration (universe allowlists, overflow strategy)defineTelemetry()— OpenTelemetry configurationdefineSquad()— Top-level composition builder
squad buildcommand — 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
- Generates
- 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 directoriessquad doctorcommand — 9-check setup validation with emoji outputsquad link <path>command — link a project to a remote team rootsquad init --mode remote— initialize with remote team root configensureSquadPathDual()/ensureSquadPathResolved()— dual-root write guards
Fixed — Critical Crash & Stability Issues
- Installation crash fix (#247) —
npx @bradygaster/squad-cliwas failing on fresh installs due to hard dependency on@opentelemetry/apithat couldn't resolve in isolated npm environments. Createdotel-api.tsresilient 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-tunnelwere implemented but never wired into CLI entry point. Now properly connected and discoverable. - Model config round-trip (#245) —
AgentDefinition.modelnow acceptsstring | ModelPreferencefor structured model configuration. Charter compiler updated to emit and parse the new format correctly. - ExperimentalWarning suppression — Node's
ExperimentalWarningfornode:sqliteno 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.rmwith 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 vianpm install -g @bradygaster/squad-cliornpx @bradygaster/squad-clifrom npm registry. - Semantic Versioning fix (#692): Version format changed from
X.Y.Z.N-previewtoX.Y.Z-preview.Nto comply with semantic versioning spec (prerelease identifier after patch, build metadata after prerelease). Example:0.8.6-preview.1instead of0.8.6.1-preview. - Version transition: Public repo final version was
0.8.5.1. Private repo continues at0.8.xcadence (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 doctorcommand — 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-sdkand@bradygaster/squad-clievolve 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.jstodist/cli-entry.js. If you reference the binary directly, update your path.npxandnpmbin resolution is unchanged. (#187) - CRLF normalization: All parsers now normalize line endings before parsing. Windows users with
core.autocrlf=trueno 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
.squadbranch protection guard (squad-main-guard.yml) — no longer needed with npm workspacefilesfield exclusions
Internal
- New utility:
normalizeEol()insrc/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
v0.8.20
v0.8.20 Release
Fixes
- fix: propagate template path fix (#190) — Template directory references have been standardized from .squad-templates/ to .squad/templates/ for consistency with the project structure.
- fix(test): update references in init test — Updated initialization tests to use the new .squad/templates/ path.
Changes Since v0.8.19
This release includes critical template path corrections that ensure the CLI correctly resolves team member charters and other template resources in the .squad/templates/ directory.
v0.8.19 — Nap & Doctor Commands, Template Path Fix
What's New
New Commands
- *\squad nap* — Context hygiene engine restored. Supports --deep\ and --dry-run\ flags for managing .squad/ state cleanliness.
- *\squad doctor* — Diagnostic tool now wired into CLI entry point. Fixes issue #188.
Bug Fixes
- Template install path (PR #185 by @williamhallatt) — Corrected template resolution from .squad-templates/\ to .squad/templates/.
- Documentation improvements — Features section added to docs, broken link fixes, migration guide updated with file-safety table.
Community Contributions
- @williamhallatt — PR #185: Template path fix
- @CarlosSardo — PR #178: GitLab Issues walkthrough and feature reference docs
Documentation
- 19 feature docs synced to main branch
- Migration guide enhanced with file safety table
- Features section integrated into navigation
Released: | Package Versions: @bradygaster/squad-sdk@0.8.19, @bradygaster/squad-cli@0.8.19