Measured against a session streaming 20 events a second. Reopening one with an anchor 1,800 events back connects 87-119 events behind, under CATCH_UP_LIMIT's 200 -- the restore is two requests now, the opening page and one span covering the whole distance to the anchor, where the report was written against a restore that took thirteen. Three provocations, no repeat connection between them: that reopen, twenty seconds backgrounded while 415 events were produced, and a reset forced by dropping the limit to 5, where the app cleared, refilled and carried on without reconnecting. So the TODO entry goes. What stays is the instrument that answered it: every SSE subscriber now logs at debug the cursor it arrived with and whether it was continued or reset, since nothing else could say. The app sees a window arrive and cannot tell how far it had fallen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
36 lines
1.9 KiB
Markdown
36 lines
1.9 KiB
Markdown
# TODO
|
|
|
|
Working list from Iris, 2026-09-03. Remove an entry when it lands; annotate
|
|
one in place when it turns out to need a decision.
|
|
|
|
## App — transcript
|
|
|
|
- [ ] Messages received from other agents are inconsistent — sometimes they
|
|
appear, sometimes they don't. **Needs a rig.** Read the code rather than
|
|
measured: a live Claude session only learns of a peer message from the
|
|
`origin` object on a turn's `result`
|
|
(`session/claude/translate.rs`), which the CLI attaches to a turn the
|
|
message *started*. So a message that arrives mid-turn, or a second one
|
|
within one turn, has nowhere to be reported — while an imported session,
|
|
which syncs from the CLI's own file, picks up every one of them. That
|
|
would show exactly as "sometimes". Confirming it means driving a real
|
|
stream-json session and sending it messages in both states.
|
|
|
|
## Session settings
|
|
|
|
- [ ] Autocompact belongs in session settings; empty disables it, which is the
|
|
default. Iris chose "hand it to the driver" — only where a driver has
|
|
auto-compaction of its own. **That option was offered on a false premise
|
|
and is not buildable yet.** It named pi's `set_auto_compaction`, but pi
|
|
was never built as a driver here: `session/llama.rs` talks to
|
|
`llama-server`'s OpenAI-compatible endpoint directly, and its `compact()`
|
|
refuses outright. Claude Code's auto-compaction is the CLI's own and
|
|
nothing in the stream-json control protocol this app uses configures it.
|
|
So the setting would be stored, passed to a driver, refused by every one
|
|
of them, and the field would never appear on any session. What is needed
|
|
first is either a driver that can take it, or a different rule — the
|
|
server watching `contextTokens` and running `/compact` itself is the one
|
|
that would work today, for Claude sessions, and it is the option that was
|
|
not chosen.
|
|
|