CI / Build & Quality Checks (pull_request) Successful in 3m3s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 13s
CI / Playwright smoke (e2e) (pull_request) Successful in 12m57s
Two bugs in the one-row "+N" collapse: - measure() used the border box, which grows by 4 px while collapsed (margin -2 / padding 2), so a row within 4 px of fitting flipped collapsed↔expanded every frame (flicker, layout shifts, ~11 % of a core per looping message). It now measures the content box. - The collapsed style used the `margin` shorthand, which overrode the timeline's marginTop and, when removed, cleared it; the row then stuck to the message text. Longhand margins keep marginTop (minus 2 px). Verified headless (12 reactions, viewport sweep 1300–1400 px): before, 90 style flips in 1.5 s at 1344 px and margin-top 0px after a cycle; now 0 flips at every width and margin-top stays 8px. Fixes #305 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5