Repository navigation
Replies: 10 comments 3 replies
|
Would like this to be configurable as well. |
|
+1. This is an issue I'm facing in T3 Code right now. Here is data from my own threads, plus one gap I don't see covered here yet. Data (nightly builds from Oct 8–9; current build 0.0.46-nightly.20261008.2849). Each row is a pre-send
Each time, I pressed Enter to reply to the agent, not to compact. Gap not covered yet: the 100K threshold ignores "Auto-compact after". All 8 were below the 500K limit I set on purpose to keep long sessions intact. Compact-before-send uses a fixed 100K threshold and never reads What would fix it for me:
|
|
Data point from a 1M-context model ( |
|
This one terrible ui/default decision has probably burned hundreds of millions of tokens by now. |
|
This is totally useless anyway. Compacting is done by the same model and will consume the same amount of uncached tokens as sending a prompt directly in the chat. There is no advantage of doing a /compact on a stale (expired cache) thread over just sending the prompt directly. |
|
This feature (bug?) is making t3 code borderline unusable... could the maintainers take a look? cc @t3dotgg @maria-rcks @juliusmarminge |
|
This is intensely annoying as my cache TTL is 5 min. Anyway you can turn it off with the dev console localStorage.setItem("t3code:resume-compaction-dismissed", ask your agent for the proper syntax etc. |
|
Workaround until #19643 or a similar setting lands. It hides the Compact chip for good, so Enter and Send keep the full history. The localStorage key needs both your environment ID and the provider instance ID:
python3 -c 'import json,os; h=os.path.expanduser("~/.t3/userdata/"); e=open(h+"environment-id").read().strip(); p=json.load(open(h+"settings.json")).get("providerInstances",{}); ids=sorted({"claudeAgent",*[k for k,v in p.items() if v.get("driver")=="claudeAgent"]}); print("%s.forEach(id=>localStorage.setItem(`t3code:resume-compaction-dismissed:%s:${id}`,\"true\"));location.reload()" % (json.dumps(ids), e))'
Run it again after adding a Claude instance. Clearing the app's data removes the keys. Checked against |
|
This feature is why theo needs 8 claude accounts |

Uh oh!
There was an error while loading. Please reload this page.
Problem
Since #16631 (and its chip form, #17127), a Claude thread with 100k+ tokens that has been idle for 70+ minutes compacts on send: Enter runs
/compactfirst, then sends the message. The chip/menu lets me skip that for one send, and the choice resets (per thread, and on reload/remount).For some workflows compaction is never the right default. I keep long-lived agent sessions whose state I manage outside the transcript (durable notes in the repo, re-read on resume), and I deliberately resume old threads with full history, accepting the cold-cache cost. For me an accidental Enter is an irreversible loss of the conversation's working context — and the default is the destructive path on every stale thread, every time.
There is already a permanent off switch in the code — the
t3code:resume-compaction-dismissed:<environmentId>:<providerInstanceId>localStorage flag — but the only UI path that sets it is answering "Don't ask again" on Claude's own resume dialog, which (per the #16631 notes) practically never appears under the v2 orchestrator. Today the only way to turn the offer off is DevTools →localStorage.setItem(...)per environment and per client.Proposed behavior
A client setting, e.g. Settings → General → "Compact stale Claude threads before sending" (on by default is fine), that:
/compact— sends always keep full history;Related: #17111 (the chevron that offers the opt-out does nothing in a resting composer, so every send compacts).
All reactions