mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-07-12 21:02:17 +02:00
feat(core): elide historic middle-pane note snapshots from model context
Every user message sent while a note is open carries a full snapshot of that note in userMessageContext, so a long chat over one open note resends N full copies on every model call. The elision decorator now rewrites prior-turn user messages to keep the pane kind and path but replace note content above a small floor with a placeholder pointing at the still-readable file. The current message's snapshot is untouched, so "summarize this" keeps working; the system prompt already tells the model later middle-pane context overrides earlier. Config: elideHistoricMiddlePaneContent, default on. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
05d7fa41cf
commit
4fbca2dbad
3 changed files with 124 additions and 5 deletions
|
|
@ -393,18 +393,21 @@ Rules:
|
|||
The app wires the resolver through a decorator (`context-elision.ts`) that
|
||||
applies transmit-time elision to the materialized prefix: tool results from
|
||||
prior turns above a size threshold are replaced with a short placeholder
|
||||
telling the model to re-run the tool if it needs the output, and inline
|
||||
image parts from prior turns (video-mode webcam and screen-share frames) are
|
||||
telling the model to re-run the tool if it needs the output; inline image
|
||||
parts from prior turns (video-mode webcam and screen-share frames) are
|
||||
replaced with a text part recording how many frames of each kind were
|
||||
dropped. The durable log is untouched; only the transmitted bytes change.
|
||||
dropped; and middle-pane note snapshots on prior-turn user messages keep
|
||||
their kind and path but have their content replaced with a placeholder
|
||||
pointing at the still-readable file. The durable log is untouched; only the
|
||||
transmitted bytes change.
|
||||
Elision is a pure function of each message, so resolved prefixes stay
|
||||
byte-stable across calls (provider prefix caches keep working), and the
|
||||
current turn's own messages never pass through the resolver, so in-flight
|
||||
tool results and just-captured frames are always sent verbatim. Policy lives
|
||||
in `config/context.json` (`elideHistoricToolResults`, default true;
|
||||
`elideHistoricToolResultsThresholdChars`, default 10000;
|
||||
`elideHistoricImages`, default true). The inspect CLI composes through the
|
||||
same decorated resolver.
|
||||
`elideHistoricImages`, default true; `elideHistoricMiddlePaneContent`,
|
||||
default true). The inspect CLI composes through the same decorated resolver.
|
||||
|
||||
### 6.7 Agent snapshot inheritance
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue