Skip to content

ci: classify three historical candidate-to-squash differences #2480

Open

Description

@schlessera

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

  1. added
    type: choreTooling, CI, release plumbing, dependencies.
    area: ciCI workflows, the gates they run, release scripts, packaging.
    agent-readyContext and acceptance criteria are complete enough for an agent to take this unattended.
    on Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyContext and acceptance criteria are complete enough for an agent to take this unattended.area: ciCI workflows, the gates they run, release scripts, packaging.type: choreTooling, CI, release plumbing, dependencies.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions