From a5692ce3c7bcacd367d6df006685c505156318d1 Mon Sep 17 00:00:00 2001 From: Eric Law <39393654+acn-ericlaw@users.noreply.github.com> Date: Tue, 1 Sep 2026 13:47:29 -0700 Subject: [PATCH] =?UTF-8?q?chore(agent-memory):=20upgrade=204.39.0=20->=20?= =?UTF-8?q?4.39.1=20=E2=80=94=20same-thread=20merge=20claim=20precision=20?= =?UTF-8?q?(docs-only)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MERGE.md + .agent/schema.md re-copied; no behavior change. Co-Authored-By: Claude Fable 5 --- .agent/schema.md | 13 +++++++++---- .agent/version.md | 2 +- MERGE.md | 6 ++++++ memory/sessions/2026-09-01-204728.md | 11 +++++++++++ 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 memory/sessions/2026-09-01-204728.md diff --git a/.agent/schema.md b/.agent/schema.md index c2cce65..ec9339b 100644 --- a/.agent/schema.md +++ b/.agent/schema.md @@ -105,7 +105,8 @@ conventions: (`.agent/version.md` is the canonical version; `status`'s token is just a human cue.) - **Same-thread edits need a human.** Only a genuine semantic clash — both sides editing the *same* Open Thread file, or a `[ ]`→`[x]` race — warrants judgment; everything else is - mechanical. Thread files make that clash visible as a per-file conflict. + mechanical. Overlapping same-thread edits surface as a per-file conflict; separated edits + merge cleanly keeping both sides — run the contradiction check on the merged thread. - A left-behind conflict marker (`<<<<<<<`, `=======`, `>>>>>>>`) corrupts memory; `memory-lint` flags it as an ERROR. @@ -153,9 +154,13 @@ and let the review archive it flagged "superseded." See `DECAY.md` §9. **One Open Thread per file** (v4.39.0). `` is the thread's kebab fact id — the filename is the identity and **never changes** for the thread's lifetime; updates edit the file in place. This is what makes concurrent thread work merge-free: parallel branches -touching *different* threads touch different files (no conflict possible), and both sides -editing the *same* thread conflict per-file — a genuine Tier 2 semantic clash correctly -reaching a human (`MERGE.md`). +touching *different* threads touch different files (no conflict possible). Within the +*same* thread file, ordinary git merge semantics apply (v4.39.1 precision): edits to +adjacent/overlapping lines conflict — a genuine Tier 2 semantic clash correctly reaching +a human (`MERGE.md`) — while edits separated by unchanged lines merge cleanly with +**both sides kept** (nothing is lost; whether the two statements are *consistent* is the +write-time contradiction check's job, `DECAY.md` §10 — exactly as it was when threads +lived in continuity). File content is **exactly the thread's bullet block**, nothing else — the same shape that previously sat under continuity's `## Open Threads`: diff --git a/.agent/version.md b/.agent/version.md index 2bccc41..6801e8b 100644 --- a/.agent/version.md +++ b/.agent/version.md @@ -4,7 +4,7 @@ > Mode B can detect drift and upgrade in place (see the tool's `UPGRADE.md`). > `version` gates the upgrade ladder — don't hand-edit it unless you mean to. -- **version:** 4.39.0 +- **version:** 4.39.1 - **enabled_with:** 4.38.0 - **last_upgraded:** 2026-09-01 - **mode:** A diff --git a/MERGE.md b/MERGE.md index 2605e2d..819b7d9 100644 --- a/MERGE.md +++ b/MERGE.md @@ -45,6 +45,12 @@ Look at what actually diverged between the two sides: thread `[ ]`→`[x]` while the other edited it; or a fact was superseded on one side and edited on the other. The rare case — and the **only** one needing judgment. A thread-file conflict is *always* this class — the layout has already eliminated the mechanical cases. + (Precision, v4.39.1: git raises the conflict when same-thread edits touch + adjacent/overlapping lines. Edits separated by unchanged lines merge cleanly with **both + sides kept** — nothing is lost, but the merged thread may now hold two inconsistent + statements: give it the write-time contradiction check, `DECAY.md` §10. Same behavior as + when threads lived in continuity — the layout changed where conflicts land, not git's + hunk semantics.) ## (2) Resolve by tier diff --git a/memory/sessions/2026-09-01-204728.md b/memory/sessions/2026-09-01-204728.md new file mode 100644 index 0000000..5bd4c46 --- /dev/null +++ b/memory/sessions/2026-09-01-204728.md @@ -0,0 +1,11 @@ +# Session (2026-09-01T20:47:28.000Z) + +**Agent:** Claude Code + +Lightweight: Mode B upgrade 4.39.0 → 4.39.1 (docs-only PATCH — MERGE.md + .agent/schema.md +re-copied: the same-thread merge claim now states git's measured hunk boundary; no script, +protocol, or shape change). memory-lint unchanged. + +## Memory References + +(none)