Files
ai-app/docs/TODO.md

2.5 KiB

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.

From Iris's phone log export, 2026-09-07 (Compose app)

  • Crash on 2026-09-03 11:40, IllegalArgumentException: Reversed range is not supported at ToolInput.kt:200 (highlighted, inside ToolInputView -> RawBlock -> ToolCard). An AnnotatedString range was built with end before start while highlighting a tool input. Found in the per-package system log she exported; the tool input that triggered it is not in the log. Reproduce by fuzzing highlighted with inputs whose token boundaries collapse, and guard the range construction.