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 @AmandaSilver in #763
- fix: re-run PR readiness after Squad CI completes by @diberry in #829
- ci: PR contamination prevention guard by @diberry in #825
- test(cli): add Copilot CLI subprocess integration tests for SQUAD_TEAM_ROOT by @diberry in #838
- test(cli): add init→upgrade→doctor parity test suite by @diberry in #840
- fix(sdk,cli): manifest-driven skill install (#833) by @diberry in #839
- fix(cli): extend SQUAD_TEAM_ROOT to all resolveSquad() call sites by @diberry in #841
- feat(sdk): Add Teams communication adapter by @diberry in #768
- feat(sdk): scratchDir/scratchFile — organized temp file management (#790) by @tamirdresher in #793
- feat(sdk,cli): external state storage — .squad/ outside working tree (#792) by @tamirdresher in #797
- feat(cli): squad upgrade --self to update the CLI package by @tamirdresher in #802
- fix: let CLI run onboarding mode when configured: false (#843) by @tamirdresher in #844
- fix: rename root index.js to index.cjs for ESM compat by @bradygaster in #845
- fix: rename lib/rework.js to .cjs for ESM compat by @bradygaster in #846
- fix: skills export path + init workflow filtering by @bradygaster in #847
- fix(ci): insider publish - Node 22, build step, and Playwright install by @tamirdresher in #854
- feat(ci): add file list with line stats to PR readiness comment by @diberry in #813
- ci: scope boundary enforcement for repo-health PRs by @diberry in #826
- ci: smart PR nudge for stale PRs by @diberry in #827
- ci: consolidate workflows, path filters, concurrency (PRD #872 Phases 0-2, 4-5) by @diberry in #873
- feat(security): add markdown-aware skill security scanner (Phase 1) by @diberry in #882
- fix(watch): wire missing CLI flags, validate state-backend, fix auth stderr (#834) by @diberry in #837
- fix(cli): squad start --tunnel validates node-pty before side effects (#711) by @diberry in #860
- fix: add onboarding roster guard and skill overwrite warning by @diberry in #867
- test: add integration tests for watch capabilities (#709) by @diberry in #868
- fix(docs): re-initialize search after Astro View Transitions by @diberry in #856
- fix(test): Docker skip guards + flaky test stabilization (#677) by @diberry in #857
- docs: add contributor-to-core-team PR handoff process by @diberry in #902
- test: add cross-package export smoke test to catch missing imports by @tamirdresher in #875
- feat(cli): deprecation warnings for tunnel, rc, and REPL commands by @tamirdresher in #900
- feat: APM integration — squad skill publish/install + apm.yml in init by @tamirdresher in #876
- ci: skip prerelease version guard on insider branch [ON HOLD] by @diberry in #903
- ci: remove fork-added workflows not in ralph/test/publish by @diberry in #940
- docs: update CONTRIBUTING.md for spam protection (#935) by @diberry in #952
- docs: optimize personal squad docs for git-first usage (#937) by @diberry in #955
- docs: coordinator compaction recovery and restraint rules (#934) by @diberry in #953
- docs: add cross-links between related documentation pages (#936) by @diberry in #956
- fix: import skills to .copilot/skills/ instead of .ai-team/skills/ by @bradygaster in #849
- Persist sidebar scroll position across navigation by @sturlath in #877
- docs: deprecate REPL/interactive shell references, redirect to Copilot CLI by @diberry in #938
- fix: inject CURRENT_DATETIME into all spawn templates (#960) by @tamirdresher in #961
- fix(watch): Windows shell:true, shared agent-spawn, round-level fetch by @tamirdresher in #927
- docs: fix broken skill reference in mcp-config.md (#933) by @diberry in #954
- fix(cast): pass repo root to LocalAgentSource instead of .squad/ dir by @diberry in #892
- fix(coordinator): add routing enforcement refusal rule by @diberry in #890
- fix(watch): detect rate-limit errors instead of reporting Board is clear by @diberry in #893
- fix(cli): replace hardcoded state lists with dynamic directory scan by @diberry in #908
- fix(sdk): Teams adapter — encode channelId, icacls warning, integration tests by @diberry in #883
- fix(sdk): eliminate shell injection vectors in scheduler and state backend by @diberry in #916
- feat(watch): external capability loading + PID tracker (#918, #921) by @tamirdresher in #922
- fix: squad init no longer runs git init in subdirectory; az CLI Windows shell fix by @karlismea in #946
- fix(docs): re-initialize search after Astro View Transitions by @bradygaster in #964
- fix: address post-merge review findings (#876, #900, #875) by @bradygaster in #963
- fix(sdk): Teams adapter token security + migration guide by @diberry in #906
- fix: monorepo subfolder support — never run git init (#939) by @tamirdresher in #944
- fix: replace obsolete --message flag with -p in watch and loop by @tamirdresher in #988
- Emphasize human-led productivity in docs by @IEvangelist in #989
- Merge dev to main: Publish docs site with updated messaging by @bradygaster in #997
- chore: release v0.9.4 — promote insider to official by @tamirdresher in #1023
- fix: restore 106 files accidentally reverted by PR #1023 merge by @tamirdresher in #1027
- fix: rename duplicate hasForce declaration blocking all releases by @tamirdresher in #1028
- test: cherry-pick .NET detection test fix to main (from #1030) by @tamirdresher in #1031
- fix: pass --sync flag in template-sync tests by @tamirdresher in #1040
- chore: prep CHANGELOG for v0.9.4 release by @bradygaster in #1042
- fix: sync root package.json version to 0.9.4 by @bradygaster in #1043
New Contributors
- @eric-vanartsdalen made their first contribution in #608
- @AmandaSilver made their first contribution in #763
- @sturlath made their first contribution in #877
- @karlismea made their first contribution in #946
Full Changelog: v0.9.1...v0.9.4