Small decisions. Interesting possibilities.Submit contentSubmit

Fast Jev Compaction

A Claude Code plugin experiments with pruning context instead of summarizing it.

Added to Jevfast

How it uses Jev

It sends Jev the conversation history, oldest first, with tool outputs represented by short notes and oversized state compacted to fit. For each eligible tool call, Jev answers two Noul questions: whether the call itself should stay and whether its full result should stay verbatim. Code uses those probabilities against a threshold to keep both, truncate the result, or remove the call and result.

What Jev decides

Jev trial request and response2 of 14 questions shown
Question 1 · call t5
YOUR APP
INSTRUCTION

Tool call t5 (Edit) should stay in the history: knowing this call was made, with its input, still matters for what the assistant does next

STATE

Demo conversation: a parser test was fixed and passed; the latest user request is to add a changelog entry. The call under review edited src/parser.ts, and its result is represented by an omitted-output note.

JEV · NOUL
Yes No
Question 2 · result t5
YOUR APP
INSTRUCTION

The full output of tool call t5 (Edit, 40 chars) should stay in the history verbatim: the assistant still needs its contents and re-running the tool would not do

STATE

Demo conversation: a parser test was fixed and passed; the latest user request is to add a changelog entry. The call under review edited src/parser.ts, and its result is represented by an omitted-output note.

JEV · NOUL
Yes No

App workflow

  1. Pair tool activity

    Match each tool_use with its tool_result; pin calls in the first or newest preserved messages.

  2. Fit the conversation state

    Send the full history with tool results omitted, applying staged truncation and abridging if needed.

  3. Ask whether to keep

    For each unpinned call, ask Noul about retaining the call and retaining its full result.

  4. Apply the decisions

    Keep both when the result probability clears the threshold; otherwise truncate the result if the call clears it, or remove both.

Why it is interesting

It uses typed judgments to prune transcript structure while preserving retained text exactly, instead of asking a generative model to summarize it. Separating the call from its result lets the system keep provenance while dropping bulky output.