Skip to content

fix(ci): remove all cron schedules — push to main#696

Merged
bradygaster merged 70 commits intomainfrom
dev
Mar 29, 2026
Merged

fix(ci): remove all cron schedules — push to main#696
bradygaster merged 70 commits intomainfrom
dev

Conversation

@bradygaster
Copy link
Copy Markdown
Owner

Promotes the cron removal from dev to main. All schedule/cron triggers have been obliterated from every workflow file and template copy.

Merged via PR #695. Closes #694.

Copilot and others added 30 commits March 23, 2026 09:45
)

Adds rate limit protection to Ralph's watch command as an additive patch
on top of the existing watch flow. No existing functions are modified.

Changes:
- gh-cli.ts: +ghRateLimitCheck(), +isRateLimitError() helpers
- watch.ts: +CircuitBreakerState type, persistence helpers
- watch.ts: +executeRound() wrapper gates existing runCheck through
  pre-flight quota checks (traffic light + predictive CB)
- watch.ts: +roundInProgress flag prevents overlapping setInterval rounds
- 16 new tests: state machine transitions, race guard, isRateLimitError

State machine: closed → open (quota critical) → half-open (cooldown expires)
→ closed (2 consecutive successes) or re-open (429 during probe).
Cooldown doubles on each failure (2m → 4m → ... → 30m cap).
State persists to .squad/ralph-circuit-breaker.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…uad-per-pod)

Adds SQUAD_POD_ID and SQUAD_DEPLOYMENT_MODE env vars for pod-specific
capability routing. Pod-specific manifests override shared manifests.

Closes #514

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Linux chmod 444 returns EACCES, not EPERM. Handle both codes
for cross-platform compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Inject __VERSION__, __COMMIT_SHA__, __BUILD_DATE__ via Vite define in astro.config.mjs
- Display v{version} · {sha7} · {date} in Footer.astro (xs muted text)
- Pass SQUAD_VERSION and GITHUB_SHA env vars in squad-docs.yml build step
- Add env.d.ts to declare globals for TypeScript

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Before: bradygaster.github.io/squad/docs/get-started/installation/ footer
After: Astro preview server with full CSS rendering

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Screenshots belong in PR comments, not committed to the branch.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Flight review: '0.9.1' hardcode would drift after next release.
Empty string lets the Vite define fall through to package.json.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixes docs-quality CI failure on PR #568 which adds KEDA scaling docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds complete Chinese translation of README.md based on the excellent
work by @JasonYeYuhe in PR #507. This update brings the Chinese README
current with all recent additions to the English README.

Updates include:
- New 'Upgrading' section (two-step upgrade process)
- 'What the Shell Does' subsection (real-time visibility, routing, etc.)
- 'Samples' section (eight working examples)
- 'SDK-First Mode' section (experimental TypeScript config)
- 'Monorepo Development' section (building, testing, linting, publishing)
- 'SDK documentation' section with reference links
- Updated 'upgrade' command description with --global flag
- Language switcher added to both READMEs

Translation preserves JasonYeYuhe's terminology choices for technical
concepts like '智能体' (agent), '协调员' (Coordinator), '花名册' (Roster),
'选角' (Casting), and '书记员' (Scribe).

Supersedes #507

Co-authored-by: JasonYeYuhe <69640321+JasonYeYuhe@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Merging: CI green, docs version badge.
…capabilities

