Refine Exposé tiles: aligned header, status detail + recency, heavy focus border - #151
Conversation
- Inset the pill/context header rows by the marker width so they line up under the title text in the top rule (instead of hugging the left border). - Show the agent's status text (the dashboard's "last message" semantics) after the pill on the status row. - Indicate the focused tile with a bolder heavy-line border (┏━┓┃┗┛) instead of a distinct selection color; the border always reflects the agent state, bright when focused and dimmed otherwise. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Plumb the agent's last-event timestamp into the tmux window metadata
(lastActivityAt) so Exposé can show dashboard-style relative recency
("41s ago") next to the status pill, alongside the status text.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 13 minutes and 1 second. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughAdds an optional ChangesExposé tile recency display and heavy-border selection
Sequence Diagram(s)sequenceDiagram
participant Session as session-runtime-core
participant Meta as TmuxWindowMetadata
participant Draw as drawTile
participant Recency as formatRelativeRecency
participant Header as buildTileHeader
Session->>Meta: populate lastActivityAt (lastEvent.ts ?? updatedAt)
Draw->>Recency: lastActivityAt
Recency-->>Draw: "3m ago"
Draw->>Header: context, pillStr, detail="3m ago · statusText", inset
Header-->>Draw: ruleTitle, headerRows (pill row + wrapped context)
Draw->>Draw: render borders with heavy box chars (selected) or light (unselected)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/tmux/expose-tile.test.ts`:
- Around line 112-121: The test is using real wall-clock time (Date.now()) to
calculate the lastActivityAt timestamp, but then asserting an exact "41s ago"
string in the expectations. Small execution delays can cause the elapsed time to
increment to 42 seconds or more, causing intermittent failures. Mock the current
time (using a testing utility like jest.useFakeTimers or similar) to fix the
current time before creating the lastActivityAt timestamp and calling
renderTile, ensuring the elapsed time calculation is always deterministic. Set
the mocked "now" such that the expected 41 second difference matches exactly
when the tile is rendered.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 8fd4ac34-e71e-497c-bbe2-59bb93dc5ba8
📒 Files selected for processing (4)
src/multiplexer/session-runtime-core.tssrc/tmux/expose-tile.test.tssrc/tmux/expose.tssrc/tmux/runtime-manager.ts
…cy test - fitHeaderRows is now told the status row is worth keeping when it carries the recency/status detail even if there's no status pill, so a recency-only row isn't dropped on a short tile. - Use a minutes-bucket delta in the recency tests so the assertion can't flake on sub-second wall-clock drift. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Concurrent sub-agent review — one finding beyond the CodeRabbit thread (fixed in 3354172):
|
What
Follow-up polish on the Exposé tile restyle (#150), from live review.
41s ago). To make recency available, the agent's last-event timestamp is plumbed into the tmux window metadata aslastActivityAt(syncTmuxWindowMetadata), then rendered viaformatRelativeRecency.┏━┓┃┗┛); unselected stays light (╭─╮│╰╯). Both always carry the agent's state color (bright when focused, dimmed otherwise), so there's no distinct "selection blue".Preview
Tests
🤖 Generated with Claude Code
Summary by CodeRabbit