Keep the last tool call outside its group once it finishes

A call left its group only while it was running, so the moment a command ended
it vanished behind "Called 3 tools" -- and a session that has run its last
command and is composing its answer, or has finished the turn entirely, spends
most of its time in exactly that state. What folds a call back into its run is
therefore not finishing but being overtaken: anything arriving behind it, a
reply included, makes it history.

Standing outside the run is the call's place in the list as it is now rather
than something recorded on the call, so it is asked of the list while grouping
it, where the rest of that decision already lives.

Checked with ktfmtFormat, compileDebugKotlin, testDebugUnitTest and lintDebug,
and on the emulator against the sandbox: "/tools 3 1" settles as "Called 2
tools" with the third Bash card beneath it, and folds to "Called 3 tools" the
moment the next reply lands.
This commit is contained in:
iris-ai committed 2026-09-15 01:52:51 -04:00
1 parent 036eb375aa
commit 1e52b2910c
4 files changed
+75 -42

No files matched your search

+10 -7
View File
@@ -1099,13 +1099,16 @@ dev-updater (Kotlin 2.4.x, CMP 1.11.x, JDK 21).
- The transcript rendered from the event stream: markdown, inline images,
tool cards, question cards.
- **A run of adjacent tool calls is one collapsed card, except for the
call still running** (2026-09-15). What the session is doing right now
is the one thing worth seeing without opening anything, and a heading
counting it hides it; the call folds back into its run the moment it
ends, which is the moment it stops being what is happening. Grouping is
a display decision (`groupToolRuns`) and a cut run's pieces are keyed
there — the first piece keeps the run's name, since that name is what
survives a page of history landing in front of it.
call still running and the last call in the transcript** (2026-09-15).
What the session is doing right now, or did last, is the one thing worth
seeing without opening anything, and a heading counting it hides it. What
folds a call back into its run is not finishing but being *overtaken*:
anything arriving behind it, a reply included, makes it history, and a
session that has run its last command and is composing its answer leaves
that command standing until the answer starts. Grouping is a display
decision (`groupToolRuns`) and a cut run's pieces are keyed there — the
first piece keeps the run's name, since that name is what survives a page
of history landing in front of it.
- **Anything that is a note *about* the conversation rather than a turn in
it is closed by default** — a tool call, a peer message, a memory note.
Open-ness is the screen's, never the card's: a card that remembered for