8f0aec449aff86000746ae88c3ae166b212f0cbf
build() always finished by calling ui_state.set_root(), which is right for a window that *is* the transcript screen and wrong for a caller embedding it beside something else (the desktop app's session list). build_tree() is build() minus that last step, returning the widget tree instead of planting it; build() is now one line on top of it, so nothing else changes for existing callers. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
DECISIONS.md: the summary file for choices made without Iris; RUST.md: note the two in-flight pieces
DECISIONS.md: the summary file for choices made without Iris; RUST.md: note the two in-flight pieces
Languages
Rust
53%
Kotlin
44.4%
Shell
2.6%