Repository navigation
fix(gh-aw): prove exact enlistment compiler version - #2130
Conversation
Closes #2129 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ❌ | Single commit | 2 commits — consider squashing before review |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | Changeset file found |
| ✅ | Scope clean | No .squad/ or docs/proposals/ files |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | Copilot threads resolved | No Copilot review threads |
| ✅ | CI passing | All checks passing |
Files Changed (9 files, +290 −41)
| File | +/− |
|---|---|
.changeset/exact-gh-aw-enlistment-version.md |
+8 −0 |
.squad-templates/skills/gh-aw-enlistment/SKILL.md |
+30 −7 |
docs/src/content/docs/guide/gh-aw.md |
+24 −3 |
packages/squad-cli/templates/skills/gh-aw-enlistment/SKILL.md |
+30 −7 |
packages/squad-sdk/templates/skills/gh-aw-enlistment/SKILL.md |
+30 −7 |
templates/skills/gh-aw-enlistment/SKILL.md |
+30 −7 |
test/gh-aw-enlistment-skill.test.ts |
+107 −2 |
workflows/skills/gh-aw-enlistment/SKILL.md |
+30 −7 |
workflows/squad-workflows.manifest.json |
+1 −1 |
Total: +290 −41
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
🟠 Impact Analysis — PR #2130Risk tier: 🟠 HIGH 📊 Summary
🎯 Risk Factors
📦 Modules Affecteddocs (1 file)
root (4 files)
squad-cli (1 file)
squad-sdk (1 file)
templates (1 file)
tests (1 file)
This report is generated automatically for every PR. See #733 for details. |
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The implementation is coherent, but the incomplete full test run and requested waiver require final human review.
Review effort: Balanced
Findings: None
What changed in this PR
Adds fail-closed verification that gh-aw is exactly v0.89.22 before generating repository artifacts.
Changes:
- Reinstalls and rechecks gh-aw on version mismatch.
- Synchronizes all enlistment skill mirrors and integrity digest.
- Adds executable coverage for success, mismatch, stderr, and persistent failure paths.
| File | Description |
|---|---|
.changeset/exact-gh-aw-enlistment-version.md |
Records CLI and SDK patch changes. |
.squad-templates/skills/gh-aw-enlistment/SKILL.md |
Updates the canonical enlistment gate. |
docs/src/content/docs/guide/gh-aw.md |
Updates the public quick start. |
packages/squad-cli/templates/skills/gh-aw-enlistment/SKILL.md |
Synchronizes the CLI template. |
packages/squad-sdk/templates/skills/gh-aw-enlistment/SKILL.md |
Synchronizes the SDK template. |
templates/skills/gh-aw-enlistment/SKILL.md |
Synchronizes the root template. |
test/gh-aw-enlistment-skill.test.ts |
Adds executable version-gate contracts. |
workflows/skills/gh-aw-enlistment/SKILL.md |
Synchronizes the workflow package skill. |
workflows/squad-workflows.manifest.json |
Refreshes the verified skill digest. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Hosted merge blocker: the required |
What
Make the public Squad gh-aw quick start and every shipped enlistment mirror prove exactly
v0.89.22, cleanly remove and reinstall the exact pin on mismatch, and stop before branch creation or repository artifact generation when the supported compiler cannot be verified. Add executable contract coverage for stderr version output, an existingv0.89.21binary, exact-version success, and persistent mismatch, plus the updated integrity digest and patch changeset.Why
gh extension install --force --pin v0.89.22 github/gh-awcan report success while retaining an older binary, and gh-aw v0.89.22 may write version output to stderr. The public setup path must fail closed instead of generating trusted repository files with an unproven compiler.Closes #2129
How
gh aw --versionwith2>&1and compare the parsed version exactly tov0.89.22.gh-aw, install only the exactv0.89.22pin, and verify again.gh aw addwhen the second verification fails.npm test -- --run test/gh-aw-enlistment-skill.test.ts test/gh-aw-install-staging.test.ts test/gh-aw-quality.test.ts test/gh-aw-bootstrap-workflow.test.ts test/gh-aw-review-guard.test.ts test/gh-aw-review-workflow.test.ts test/standalone-release-workflow.test.ts— passed, 640 tests.npm test -- --run test/gh-aw-activation-label-provisioning.test.ts test/gh-aw-activation-summary-outcomes.test.ts test/gh-aw-activation-capacity.test.ts test/gh-aw-activate-fast-path-label-provisioning.test.ts test/gh-aw-activation-temporary-ids.test.ts test/gh-aw-security-scan.test.ts test/gh-aw-deps-worker-workflow.test.ts— passed, 151 tests, including real gh-aw compilation contracts.npm run gh-aw:integrity:check— passed.npm run lint— passed.npm run build— passed.npm run lint:eslint— passed with existing warnings../node_modules/.bin/cspell --no-progress docs/src/content/docs/guide/gh-aw.md— passed.npm run docs:build— passed after restoring docs dependencies through the required npm proxy.npm testcompleted 9,943 passing tests, 40 skipped, and 47 todo, but reported six unrelated worktree-sensitive failures plus local Aspire health and npm packaging environment failures. Repository-widenpm run lint:docsis also blocked by 18 pre-existing generated API-reference lint errors outside this diff.npx changeset add/.changeset/*.md, directCHANGELOG.mdentry for maintainers, orskip-changeloglabel for no user-facing changes)PR Readiness Checklist
Branch & Commit
dev(notmain)dev(git fetch upstream && git rebase upstream/dev)git diff --cached --stat)Build & Test
npm run buildpassesnpm testpasses (all tests green)npm run lintpasses (type check clean)npm run lint:eslintpassesChangeset
npx changeset add(ifpackages/squad-sdk/src/orpackages/squad-cli/src/changed)CHANGELOG.mdentry (maintainers only — write-protected for external contributors)skip-changeloglabel applied (if no user-facing changes)Docs
Exports
Breaking Changes
None.
Waivers
Waiver requested: local full
npm testgreen status. The focused gh-aw suites pass; remaining failures are unrelated worktree-sensitive tests and local Aspire/npm packaging environment failures. Hosted required checks must pass before merge.