Repository navigation
fix(chat): keep the answer visible when a recycle notice trails it - #15120
Conversation
findConclusionIdx picked the last substantive conclusion item, so the assistant-role watchdog recycle notice won over the real answer and the answer folded into the collapsed steps pane. Skip system notice rows (compaction, session reload) when choosing the conclusion. Fixes kirodotdev#15115
GPT 5.6 Review (fork) — ✅ no blocking findingsReviewed Review detailsNo findings. |
First Principles Review (Fable 5, fork) — ✅ PASSPremise-level review of First-Principles-Verdict: PASS Verify a turn whose only assistant row IS the notice: What this change shipsInventory (3 items) — 3 justifiedIntent: FIX — keep a finished turn's answer visible when a trailing watchdog recycle notice would otherwise be picked as the conclusion (#15115, test fails on base).
Evidence: the fix reuses the existing shared predicate [FIRST-PRINCIPLES-REVIEWED] 868b028 Description read[DESCRIPTION-READ] f451874c34aa411e1e1ae26eef5ea37504efe59b8a432d821f6cdb97fccd2b1f That sha256 names the PR description this verdict read. Recompute it with |
Design Review (Fable 5, fork) — ✅ PASSDesign-level review of Design-Verdict: PASS Verify a turn whose only assistant row is the notice (recycle with no answer) still renders acceptably — it now takes the no-conclusion flat path in collapseAll. [DESIGN-REVIEWED] 868b028 Description read[DESCRIPTION-READ] c701d07cfd2dfe23e201c2fa10614560ba1fabfc18269454ebfc0d1108941dda That sha256 names everything this verdict read: the PR description, plus the 1 evidence file(s) the workflow collected from it and handed this review. It covers that evidence because the media strip replaces every attachment URL with the same placeholder, so an edit swapping one attachment for another would leave the description's captured text identical while what this review judged changed. Recompute it with |
UX Review (Fable 5, fork) — ✅ PASSUX-level review of UX-Verdict: PASS Verify once in a live recycled session that the answer renders above the ♻️ banner, both outside the "Worked through N steps" fold. The diff adds or changes no user-visible control, label, or string — it only fixes which existing item is picked as the always-visible conclusion, restoring the product's standard turn layout (answer visible, notice trailing it, per the [UX-REVIEWED] 868b028 Description read[DESCRIPTION-READ] abb97a9917ff47a093af60162bc8ff17b7f2401930519e5d4d0db37bd14fb990 That sha256 names everything this verdict read: the PR description, plus the 3 evidence file(s) the workflow collected from it and handed this review. It covers that evidence because the media strip replaces every attachment URL with the same placeholder, so an edit swapping one attachment for another would leave the description's captured text identical while what this review judged changed. Recompute it with |
Opus 5 Review (fork) — ✅ no blocking findingsReviewed Review detailsA trailing system notice was the only FINDING — website/src/pages/chat/TurnBlock.tsx:218 — [OPUS-REVIEWED] 868b028 |
bolichen97
left a comment
There was a problem hiding this comment.
Reviewed on behalf of the maintainers (sweep 2026-09-30): readiness passed, required checks green on 868b028, no blocking review threads, security posture unchanged. Approving and merging.
…15120) (#15578) findConclusionIdx picked the last substantive conclusion item, so the assistant-role watchdog recycle notice won over the real answer and the answer folded into the collapsed steps pane. Skip system notice rows (compaction, session reload) when choosing the conclusion. Fixes #15115 (cherry picked from commit ea8af27) Co-authored-by: Y.B. <[email protected]>
Problem / Motivation
Goal: Keep a finished turn's answer visible when the watchdog recycle notice lands after it.
findConclusionIdxpicked the last substantive item, so the recycle notice won and the answer folded into the collapsed steps pane.Why it matters
The answer looks missing until the pane is expanded.
Not a goal
What changed (motivation → approach → change)
The conclusion choice now skips system notice rows (compaction, session reload, recycle), so the answer stays the final message and the banner follows it. Added a test for both
collapseAllsettings.Backwards compatibility
Compatible: only which item is chosen as the conclusion changes.
Tests
website/src/test/TurnBlock.test.tsx: 39 passed. The new test failed before the fix. Full suite not run.Manual verification
N/A: unit coverage sufficient.
Screenshots / video
no-visual-delta. Why no screenshot: only item selection changes, covered by the test.
Related Issues
Fixes #15115.
Pattern harvest
Not generalizable: one-off ordering assumption in a single helper.
Checklist
feat|fix|docs|style|refactor|perf|test|chore|ci|build|revert: ...)Contribution License Agreement
N/A: the template says the CLA wording is still a placeholder.