Skip to content

feat(ui): retire the mode-home assurance badge, keep every caveat - #1512

Merged
BigSimmo merged 7 commits into
mainfrom
claude/mode-home-footer-scoped
Jul 31, 2026
Merged

feat(ui): retire the mode-home assurance badge, keep every caveat#1512
BigSimmo merged 7 commits into
mainfrom
claude/mode-home-footer-scoped

Conversation

@BigSimmo

@BigSimmoBigSimmo commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

  • Removes the ShieldCheck and accent-blue semibold treatment from ModeHomeVerificationFooter, leaving one quiet 11px line whose hierarchy comes from weight alone. The icon prop is deleted from the component and from every call site.
  • Deletes the footer on the four modes where it asserted only what the mode doesanswer ("Searches indexed clinical sources · Clinical Guide library"), documents ("… · Clinical source collection"), favourites ("Saved clinical work · Local library") and tools ("Clinical tools · Source-backed workflows"). Pre-query these can only assert; post-query the real sources appear as citations.
  • Retains and restyles the nine whose body is 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.
  • No wording is changed anywhere. This PR is the styling plus the four pure-claim deletions only.

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.tsx says 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 a ShieldAlert meaning 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.

services is retained for a non-obvious reason: its footer passes verifiedCount/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, plus lint (--max-warnings 0), typecheck, and the 29 static/consistency gates
  • npx prettier --check .All matched files use Prettier code style!, committed before push
  • Rendered at 390px in Chromium against the local dev server: /, /differentials and /tools all HTTP 200 with zero console or page errors. Asserted in the same pass that the scope badge is absent from all three and that /differentials still 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 clean origin/main with these changes stashed, so they fail identically without this PR.

UI verification not run: npm run verify:ui covers 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

  • Risk: Presentation-only. No wording, no data, no API, no auth. The one behavioural change is that four modes render one fewer element.
  • Rollback: revert the commit; nothing to migrate.
  • Provider or production effects: None.

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use — every review-before-use caveat is retained verbatim; only its styling changed
  • 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 — the change removes an icon that overstated verification status and keeps every statement that qualifies it
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed — no decision-support behaviour changes; the four deleted footers made no clinical claim, and no retained caveat was reworded or weakened

Notes

  • Deliberately not included: adding a verify-before-use sentence to the answer hero, which now has no caveat at all. That is new clinical-safety copy requiring sign-off rather than a design change, and is tracked separately. The design exploration behind this PR lives in /mockups/warning-consolidation, /mockups/warning-line and /mockups/answer-home-proposal on claude/warning-consolidation-mockups-09jyj7.

Generated by Claude Code

Summary by CodeRabbit

  • UI Updates
    • Simplified verification and reference footers across the launcher, dashboard, search, favourites, and clinical tools.
    • Removed decorative verification icons while retaining relevant labels and supporting text.
    • Updated footer styling with more compact spacing, muted text, and reduced visual emphasis.
    • Removed verification footers from selected launcher and empty states, preserving existing links, suggestions, and explanatory content.

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_01NPyFcMfn1jMmphr6AqiWBg
@coderabbitai

coderabbitaiBot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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: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 @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: 32f8f0da-4630-41b2-96f4-4998495bd2fd

📥 Commits

Reviewing files that changed from the base of the PR and between 5f04862 and 7d777d3.

📒 Files selected for processing (1)
  • src/components/mode-home-template.tsx
📝 Walkthrough

Walkthrough

The 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.

Changes

Verification footer simplification

