Repository navigation
fix(web): idle conversations redraw on every display refresh - #285
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs maintainer review before merge. Reviewed October 7, 2026, 1:46 AM ET / 05:46 UTC (Revision 2). ClawSweeper reviewWhat this changesStops hidden conversation typing dots from animating, limits unread indicators to three pulses, and updates browser regressions, documentation, and embedded web assets. Merge readiness✅ Ready for maintainer review This PR remains useful: main and v0.7.0 still run the continuous animations. The focused patch and inspected browser rendering evidence support landing it, with no blocking findings. Priority: P2 Review scores
Verification
How this fits togetherClickClack’s conversation UI receives typing activity and unread-message state and displays status indicators beside the transcript and composer. Shared CSS controls these indicators in the browser and embedded desktop frontend. flowchart TD
A[Typing activity] --> C[Conversation status]
B[Unread messages] --> C
C --> D{Indicator visible}
D -->|Typing visible| E[Animated typing dots]
D -->|Typing hidden| F[Static reserved status area]
C --> G[Three unread pulses then static cue]
Before mergeNone. Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Keep idle indicators static while preserving live typing, agent responses, unread counts, layout, and accessibility. Do we have a high-confidence way to reproduce the issue? Yes. Main keeps hidden typing dots mounted with infinite animations, and contributor Chromium diagnostics record continuous idle draws before the fix; this reviewer did not execute the app. Is this the best way to solve the issue? Yes. Two shared CSS rules remove unnecessary animation without changing component lifecycle, status layout, accessibility, or desktop throttling. AGENTS.md: found, but no applicable review policy affected this item. Codex review notes: model internal, reasoning medium; reviewed against d59e80401c77. LabelsLabel changes: No label changes. Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
HistoryReview history (1 earlier review cycle)
|
Keep hidden typing indicators static and limit unread pulses to three cycles while preserving live typing, layout and accessibility. Co-authored-by: Isaiah Knight <323176659+isaiahknight-va@users.noreply.github.com>
f188a74 to
cb867fe
Compare
|
Merged as 022da89. Thanks @isaiahknight-va.
All checks passed on cb867fe: server/web/Docker/browser CI and Windows/macOS/Linux desktop CI, including embedded asset repeatability. The PR’s inspected synthetic captures document the preserved layout; animation-state assertions establish the performance-related behavior change. |
Idle conversations kept rendering every display refresh because the mounted, invisible typing dots still ran their CSS animation. Stop that animation while hidden, preserving the reserved status band and persistent live region. Visible typing and agent responses still animate. Limit the unread dot to three pulses, then keep its static cue and count visible.
The candidate includes browser regressions, regenerated embedded assets, documentation, and Unreleased entries. Thanks @isaiahknight-va.
On AWS Crabbox, all four new cases failed against unchanged production CSS. After the fix, all four passed, followed by full
pnpm check. Independent Codex review is scoped-clean through P2, including the embedded assets. Exact-head GitHub CI must pass before merge.The inspected synthetic Chromium captures below show the preserved idle layout. The regression assertions establish the animation difference; static screenshots alone do not measure rendering or CPU usage. Additional contributor rendering traces are available on the proof branch.