Skip to content

feat(dictionary): retitle the search route, strip page search bars, and rebuild the sources page - #2114

Merged
BigSimmo merged 6 commits into
mainfrom
claude/dictionary-mode-ui-updates-uwoicy
Aug 18, 2026
Merged

feat(dictionary): retitle the search route, strip page search bars, and rebuild the sources page#2114
BigSimmo merged 6 commits into
mainfrom
claude/dictionary-mode-ui-updates-uwoicy

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

  • Topics (/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.
  • Compare (/dictionary/compare): removed the descriptive subtitle under "Compare terms", so the header sits level with its action row.
  • Sources (/dictionary/sources): the governance page is now a read-only surface. The universal composer no longer mounts there (searchShellPropsForPathname returns searchComposerVisible: false for 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 from lg, and the page dropped "use client" because nothing on it is stateful any more.
  • Search (/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 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 occupying a row of its own. The band drops to headingLevel 2 so the route still has exactly one h1.

Verification

  • npm run lint — clean, --max-warnings 0
  • npm run typecheck — clean
  • npm run testTest Files 670 passed (670) · Tests 7149 passed | 4 skipped (7153) (re-run after the final polish commit)
  • npm run verify:ui when 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.ts6 passed (25.9s) (includes the axe pass under dark + forced-colors and the 320/390/1440 overflow sweep), and tests/ui-mode-nav-density.spec.ts + tests/ui-route-coverage.spec.ts64 passed (1.6m).
  • Verification not run: 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.
  • Verification not run: 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 ensure before and after.

Risk and rollout

  • Risk: presentation only. The one behavioural change outside a component is a single-path composer suppression in searchShellPropsForPathname, pinned by a new case in tests/search-shell-props.test.ts asserting /dictionary/search keeps its composer and /dictionary/sources does 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.
  • Rollback: git revert the single commit. No data, schema, or configuration change.
  • Provider or production effects: None.

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy)
  • Service-role keys and private document access remain server-only
  • Demo/synthetic content remains clearly separated from real clinical sources
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

The diff classifies as clinicalRisk: true because it touches src/lib/search-shell-props.ts, a path matched on search. 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 from dictionary-data.ts rather 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

  • The dictionary's own in-page search fields on /dictionary/browse and the topic detail pages are unchanged — those lists are long enough to need them.
  • npm run format was run whole-tree and committed with the change.

Generated by Claude Code

…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
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@supabase

supabaseBot commented Aug 18, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitaiBot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6828c0f1-2f08-4106-90a5-16601c03d963

📥 Commits

Reviewing files that changed from the base of the PR and between f86b81f and b601d1d.

📒 Files selected for processing (7)
  • docs/branch-review-records/2def7e3195b192726b0e31499f86e26f9e51b9ab0d231421d15e91bed9e13665.record.md
  • docs/branch-review-records/3cefd0b317247513501ba8e6a5088ccb5e089481047931ea74fd8400f3f390a3.record.md
  • src/components/dictionary/dictionary-catalogue-pages.tsx
  • src/components/dictionary/dictionary-compare-page.tsx
  • src/components/dictionary/dictionary-sources-page.tsx
  • src/lib/search-shell-props.ts
  • tests/search-shell-props.test.ts

Comment @coderabbitai help to get the list of available commands.

claudeand others added 3 commits August 18, 2026 10:50
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
@BigSimmo
BigSimmo enabled auto-merge (squash) August 18, 2026 11:56
@BigSimmo
BigSimmo merged commit 1c08bc5 into mainAug 18, 2026
26 checks passed
@BigSimmo
BigSimmo deleted the claude/dictionary-mode-ui-updates-uwoicy branch August 18, 2026 12:18
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@BigSimmo@claude