Skip to content

fix(release): deterministically classify platform-conditional skips in release reconciliation (preview.2) - #2305

Merged
tamirdresher merged 3 commits into
devfrom
squad2-preview2-release-verify-reconciliation
Oct 24, 2026
Merged

tamirdresher merged 3 commits into
devfrom
squad2-preview2-release-verify-reconciliation

Conversation

@tamirdresher

Copy link
Copy Markdown
Collaborator

Summary

  • makes both mcp-root-write platform-conditional tests self-describing with exact [platform: ...] title markers
  • adds narrowly scoped reconciliation rules for only those two test identities, without weakening --fail-on-unexplained
  • adds focused coverage proving a Linux-shaped Windows-only skip is classified and a truly unexplained skip remains release-blocking

Why

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

  • failing Linux artifact from run 40089168164: now reconciles green (env-gated: 106, unexplained: 0)
  • Windows targeted suite: 17 passed, 1 expected non-Windows skip; the Windows-only test executed and passed
  • Windows JSON report reconciliation: green (env-gated: 1, unexplained: 0)
  • focused Vitest: 59 passed, 1 expected platform skip
  • release script policy: 21 scripts checked; no inline workflow JavaScript
  • npm run lint: passed
  • ESLint: passed with existing warnings only

Packaging

No changeset. Only repository release tooling and tests changed; neither publish allowlist includes scripts/release or repository test/.

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
Copilot AI balanced review requested due to automatic review settings October 24, 2026 12:56
@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

🛫 PR Readiness Check

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

PR Scope: 🔧 Infrastructure

⚠️ 2 item(s) to address before review

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.

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

🟡 Impact Analysis — PR #2305

Risk tier: 🟡 MEDIUM

📊 Summary

Metric Count
Files changed 6
Files added 1
Files modified 5
Files deleted 0
Modules touched 3

🎯 Risk Factors

  • 6 files changed (6-20 → MEDIUM)
  • 3 modules touched (2-4 → MEDIUM)

📦 Modules Affected

ci-workflows (1 file)
  • .github/workflows/squad-release-verify.yml
scripts (3 files)
  • scripts/release/build-manifest.mjs
  • scripts/release/manifest.schema.json
  • scripts/release/test-reconciliation.mjs
tests (2 files)
  • test/mcp-root-write.test.ts
  • test/test-reconciliation.test.ts

This report is generated automatically for every PR. See #733 for details.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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
@github-actions

Copy link
Copy Markdown
Contributor

🏗️ Architectural Review

Authoritative evidence: base-controlled pull_request_target reporter.

⚠️ Architectural review: 1 info.

Severity Category Finding Files
ℹ️ info template-sync Template files changed in .github/workflows/ but not in other template locations. If these templates should stay in sync, consider updating the others too. Changed: .github/workflows/, Unchanged: templates/, .squad-templates/, packages/squad-cli/templates/

Automated architectural review — informational only.

@tamirdresher

tamirdresher commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator Author

Revision pushed in separate commits, preserving Data's original work:

  • 5ce687a Data: exact platform-tagged test identities and fail-closed reconciliation tests
  • fd8b6b8 Geordi: platform-aware skip predicates, validated platform claims, required execution evidence, and a targeted windows-latest Release Verify job
  • 147ee64 Geordi: build workspace packages before collecting the hosted Windows test report

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
@tamirdresher
tamirdresher merged commit 75b15cf into dev Oct 24, 2026
24 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.

2 participants