Layer / File(s)Summary
Footer contract and presentation
src/components/mode-home-template.tsx
ModeHomeVerificationFooter no longer accepts or renders an icon. It now uses compact muted text with a separator.
Caller cleanup across home and workspace surfaces
src/components/applications-launcher-page.tsx, src/components/clinical-dashboard/*, src/components/dsm/*, src/components/factsheets/*, src/components/forms/*, src/components/formulation/*, src/components/services/*, src/components/specifiers/*, src/components/therapy-compass/*
Removed obsolete verification footers, icon props, and unused icon imports. Remaining labels, body text, indexed-source counts, and registry counts are preserved.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels:codex

Suggested reviewers:claude, cursoragent

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 25.00% which is insufficient. The required threshold is 80.00%.Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check nameStatusExplanation
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Title check✅ PassedThe title clearly summarizes the main UI change: removing the mode-home assurance badge while retaining caveat text.
Description check✅ PassedThe description covers the changes, rationale, verification results, known failures, risk, rollback, governance checks, and the skipped UI gate.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch

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

@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

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

Copy link
Copy Markdown
OwnerAuthor

@coderabbitai please run a new review of this closed PR for me

@coderabbitai

coderabbitaiBot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

@BigSimmo: I’ll run a new review of #1512.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

claude added 3 commits July 31, 2026 02:15
… 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
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
@BigSimmoBigSimmo reopened this Jul 31, 2026
@supabase

supabaseBot commented Jul 31, 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 ↗︎.

@BigSimmo

Copy link
Copy Markdown
OwnerAuthor

@cursoragent This PR was just reopened. Do not merge, force-push, rebase, or arm auto-merge
unless I explicitly ask.

  1. Confirm GitHub is on the current branch tip (not the old closed head).
    Snapshot head SHA, behind/ahead, mergeable state, required checks, and
    unresolved actionable threads.

  2. Mergeability on this tip only:

    • Real conflict (merge-tree dirty): smallest fix, push.
    • Behind-but-clean: if required CI is in flight, wait and sync once late;
      otherwise sync once now. Prefer human/operator identity for update-branch;
      else git merge origin/main + push. No sync thrash.
    • Clean/current: leave it.
      Missing checks while mergeability is dirty ≠ green.
  3. Fresh required CI on this tip only — ignore pre-close rollup. On failure:
    smallest fix, push, re-check. Don’t rerun unless a fix landed or a check
    is stuck. No provider-backed gates without approval.

  4. New/unresolved actionable Codex/Bugbot/Copilot/human threads: smallest fix
    or short already-fixed/not-actionable reply, then resolve. Ignore
    rate-limit/summary noise.

  5. Stop when: merge-tree clean, no actionable threads, required checks green
    or clearly in progress on this tip. Report tip SHA, sync done/not needed,
    CI status, threads handled, residual risks. Leave the merge decision to me.

@cursor

cursorBot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

PR #1512 is merged (c2e05e05 by BigSimmo at 03:34Z). Babysit completed against that tip; merge decision was yours.

Snapshot (at merge)

ItemValue
Tip SHA7d777d3dedc063d6a25d792049cf9a5e513ff996 (matched GitHub; not the old closed head)
Behind/ahead vs main (pre-merge)0 / 7
Merge-treeClean
MergeableMERGEABLE
Unresolved threads0

What I did

  1. Confirmed tip — GitHub was on current tip throughout (first 5f048627, then CodeRabbit cb11b044, then CI re-trigger 7d777d3d).
  2. Sync — Not needed while behind was 0. After CI went green, main advanced because you merged.
  3. CI — Fresh required CI on 7d777d3d completed success, including PR required, Static PR, Build, Production UI critical + shards, Unit coverage, Safety. (CodeRabbit’s bot tip had left CI pending with 0 jobs; empty non-product commit unblocked it.)
  4. Threads — One CodeRabbit comment/weight mismatch; already fixed on cb11b044. Replied “already fixed”; thread resolved. Ignored Codex rate-limit noise.

Residual

  • Recreated remote branch claude/mode-home-footer-scoped at 54de6560 after the merge (empty tree vs main) while syncing the just-advanced main. Safe to delete when you want — I did not delete it.
  • Squash on main includes the CodeRabbit comment correction.

No merge / force-push / rebase / auto-merge from me.

Open in WebOpen in Cursor

@BigSimmo
BigSimmo marked this pull request as ready for review July 31, 2026 03:05
@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.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between e9aa0cb and 5f04862.

📒 Files selected for processing (15)
  • src/components/applications-launcher-page.tsx
  • src/components/clinical-dashboard/answer-status.tsx
  • src/components/clinical-dashboard/differentials-home.tsx
  • src/components/clinical-dashboard/document-search-results.tsx
  • src/components/clinical-dashboard/favourites-hub.tsx
  • src/components/clinical-dashboard/medication-prescribing-workspace.tsx
  • src/components/dsm/dsm-home-page.tsx
  • src/components/factsheets/factsheets-home-page.tsx
  • src/components/forms/forms-home-page.tsx
  • src/components/formulation/formulation-home-page.tsx
  • src/components/mode-home-template.tsx
  • src/components/services/services-home-page.tsx
  • src/components/specifiers/specifiers-home-page.tsx
  • src/components/therapy-compass/screens/home-screen.tsx
  • src/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

Comment threadsrc/components/mode-home-template.tsx Outdated
@BigSimmo
BigSimmo enabled auto-merge (squash) July 31, 2026 03:09
@coderabbitai

coderabbitaiBot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Fixes Applied Successfully

Fixed 1 file(s) based on 1 unresolved review comment.

Files modified:

  • src/components/mode-home-template.tsx

Commit:cb11b04474ce431cb638e01dc02997157612822c

The changes have been pushed to the claude/mode-home-footer-scoped branch.

Time taken:2m 17s

coderabbitaiBotand others added 2 commits July 31, 2026 03:13
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>
@BigSimmo
BigSimmo merged commit c2e05e0 into mainJul 31, 2026
25 checks passed
@BigSimmo
BigSimmo deleted the claude/mode-home-footer-scoped branch July 31, 2026 03:34
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.

3 participants

@BigSimmo@claude@cursoragent