fix(chat): place loading status after response - #27
Conversation
|
Warning Review limit reached
Next review available in: 57 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
Verification
Subtest: renderable stream text paints immediately and centralized transcript takes over after completion
ok 1 - renderable stream text paints immediately and centralized transcript takes over after completion
duration_ms: 2.478375
...
Subtest: active compaction owns the live-response surface without stopping stream processing
ok 2 - active compaction owns the live-response surface without stopping stream processing
duration_ms: 1.140875
...
Subtest: transcript ownership is declared after its deferred source and before handoff reads it
ok 3 - transcript ownership is declared after its deferred source and before handoff reads it
duration_ms: 1.598708
...
Subtest: conversation transcript receives transcript ownership as an explicit prop
ok 4 - conversation transcript receives transcript ownership as an explicit prop
duration_ms: 0.364333
...
Subtest: retry status uses a compact accessible inline status treatment
ok 5 - retry status uses a compact accessible inline status treatment
duration_ms: 0.594209
...
Subtest: dismissed live status notifications stay dismissed across retry heartbeats
ok 6 - dismissed live status notifications stay dismissed across retry heartbeats
duration_ms: 0.301791
...
Subtest: compaction divider exposes a clear toggle affordance
ok 7 - compaction divider exposes a clear toggle affordance
duration_ms: 0.570417
...
Subtest: raw text delta envelopes update the live response before final hydration
ok 8 - raw text delta envelopes update the live response before final hydration
duration_ms: 1.3165
...
Subtest: a text-labeled delta stays in reasoning when its SDK part was already typed as reasoning
ok 9 - a text-labeled delta stays in reasoning when its SDK part was already typed as reasoning
duration_ms: 1.1505
...
Subtest: assistant phase changes retain activity but reset response-card ownership
ok 10 - assistant phase changes retain activity but reset response-card ownership
duration_ms: 0.760709
...
Subtest: wrapped SDK stream events pass the visible-turn admission condition
ok 11 - wrapped SDK stream events pass the visible-turn admission condition
duration_ms: 0.273
...
Subtest: sync-wrapped assistant parts can bootstrap the live response
ok 12 - sync-wrapped assistant parts can bootstrap the live response
duration_ms: 0.283166
...
Subtest: stable live SDK events use the same activity projection source as hydration
ok 13 - stable live SDK events use the same activity projection source as hydration
duration_ms: 0.415041
...
Subtest: continuous stream batches remain urgent enough to paint
ok 14 - continuous stream batches remain urgent enough to paint
duration_ms: 2.133
...
Subtest: the shell does not leak loading text into the composer
ok 15 - the shell does not leak loading text into the composer
duration_ms: 1.329834
...
Subtest: the live response card owns the AI loading text until its response finishes
ok 16 - the live response card owns the AI loading text until its response finishes
duration_ms: 1.443834
...
Subtest: the live loading text follows the response card
ok 17 - the live loading text follows the response card
duration_ms: 0.262209
...
Subtest: active assistant cards do not use intrinsic virtualization height
ok 18 - active assistant cards do not use intrinsic virtualization height
duration_ms: 0.277791
...
Subtest: an active transcript placeholder does not suppress live event rendering
ok 19 - an active transcript placeholder does not suppress live event rendering
duration_ms: 0.118583
...
Subtest: ChatShell passes transcript ownership to the live-card handoff
ok 20 - ChatShell passes transcript ownership to the live-card handoff
duration_ms: 0.298167
...
Subtest: reasoning-only transcript phases do not replace the live activity timeline
ok 21 - reasoning-only transcript phases do not replace the live activity timeline
duration_ms: 0.222125
...
Subtest: persisted assistant cards cannot read the session-global live stream
ok 22 - persisted assistant cards cannot read the session-global live stream
duration_ms: 0.23675
...
Subtest: a terminal assistant block stays locked despite late streaming events
ok 23 - a terminal assistant block stays locked despite late streaming events
duration_ms: 0.294291
...
Subtest: stream admission reconstructs the terminal lock from hydrated assistant history
ok 24 - stream admission reconstructs the terminal lock from hydrated assistant history
duration_ms: 1.020542
...
Subtest: the message-less streaming card rerenders for each active SSE update
ok 25 - the message-less streaming card rerenders for each active SSE update
duration_ms: 3.026083
...
1..25
tests 25
suites 0
pass 25
fail 0
cancelled 0
skipped 0
todo 0
duration_ms 119.245167
vite v5.4.21 building for production...
transforming...
✓ 1534 modules transformed.
rendering chunks...
computing gzip size...
dist/ThemeFileIcon.css 2.18 kB │ gzip: 0.80 kB
dist/chat.css 271.00 kB │ gzip: 45.69 kB
dist/walkthrough.js 2.39 kB │ gzip: 0.88 kB
dist/textarea.js 12.55 kB │ gzip: 3.53 kB
dist/plan.js 36.02 kB │ gzip: 7.69 kB
dist/chat.js 1,613.87 kB │ gzip: 290.97 kB
dist/ThemeFileIcon.js 1,866.17 kB │ gzip: 476.06 kB
✓ built in 3.30s
Merged 2 CSS files into chat.css
Closes #22