| Comment: | ci: premerge — checkout helper, pair-keyed runs, per-branch mode |
|---|---|
| Timelines: | family | ancestors | descendants | both | ci-4 |
| Files: | files | file ages | folders |
| SHA3-256: |
2dfd42319fc08f68643dbf0c24e8a315 |
| User & Date: | dmestas on 2026-08-29 01:04:05.670 |
| Other Links: | branch diff | manifest | tags |
RFC 0009 §premerge, implemented. Nothing enters the DAG.
The helper
quarry-premerge --clone URL --branch-tip H --target-tip H (library: internal/premerge) clones over HTTP, opens the target tip, merges the branch tip into the working tree — zit's merge writes no check-in — and prints the prepared directory; a conflicted pair exits 2 with the files, a verdict rather than an error. It never commits, and it turns autosync off in the prepared checkout: the integration test commits in the tree on purpose and asserts the source ledger is unchanged — which is how we caught autosync pushing a test commit home through the clone's saved remote. Belt (settings) and braces (read-only credentials in production).
Pair-keyed verdicts
A premerge run's subject is pair:<branchTip>:<targetTip> — never a check-in, because the merge the accept later writes will hash differently. ci_run gained a pair column (migration for old stores); check.report accepts pair subjects, so an external CI can run the helper and report on the pair. A moved target changes the pair, so every stale verdict expires by construction — merge-queue freshness without a queue.
Per-branch mode
The protected-branches settings row gained a premerge checkbox (branch_required_checks.mode). In premerge mode the landing's checks panel and the accept gate read pair-keyed runs and pair-subject external checks only — a green tip run does not satisfy a premerge requirement (tested) — and the panel says which tree the checks are about.
Scope honesty
Engine-launched premerge runs (quarry starting them on landing events) arrive with the run-labels rung (dagnats#629); today the pair path is driven by workers/external CI via the helper + check.report. Verdict-tag carry-forward at accept and auto-accept-when-green are the next rung.
|
2026-08-29
| ||
| 01:49 | land ci-4 check-in: 7932145520 user: dmestas tags: trunk | |
| 01:09 | ci: verdict tags opt-in per repo; premerge verdicts carry onto the merge check-in: d36be0ef02 user: dmestas tags: ci-5 | |
| 01:04 | ci: premerge — checkout helper, pair-keyed runs, per-branch mode closed check-in: 2dfd42319f user: dmestas tags: ci-4 | |
| 00:55 | ci: check.report, reporter tokens, ci.trigger check-in: 28eeb18515 user: dmestas tags: ci-3 | |