Fix TUI project-root recovery leftovers#245
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reached
More reviews will be available in 16 minutes and 32 seconds. 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 To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. 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 (15)
📝 WalkthroughWalkthroughThe PR removes the ChangesInbox View and Route Removal
Dashboard Project Root Scoping
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 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 |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
src/notifications.test.ts (1)
170-174: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winAssert
"inbox"absence explicitly in this test.Line 173 uses
arrayContaining, so the test still passes if"inbox"is present as an extra view.Suggested assertion hardening
expect(events).toEqual([ expect.objectContaining({ type: "alert", sessionId: "codex-1" }), expect.objectContaining({ type: "project_update", sessionId: "codex-1", views: expect.arrayContaining(["coordination-worklist", "notifications"]), }), ]); + const projectUpdate = events[1] as { views?: string[] }; + expect(projectUpdate.views ?? []).not.toContain("inbox");🤖 Prompt for 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. In `@src/notifications.test.ts` around lines 170 - 174, The project update notification assertion in notifications.test.ts is too permissive because arrayContaining still allows extra views like "inbox". Update the test around the project_update expectation to explicitly verify that the views array contains "coordination-worklist" and "notifications" while also asserting that "inbox" is not present, using the existing project_update object in the test.
🤖 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/multiplexer/dashboard-control.ts`:
- Line 718: The direct call to markSessionViewed in dashboard-control bypasses
the dashboard API boundary and can miss project-scoped writes for
session/notification metadata. Update the dashboard control flow to invoke this
through an existing request helper or add a new project-root-aware dashboard API
helper, using the markSessionViewed and dashboardProjectRoot(host) path as the
target location to route the write correctly.
- Around line 1162-1167: The endpoint health cache in dashboard-control is keyed
only by projectServiceEndpointHealthKey(endpoint), which can return a stale
"current" result even when projectRoot changes and
endpointMatchesCurrentProjectService now validates projectStateDir against
projectRoot. Update the cache lookup and the cached writer in the same
health-check flow to include the resolved projectRoot in the cache identity, so
both the read and write paths are scoped to the endpoint plus project root.
- Around line 65-67: The dashboardProjectRoot helper is validating
host.projectRoot with trim() but still returning the untrimmed value, so
normalize the returned project root before it is used for state dirs, daemon
calls, and endpoint identity. Update dashboardProjectRoot to return the trimmed
host.projectRoot when it is a non-empty string, and keep the process.cwd()
fallback for missing or blank values.
---
Nitpick comments:
In `@src/notifications.test.ts`:
- Around line 170-174: The project update notification assertion in
notifications.test.ts is too permissive because arrayContaining still allows
extra views like "inbox". Update the test around the project_update expectation
to explicitly verify that the views array contains "coordination-worklist" and
"notifications" while also asserting that "inbox" is not present, using the
existing project_update object in the test.
🪄 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: edf73f97-ad93-46ed-a8cf-490bfd192d04
📒 Files selected for processing (12)
app/app/(main)/_layout.tsxsrc/debug-state.tssrc/metadata-server.test.tssrc/metadata-server.tssrc/multiplexer/dashboard-control.test.tssrc/multiplexer/dashboard-control.tssrc/multiplexer/project-event-stream.test.tssrc/multiplexer/project-event-stream.tssrc/notifications.test.tssrc/project-api-contract.test.tssrc/project-api-contract.tssrc/project-events.ts
💤 Files with no reviewable changes (1)
- src/project-api-contract.ts
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Resolved the CodeRabbit summary items in 941ed62: trimmed dashboard project roots, scoped endpoint health cache by project state dir, routed TUI notification focus/mark-seen through project-service API, and hardened the inbox-absence assertion. |
Summary
Verification
Summary by CodeRabbit