Conversation
Watchers is now split into its own tab, positioned between Related and SLAs, with a dedicated Eye icon and a live count of watchers in the tab label. The Related tab keeps only the child-cases list and drops to a single-column layout now that it's a single widget. The action bar's "Manage watchers" item jumps to the new tab. No changes to WatchersWidget or the inline add/remove behavior.
|
Warning Review limit reached
Next review available in: 25 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?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 reviews. How do review 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 refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (70)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
Consolidated into #1264 to simplify review — no code changes, same commit content. |
Purpose
The case-detail "Related" tab currently combines two unrelated concerns in one screen: the watch list (who gets notified on case updates) and child cases. Watchers aren't actually "related case" content, and cramming them into the same tab as child cases makes both harder to scan and prevents showing an unambiguous watcher count on the tab bar.
Goals
Give Watchers its own top-level tab, matching the existing pattern used by the SLAs tab, so it's independently discoverable and can carry its own count in the tab label.
Approach
In
CsmCaseDetailPage.tsx:"watchers"tab id, positioned between "Related" and "SLAs" in the tab bar, with anEyeicon (already used elsewhere in this webapp for view/visibility affordances) to keep it visually distinct from the other icons on this tab bar.WatchersWidgetrender out of the "Related" tab's content block into its own{activeTab === "watchers" && ...}block. The widget itself, its inline add/remove chip behavior, and theonAddWatcher/onRemoveWatcherhandlers are unchanged — only relocated.ChildCasesWidgetand switches from the previous 2-column grid to a single-column layout, since it's no longer combining two widgets.c.watchers.length), consistent with how SLAs/Attachments/Time/Call requests/Tasks already show counts. "Related" still shows no count (its widget runs its own scoped data fetch, so no count is available at this level without an extra query).No changes to
WatchersWidget,WatcherAddPicker, or any backend/entity-service code.User stories
As a CS engineer viewing a case, I want Watchers to have its own tab, so I can find and manage the watch list without it being mixed in with child-case information.
Release note
Case detail: Watchers now has its own tab, separate from Related.
Documentation
N/A — internal CSM-portal UI reorganization, no external-facing product documentation covers this screen.
Automation tests
Existing
CaseDetailWidgets.test.tsx(WatchersWidget unit tests) andCaseActionBar.test.tsx(secondary-action dispatch tests, including "manage watchers") pass unchanged — the tab move doesn't affect either component's own test surface. Manually verifiedtsc -b,eslint, andpnpm buildare clean.Security checks
eslintclean instead)Samples
Related PRs
Migrations (if applicable)
Test environment
Learning