Skip to content

fix(compress): hand @session and @memory output to the model whole - #1869

Merged
diillson merged 2 commits into
mainfrom
fix/compress-skip-memory-tools
Oct 22, 2026
Merged

diillson merged 2 commits into
mainfrom
fix/compress-skip-memory-tools

Conversation

@diillson

@diillson diillson commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

What

@session and @memory results are no longer run through the content-aware compressors. They join @recall, which already passed through verbatim.

Why

The compressors choose a strategy from the content. A saved conversation that mentions errors, build steps or file paths reads like a log, so the middle of a session the model opened to answer from came back as ... [152 lines omitted] .... The evidence could be cut before the model saw it, with no signal other than the marker.

Measured on LongMemEval-S (500 questions, same dataset and judge as the 2026-10-20 run):

  • 68 of 500 questions had a session or memory result cut this way. They scored 57/68 (84%), against 392/432 (91%) for the rest.
  • With this change the same cut hits 1 question (a @tools describe listing, unrelated). Those 68 now score 58/68.
  • Whole run: 451/500 (90.2%) against 449/500 before the change; the difference is inside run-to-run noise (sign test p=0.86), so this is a correctness fix, not a score claim.

Tests

  • TestLayerNeverCompressesMemoryToolOutput: 300 session-like lines compress to 3104 bytes under a log hint, and pass through byte-identical for @session, session, @memory, Memory. Fails on main (strategy log), passes here.
  • go test ./cli/... green.

The compressors pick a strategy from the content, and a saved conversation
that talks about errors, build steps or file paths reads like a log. A
session opened to answer a question came back with the middle dropped
behind a lines-omitted marker, so the evidence could be cut before the
model saw it. Both tools now join @recall in passing through verbatim.

On LongMemEval-S the cut hit 68 of 500 questions, and those scored 84%
against 91% for the rest. With the change it hits 1 (a @tools listing).
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Quality Gate

Result: ✅ all floors passed

Floor Status Result Δ vs main Budget
1 · Build & Static ✅ go build / vet / fmt / lint — —
2 · Coverage ✅ 69.6% (bootstrap) 0 ≥ baseline
3 · Patch coverage ✅ 100.0% (req ≥ 60%) — ≥ 60%
4 · AI smells ✅ diff scanned — —
5 · Scope budget ✅ 2 files / 51 LOC (code 51 + tooling 0) — warn 800·25
6 · E2E ✅ go test -race ./e2e/... — ≤ 15min
7 · Commit lint ✅ conventional commits — —
8 · Cyclo (new code) ✅ 1 file(s) under threshold — ≤ 30
9 · Secrets scan ✅ gitleaks — —
10 · i18n parity ✅ missing 0, unknown 0 — —
11 · CRD drift ✅ drifted: 0 — —
12 · License headers ✅ 0 missing — —
13 · API breaking ✅ 0 incompatible — —
14 · Binary size ✅ chatcli 100.4MB · operator 55.4MB — 100MB each
15 · Provider parity ✅ 14 providers · 0 violations — —

Config: .github/quality-gate.yml. Workflow: .github/workflows/quality-gate.yml.

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