feat(capabilities): dual-mode deployment — agent-per-node + squad-per-pod (#514)
…-watch-v2

feat(watch): circuit breaker integration — additive patch (#515)
- New: capability-routing.md — needs:* label routing and machine capability declaration
- New: rate-limiting.md — cooperative rate limiting and RAAS traffic-light pattern
- New: cross-machine.md — cross-machine coordination for multi-machine Squad deployments
- New: keda-scaling.md — KEDA external scaler template for agent autoscaling
- Updated: model-selection.md — add Economy Mode section
- Updated: navigation.ts — add four new feature pages to nav
- Updated: test/docs-build.test.ts — add new pages to EXPECTED_FEATURES

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Flight review blocker — config file was .squad/config.json, should be
machine-capabilities.json per PR #520's loadCapabilities() implementation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a new skill for coordinating work between squad agents running on
different machines (laptop, DevBox, Azure VMs, etc.).

**Pattern:** Git-based task queuing + GitHub Issues supplement

The skill defines:
- YAML task file format for cross-machine work assignment
- YAML result file format for execution outcomes
- Security validation pipeline (schema, command whitelist, resource limits)
- Ralph Watch integration (automatic poll-and-execute cycle)
- Urgent task routing via GitHub Issues + machine-specific labels
- Error handling for failures, stalls, and network issues

This pattern enables multi-machine squad deployments to divide work
by capability (e.g., GPU workloads on a powerful remote machine) without
human intervention in the handoff.

Closes: N/A (new skill contribution from tamirdresher/squad fork)
docs: v0.9.0 missing feature docs (capability routing, rate limiting, economy mode, cross-machine, KEDA)
docs: update Chinese README translation
…tion

feat(skills): add cross-machine-coordination skill for multi-machine squad deployments
Links to https://github.com/tamirdresher/squad-skills/tree/main/workshop
from getting started and resources pages.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…kill

During StorageProvider Phase 1, a cross-platform audit found that
startsWith() is case-sensitive but Windows and macOS filesystems
are case-insensitive. This gap was missed by 4 rounds of security
review because the existing skill covered timestamps, git commands,
and path separators — but not path comparison semantics.

Adding platform-aware comparison pattern and anti-pattern example
so future agents catch this automatically via skill-aware routing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
docs: add link to Tamir's Squad Skills Workshop
…kill (#574)

docs: add case-insensitive path comparison to windows-compatibility skill
…577)

* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(shell): robust agent name extraction with multi-pattern fallback (#577)

- Fix TS compilation errors in agent-name-parser.ts (strict null checks)
- Add fallback in else branch: show trimmed description text instead of
  generic 'Dispatching to agent...' hint when name extraction fails
- Parser tries 3 patterns: emoji+name:colon, name:colon anywhere, fuzzy
  word-boundary match against known agent names

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(.squad): VOX history + decision for #577 agent name fix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: sync squad.agent.md template copies after #577 name param fix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Orchestration Log: Issue #577 agent name extraction completion

Agent orchestration complete for #577:
- VOX: Fixed agent name extraction in shell/index.ts with 3-tier cascading patterns
- FIDO: Extracted parser to agent-name-parser.ts (30 tests, all passing)
- Procedures: Updated all spawn templates with mandatory name parameter

Actions:
- Created 3 orchestration logs (.squad/orchestration-log/)
- Created session log (.squad/log/2026-03-23T23-15-issue-577-agent-names.md)
- Merged 3 decision inbox files to .squad/decisions.md (3 new decision entries)
- Deleted inbox files after merge
- Appended team updates to VOX, FIDO, Procedures history.md files

All decisions merged. Agent IDs now display correctly in Copilot CLI tasks panel.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix(cli): scaffold casting dir + silence no-remote errors on init (#579)

- Add stdio: ['pipe','pipe','pipe'] to all execFileSync('git remote get-url origin')
  calls in SDK init so stderr doesn't leak when no remote is configured
- Scaffold .squad/casting/policy.json, registry.json, history.json from
  SDK templates during init (falls back to inline defaults)
- Respect skipExisting: pre-existing casting files are never overwritten
- Add tests for casting file scaffolding and content validation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test: add init scaffolding completeness tests (#579)

Verify that init produces a complete .squad/ directory, particularly:
- casting/ subtree (registry.json, policy.json, history.json)
- no-remote resilience (git repo without origin configured)
- doctor validation passes after a fresh init

15 tests covering initSquad() SDK, runInit() CLI, and doctor checks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update FIDO history with #579 scaffolding test learnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* test: personal squad init discovery tests (#576)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(cli): personal squad init via npx discovers ~/.config/squad (#576)

When running `init --global` (e.g. via npx), the personal-squad/
directory was never created, so subsequent `init` in a repo could
not discover the user's personal agents.

Changes:
- SDK: add ensurePersonalSquadDir() — idempotent helper that creates
  personal-squad/agents/ and config.json if missing.
- CLI init --global: suppress workflows (no CI needed in global dir)
  and call ensurePersonalSquadDir() after scaffolding.
- CLI repo-level init: detect existing personal squad and inform user.
- personal.ts: reuse ensurePersonalSquadDir() instead of inline logic.
- Tests: 3 new tests for ensurePersonalSquadDir().

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: sync templates and update agent history (#576)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…564, #557)

* docs: rewrite PUBLISH-README.md as release playbook (#564)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: add publish-policy lint job (#557)

Adds a lightweight publish-policy CI job to squad-ci.yml that scans all
workflow YAML files for bare npm publish commands missing -w/--workspace.
Prevents accidental root package publishing (v0.9.1 incident class).

Also adds test/publish-policy.test.ts (36 tests) validating the lint
logic against known good/bad patterns and all live workflow files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: update release-process skill to reference PUBLISH-README.md playbook

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(.squad): merge release hardening decisions + session log

- Merge 3 decision inbox files into decisions.md (flight-release-hardening-plan, fido-publish-policy, eecom-personal-init-fix)
- Delete inbox files post-merge (no duplicates)
- Write session log: 2026-03-24T06-release-hardening.md
- Append team updates to PAO and FIDO history.md noting playbook + CI lint contributions
- Release hardening work (issues #564, #557) complete; #562 deferred to Brady (admin API access required)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(doctor): actionable warning messages + squad.agent.md check (#565, #533)

- Add resolution hints to all warning messages so users know what to do
- checkAbsoluteTeamRoot: suggest editing .squad/config.json
- vscode-jsonrpc/copilot-sdk not-found: note expected for global installs
- Add checkSquadAgentMd() to verify .github/agents/squad.agent.md exists

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* test(doctor): add tests for actionable warnings + squad.agent.md check (#565, #533)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#620)

* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(prompts): update model catalog to current platform offerings (#588)

Update all model references in squad.agent.md to match the current
Copilot platform catalog:

- Remove stale models: claude-opus-4.6-fast, gpt-5 (standalone)
- Add new models: claude-sonnet-4.6, claude-opus-4.6-1m, gpt-5.4,
  gpt-5.3-codex, gpt-5.4-mini
- Bump code-writing defaults from claude-sonnet-4.5 to claude-sonnet-4.6
- Bump code specialist from gpt-5.2-codex to gpt-5.3-codex
- Update fallback chains with new models in sensible positions
- Propagate via sync-templates to all 4 derived copies

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update procedures history and decision for model catalog refresh

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(sdk): getPersonalSquadRoot resolves to personal-squad dir (#590)

getPersonalSquadRoot() was hardcoded to append '.squad' to the global
squad directory, causing it to resolve to a nonexistent path. All users
running squad consult entered Init Mode and lost their personal agents.

Changed the subdirectory from '.squad' to 'personal-squad' to match
the actual layout used by resolvePersonalSquadDir() and
ensurePersonalSquadDir().

Added two tests verifying the correct resolution path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(cli): fix remaining personal-squad path in shell init (#590)

The shell's runShell() first-run check was looking for '.squad' inside the
global squad directory instead of 'personal-squad', mirroring the bug EECOM
already fixed in consult.ts. Also updated the matching test assertions in
cli-global.test.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore(.squad): session wrap-up — inbox merge, logs, history updates

Merged 12 decision inbox entries into decisions.md. Logged mega-session
covering release recovery, docs fix, 10 PR merges, discussion triage,
and release hardening. Updated agent histories with session learnings.

Deleted inbox files after merge:
- booster-ci-audit.md, booster-ci-cleanup.md
- copilot-directive-2026-03-23T09-56.md, copilot-directive-2026-03-23T10-08.md
- copilot-directive-no-npx.md
- eecom-version-cmd.md
- pao-discussion-triage-2026-03-23.md, pao-npx-purge.md, pao-readme-slim.md
- pao-v090-blog.md
- surgeon-v090-changelog.md, surgeon-v091-retrospective.md

Updated files:
- .squad/decisions.md (12 decision entries merged)
- .squad/identity/now.md (current state updated)
- .squad/log/2026-03-23T22-00-00Z-mega-session-wrapup.md (new)
- .squad/agents/flight/history.md (issue filing patterns, governance directives)
- .squad/agents/eecom/history.md (CLI version subcommand pattern)
- .squad/agents/booster/history.md (CI audit and preflight patterns)
- .squad/agents/surgeon/history.md (release governance rules, retrospective)
- .squad/agents/pao/history.md (discussion triage patterns, Teams MCP urgency)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: add v0.9.0 and v0.9.1 releases to What's New

- v0.9.1 (Current Release): Bug fixes and hardening
  - Shell agent name extraction with multi-pattern fallback
  - Init scaffolding for typed casting files
  - Personal squad global mode support
  - Release CI/docs hardening
  - Doctor command improvements

- v0.9.0 (Major Feature): 6 major features + stability fixes
  - Personal Squad Governance Layer (isolated developer workspaces)
  - Worktree Spawning & Distributed Work (parallel agent orchestration)
  - Machine Capability Discovery (auto-detect tools/models/hardware)
  - Cooperative Rate Limiting (predictive circuit breaker + economy mode)
  - Telemetry & Infrastructure (auto-wire, KEDA, session recovery)
  - Docs, Stability & Distribution (Astro enhancements, npm-only)

- v0.8.2: Renamed from 'Current Release' to historic entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): triage session — 14 issues triaged, 10 PRs reviewed

- Flight triaged 14 untriaged GitHub issues, created prioritized work plan
- FIDO reviewed 10 open PRs, identified 3 duplicate/overlap pairs
- Merged 2 decisions from inbox to decisions.md
- Updated Flight and FIDO agent history with team updates
- Orchestration logs: 2026-03-25T15-23-flight.md, 2026-03-25T15-23-fido.md
- Session log: 2026-03-25T15-23-triage-session.md

Work session priority established:
- #610 → PAO (broken link, 5 min fix, unblocks #611)
- #590 → EECOM (getPersonalSquadRoot bug, P0)
- #592, #611 → Flight review
- #588 → Procedures (model list update)

PR deduplication: 10 PRs consolidate to 7
- Merge: #607, #603, #606
- Close as duplicates: #605, #604, #602

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(squad): log work session — triage, fixes, research

Round 1 outcomes:
- PAO: #610 docs link already resolved
- EECOM: #590 personal squad path fix (getPersonalSquadRoot)
- Procedures: #588 model catalog updated to current platform
- Flight: #612 community issue filed on routing regression
- CAPCOM: CLI platform research — identified 8 releases (1.0.4→1.0.11) with 3 high-impact changes
- GNC: Squad codebase research — routing regression caused by v0.9.0 prompt saturation + missing name param

Round 2: Code review & quality gate
- FIDO: Found same bug in shell/index.ts, enforced revision
- CONTROL: Full sweep of #590 fix, awaiting FIDO re-review

Merged decisions:
1. Personal squad path canonicalization (personal-squad/)
2. Model catalog refresh (claude-sonnet-4.6, gpt-5.3-codex defaults)
3. CLI platform analysis (monorepo discovery, idle hiding, hook injection)
4. Squad regression analysis (prompt saturation, workstream replacement, missing name param)

Logs created:
- 6 orchestration logs (one per agent)
- 1 session synthesis log with research synthesis
- 4 agent history updates (team update annotations)

All inbox decision files merged and deleted.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Merge: VS Code routing enforcement fix proposal (#613)

- Merged procedures-vscode-routing-fix.md from inbox to decisions.md
- Cleared decision inbox after merge
- Logged session finalization work

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add count-based fallback to archiveDecisions() (#626)

archiveDecisions() silently returned null when all entries were <30 days
old, allowing decisions.md to grow unboundedly. Active projects hit
145KB+ (35K tokens burned per agent spawn).

Added count-based fallback: when all entries are recent but total size
exceeds 20KB, archive the oldest recent entries to stay under threshold.
Undated entries are preserved (not archived) per Procedures' guidance.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: update EECOM history with #626 learnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI and others added 29 commits March 26, 2026 01:39
- Crash recovery: merged 10 PRs, closed 3 duplicates
- Repo hygiene: removed test artifacts, consolidated .gitignore, cleaned garbage files, pruned 21 local + 31 remote branches
- Issue triage: 12+ issues routed and closed
- PR management: merged #628 (model config), reviewed #629, routed Tamir PRs to dev branch pending proposals

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…sion.md

Closes #610

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…fety rules

Incident #631 complete closure:
- Surgeon reverted problematic commit 1ab2f5c on dev (restored 361 files)
- Booster added CI deletion guards & canary checks to squad-ci.yml
- RETRO documented Git Safety mandatory rules in copilot-instructions.md
- PRs created and ready for merge (squad/631-ci-deletion-guard, squad/631-copilot-git-safety)
- Issue #631 closed with incident summary

Team memory updated:
- Orchestration log: 2026-03-26T17-28-631-closure.md
- Session log: 2026-03-26T17-28-631-closure.md

Incident response: Full parallel execution by Surgeon, Booster, RETRO agents.
Resolution: EMU auth restrictions resolved, manual coordination by Coordinator.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CI: Add source tree canary and large deletion guard
Add git safety rules to copilot-instructions.md
…e workflow (#637)

Reorder Scribe spawn template: PRE-CHECK → ARCHIVE [HARD GATE] → INBOX merge.
Archive runs BEFORE merge to prevent decisions.md from growing unbounded.

Two-tier archival thresholds:
- Tier 1 (30-day): If >20KB, archive entries older than 30 days
- Tier 2 (7-day): If still >50KB after Tier 1, archive entries older than 7 days
- HEALTH REPORT emitted to session log after archival

Updated all 7 Scribe charter files with both tiers + HEALTH REPORT destination.
Added 6 tests validating Scribe spawn template structure.

Closes #33

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…#649)

Explicitly requires all merged decision entries to use the format '### YYYY-MM-DD: Topic'.
Specifies handling for missing dates and undatable entries to prevent archival bugs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Concise, scannable guide to the circuit breaker resilience pattern for agents.
Covers state machine transitions, exponential backoff, persistent state,
configuration options, and practical examples for custom agents.

Placement: docs/src/content/docs/guide/building-resilient-agents.md
Navigation updated with new guide entry after building-extensions.
Test assertions updated (EXPECTED_GUIDES).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…n protocol (#622)

Merging iterative-retrieval skill. Changeset package names fixed. Closes #622.
…very patterns (#623)

Merging error-recovery skill. Changeset package names fixed.
…stake prevention (#621)

Merging reflect skill. Changeset package names fixed.
…e selective hydration (#629)

Merging ralph-two-pass-scan skill. Frontmatter/sections can be improved in a follow-up.
…rkdown (#630)

Merging retro-enforcement skill + ceremonies template update. File paths can be realigned in a follow-up.
Merging tiered-memory skill. File paths, changeset, and frontmatter all fixed.
The root package.json has "type": "module" but the 9 node:test
files used require() (CommonJS). Node.js treats .js files as ESM
in module-type packages, causing all tests to fail with:

  ReferenceError: require is not defined in ES module scope

This broke Squad Release, Squad Preview, and Squad Insider Release
workflows on every push to main since the ESM migration.

Fix: rename *.test.js -> *.test.cjs (explicit CommonJS) and update
all workflow globs from test/*.test.js to test/*.test.cjs.
Zero logic changes — only file extensions and glob patterns.

Vitest is unaffected (its config only includes test/**/*.test.ts).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Brady Gaster <41929050+bradygaster@users.noreply.github.com>
* feat: add PR requirements spec and PR template (#106 Phase 2)

Adds .github/PR_REQUIREMENTS.md (versioned spec with 6 categories, CRUD-on-CLI/SDK user-facing definition, waiver process, exemptions) and .github/PULL_REQUEST_TEMPLATE.md (author-facing checklist). Part 1 of 2 for repo health -- #104 will automate enforcement.

Closes Phase 2 of #106

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update .github/PR_REQUIREMENTS.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/PR_REQUIREMENTS.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat(ci): add CHANGELOG and exports map completeness gates (#104)

Part 2 of 2 for repo health. Adds two automated CI enforcement gates to squad-ci.yml:

1. CHANGELOG gate -- requires CHANGELOG.md update when SDK/CLI source changes
2. Exports map check -- verifies package.json exports match barrel files

Both feature-flagged (vars.SQUAD_CHANGELOG_CHECK, vars.SQUAD_EXPORTS_CHECK) with skip labels. Includes test coverage for check-exports-map.mjs.

Refs #104

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: address Copilot review -- crash masking in test, label check permissions

- Fix runScript() to reject on spawn errors instead of masking as exit code 1
- Replace gh pr view label checks with github.event payload labels
- Eliminates need for pull-requests: read permission

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update .github/workflows/squad-ci.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: exact label matching + test optimization per Copilot review

- Replace substring-based label checks (contains+join) with exact
  match (contains on labels.*.name) for skip-changelog and
  skip-exports-check labels
- Refactor check-exports-map tests to run script once in beforeAll

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update test/check-exports-map.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update test/check-exports-map.test.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: sort barrelDirs for deterministic CI output

readdirSync() ordering varies across platforms. Sort the list so
missing-barrel reports are stable and diffable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Tamir Dresher <tamir.dresher@gmail.com>
Adds samples-build CI job that validates all sample projects compile and pass tests when SDK source files change. Feature-flagged (SQUAD_SAMPLES_CI) with skip-samples-ci label escape hatch. Closes #103.
Resets prerelease versions to 0.9.1. Fork PR: diberry#116. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… gates

Adds 3 CI health gates. Fork PR: diberry#115. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Documents versioning rules. Fork PR: diberry#117. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot code review finding. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Obliterates every schedule/cron trigger from all workflow files and
their template copies. No cron jobs will ever run in this repo again.
Use `squad watch` for local polling or event-driven triggers only.

Closes #694

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster merged commit 281ec39 into main Mar 29, 2026
15 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants