From 2e60fe508b9dd7cd726e3d482ab2c81537e04f19 Mon Sep 17 00:00:00 2001 From: Eric Law <39393654+acn-ericlaw@users.noreply.github.com> Date: Mon, 5 Oct 2026 10:14:39 -0700 Subject: [PATCH] =?UTF-8?q?chore(agent-memory):=20upgrade=204.42.2=20?= =?UTF-8?q?=E2=86=92=204.42.3=20=E2=80=94=20the=20step-6=20commit=20check,?= =?UTF-8?q?=20measured=20in=20the=20field?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mode B upgrade (PATCH, guidance only). Reconcile re-copied REVIEW.md and .agent/schema.md (stock 4.42.2 before); the protocol is unchanged, so there is no semantic step. Stamped 4.42.3. Ran in a throwaway worktree of origin/main. Co-Authored-By: Claude Opus 5.5 --- .agent/schema.md | 5 +++++ .agent/version.md | 4 ++-- REVIEW.md | 33 ++++++++++++++++++---------- memory/sessions/2026-10-05-171415.md | 16 ++++++++++++++ 4 files changed, 45 insertions(+), 13 deletions(-) create mode 100644 memory/sessions/2026-10-05-171415.md diff --git a/.agent/schema.md b/.agent/schema.md index e629749..caa49cd 100644 --- a/.agent/schema.md +++ b/.agent/schema.md @@ -135,6 +135,11 @@ ordinary fact, `core` for an Architectural Invariant — and seeds `last_used: < | uses: 1`. It does **not** hand-edit `uses`/`last_used`/`tier` afterward; those are recomputed by the review from session-log `## Memory References` (see `DECAY.md` §1). +**A fact that governs specific files names them in backticks** (v4.42.3) — repo-relative paths such as +`templates/*/pom.xml` or `system/rest-spring-3/`, a `` for a segment that varies. Before +archiving a fact as faded, the review lists the window's commits that touch those paths (`REVIEW.md` +step 6, *declaration gaps*); a path written without backticks is invisible to that check. + `## Architectural Invariants` facts and unchecked Open Threads (`- [ ]`) never decay. Never decaying is not never checked: an unchecked thread not referenced for more than `thread_stale_window` sessions is **stalled** and the review lists it in a human closure gate diff --git a/.agent/version.md b/.agent/version.md index b7abdf6..1a7e9a8 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.42.2 +- **version:** 4.42.3 - **enabled_with:** 4.38.0 -- **last_upgraded:** 2026-10-04 +- **last_upgraded:** 2026-10-05 - **mode:** A diff --git a/REVIEW.md b/REVIEW.md index b3353e7..c213f7f 100644 --- a/REVIEW.md +++ b/REVIEW.md @@ -137,17 +137,28 @@ stalled thread as `[thread-stale]`, so the condition cannot hide. exactly one place). Record the result in the summary. (Superseded facts are exempt — they archive on truth-state, not recency.) - **Declaration gaps (facts, v4.42.1; commit check v4.42.2)** — the fact-level twin of step 5's - thread rule. Both checks above count only *declared* uses, and a fact consulted to make a decision - leaves no edit to the fact, so for **each** fact archived as *faded*, look for undeclared use of - its **subject** — the code, rule or contract it records, not its id — in two places: - - **The window's commits — start here.** List the commits since the oldest `archive_window` log - that touch a path the fact names: `git log --since= --format='%h %s' -- ` - (its backticked paths; a `` becomes `*`). Leave out a path that most commits touch - — a hub such as `AGENTS.md`, `UPGRADE.md` or `memory/continuity.md` flags every fact; the measured - cut keeps a path touched by at most 5% of all commits (`git rev-list --count HEAD -- ` - against `git rev-list --count HEAD`). Each commit maps to the session log it carries, else the - next one. + **Declaration gaps (facts, v4.42.1; commit check v4.42.2, refined v4.42.3)** — the fact-level + twin of step 5's thread rule. Both checks above count only *declared* uses, and a fact consulted to + make a decision leaves no edit to the fact, so for **each** fact archived as *faded*, look for + undeclared use of its **subject** — the code, rule or contract it records, not its id — in two + places: + - **The window's commits — start here.** The window's work begins where the log *before* it ends + (the newest log older than the `archive_window` logs), so list the commits after that log's full + timestamp that touch a path the fact names: + `git log --since= --format='%h %s' -- ` (its backticked paths — + `.agent/schema.md` asks a fact that governs files to name them so; a `` becomes `*`). + Take the timestamp from the log's file name (`2026-09-30-164034` → `2026-09-30T16:40:34Z`) and + never pass a bare date: git completes one with the current time of day. Leave out a **hub** — a + path touched by more than 5% of all commits **and** by more than 5% of the window's commits, at + least two of them (`git rev-list --count [--since=] HEAD -- ` against + `git rev-list --count [--since=] HEAD`): `AGENTS.md`, `UPGRADE.md` or + `memory/continuity.md` would flag every fact. Busy over all history is not enough: a path that was + busy once and is quiet now — a retired module kept as a placeholder that only a release sweep + touches — carries exactly the rare commit this check exists for, and a path the window touched once + is never a hub, since one candidate is cheap to check. Each commit maps to the session log it + carries, else to the log carried by the next commit in history that carries one — never the next + log by file name: a log is named when first written and may be enriched by later commits. Only the + window's logs count. - **The window's logs.** Search them for the subject's distinctive terms (backticked identifiers, words from its bold title), skipping `## Memory Review` and `## Memory References` blocks. diff --git a/memory/sessions/2026-10-05-171415.md b/memory/sessions/2026-10-05-171415.md new file mode 100644 index 0000000..78225b1 --- /dev/null +++ b/memory/sessions/2026-10-05-171415.md @@ -0,0 +1,16 @@ +# Session (2026-10-05T17:14:15.825Z) + +**Agent:** Claude Code + +Lightweight: Mode B upgrade 4.42.2 → 4.42.3 (PATCH — the step-6 commit check, measured in the field: a hub is a +path busy over all history and in the window, and a path the window touched once is never one; the window starts at +the full timestamp of the log before it, never a bare date; a commit without a log maps to the next log-carrying +commit in history; the schema asks a fact that governs files to name them in backticks; from the mercury-composable +/ mercury report). Reconcile re-copied REVIEW.md and .agent/schema.md (each stock 4.42.2 before — staleness only). +Protocol — unchanged (no semantic step). Adapters re-synced; stamped 4.42.3; both re-copied files byte-identical to +their MANIFEST sources. Ran in a throwaway worktree of origin/main (`--forge github`). memory-lint: 0 errors, 4 +warning(s). Upstream release: https://github.com/Accenture/mercury-go/releases/tag/v4.42.3 . + +## Memory References + +(none)