fix(ui): preserve session state and pending settings through overlapp…

fix(ui): preserve session state and pending settings through overlapping events (#152375)

* fix(control-ui): reject stale session events before pane delivery

Use the shared session observation owner to capture and reconcile events
before notifying mounted panes. Keep current reset and rowless delivery
while preventing an older incarnation from clearing the current transcript.

* fix: preserve current chat ownership through session recovery

Integrate main while preserving the published session-event repair ancestry.
Reconcile event delivery through the shared owner, fence reentrant pane
bindings, and recover queued messages against their visible session owner.

The complete tree matches the reviewed and qualified source, including
canonical persisted-message metadata in the held-history browser regression.

* test: wait for the first passive history request

* fix: integrate session event ownership with current main

* fix(ui): retain admitted session settings through overlapping updates

* fix(ui): preserve session events across incarnation replacement

Integrate current session ancestry and goal recovery while retaining shared pending settings ownership. Rebind retired pane observations before their successor emits its first message, and replace polling in the new regressions with completion signals.

* refactor(ui): share pending row updates and keep startup within budget

Use one ordered set of optimistic field owners, inline scoped event delivery at its roster owner, and consolidate chat setting feedback. Keep shared transcript styles in a separate bundle and make browser proof selectors exclude nested tooltips. Preserve existing performance and line-count budgets.

* test(ui): assert session fences after partial model refresh

Integrate the CI main snapshot and give the partial-catalog browser fixture one explicit physical session identity. Assert that thinking and speed writes target that exact session.

* perf(ui): set approved session-state startup budget

Approve the measured integration baseline at 366336 bytes, preserving the 512-byte growth and 64-byte build-variance allowances. Replace remaining outbox-test polling with request signals and keep request inspection with the existing test host.

Co-authored-by: Peter Steinberger 
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论