feat(ui): retire the mode-home assurance badge, keep every caveat - #1512
Conversation
The mode-home footer looked like one component doing one job, but it was
doing two. On five modes it asserted only what the mode does; on nine it
carried a review-before-use instruction. Both were rendered as an accent-blue
semibold label behind a ShieldCheck — a shield-and-tick reads as "verified",
which is exactly what the PT-06 comment in answer-status.tsx says the
pre-query copy must not assert, since validation status varies per document
and is surfaced on the results themselves. On the answer hero it also sat
~40px from a ShieldAlert meaning the opposite, and outranked the APP-5
privacy line beneath it at 11px muted.
The badge treatment is gone everywhere: no icon, no accent colour, one quiet
11px line with hierarchy from weight alone. The `icon` prop is removed from
the component and every call site.
Removed outright, having said only what the mode does:
answer Searches indexed clinical sources · Clinical Guide library
documents Searches indexed clinical sources · Clinical source collection
favourites Saved clinical work · Local library
tools Clinical tools · Source-backed workflows
Retained and restyled, because the body is a genuine caveat: differentials
("Review before use"), prescribing ("Confirm against source"), formulation,
specifiers, therapy-compass (x2), factsheets, dsm, forms. Services is also
retained: its footer carries verifiedCount/totalCount, whose screen-reader
"N of M records are locally verified" line would otherwise be lost — caught
only because deleting it broke a ternary and forced a second look.
No wording changed. This is the styling and the four pure-claim deletions
only; the separate proposal to add a verify-before-use sentence to the answer
hero is deliberately not included here, because that is new clinical copy
needing sign-off rather than a design change.
verify:cheap: 443 test files / 4643 passed, plus lint, typecheck and the 29
static gates. Two failures in tests/codex-cloud-setup.test.ts are pre-existing
— reproduced on clean origin/main with these changes stashed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPyFcMfn1jMmphr6AqiWBgWarning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:53 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 (1)
📝 WalkthroughWalkthroughThe shared verification footer now uses compact text without an icon. Callers remove icon props and unused imports. Several launcher and clinical empty states no longer render the footer. ChangesVerification footer simplification
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
Comment |
BigSimmo
commented
Jul 31, 2026
Temporarily closing to preserve the serialized merge queue while #1510 exact-head validation is restored. This PR will be reviewed in the next queue slot. |
BigSimmo
commented
Jul 31, 2026
@coderabbitai please run a new review of this closed PR for me |
✅ Action performedReview finished.
|
… wrap The middot was a free-standing glyph between two spans, so a wrapped line left it dangling at the end of the first line, detached from the clause it was joining. Measured at 390px: five of the nine remaining footers wrapped — forms, specifiers, formulation, therapy-compass and factsheets — and every one of them split the dot from its body. Replaced with sentence punctuation. A full stop binds to the preceding word, so it can never begin or end a line alone, and it is the more honest mark: these are two statements, not two items in a list. The container also moves from flex to centred balanced text, so a wrapped second line centres under the first instead of left-aligning ragged. before Hypothesis-led decision support · Check fit, alternatives, risk, and context before using a draft after Hypothesis-led decision support. Check fit, alternatives, risk, and context before using a draft No wording changed; the four modes that already fitted one line still do. Verified by re-measuring all nine at 390px in Chromium: no stranded separator, zero page errors. npm run test: 443 files / 4643 passed. The two tests/codex-cloud-setup.test.ts failures are pre-existing and reproduce on clean origin/main. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NPyFcMfn1jMmphr6AqiWBg
…and on a wrap" This reverts commit b036d84.
The three spans were independent flex items, so a wrapped line could leave the "·" alone, detached from the clause it joins. Measured at 390px: five of the nine remaining footers wrapped — forms, specifiers, formulation, therapy-compass and factsheets — and every one stranded the dot on the line above its body. Label and separator are now one whitespace-nowrap flex item, so the dot always travels with the label. The dot keeps the muted weight and colour it had, rather than inheriting the label's emphasis. Deliberately minimal: the flex layout, the gap, the wording and the type scale are all untouched. An earlier attempt changed the punctuation and the container layout together, which read as a far larger visual change than the problem warranted; this is the smallest edit that removes the artifact, and it is invisible on the four footers that do not wrap. Verified at 390px across all nine: dot shares a line with its label in every case, zero page errors. npm run test: 443 files / 4643 passed; the two tests/codex-cloud-setup.test.ts failures are pre-existing on origin/main. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NPyFcMfn1jMmphr6AqiWBg
This pull request has been ignored for the connected project Preview Branches by Supabase. |
BigSimmo
commented
Jul 31, 2026
@cursoragent This PR was just reopened. Do not merge, force-push, rebase, or arm auto-merge
|
PR #1512 is merged ( Snapshot (at merge)
What I did
Residual
No merge / force-push / rebase / auto-merge from me. |
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/components/mode-home-template.tsx`:
- Around line 160-164: Update the explanatory comment near the footer text to
accurately reflect the applied typography: label uses font-medium while body
remains normal, so the capability/label half—not the caveat—carries emphasis.
Keep the existing class assignments unchanged unless the intended design is
instead to emphasize the caveat.
🪄 Autofix (Beta)
✅ Autofix completed
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 3dfd4a55-dd1d-406b-ad8d-2dcd9a2bdd6b
📒 Files selected for processing (15)
src/components/applications-launcher-page.tsxsrc/components/clinical-dashboard/answer-status.tsxsrc/components/clinical-dashboard/differentials-home.tsxsrc/components/clinical-dashboard/document-search-results.tsxsrc/components/clinical-dashboard/favourites-hub.tsxsrc/components/clinical-dashboard/medication-prescribing-workspace.tsxsrc/components/dsm/dsm-home-page.tsxsrc/components/factsheets/factsheets-home-page.tsxsrc/components/forms/forms-home-page.tsxsrc/components/formulation/formulation-home-page.tsxsrc/components/mode-home-template.tsxsrc/components/services/services-home-page.tsxsrc/components/specifiers/specifiers-home-page.tsxsrc/components/therapy-compass/screens/home-screen.tsxsrc/components/therapy-compass/workspace.tsx
💤 Files with no reviewable changes (3)
- src/components/services/services-home-page.tsx
- src/components/forms/forms-home-page.tsx
- src/components/formulation/formulation-home-page.tsx
Uh oh!
There was an error while loading. Please reload this page.
Note Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it. Fixes Applied SuccessfullyFixed 1 file(s) based on 1 unresolved review comment. Files modified:
Commit: The changes have been pushed to the Time taken: |
Fixed 1 file(s) based on 1 unresolved review comment. Co-authored-by: CodeRabbit <noreply@coderabbit.ai>
The CodeRabbit auto-fix on cb11b04 left the required CI workflow pending with no jobs (bot-authored head). Empty commit from a non-bot identity so pull_request CI can start on this tip. Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>


Summary
ShieldCheckand accent-blue semibold treatment fromModeHomeVerificationFooter, leaving one quiet 11px line whose hierarchy comes from weight alone. Theiconprop is deleted from the component and from every call site.answer("Searches indexed clinical sources · Clinical Guide library"),documents("… · Clinical source collection"),favourites("Saved clinical work · Local library") andtools("Clinical tools · Source-backed workflows"). Pre-query these can only assert; post-query the real sources appear as citations.bodyis a genuine review-before-use instruction: differentials ("Review before use"), prescribing ("Confirm against source"), formulation, specifiers, therapy-compass (×2), factsheets, dsm, forms — plus services, see below.The badge is why this matters rather than being cosmetic. A shield-and-tick reads as verified, and the comment directly above the footer in
answer-status.tsxsays pre-query copy must not assert that every indexed source is verified or current (PT-06) — validation status varies per document and is surfaced on the results themselves. The wording obeyed that constraint; the icon undid it. On the answer hero it also sat ~40px from aShieldAlertmeaning the opposite, and at 14px accent-blue semibold it outranked the APP-5 privacy line beneath it at 11px muted — the safety obligation was the quietest thing on the screen.A blanket removal was considered and rejected. Nine of the fourteen footers carry the review-before-use language that the answer hero conspicuously lacks; deleting the component everywhere would have stripped clinical caveats from eight surfaces to fix a styling problem on one.
servicesis retained for a non-obvious reason: its footer passesverifiedCount/totalCount, which render a screen-reader-only "N of M records are locally verified" line. That was caught only because deleting it broke a surrounding ternary and forced a second look — worth flagging, since the loss would otherwise have been silent and invisible to sighted review.Verification
npm run verify:cheap— 443 test files / 4643 passed, 4 skipped, pluslint(--max-warnings 0),typecheck, and the 29 static/consistency gatesnpx prettier --check .—All matched files use Prettier code style!, committed before push/,/differentialsand/toolsall HTTP 200 with zero console or page errors. Asserted in the same pass that the scope badge is absent from all three and that/differentialsstill shows its caveat.Two pre-existing failures, not caused by this diff:
tests/codex-cloud-setup.test.ts(2 tests, git remote credential handling, from #1438). Reproduced on cleanorigin/mainwith these changes stashed, so they fail identically without this PR.UI verification not run:
npm run verify:uicovers production journeys and would be the next gate up. Direct phone-width rendering of the three representative modes is the proof above; happy to run the full gate if you'd like it before merge.Risk and rollout
Clinical Governance Preflight
Clinical KB Database(sjrfecxgysukkwxsowpy)Notes
/mockups/warning-consolidation,/mockups/warning-lineand/mockups/answer-home-proposalonclaude/warning-consolidation-mockups-09jyj7.Generated by Claude Code
Summary by CodeRabbit