Originally created by: adityaharishch
Summary
- In the Timeline UI, an hour with no PM/tracker context (solo mode) rendered the FULL activity report (TLDR + Core Tasks & Projects + Key Decisions + Resources Consulted) inline in the timeline row — crowding the row and duplicating what's already shown in the right-side hour-detail panel.
- Now the row shows just the TLDR paragraph (
ActivityReport.extractTldr, pulled from the report markdown via the ### TLDR heading). Clicking the row (already wired to onSelectHour) opens the full report — unchanged — in the right-side HourDetailPanel.
- No behavior change for connected (non-solo) users — they never saw the raw activity report inline to begin with (they see ticket-linked
TimelineCards).
Test plan
- [x]
tsc --noEmit clean on the touched files.
- [x] Pre-push suite (fmt, clippy, ui build/tests, cargo test, security audit) passed.
- [ ] Manual: open the dashboard in solo mode, confirm each generated-report hour shows only the TLDR line, and clicking it opens the full report on the right.
Originally posted by: coderabbitai[bot]
✨ Finishing Touches
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests - [ ] Commit unit tests in branch `feat/timeline-tldr-only-inline`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.
❤️ Share
- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)Comment
@coderabbitai helpto get the list of available commands.Originally posted by: Akarsh-Hegde
Code Review
PR [#406]: feat(timeline): show only TLDR inline for solo-mode hours
✅ Nice implementation. The new components are clean, well-documented, and use the right design tokens. The UX improvement (preview + full report on click) is solid.
Feedback:
This is especially important since there's no automated test coverage for this UI change.
extractTldr) and component (TldrPreview) but no unit tests. Consider adding a quick test for:extractTldr(report)with various markdown structures (report with TLDR, without TLDR, empty)Defensive fallback behavior when TLDR heading is missing
Design token consistency — the
TldrPreviewmixes Tailwind classes (rounded-md px-3 py-2.5 bg-box) with inline styles (the WebkitLineClamp/WebkitBoxOrient section). This is fine, but is there an existing text-clamping utility in the codebase you could reuse instead of the inline style? (Just asking if there's a precedent; if not, the inline style is reasonable.)Styling edge case — when the TLDR is very short (1 line or less), the 2-line clamp + the hint "Full report ›" on hover might create odd visual balance. Worth a quick visual check in the dashboard — does it look reasonable with both short and long TLDRs?
Related
Tickets:
#406Originally posted by: Akarsh-Hegde
Review — show only TLDR inline for solo-mode hours
Summary: A tight, well-documented UI change that swaps the full inline
ActivityReportfor a compact TLDR preview card in solo-mode timeline rows; correct and low-risk, with only minor cosmetic edge cases in the fallback path.Blocking / correctness issues
None. The render guard
isSolo && report ?(TimelineColumn.tsx:178) excludes empty/null reports beforeTldrPreviewis reached, soextractTldrnever runs onnull/"". The full report still renders on click via the unchangedHourDetailPanel, and connected users are unaffected.Suggestions / nits
ActivityReport.tsx:20— fallback dumps raw markdown as plaintext. WhenextractTldrfinds no### TLDRheading it returnsreport.trim(), rendered inside a plain<p>(line-clamped to 2). An inline heading like### TLDR: short notefails the\s*\n+match and falls back to the entire multi-section report, so the row shows### TLDR: short note … ### Core …as literal text. Acceptable given the prompt contract, but stripping#/*markers (or reusingextractTldrto drop trailing sections) would degrade more gracefully.ActivityReport.tsx:36— whitespace-only report renders an empty card. A truthy-but-all-whitespace report passes the guard yet yieldstldr === "", producing an empty "✦ Summary" card. Very unlikely from the LLM; gate onreport.trim()in the parent if you care.extractTldris exported but only consumed internally byTldrPreviewin the same module — fine (aids testing), just flagging.Strengths
###section and trims trailing whitespace (verified against multi-section input).any, both files keep the mandatory header on line 1, CSS tokens resolve, clickable-row/keyboard affordance untouched.Verdict: Approve. No blocking issues; the two nits are cosmetic fallback edge cases guarded by the prompt contract. (Ideally after the checkbox-3 manual solo-mode verification in the PR's own test plan.)
🤖 Automated review via Claude Code
Ticket changed by: adityaharishch