feat(nav): shared mode secondary navigation (from #1319) - #1336
Conversation
Add the shared secondary-navigation system (SecondaryNavigation, PageSecondaryNavigation, mode-secondary-navigation registry) and wire it into GlobalSearchShell for its owned namespaced modes. - New: src/components/secondary-navigation.tsx, page-secondary-navigation.tsx, src/lib/mode-secondary-navigation.ts (+ 3 test files, 51 tests). - GlobalSearchShell renders PageSecondaryNavigation in normal flow at the top of #main-content; it self-suppresses on clean mode homes, locally-owned detail routes (medications, factsheets, differentials diagnoses) and Therapy Compass. - Specifiers/Formulation keep their existing local Subnav, so the shared mode bar is skipped for those modes to avoid a duplicate row on their workflow routes. - Reuses main's richer information-pages.ts (isInformationPage) unchanged. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 34 minutes Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. 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 Run ID: 📒 Files selected for processing (11)
Comment |
|
@cursoragent Inspect the PR and repository state, identify the root cause of every failing CI check, unresolved review comment, merge conflict, and related defect. Apply the smallest robust fix using existing project patterns and best practices, without unrelated changes. Run Bugbot and all relevant lint, type-check, test, build, and CI-equivalent commands, fix any issues found, then resolve only the review comments that are fully addressed. Summarise the root causes, changes made, validation results, and any remaining blockers. |
|
#1336 is merged ( Root causes found
Fixes landed (now on
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d15985733f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex resolve actionable Codex review findings for this pull request and current head using the repository instructions. This is the pull request's single automatic repair pass: do not perform a fresh review, create new standalone findings, or request another review. Work only the existing unresolved Codex threads on the current head. Always fix P0 and P1 findings. For P2 and lower findings, fix only clear, scoped, low-risk issues; otherwise disposition them with a concise reason. After fixing or dispositioning a thread, reply in that thread with as the first line, followed by a concise summary; that marker authorizes the workflow to close that exact thread. If human input or new authorization is required, do not use the marker and leave the thread open with the blocker. Finish only after every actionable thread is fixed or dispositioned and closed, or explicitly left open for a human decision. Do not update the branch from main, address unrelated reviews, broaden scope, or create more than one scoped fix commit. Do not use external APIs, paid services, credentials, dependency changes, or broad refactors unless explicitly authorized. Add targeted tests where behavior changes and run the narrowest relevant validation. |
Pass the shell-bridged searchParamString into PageSecondaryNavigation instead of calling useSearchParams under the standalone body. Suppress document-detail shared section nav so DocumentViewerAnchors stays the sole owner, and require a submitted query before showing /documents/search mode secondary nav. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@cursor review Bugbot-equivalent babysit on tip: fixed two P1s (standalone-shell |
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Stop using scrollIntoView for active secondary-nav chips so long record reading is not yanked vertically when the in-flow bar is off-screen. Add the service-detail section ids the shared "On this page" registry targets, with a contract test that keeps them in sync. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>


Summary
mainwithout replaying its stale search-chrome rewrite.mode-secondary-navigationregistry +SecondaryNavigation/PageSecondaryNavigation) and wires it intoGlobalSearchShellfor namespaced modes.searchParamString(nouseSearchParamsunder standalone body), suppress DocumentViewer-owned routes, require submitted query for/documents/search, horizontal-only active-chip rail scroll, and bind service “On this page” targets to realservice-detail-pagesection ids.Verification
npm run verify:cheapon prior tip — full unit suite 4189 passed (4 skipped); lint/typecheck/docs/guards greennpx tsc --noEmitexit 0--max-warnings 0exit 0npm run buildexit 0 (prior tip)origin/main(merge-tree clean)verify:ui/verify:phone-chromenot executed locally; hosted Production UI re-running on tipnpm run verify:pr-localbefore merge handoffRisk and rollout
global-search-shelland service detail anchors; mitigated by DocumentViewer ownership suppression, bridged search params (search-chrome invariant 17), and horizontal-only chip scrollNotes
ClinicalDashboard), land section ids on remaining detail families, Playwright phone-chrome proof.RAG impact: no retrieval behaviour change — navigation chrome only; no retrieval/ranking/eval surfaces.