From cee1eb13280b5e78e6fb1dbc3fd5affaea68e32b Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Fri, 9 Oct 2026 15:42:25 -0400 Subject: [PATCH] fix(500): the section-hold marker is a ledger by name, so a compaction sweeps it The marker scribe_reply_check.sh writes after a completion-section hold sat in the swept ledger directory as `.reportcheck`, and the sweep matches `.ids` - test_every_session_file_in_a_swept_directory_follows_the_convention caught it (run 799). Renamed `.reportcheck.ids` and added to the roster. #5496. Co-Authored-By: Claude Opus 5.5 --- plugin/.claude-plugin/plugin.json | 2 +- plugin/hooks/scribe_reply_check.sh | 3 ++- tests/test_session_ledger_clear.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/plugin/.claude-plugin/plugin.json b/plugin/.claude-plugin/plugin.json index ea4e2cb5..2eab51df 100644 --- a/plugin/.claude-plugin/plugin.json +++ b/plugin/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "scribe", "description": "Scribe for Claude Code: connects the scribe MCP server, adds the hooks that deliver live project state and relevant records at the right moment, ships the shared client-neutral Scribe skills (using-scribe, writing-plans, reporting-back, systematic-debugging, verification, brainstorming, reusing-code, shape-accounting, family-canon), and syncs your saved Scribe Processes as skills (/scribe:sync).", - "version": "2026.10.09.1938", + "version": "2026.10.09.1942", "author": { "name": "Bryan Van Deusen" }, diff --git a/plugin/hooks/scribe_reply_check.sh b/plugin/hooks/scribe_reply_check.sh index a68dcd80..848d6a69 100644 --- a/plugin/hooks/scribe_reply_check.sh +++ b/plugin/hooks/scribe_reply_check.sh @@ -50,7 +50,8 @@ safe_sid=$(printf '%s' "$session_id" | tr -c 'A-Za-z0-9._-' '_') rulefile="$state_dir/${safe_sid}.rules.ids" stopfile="$state_dir/${safe_sid}.checkpoint.ids" # Set when the section check held the reply: the next stop is its rewrite. -reportfile="$state_dir/${safe_sid}.reportcheck" +# A ledger by name (`.ids`), so a compaction sweeps it with the rest. +reportfile="$state_dir/${safe_sid}.reportcheck.ids" # The rewrite after a hold goes out as written. Only a rewrite of a SECTION # hold is sent at all — to record how it came out; one after a rule hold, or diff --git a/tests/test_session_ledger_clear.py b/tests/test_session_ledger_clear.py index 93524867..6ce0e825 100644 --- a/tests/test_session_ledger_clear.py +++ b/tests/test_session_ledger_clear.py @@ -58,7 +58,7 @@ DEFS = HOOKS / "scribe_defs.sh" # the convention tests below are what keep this roster honest as it grows. LEDGERS = { "scribe-priorart": (".ids", ".rules.ids", ".opened.ids", ".sync.ids", - ".derive.ids", ".shapes.ids"), + ".derive.ids", ".shapes.ids", ".reportcheck.ids"), "scribe-autoinject": (".ids",), }