feat(dictionary): retitle the search route, strip page search bars, and rebuild the sources page - #2114
Conversation
…nd rebuild the sources page Four surface changes across Dictionary mode, all UI-only. Topics: the page-level topic search and the descriptive subtitle are gone. Twelve collections fit on one screen and the universal composer already searches the whole dictionary; kind filtering and sort stay as a compact toolbar carrying the visible collection count. Compare: the descriptive subtitle under the title is removed, so the header sits level with its action row. Sources: the governance page is now a read-only surface. The universal composer no longer mounts on /dictionary/sources (the route declares searchComposerVisible: false, which also releases the phone dock reserve), the source-index search field is gone, and the introductory paragraph is replaced by a four-tile stat strip carrying the same facts in checkable form. The layout is rebuilt as five numbered sections in one full-width column — the previous 20rem right rail carried only organisation coverage and left two thirds of the viewport empty beside a thirteen-row index. Coverage is now its own card section, the index splits into two columns from lg, and the page dropped "use client" since nothing on it is stateful. Search: the results band was the first element under the mode nav, so its card edge sat flush against the tab rule with no page title and no breathing room. The route now opens with its own titled header, the four result lenses moved out of the band's filter row (which the band hides below sm whenever a phone control is supplied, so they were unreachable on a phone) into a wrapping rail visible at every width, and the filter trigger rides the band's utility rail beside sort instead of a row of its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMJ4s1H93vDAUjK3KudBzZ
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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:43 minutes Limit details: You’ve used all 1 included review currently available under your plan. You completed 102 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour. 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 (7)
Comment |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QMJ4s1H93vDAUjK3KudBzZ
Run PR sweep found this PR already clean (all required checks green, no unresolved review threads); the only action was syncing the branch from main via GitHub's update-branch API. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015qDHwBNZYyRLdJHqSkiYTg
Summary
/dictionary/topics): removed the page-level "Search topics" field and the descriptive subtitle under the title. Twelve collections fit on one screen and the universal composer already searches the whole dictionary, so the row is now a compact toolbar carrying the visible collection count plus the kind filter and A–Z sort (sort is no longer phone-hidden). Deep-linked?q=filtering still works./dictionary/compare): removed the descriptive subtitle under "Compare terms", so the header sits level with its action row./dictionary/sources): the governance page is now a read-only surface. The universal composer no longer mounts there (searchShellPropsForPathnamereturnssearchComposerVisible: falsefor that exact path, which also releases the phone dock reserve — measured 88px → 32px bottom padding), the source-index search field is gone, and the introductory paragraph is replaced by a four-tile stat strip (13 sources · 11/13 Australian · 96 linked entries · sources checked 18 Aug 2026) carrying the same facts in checkable form. The layout is rebuilt as five numbered sections in one full-width column: the previous 20rem right rail carried only organisation coverage and left two thirds of the viewport empty beside a thirteen-row source index. Coverage is now its own card section, the index splits into two columns fromlg, and the page dropped"use client"because nothing on it is stateful any more./dictionary/search): the results band was the first element under the mode nav, so its card edge sat flush against the tab rule with no page title and no breathing room. The route now opens with its own titled header (eyebrow +h1), the four result lenses moved out of the band's filter row — which the band hides belowsmwhenever a phone control is supplied, so they were unreachable on a phone — into a wrapping rail visible at every width, and the filter trigger rides the band's utility rail beside sort instead of occupying a row of its own. The band drops toheadingLevel2 so the route still has exactly oneh1.Verification
npm run lint— clean,--max-warnings 0npm run typecheck— cleannpm run test—Test Files 670 passed (670) · Tests 7149 passed | 4 skipped (7153)(re-run after the final polish commit)npm run verify:uiwhen UI, routing, styling, browser behavior, reduced-motion, or forced-colors behavior changed — run as its affected Chromium journeys against an isolated production server rather than the whole suite:tests/ui-dictionary.spec.ts→6 passed (25.9s)(includes the axe pass under dark + forced-colors and the 320/390/1440 overflow sweep), andtests/ui-mode-nav-density.spec.ts+tests/ui-route-coverage.spec.ts→64 passed (1.6m).npm run verify:pr-local— its heavy scope repeats lint, typecheck and the full unit suite already pasted above, and the browser evidence for this diff is the Chromium journey set named above.npm run eval:retrieval:quality,npm run eval:rag,npm run eval:quality,npm run check:production-readiness,npm run verify:release— all provider-backed, and no retrieval, ranking, selection, chunking, scoring, answer-generation or environment behaviour changed.Screenshots were taken at 390px and 1440px for all four routes against
npm run ensurebefore and after.Risk and rollout
searchShellPropsForPathname, pinned by a new case intests/search-shell-props.test.tsasserting/dictionary/searchkeeps its composer and/dictionary/sourcesdoes not. Removing the two page-level search fields narrows in-page filtering on those routes; both are short lists (12 topics, 13 sources) rendered in full, and the universal composer still searches the whole dictionary from every other route.git revertthe single commit. No data, schema, or configuration change.Clinical Governance Preflight
Clinical KB Database(sjrfecxgysukkwxsowpy)The diff classifies as
clinicalRisk: truebecause it touchessrc/lib/search-shell-props.ts, a path matched onsearch. Nothing in it changes clinical content: the "Source linked is not specialist clinical approval" callout, the approval-pending wording, the per-source region and accessed dates, the authority hierarchy, and the review/corrections copy are all preserved verbatim on the rebuilt sources page. The stat strip and organisation-coverage cards are derived fromdictionary-data.tsrather than authored, so no source metadata or review status is asserted that the data does not already carry. No SaMD-relevant decision-support behaviour changed.RAG impact: no retrieval behaviour change — no file under
src/lib/rag/**, clinical-search, retrieval-selection, ranking-config, answer-ranking, the eval harness or the golden fixture is touched; the diff is dictionary presentation components plus one shell-props route case.Notes
/dictionary/browseand the topic detail pages are unchanged — those lists are long enough to need them.npm run formatwas run whole-tree and committed with the change.Generated by Claude Code