Skip to content

chore: promote v0.10.0 (dev → main)#1219

Merged
bradygaster merged 216 commits into
bradygaster:mainfrom
tamirdresher:chore/promote-dev-to-main-v0.10.0
Jun 7, 2026
Merged

chore: promote v0.10.0 (dev → main)#1219
bradygaster merged 216 commits into
bradygaster:mainfrom
tamirdresher:chore/promote-dev-to-main-v0.10.0

Conversation

@tamirdresher

Copy link
Copy Markdown
Collaborator

Promote v0.10.0: dev → main

Promotes dev to main to publish v0.10.0 (first stable since v0.9.4 on April 25).

dev HEAD f94d359e (Merge PR #1218 — chore: release v0.10.0)
main HEAD fa2f9775 (Merge PR #1078 — allow dots in repo names)

What landed in dev that this promotes

  • PR chore: release v0.10.0 #1218 — v0.10.0 release prep: 99 changesets consumed, sdk + cli + root bumped to 0.10.0, CHANGELOG [0.10.0] added, fact-checking skill + workflow-wiring docs from changesets, Teams adapter createCommunicationAdapter now async (noted in changelog, not flagged breaking per pre-1.0 SemVer)
  • PR chore: sync main → dev (Phase 0 for v0.10.0 release) #1212 (Friday) — main → dev sync that brought v0.9.4 hotfixes onto dev so this promote is a clean fast-forward

Verification

  • git merge-base --is-ancestor upstream/main upstream/dev → 0 (dev is strictly ahead of main, no divergence)
  • ✅ e2e validation passed all 3 scenarios on commit 7977330 (fresh init, upgrade from 0.9.6-insider.3, real coordinator session)
  • Squad CI/test passed on chore: release v0.10.0 #1218 (4m52s)
  • ✅ Local npm run build passes (~9s)

After merge

squad-release.yml auto-tags v0.10.0 + creates GitHub Release on push to main. Then I'll manually dispatch:

gh workflow run squad-npm-publish.yml --repo bradygaster/squad --ref main -f version=0.10.0

(GITHUB_TOKEN propagation gap per v0.9.4 lesson — release: published events don't auto-trigger downstream workflows.)

Then verify npm view @bradygaster/squad-{sdk,cli} version and open a tiny follow-up PR bumping dev to 0.10.1-preview.0.

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

Copilot and others added 30 commits April 17, 2026 20:23
Adds comprehensive docs for the git-notes, orphan-branch, and worktree
state backends covering configuration, usage, comparison, SDK API,
security hardening, and inspection commands.

Closes bradygaster#995

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Agent-Logs-Url: https://github.com/bradygaster/squad/sessions/f521e322-ed1a-4c87-af67-32ebfa106315

Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com>
…ds-995

docs: add user-facing documentation for state backends
…dygaster#1000) (bradygaster#1001)

* chore: CI cleanup — delete ci-rerun.yml and streamline squad-ci.yml

- Delete redundant ci-rerun.yml (GitHub Approve and Run handles fork PRs natively)
- Update setup-squad-node comment (remove ci-rerun reference)
- Streamline squad-ci.yml: merge exports-map-check + export-smoke-test into
  sdk-exports-validation, fold publish-policy + scope-check into policy-gates,
  add workflow path filtering, trim verbose comments (852 → 585 lines, 9 → 6 jobs)

Closes bradygaster#1000

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

* docs: update Booster history with bradygaster#1000 CI cleanup learnings

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

* fix: handle push events in CI export and samples gates

Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com>

* fix: harden push diff fallback in squad CI

Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com>

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

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

* chore: trim copilot-instructions.md and extract protected-files skill

- Reduce from 1,307 words / 9KB to 397 words / 3KB
- Extract Protected Files to .copilot/skills/protected-files/SKILL.md
- Consolidate Git Safety (remove sub-sections, resolve contradictory branch commands)
- Compact Changeset Requirement to 2 sentences
- Reorder: Team Context and Capability Self-Check now at top
- Remove duplication with .squad/copilot-instructions.md
- Sweeping Refactor Rules condensed to 2 sentences with skill pointer

Closes bradygaster#999

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

* docs: update procedures history for bradygaster#999

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

* fix: remove test files for non-existent scripts

The scripts check-squad-leakage.mjs and security-review.mjs were planned
but never created. Their test files cause CI failures (non-zero exit codes,
ERR_MODULE_NOT_FOUND). Removing the tests until the scripts are implemented.

Part of bradygaster#1000

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

* ci: trigger CI run for validation

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Fix cspell docs-quality CI failure on dev branch by adding 'mktree' (git plumbing command) to the dictionary.
Removes duplicate pull-requests: read key that caused GitHub Actions to silently skip all jobs (0 jobs, instant failure). Root cause: commit 7b4ba79 introduced duplicate YAML key on Apr 18. Test failure is pre-existing (missing .github/agents/squad.agent.md).
Fixes all test failures on dev caused by monorepo subfolder detection (bradygaster#939).

Changes:
- Use os.tmpdir() for test temp dirs to avoid detectParentGitRepo() interference
- Update loop.test.ts regex from /gh CLI/i to /Copilot CLI/i (rebranding)
- Update comms-teams warning message expectation (invalid_grant detail)
- Remove orphaned test files for deleted scripts
- Re-sync templates before byte comparison in template-sync test
- Use tmpdir() in consult, init-upgrade-parity, export-import, scrub-emails tests

All 6 CI jobs pass: changes, docs-quality, sdk-exports-validation, samples-build, test, Policy Gates.
Add a skill (.squad-templates/skills/e2e-template-testing/SKILL.md) that
documents how to validate coordinator and agent template changes end-to-end
by running real squad sessions against a locally-built CLI.

Add a 'Testing Template Changes' section to CONTRIBUTING.md with a quick-start
workflow and pointer to the full skill.

Synced to all template targets via sync-templates.mjs.

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

fix: resolve 404 on API docs navigation link
…aster#1030)

The 3 dotnet project type tests (.slnx, .fsproj, .vbproj) expected
squad-ci.yml to be created during init. Since PR bradygaster#847 init intentionally
skips CI/CD workflows (they are installed by upgrade). Change the tests
to run init first (creates .squad/ structure) then upgrade (installs
CI workflows including project-type-specific ones).

Fixes the last 3 test failures blocking the 0.9.4 release.

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds battle-tested knowledge from the v0.9.4 release session:
- GITHUB_TOKEN event propagation limitation and manual workaround
- Root package.json must match sub-package versions
- CHANGELOG.md version entry validation gate
- Lockfile integrity check workspace package handling
- Prebuild version bump local dev fix

PRs bradygaster#1042, bradygaster#1043, bradygaster#1044 cited as source evidence.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: add SQUAD_HOME env var and preset system (bradygaster#1038)

Add SQUAD_HOME environment variable support for a roaming squad root
directory, and a preset system for reusable agent configurations.

SQUAD_HOME:
- New resolveSquadHome() resolves SQUAD_HOME env var or falls back to ~/.squad/
- ensureSquadHome() creates the directory if it doesn't exist
- resolvePresetsDir() returns the presets subdirectory within SQUAD_HOME

Preset System:
- Presets are named collections of agent charters in a standard layout
- Built-in 'default' preset ships with 5 agents: lead, reviewer, devrel, security, docs
- Users can install presets to SQUAD_HOME and apply them to any project
- Collision policy: skip existing agents by default, --force to overwrite

CLI Commands:
- squad preset list - list available presets
- squad preset show <name> - show preset details
- squad preset apply <name> - apply preset agents to current project
- squad preset init - seed built-in presets to SQUAD_HOME

Resolves bradygaster#1038

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

* feat: add squad preset save and round-trip quick start

Add 'squad preset save <name>' command that captures your current
project's agents as a reusable preset in SQUAD_HOME. This completes
the quick-start loop:

  1. squad preset apply default     # start with a preset
  2. (customize agents)              # make it yours
  3. squad preset save my-team       # save as your preset
  4. cd other-repo && squad preset apply my-team  # reuse everywhere

Also adds 4 new tests including full round-trip test (save → apply).

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

* feat: add --preset flag to squad init

squad init --preset default    # init + apply preset in one command
squad init --preset my-team    # use your custom preset

Automatically seeds built-in presets if needed. The quick start is now:

  1. squad init --preset default
  2. (customize agents)
  3. squad preset save my-team
  4. squad init --preset my-team   # any new repo, one command

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

* preset save: clarify save location and tip about export for full snapshots

- Show preset save path clearly in output
- Add tip about 'squad export' for full squad snapshots (casting, skills,
  routing) — useful for sharing configured squads or publishing to agent
  toolboxes
- Update module docs with save path and export distinction

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

* Add 'squad preset init --remote' for one-command roaming setup

- 'squad preset init --remote' creates a private GitHub repo (squad-home)
  via gh CLI and sets up ~/.squad/ as a clone. On a second machine, the
  same command detects the existing repo and clones it.
- All 'preset not found' errors now nudge users toward 'squad preset init --remote'
- Plain 'squad preset init' tips about --remote for roaming
- Handles all cases: fresh setup, existing ~/.squad/, second machine clone

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

* squad init --preset auto-creates squad home if missing

When no presets directory exists, 'squad init --preset default' now
automatically initializes squad home and seeds built-in presets instead
of failing. Tips user about '--remote' for roaming.

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

* fix: validate SQUAD_HOME is a directory, sanitize preset/agent names

Address Copilot review comments flagged by Tamir:
- resolveSquadHome() now throws if path exists but is not a directory
- resolvePresetsDir() checks isDirectorySync before returning
- Added validateName() to reject path traversal in preset/agent names
- Build step now cleans dist/presets/builtin before copying (prevents stale files)
- Fixed misleading test name

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

* fix: address remaining Copilot review comments

- Use lstatSync in copyDirRecursive to skip symlinks (prevents following
  symlinks into unintended locations)
- Clean dest dir before copy on --force (prevents stale files from
  renamed/deleted agents lingering)
- Remove duplicate glyphs in CLI output (success()/warn() already add markers)

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

* fix: wrap preset usage text to stay under 80-char UX gate

Split long pipe-separated usage strings into multi-line format
in both preset.ts (error message) and cli-entry.ts (help output)
so the ux-gates.test.ts line-length check passes.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- watch/index.ts: Use shell:true for execFile on Windows so az.cmd is found
- azure-devops.ts: Quote WIQL args with spaces under shell:true on Windows
- azure-devops.ts: Guard JSON.parse against empty az boards query output
- azure-devops.ts: Map GitHub-style 'open'/'closed' states to ADO WIQL equivalents

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

Closes bradygaster#1034

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
7 skill SKILL.md files were missing YAML frontmatter entirely, preventing
them from loading in the Copilot CLI. Added proper frontmatter blocks with
name, description, domain, confidence, and source fields. Ran template sync
to propagate the nap skill change and skill-template sync for .squad/skills.

The other 7 files listed in the issue already had correct frontmatter on
the dev branch, so no changes were needed for those.

Closes bradygaster#706

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

fix: add missing YAML frontmatter to skill files
- Add "Local Development Installation" section to README with npm run dev:link instructions
- Update CONTRIBUTING.md to use npm run dev:link for global linking
- Remove references to non-existent npm run build:cli script
- Simplify linking/unlinking instructions to use npm run dev:link/dev:unlink
…olders

Closes bradygaster#977

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

The squad_route tool returned resultType: 'success' without ever spawning a
session ΓÇö a silent no-op masquerading as success for SDK embedders.

Changes:
- Wire squad_route handler to spawnParallel (existing fan-out primitive)
- Add fanOutDepsGetter as optional 5th ToolRegistry constructor param
- Validate targetAgent with /^[a-zA-Z0-9_-]+$/ regex + trim
- Add roster check via state.agents when SquadState is available
- Wrap spawnParallel in try/catch; sanitize errors before returning to LLM
- Document fanOutDepsGetter wiring and failure modes in SDK README,
  sdk.md, and api-reference.md
- Add 11 SDK-tier tests covering the full squad_route contract

Without fanOutDepsGetter wired, squad_route now returns an honest
failure (error: 'fan-out-deps-unavailable') instead of false success.

Closes bradygaster#1065

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tes, orphan, two-layer)

33 files changed. SDK + CLI + coordinator + templates + docs + blog + 74 unit tests + 12 E2E scenarios.

Closes bradygaster#1003, closes bradygaster#1013

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

Replace checkout --orphan approach with mktree+commit-tree+update-ref so
the working tree, index, and current branch are never touched during init.

Also fix test portability: use 'git checkout -' instead of hardcoded
'main' branch name for cross-platform compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- StateBackendType: 'worktree' -> 'local' in type union
- WorktreeBackend.name: 'worktree' -> 'local'
- Default fallback: 'local'
- Added normalizeBackendType() to map 'worktree' -> 'local' at validation boundary
- Legacy 'worktree' values in config.json and CLI args still work
- Updated docs: 'Worktree (default)' -> 'Local (default)'
- Updated all 75 tests (9 assertion changes + 1 new legacy alias test)
- TypeScript compiles clean (tsc --noEmit passes)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove 'git-notes' from StateBackendType union (no longer user-facing)
- Add silent migration: 'git-notes' config → 'two-layer' backend
- Keep isValidBackendType accepting 'git-notes' for backward compat
- GitNotesBackend class retained internally (used by TwoLayerBackend)
- Update all tests to expect two-layer when git-notes is configured
- Add legacy migration test

Proven via concurrency tests: standalone git-notes fails multi-user
(single JSON blob can't merge). Two-layer uses per-file orphan branch
for durable state + best-effort git-notes for commit annotations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Update docs: replace git-notes section with deprecation notice
- Update comparison table: add two-layer, remove git-notes column
- CLI entry/init/watch config: accept git-notes for backward compat
  but document it as migrated to two-layer at runtime
- Add 'two-layer' to watch config valid backends
- Update recommended backend from worktree→local in docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Change squad-sdk dep from >=0.9.0 to * so npm resolves workspace version
- Map legacy backend names (worktree->local, git-notes->two-layer) in cli-entry.ts
- Update WatchConfig.stateBackend type to use StateBackendType
- Add legacy mapping in config.ts parser for backward compat
- Accept worktree and git-notes as valid CLI inputs (mapped at boundary)

All 76 state-backend tests pass. Build is clean.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Changesets: replace worktree/git-notes with local/two-layer/orphan
- Blog post: update table and hero text to reflect current backend names
- Feature docs: fix config example (git-notes → two-layer), SDK examples,
  rename 'Worktree' section to 'Local'

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Map 'worktree' → 'local' and 'git-notes' → 'two-layer' during init,
consistent with the mapping already done in cli-entry.ts and config.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove worktree/git-notes legacy name support (never shipped to users)
- Valid backends are now: local, orphan, two-layer, external
- Add squad-test bin alias for local development testing

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace all stale 'worktree' references with 'local'
- Replace all stale 'git-notes' references with 'two-layer'
- Add comprehensive FAQ section (10 questions)
- Add multi-user synchronization guide
- Update Quick Start to use current backend names
- Update migration guide for current backends
- Fix blog post config example (git-notes → two-layer)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher and others added 17 commits June 4, 2026 20:22
Round 4 B'Elanna A1 PASS + F1 side-finding: 'squad upgrade --state-backend

two-layer' migrated decisions.md and agents/<n>/history.md ONTO the

squad-state orphan branch but LEFT the working-tree copies in place.

Post-upgrade those files are now stale (the orphan branch is the

source of truth) and they polluted 'git status --porcelain' with

untracked or now-unrelated content.

Mirrors the cleanup behaviour that liftInitMutableStateOntoOrphan

already performs for fresh 'squad init'. Only files that were JUST

successfully migrated to orphan are removed — config.json, charter.md,

team.md, casting/, templates/ are never touched. Also rmdirs now-empty

.squad/agents/<name>/ directories to avoid zero-content folder leaks.

Failure to delete (e.g. permission error) is non-fatal: a warning is

printed and the file is left for the user to resolve. Orphan write

already succeeded, so the file is authoritative on the branch either

way.

Bundled with the P0.3 wiring commits in this PR because the same

migration path (worktree -> two-layer) is what makes promoteNotes

useful in the first place — an upgrade that leaves stale state

behind would shadow whatever the runtime bridge reads from orphan.

Test: test/upgrade-state-backend.test.ts adds 'F1 (Round 5): migrated

working-tree state files are removed after upgrade' — asserts

decisions.md / agent history.md are gone, empty agent dir is gone,

charter.md and config.json remain.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Closes the v0.9.4 sync-back debt per Picard's release plan (Phase 0).
Brings in:
- PR bradygaster#1078 dot-repo parser fix (vejadu)
- Lockfile integrity check exclusion fix
- 0.9.4 CHANGELOG entry
- --sync flag in template-sync tests
- 31 main-only additions (skill.ts, agent-spawn.ts, fact-checking
  skill, challenger agent template, 10 scripts, 6 workflows, etc.)

Conflict resolution per Worf's analysis (14 conflicts confirmed):
- 11 standard conflicts: favor dev (200 commits ahead with state-backend
  rewrite + feature work)
- .changeset/watch-p0-p1-fixes.md: accept main's deletion (stale, already
  consumed by 0.9.4 release bot)
- test/scripts/security-review.test.ts: accept dev's deletion (PR bradygaster#1000/
  bradygaster#1001 intentional CI cleanup); scripts/security-review.mjs preserved
- docs/.../state-backends.md: take dev's 25KB authored version over
  main's 8KB PR bradygaster#1023 restore (dev is comprehensive superset; main
  is older content rehydrated)

Lockfile regenerated cleanly. npm run lint passes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
No source change. Phase 0 sync-back PR has no semantic version impact;
CHANGELOG entry will be written in Phase 2 of v0.10.0 release.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Phase 0 sync-back PRs cannot author CHANGELOG.md edits — the CHANGELOG
Write Protection gate only allows bradygaster, github-actions[bot], and
copilot-swe-agent[bot]. The main-side '## [0.9.4]' heading addition will
be reintroduced in Phase 2 by an approved author when the v0.10.0 entry
is written.

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

Adds scoped change and diff hygiene guidance to CONTRIBUTING.md.
…-main-pre-v0100

chore: sync main → dev (Phase 0 for v0.10.0 release)
The changelog-gate job only matched packages/squad-(sdk|cli)/src/, so PRs
touching bundled templates, scaffolding, and agent files bypassed the
changeset requirement silently. Expand the SDK_CLI_CHANGED pattern to also
match packages/squad-(sdk|cli)/templates/, .squad-templates/, and templates/,
aligning CI enforcement with CONTRIBUTING.md.

Closes bradygaster#1156

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Follows up bradygaster#1156: the changelog gate now also fires on template/scaffolding path changes, so the failure message should mention template files, not only source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address PR review feedback on the changelog gate: consolidate the grep -E alternation into a single SDK_CLI_PATH_REGEX variable for readability and safer extension, and document why the whole top-level templates/ tree is governed (it is a canonical mirror of .squad-templates/ per scripts/sync-templates.mjs). No behavioral change.

Closes bradygaster#1156

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add test/ci/changelog-gate.test.ts, which reads the live SDK_CLI_PATH_REGEX from .github/workflows/squad-ci.yml and asserts a table of governed paths (src/ + all template trees) match the gate while unrelated paths (docs, root configs, package.json) do not. The test extracts the pattern from the workflow itself so it stays in sync with the gate. Guards the fix for bradygaster#1156 against regression.

Closes bradygaster#1156

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

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address review on bradygaster#1195:
- Add .squad/agents/*/charter.md to SDK_CLI_PATH_REGEX (final bradygaster#1156 bypass path)
- Correct the templates/ comment: append-only superset of .squad-templates/, not a full mirror
- Update CONTRIBUTING.md changeset-gate scope to match the widened gate
- Wrap the regex-presence assertion in beforeAll so YAML drift surfaces as a readable failure
- Extend the gate test with governed/unrelated .squad/agents cases

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

fix(ci): expand changelog gate to cover template and scaffolding paths
bradygaster#1215)

The home page's scroll-reveal sections (.reveal) stayed invisible
(opacity:0) after navigating away from the home page and back via Astro
View Transitions (e.g. home -> search -> result -> logo home).

The IntersectionObserver that adds the .visible class lived in a module
<script> that only evaluates once per session. Because <ViewTransitions />
swaps the DOM instead of doing a full reload, the script never re-ran on
the freshly swapped-in DOM, so nothing observed the new .reveal elements.

Wrap the home page script in an initHomePage() function registered on the
astro:page-load event, which fires on initial load and after every View
Transition navigation. This matches the existing convention already used
in Search.astro and BaseLayout.astro. The reveal observer is disconnected
before being recreated, and the copy-install handler is assigned via
onclick to stay idempotent across re-runs.

Adds Playwright coverage (docs/tests/hero-reveal.spec.mjs) for initial
load, navigate-away-and-back, and reaching home via a View Transition.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Consume 99 changesets (B3: removed invalid root-pkg line from squad-commands-review-fixes.md)
- Bump @bradygaster/squad-sdk and @bradygaster/squad-cli to 0.10.0
- Sync root package.json to 0.10.0 (v0.9.4 PR bradygaster#1043 lesson)
- Update CHANGELOG.md with [0.10.0] - 2026-06-07 entry
- Note: createCommunicationAdapter is now async (B10)

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

github-actions Bot commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit ede35fc

PR Scope: 📦🔧 Mixed (product + infrastructure)

⚠️ 3 item(s) to address before review

Status Check Details
Single commit 216 commits — consider squashing before review
Not in draft Ready for review
Branch up to date Up to date with main
Copilot review No Copilot review yet — it may still be processing
Changeset present Changeset file found
Scope clean ⚠️ PR includes 9 .squad/ file(s) and 2 docs/proposals/ file(s) — ensure these are intentional
No merge conflicts No merge conflicts
Copilot threads resolved No Copilot review threads
CI passing 6 check(s) still running

Files Changed (393 files, +41012 −9742)

File +/−
.changeset/add-rework-rate-metric.md +0 −5
.changeset/add-session-recovery-skill.md +0 −4
.changeset/add-skill-script-loader.md +0 −5
.changeset/ado-configurable-items.md +0 −14
.changeset/apm-integration.md +0 −7
.changeset/builtin-skills.md +0 −17
.changeset/cleanup-ceremony.md +0 −12
.changeset/contamination-guard.md +0 −8
.changeset/cooperative-rate-limiting.md +0 −11
.changeset/cross-squad-orchestration.md +0 −6
.changeset/deprecate-tunnel-rc-repl.md +0 −5
.changeset/docs-fork-contribution-workflow.md +0 −12
.changeset/dual-mode-capabilities.md +0 −12
.changeset/error-recovery-skill.md +0 −5
.changeset/external-state.md +0 −16
.changeset/fact-checker-agent.md +0 −12
.changeset/fix-changelog-gate.md +0 −5
.changeset/fix-detect-squad-dir-zero-deps.md +0 −7
.changeset/fix-dev-ci-failures.md +0 −40
.changeset/fix-doctor-casting-upgrade.md +0 −5
.changeset/fix-init-noargs-createteam.md +0 −11
.changeset/fix-nap-archival-budget.md +0 −12
.changeset/fix-nap-subprocess-cwd.md +0 −9
.changeset/fix-onboarding-mode-bail.md +0 −5
.changeset/fix-readme-migration-guide-link.md +0 −5
.changeset/fix-roster-sync.md +0 −5
.changeset/fix-silent-agent-md-skip.md +0 −6
.changeset/fix-team-root-all-commands.md +0 −5
.changeset/fix-triage-label-slug.md +0 −8
.changeset/fix-watch-windows-shared-fetch.md +0 −17
.changeset/fleet-dispatch-hybrid.md +0 −5
.changeset/git-state-backends.md +0 −17
.changeset/init-upgrade-parity-tests.md +0 −8
.changeset/iterative-retrieval-skill.md +0 −5
.changeset/keda-scaler-docs.md +0 −10
.changeset/loop-command.md +0 −9
.changeset/machine-capability-routing.md +0 −15
.changeset/manifest-driven-skills.md +0 −17
.changeset/notification-routing-skill.md +0 −6
.changeset/persistent-ralph.md +0 −11
.changeset/quiet-notifications.md +0 −13
.changeset/ralph-two-pass-scan-skill.md +0 −4
.changeset/readiness-file-list.md +0 −7
.changeset/readiness-rerun.md +0 −8
.changeset/reflect-skill.md +0 −5
.changeset/retro-enforcement.md +0 −12
.changeset/scope-boundary-check.md +0 −8
.changeset/scratch-dir-utility.md +0 −10
.changeset/sdk-parity-batch2-tests.md +0 −5
.changeset/sdk-parity-batch3-tests.md +0 −11
... +343 more files

Total: +41012 −9742


This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.

@tamirdresher tamirdresher added the release:next Targeted for next release label Jun 7, 2026
@tamirdresher

Copy link
Copy Markdown
Collaborator Author

@bradygaster — same Policy Gate "CHANGELOG Write Protection" will block this one too (CHANGELOG.md modified, tamirdresher not on APPROVED_AUTHORS). Heads up so you can admin-merge again once CI completes.

If you'd rather a durable fix, I can open a tiny PR adding tamirdresher to APPROVED_AUTHORS in squad-ci.yml:254 — that'd prevent the issue on future releases.

After this lands, squad-release.yml auto-tags v0.10.0 + creates the GitHub Release. Then I'll manually dispatch squad-npm-publish.yml (GITHUB_TOKEN propagation gap).

Thanks for the quick #1218 merge! 🚀

bradygaster
bradygaster previously approved these changes Jun 7, 2026
…radygaster#1220)

Allows tamirdresher (co-maintainer per CODEOWNERS in PR bradygaster#1217) to drive
release PRs that modify CHANGELOG.md directly, matching established repo
convention (PR bradygaster#1023 — chore: release v0.9.4 — was tamirdresher-authored).

Without this change, every release PR from tamirdresher requires admin
merge override on the CHANGELOG Write Protection gate (see PRs bradygaster#1218,
bradygaster#1219 for v0.10.0).

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

Copy link
Copy Markdown
Collaborator Author

@bradygaster — all green here, just needs your CODEOWNER approval click. Branch protection requires it (you're the sole CODEOWNER until #1217 lands).

✅ Policy Gates (now passes thanks to #1220)
✅ test (4m37s)
✅ all other CI checks

After your approval + merge: squad-release.yml auto-tags v0.10.0, then I dispatch squad-npm-publish.yml. Last human click. 🚀

@bradygaster bradygaster merged commit ec3a221 into bradygaster:main Jun 7, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:next Targeted for next release

Projects

None yet

Development

Successfully merging this pull request may close these issues.