Repository navigation
ci: classify three historical candidate-to-squash differences #2480
Description
Out of scope
Assuming these were unsafe merges, assigning a product-regression cause from CI status, weakening current identity checks, changing merge strategy or repairing unrelated tests.
Context
Read-only throughput analysis found three cases where a final-head green aggregate's recorded base/tree differ from the actual squash parent/tree. The measurement is a literal comparison, not independent validation of every selected job or a diagnosis. The existing merge procedure requires actual immutable parent/tree reconciliation (merge, scripts/integrate.ts:74-96). The evidence collector and its limitations are in PR #2477.
Public source runs and actual squash identities:
| PR | Green source run | Recorded base | Actual squash | Actual parent |
|---|---|---|---|---|
| #2063 | https://github.com/schlessera/brain-kit/actions/runs/38900599104 | 3fc6fea5e22304df2810348074c32b1983fbea46 |
cd5e8bb04b0d0e24f1a6c4d4f73e17f1b3fe4908 |
7d1a31d09b96739a85bff5151cc2e1300c9ac4d0 |
| #2293 | https://github.com/schlessera/brain-kit/actions/runs/39063935324 | 2a0b77f675da2f01c32adba3f4920650a5ee09fa |
0d780605fe1ea9a281cce947b1f0074f3f3e7acc |
5c670c6f93842717c9a3723606ebcbd7aa52406f |
| #2384 | https://github.com/schlessera/brain-kit/actions/runs/39079730529 | 63fde3c8fe76e754aa4524f95b23f9786f4447fe |
775eb17aab740fa759c2182f306c38fc17acbcbe |
b7a0885181445125d576e02f61c562d704c81099 |
The recorded tree differs from the squash tree in all three. First-main outcomes are failure for #2063 and success for the other two; those statuses do not establish causality.
Scope
Classify each historical difference against its actual strategy, then-current policy, final checkout/receipt evidence and any separately recorded post-merge reconciliation. Correct a measurement attribution error if found; otherwise distinguish already-qualified historical reconciliation from a genuine proof gap. Reference existing related work rather than duplicate it.
Acceptance criteria
- Reproduce the immutable receipt/commit comparison from the public run logs and Git objects, retaining source run/attempt/job and head/base/tree identities.
- Read the PR discussions, review/merge strategy and applicable policy revision for every case. Distinguish ordinary squash from any separately qualified stack/queue behavior.
- Record an explicit classification and evidence per case. A documented measurement false positive or already-qualified reconciliation is an acceptable result.
- File any newly confirmed actionable gap separately with checkable criteria; do not infer a regression from a non-green main workflow.
- The throughput evidence ledger links the classifications without calling unknown evidence a guarantee.
Verification
Read-only GitHub API/log and immutable Git inspection. If measurement code changes, add a focused offline fixture and failing-first/restored receipt. No paid provider calls or full-suite benchmark is required.
Contract impact
None. Historical evidence classification and repository-only measurement tooling.
Activity