Skip to content

v4.39.1 — same-thread merge claim: honest boundary

Latest

Choose a tag to compare

@acn-ericlaw acn-ericlaw released this 01 Sep 20:45
Immutable release. Only release title and notes can be modified.
664a7d7

Highlights

  • The same-thread merge claim now states what git actually guarantees. v4.39.0's docs
    said "both sides editing the same thread conflicts per-file." An independent CoPilot
    assessment, delivered the day the release shipped, flagged that as overstating git's
    hunk semantics — and live merge rehearsals confirmed it, more broadly than the
    assessment hedged: git raises a conflict only when same-thread edits touch
    adjacent/overlapping lines; edits separated by even one unchanged line merge
    cleanly, in a 5-line thread file as much as a 16-line one, with both sides kept.
  • Why this is precision, not a fix. Nothing is lost in the clean-merge case —
    keep-both is MERGE.md's own Tier 1 outcome; whether the two surviving statements are
    consistent is the write-time contradiction check's job (DECAY.md §10); and the
    pre-4.39.0 layout merged the same edits identically, so there is no regression. But the
    claim must not outrun the mechanism, so the docs now state the measured boundary and
    the contract test pins it — the honest-signal doctrine applied to the tool's own
    release claims.

What's changed

  • MERGE.md, .agent/schema.md, docs/DESIGN-merge-scale.md — the same-thread claim
    states the measured boundary (adjacent/overlapping → conflict, the Tier 2 human gate;
    separated → clean keep-both → run the contradiction check on the merged thread).
  • tests/test_thread_layout_merge.sh — two new cases pin the boundary with real git
    merges: separated same-thread edits merge clean with both edits present (documented
    behavior, not a bug), adjacent edits conflict. 4 → 6 cases, all green.
  • Lockstep: VERSION 4.39.1, CHANGELOG.md, UPGRADE.md ladder row +
    4.39.0 → 4.39.1 rung, README release row.
  • Zero behavior change: no scripts, no template protocol, no memory-file shape.

Upgrading an enabled repo

Nothing to schedule: this is a plain re-copy of MERGE.md + .agent/schema.md
(verbatim rows), which the next reconcile of any repo performs automatically — no
semantic step, no adapter re-sync, no migration. Say "AI enable this repo" whenever
convenient, or let it ride along with the next upgrade that touches the repo anyway.

Full details

  • CHANGELOG.md — Version 4.39.1
  • UPGRADE.md — the 4.39.0 → 4.39.1 rung
  • docs/DESIGN-merge-scale.md — the measured boundary, recorded where the design claim lives