Skip to content

Keep internal agent traffic out of transcript - #940

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-7797-keep-internal-agent-traffic-out-of-the-transcript
Sep 12, 2026
Merged

Keep internal agent traffic out of transcript#940
TheGreatAxios merged 2 commits into
mainfrom
cl-7797-keep-internal-agent-traffic-out-of-the-transcript

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Resolves CL-7797: https://linear.app/abklabs/issue/CL-7797/keep-internal-agent-traffic-out-of-the-transcript

Re-review waive request (residual provenance gap)

Residual: an operator turn carrying a byte-verbatim occupancy wake still drops from the scrollback on resume. The resume mark derives from the same content predicate it gates: persisted turns carry no message flags (createInboundTurn stores only {role, content, timestamp}), so turns-to-blocks marks wakes by content and a verbatim operator-typed wake is marked origin:system and dropped by hydrateHistoryRows. Provenance exists live (OPERATOR_ORIGINATED_FLAG on operator submits vs empty flags + mailbox:system on occupancy wakes) but is erased at the persistence boundary; carrying it through would mean rebuilding vendor turn persistence — out of scope for this PR.

Trigger (narrow): only a full wake line byte-verbatim (incl. em-dash) plus the JSON payload shape — i.e. a deliberate paste of a wake into the prompt box. A bare wake prefix and all ordinary operator text paint normally.

Consequence (cosmetic): one missing scrollback row on resume; model history is intact.

Locked by test: history-hydrate.test.ts → "an enveloped verbatim-wake operator turn drops end to end" asserts the drop through the full turnsToContentBlockshydrateHistoryRows pipeline, so any future claim that verbatim operator text always paints fails loudly. Commit message and code comments now state the actual behavior.

Done-when (3) letter: wakes no longer drop by content prefix alone (origin-keyed suppression); benign operator text paints; verbatim-wake operator paste is the documented exception above. Parent/operator decides: merge with this waive, or schedule provenance-persistence work.

@linear-code

linear-code Bot commented Sep 12, 2026

Copy link
Copy Markdown

CL-7797

Persisted turns carry no message flags, so the resume path dropped any
user block starting with a wake line - including verbatim operator text.
turns-to-blocks now marks wake-shaped user turns origin system at persist
time, and rowFromHistoryBlock drops only marked blocks. Bare-prefix
operator text paints, but an enveloped verbatim-wake operator turn
(deliberate paste of the full wake line plus report JSON) still drops on
resume: the mark derives from the same content predicate it gates. Narrow
trigger, cosmetic consequence (one scrollback row; model history intact).
The live path is untouched.
@TheGreatAxios
TheGreatAxios force-pushed the cl-7797-keep-internal-agent-traffic-out-of-the-transcript branch from 829b8cd to 00f2895 Compare September 12, 2026 05:37
@TheGreatAxios
TheGreatAxios merged commit 94d7cc4 into main Sep 12, 2026
8 of 9 checks passed
@TheGreatAxios
TheGreatAxios deleted the cl-7797-keep-internal-agent-traffic-out-of-the-transcript branch September 12, 2026 05:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant