From ea108acac5bee7d5bf1409fac859620143108e0c Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 17 Sep 2026 11:41:30 -0400 Subject: [PATCH] fix(docs): two comments cited the wrong snippet for the duplication (#4102) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both said the repeated read-and-clamp was "canon #2860 across 295 of 372 siblings". Wrong on both halves, and checked rather than assumed: #2860 is "Scribe service function — the async_session unit", the service-layer canon, and its instance count is that canon's dominance in src/scribe/services — nothing to do with a threshold helper. The divergence hook flagged the new module against it because the new module is a service, which is the hook working correctly and me misreading it. The duplication itself was real and is what the registry consolidated: `plugin_context` read and clamped the pair twice over, three rule arms did it again, and `reply_preferences._threshold` once more. The comments now say that, and claim nothing about a ledger count. `rule_usage.py:122` cites #2860 correctly as the service canon and is untouched. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01821k5B3Ysecp9fNYs92Kuy --- src/scribe/services/plugin_context.py | 3 +-- src/scribe/services/retrieval_surfaces.py | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/scribe/services/plugin_context.py b/src/scribe/services/plugin_context.py index 6d154f9..b6ed2fc 100644 --- a/src/scribe/services/plugin_context.py +++ b/src/scribe/services/plugin_context.py @@ -618,8 +618,7 @@ async def get_autoinject_config(user_id: int) -> dict: THE TWO NUMBERS COME FROM THE REGISTRY NOW (#4102). They used to be read and clamped here, and identically again in `get_writepath_config`, and again in - three rule arms, and once more in `reply_preferences` — the duplication the - shape ledger counts as canon #2860 across 295 of 372 siblings. That was + three rule arms, and once more in `reply_preferences`. That was tolerable while the values were shipped constants. It stops being tolerable once a tool is expected to MOVE them, because a tuning surface cannot be consistent across arms that each spell their configuration differently. diff --git a/src/scribe/services/retrieval_surfaces.py b/src/scribe/services/retrieval_surfaces.py index a6ebbd0..bd6063e 100644 --- a/src/scribe/services/retrieval_surfaces.py +++ b/src/scribe/services/retrieval_surfaces.py @@ -4,9 +4,10 @@ WHY THIS EXISTS Six push arms each carried their own loose copy of the same shape: a settings key, a default, and a limit that was usually a module constant nobody could -change. `_threshold()` was duplicated so widely that the shape ledger counts it -as canon across 295 of 372 judged siblings (snippet #2860). That was survivable -while the numbers were shipped constants an operator occasionally edited. +change. The read-and-clamp was written out separately in `plugin_context` (twice +over, for auto-inject and the write path), in three rule arms, and again as +`reply_preferences._threshold`. That was survivable while the numbers were +shipped constants an operator occasionally edited. It stops being survivable once the numbers are meant to MOVE. The operator's decision for this step: