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: