# 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. ## App — reconnect - [ ] Restarting the app onto a session with a saved anchor, while a long reply was streaming, left it reconnecting every 1.5s (`RECONNECT_DELAY_MS`) with the spinner up until the server was restarted. `events?after=N` more than `CATCH_UP_LIMIT` (200) behind answers `reset` plus the newest 200 *raw* deltas -- a window starting mid-message -- and the reset clears `items`, which is the state the restore loop then pages against. **May already be fixed:** the restore's one-event-per-request bug was part of what made it so visible and has since been fixed, so the first thing to find out is whether this survives that. Found 2026-09-03. ## 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.