Deliver the canonical CodexUI bridge client - #47
Conversation
|
Follow-up pushed through
Verification: |
|
Follow-up |
|
Fixed the delayed/missing streamed-card regression in cc7e1e9. Some app-server item lifecycle notifications carry the stable item identity only as item.id; normalization now copies that identity into scope.itemId before presentation events are emitted. This keeps incremental rendering keyed correctly, so streamed cards appear without waiting for a later prompt/full refresh. Scope is intentionally narrow: 6 net production lines plus a regression test. No new activity indicator or other UI behavior was added. All 3 local test targets pass, including the conversation scrolling/card update suite. |
|
Follow-up fix 16c1033 corrects the ordering regression exposed by immediate streamed-card delivery. Incremental insertion no longer treats pending prompt cards as end markers, so new materialized cards remain after the locally admitted prompt and before the trailing spacer. The production change removes the prompt-marker branches (5 lines reduced to 1 condition). Added regression coverage verifies both card ordering and fixed viewport geometry; all 3 local test suites pass. |
9622143 to
b757368
Compare
b757368 to
a3695c8
Compare
Summary
ShellWidget, projection, conversation, composer, thread, and Inspector componentsPresentationModelthrough one typed, deterministic projection with stable thread/turn/item identitiesInteraction contract
Thread routing and prompt lifecycle
turn.startorturn.steerresult acknowledges a prompt; conversation events cannot infer acknowledgmentclientUserMessageId; the local and authoritative forms share one stable visual identityConversation and scrolling
Composer and Command execution
Inspector and chrome
Command executionCodex agent workspacesubtitle in one horizontal lockupSource structure
Verification
The six production-boundary tests cover socketpair transport, presentation normalization/reduction, typed projection and prompt correlation, middle-region scrolling and card geometry, layout/composer/Inspector behavior, and real
ShellWidget/FrontendSessionintegration. The four middle-region tests passed ten consecutive full-suite repetitions. The final shell integration scenario, including disconnect-at-dispatch and navigation-during-resume interleavings, passed 30 consecutive runs. The layout boundary also covers thread-list reordering without reusing Qt-owned index widgets; the focused layout scenario passed 125 normal runs, 50 ASan runs, and Valgrind with zero memory errors. Production and tests also build cleanly with-Wall -Wextra -Wpedantic -Werror;git diff --checkpasses.Runtime boundary
codex-bridgeremains a stateless router. CodexUI adds no semantic cache or persistence layer. Attachment inputs remain native app-server local-path references. Runtime connection overrides are session-only and retain SNode.C configuration as startup authority.