Skip to content
quarry Check-in [2dfd42319f]
Login

Check-in [2dfd42319f]

Overview
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: 2dfd42319fc08f68643dbf0c24e8a315269281f47632320f15574ac18fea2391
User & Date: dmestas on 2026-08-29 01:04:05.670
Other Links: branch diff | manifest | tags
Rung 4: premerge

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.

Context
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
Changes