Repository navigation
fix(release): deterministically classify platform-conditional skips in release reconciliation (preview.2) - #2305
Conversation
Make the MCP root migration tests self-describe their platform gates and teach release reconciliation the two exact skip identities. Keep truly unexplained skips release-blocking with focused coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 995eea17-c356-4912-90ea-5e5b144e7ba9
🛫 PR Readiness Check
PR Scope: 🔧 Infrastructure
|
| Status | Check | Details |
|---|---|---|
| ❌ | Single commit | 3 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 | No source files changed — changeset not required |
| ✅ | 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 (6 files, +278 −13)
| File | +/− |
|---|---|
.github/workflows/squad-release-verify.yml |
+49 −0 |
scripts/release/build-manifest.mjs |
+1 −1 |
scripts/release/manifest.schema.json |
+1 −1 |
scripts/release/test-reconciliation.mjs |
+76 −9 |
test/mcp-root-write.test.ts |
+2 −2 |
test/test-reconciliation.test.ts |
+149 −0 |
Total: +278 −13
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
🟡 Impact Analysis — PR #2305Risk tier: 🟡 MEDIUM 📊 Summary
🎯 Risk Factors
📦 Modules Affectedci-workflows (1 file)
scripts (3 files)
tests (2 files)
This report is generated automatically for every PR. See #733 for details. |
There was a problem hiding this comment.
🟢 Approval recommended
The changes are narrowly scoped, preserve strict reconciliation behavior, and have focused regression coverage with no unresolved findings.
No open issues 🎉
What changed in this PR
Closes the release-reconciliation follow-up from #2303 by classifying the two platform-conditional MCP tests while preserving strict failure behavior for unexplained skips.
Changes:
- Adds explicit platform markers to both conditional test titles.
- Adds narrowly scoped reconciliation rules and extracts the existing failure decision into a testable helper.
- Adds regression coverage for the Windows-only skip in a Linux-shaped report and for an unexplained skip remaining release-blocking.
| File | Description |
|---|---|
test/test-reconciliation.test.ts |
Tests expected skip classification and strict unexplained-skip failure. |
test/mcp-root-write.test.ts |
Labels the two platform-conditional tests explicitly. |
scripts/release/test-reconciliation.mjs |
Adds targeted classification rules and exposes the failure-decision helper. |
Review effort: Balanced
Make release reconciliation platform-aware and fail closed when a platform-specific test skips where it must execute. Add hosted Windows evidence that requires the Windows-only drive-hash test to pass. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 995eea17-c356-4912-90ea-5e5b144e7ba9
🏗️ Architectural Review
Automated architectural review — informational only. |
|
Revision pushed in separate commits, preserving Data's original work:
Local verification: 66 passed / 1 expected platform skip across reconciliation, root-write, and release-policy suites; hosted-shape build plus root-write passed 17 / 1 expected skip; check-release-scripts passed; actionlint passed; TypeScript lint, ESLint, and build passed. This addresses RV-1, RV-2. |
The targeted Windows suite imports the workspace SDK package, so build both workspaces after npm ci before collecting the hosted Windows evidence. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 995eea17-c356-4912-90ea-5e5b144e7ba9
Summary
mcp-root-writeplatform-conditional tests self-describing with exact[platform: ...]title markers--fail-on-unexplainedWhy
After #2301 and #2303 merged, Release Verify on Linux completed the full suite but failed reconciliation because the Windows-only legacy drive-hash test was reported as an unexplained skip. The test and gate both predated #2303. This closes the residual deterministically before preview.2 packaging, as required by Q and Bubu: "Fix or deterministically classify the base-owned skip, test that behavior, and produce a green required run."
Validation
40089168164: now reconciles green (env-gated: 106,unexplained: 0)env-gated: 1,unexplained: 0)npm run lint: passedPackaging
No changeset. Only repository release tooling and tests changed; neither publish allowlist includes
scripts/releaseor repositorytest/.