Stop compaction spacer text from becoming a model echo loop - #851
Conversation
TheGreatAxios
left a comment
There was a problem hiding this comment.
Verdict: approve (cannot GitHub-approve own PR).
CL-7539 holds at 5cc6df72. Spacers stamp model: "harness"; frozen-prefix matching requires that producer id; a spacer-only model reply is incomplete; consecutive compact cycles cap at 2; exhausted echoes stay on workflow and open-task rails. Role-alternation for consecutive user summaries still inserts a harness spacer.
No blocking or should-fix findings. [compact] remains a visible lexical token by adapter necessity; the loop is stopped by producer identity + echo-incomplete, not invisibility.
TheGreatAxios
left a comment
There was a problem hiding this comment.
Verdict: approve (GitHub cannot approve own PR).
CL-7539 holds at 5cc6df72. Spacers stamp model: "harness"; frozen-prefix matching requires that producer id; a spacer-only model reply is incomplete; consecutive compact cycles cap at 2; exhausted echoes stay on workflow and open-task rails. Role-alternation for consecutive user summaries still inserts a harness spacer.
No blocking or should-fix findings. [compact] remains a visible lexical token by adapter necessity; the loop is stopped by producer identity + echo-incomplete, not invisibility.
5cc6df7 to
c8b3dad
Compare
c8b3dad to
026a3f2
Compare
026a3f2 to
07b32f2
Compare
Harness spacers were a natural-language token the model could copy as a finished turn. Frozen-prefix matching then treated the echo as harness-inserted, so idle compact re-armed and the prefix grew.
Missing model is not a producer id (replay sanitizer fills it), and a format-category sentinel can be dropped by adapters. Stamp reserved model harness, keep a visible sentinel, and keep exhausted spacer echoes on workflow and open-task rails.
07b32f2 to
396539c
Compare
Summary
Verification
Fixes CL-7539