Repository navigation
Work first visit: slim sign-in line, Finish setting up row, one empty-state line, no duplicate My Day tiles - #3495
Conversation
…tate line, no duplicate My Day tiles on call
- On Call: the signed-out 'Hospital numbers are for signed-in members' card becomes one slim line
('Sign in to see your hospital's numbers' + Sign in) in the same place on every hub page. Crisis
lines are untouched.
- New WorkSetupRow ('Finish setting up', one line + chevron, dismissible on this device) at the top
of On Call, Teaching and CPD first pages while setup is incomplete; opens the existing setup page.
- New WorkEmptyLine (a sentence plus at most one real action); On Call 'Not set up for this
hospital' lines keep their words and gain the Service handbook link; the empty Shift lists sheet
says so instead of showing nothing.
- My Day quick tiles while on call: Playbook and Contacts replace the hero's Log a call and Handover.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🏁 CodeAnt Quality Gate ResultsCommit: ✅ Overall Status: PASSEDQuality Gate Details
|
Merging this PR will not alter performance
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
|
Full browser suite on a3490b1 (run 38257829382): Chromium, Firefox, desktop Safari and iPad all passed. The iPhone Safari projects (mobile-webkit, mobile-pwa-standalone) failed six tests. None of them is caused by this PR:
These belong to the known iPhone Safari backlog on main (ledger #9Z197J), which the Safari test-fix work is handling. No fix exists yet to port into this PR. This job is not part of Generated by Claude Code |
There was a problem hiding this comment.
BigSimmo has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude encountered an error after 2s —— View job I'll analyze this and get back to you. |
PR Summary by QodoWork first visit: slim sign-in line, setup row, shared empty-state line
AI Description
Diagram
High-Level Assessment
Files changed (15)
|
Code Review by Qodo
No findings for this group No findings for this group No findings for this group Resolved findings 1.
|
- Keep crisis contacts above setup - Guard shift-list empty state by handbook readiness
Auto-approval revoked — new findings require attention.
CodeAnt PR Risk: Medium Risk
Assessed commit: |
|
The setup-row finding was correct. It is fixed in 2eea4b5: the "Finish setting up" row now sits after the emergency pin and crisis lines, never above them. I reverted the automated commit b108725 (398fce0) because it went beyond that finding in two ways:
Generated by Claude Code |
|
Code review by qodo was updated up to the latest commit 2eea4b5 |
…book loads While the handbook is loading, signed out or unavailable, the sheet no longer claims the service has not added shift lists. The setup-row comment now describes the real order when crisis lines sit at the page foot. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
|
Code review by qodo was updated up to the latest commit 1fe7eb8 |
…has loaded Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
|
Code review by qodo was updated up to the latest commit e61209d |
…ook action, not an outage line Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
|
Code review by qodo was updated up to the latest commit 162b066 |
Code Review ✅ Approved 3 closed / 3 findings🟡 Medium risk · Changing on-call empty states and My Day tiles could confuse users about shift-list availability or make call and handover actions less discoverable. Work first-visit changes add a slim signed-out sign-in line, a dismissible Finish setting up row, a shared empty-state line, and swap on-call My Day tiles to Playbook, Contacts, Who's on and Remind me. Crisis lines no longer move to the page end when hospital numbers show, and the empty shift-lists sheet now explains that the handbook is still loading rather than blaming the service. No open issues remain.
✅ 3 closed✅ Bug: Crisis lines no longer move to the page end when hospital numbers show
✅ Bug: Empty shift-lists sheet blames the service while the handbook is loading
Closed: Bug: Setup row sits above crisis lines once hospital numbers are on screen
Review coverage🤖 Auto-approval Approved 📋 Rules No rules evaluated 🧪 Functional validation Not enabled · Set up OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
…st, one-list Renewals, Work consistency, header fixes (#3519) * Work: one "Get set up" checklist on My Day, no per-area setup rows (D11) The design audit (13 Oct 2026, D11, owner decision 4) found each area's first page spent its top slot on its own "Finish setting up" row. Those rows are removed from On Call, Teaching and CPD, and My Day's setup card becomes "Get set up": every setup step with a tick when done and a link straight to it, plus Start/Resume and Not now as before. Setup progress and its storage are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work pages: use the standard status shapes (D04) My Day Week and Month: overdue and passed dates show a red triangle before a grey word instead of an amber word. Renewals timeline: amber dots only once it is time to start renewing, grey dots further ahead. CPD rows: open targets use a grey ring. Assessments: accent words such as Not started are grey, not green. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Honest review labels: sign-off shown only for a named person and date (S6) Form notes and Chief Psychiatrist standards now say "Signed off by <name>, <date>" only when the sign-off names a real person with a real date; a product attribution such as "PsychSift" keeps the existing awaiting-review wording. The specifier "Source reviewed" green badge becomes a grey "Source checked, not signed off". Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Crisis numbers: one shared card on the answer page and Admin Help, plus Poisons line The answer crisis banner printed numbers as inline links in a pale info box. It now uses the same rows as Admin Help: every number visible with its own 48px call link. Overdose or poisoning wording adds the Poisons Information Centre (13 11 26, checked 2026-10-13 against the WA Poisons Information Centre page). Poisons is kept out of WA_CRISIS_CONTACTS so the patient safety plan list is unchanged. Design audit D02 and S4. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * CPD and End of year: one coloured button per screen (D08) Row actions (Log, Tag one, Mark done, Attach, Copy next, Continue) become grey pills, a new grey work-button variant, so the docked Log an activity is the screen's only coloured button, as on Teaching Today. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * CPD Log: one docked button, no floating Copy next (D09) Copy next already sits in the not-marked-copied card above the list, so the dock keeps only Log an activity, full width. The dock stays sticky in flow, so the last row is still reachable above it. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * CPD Log: test that the dock holds one button (D09) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * MHA clock: plain list, Start clock from form records, renamed MHA time limits The clock drew a timeline bar per form with no end mark, so forms looked like running timers while every card said "Time not calculated". The bars are gone; the list already carries every figure. Timed form records get a Start clock button that opens the clock with the form (and time, once entered) picked. The page is renamed "MHA time limits" (clinical wording, awaiting owner approval in the draft PR). Design audit D01. No deadline calculation added (S1 needs legal sign-off). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work: shared state card on Open shifts, Manage team and Notifications (D13) Design audit 13 Oct 2026, D13. Manage team's not-a-manager, wrong-team and failed-read states, and the Notifications page's signed-out, failed and empty states, now use the shared work state card (the bell's sheet draws them without the card, as before). Manage team's bare "Try again" blocks become the shared error state, and signed out gets the shared sign-in card. With nobody signed in, Open shifts showed a lone "No teams yet" card because the server's invented team was hidden; it now shows the example open shifts, unless example data is switched off. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer source marker: invisible 48px tap area, same look and text flow (D05) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer page: key points and answer actions wrap at 320px large text (D17) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Roster and My Day: the design system's shift codes (D12) Display codes only (stored kinds unchanged): on call is OC, leave is AL, and the evening (late) shift is L, everywhere a code is shown, so L no longer means both leave and late. Labels such as Evening and Leave are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Phone menu: default shortcuts become the urgent tools The phone menu's default shortcuts repeated six rows the page groups list again below. Until a reader edits their shortcuts, the phone drawer now offers Crisis numbers (opening the shared call rows in place, loaded on first open), MHA time limits, Safety plan and Forms. Readers' own pins are unchanged, and the desktop sidebar keeps the default pins. The current page is then marked in its group. Design audit D14. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * My Day: hold Today's skeleton until its own reads answer (D16) Design audit 13 Oct 2026, D16: My Day's Today drew Quick actions and Needs you first, then the hero and This week arrived about a second later and pushed them down (layout shift 0.13 to 0.17). Measured on the audit build: Quick actions moved from y 187 to 426 and Needs you from 276 to 515 in two shifts as the roster and teaching reads answered. Today now keeps the same loading shape the page already shows until the roster, teaching and CPD reads have answered, on the first load only; a later re-read (Try again, a new day) keeps the cards on screen as before. Nothing else changes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Large text at 320 px: wrap filter rows and segments (D17) At large text, CPD Log's filter chips and AI Search's area chips wrap onto more lines instead of running past the edge; an equal-width segmented control (Renewals' Soonest, By group, Personal) lets a segment take a second row; and the Safety plan's Load example and Clear all buttons can wrap as whole items. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work pills in sentence case (D20) Status tags (.work-tag and Admin's status tag) no longer force capitals, so Request it, Not started, 1 to do, Reached and Example · made-up people read as written. Wording unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Roster Month: the next-shift line wraps instead of cutting off (D23) "On call tonight" wrapped onto a second line rather than reading "On call tonig…" at 390 px. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Privacy: plain words, plain date, no coloured side bars, sentence case (D22) Design audit 13 Oct 2026, D22. - "based on the repository's configured behaviour" becomes "based on how PsychSift is set up"; "Describes configured behaviour as of" becomes "Describes how PsychSift is set up as of". Every privacy statement keeps its meaning; nothing is added or removed. - The date reads "1 September 2026" instead of 01/09/2026. - The amber band keeps its tint but loses its coloured side bar, and the at-a-glance facts lose their coloured left edges. - Small labels (overview, coverage, before you use, read more, at a glance, processing map, on this page, privacy details) are sentence case, not capitals. The page's own sticky header is left as it is. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Say repeated lines once on Work pages (D24) Notifications: the all-caught-up state no longer repeats "Nothing needs you right now" under the line that already says it, and the page's hidden header line is dropped while the band shows it. AI Search: the patient-details warning card is also the field's description, so the hidden copy beside the input is gone (the spoken live announcement stays). Playbook: the demo's shared trigger line shows once at the top instead of on all six cards. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * End of year: the domains count is 14 px page text, not 8 px (D25) The "3/4" inside the domains ring was SVG text at 8px in the drawing's own units. It is now page text over the ring at the small text size. The rest of the End of year page already uses text tokens of 12px or more. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Clinical questions: hold back patient details before sending, on the page and in the answer API (S2) Reuses Work's patient-detail check, reading capitals and a bare age as clinical content. All 20 high-risk evaluation questions, the retrieval golden queries and 14 everyday questions pass; names with a title, record numbers, beds, dates of birth and phone numbers are refused. The answer routes return 400 with a plain message naming the kind of detail only. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer sources: a vertical list on phones; library rows open on a tap with one icon (D07) Desktop keeps the scrolling source rail and both library row actions. The phone answer page gets a little more bottom room so the last row clears the bottom box, which is itself unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Keep the retired setup row for 30 days Design audit D11 retired the per-area Finish setting up row, which only landed today (#3495). The 30-day deletion rule keeps the file until 12 Nov 2026; knip ignores it until then. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer page: a plain 'Not in your sources' state (D03) When the library has nothing on a question, the answer page no longer wears a real answer's chrome. It shows a plain heading, the pipeline's own sentence, one line on what was searched, then Also in your library and follow-ups. Copy, Log as CPD, the thumbs up, the dose caution and the unrelated Documents searched list are hidden; Report a problem stays. Narrow on purpose: only no_candidates / unsupported reason codes (and the demo refusal). Fail-closed answers (numeric check, timeout) keep their sources and caution. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work and Clinical bands: drop the date line except on My Day, Roster, Open shifts, Teaching and On Call Owner instruction (13 Oct 2026): remove the date where it is not useful. CPD, Admin and the Clinical bands no longer draw today's date above the title. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work page titles name the page (audit D15) Admin's band title is "Admin", not a greeting; CPD's heading is "CPD", not "Year"; On Call's heading is "On Call", not "Now"; Assessments is titled "Assessments", with the rotation moved to the line above. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer page: one quiet line on where a question goes (S3) Under the latest answer, once per page: 'Questions are sent to an overseas AI service (OpenAI) to search and write answers. Don't include patient details.' Placed below the answer, not beside the composer, so the search box's measured height and position do not change. Hidden in demo mode, where nothing is sent. Draft wording for owner approval; the composer's governed privacy line is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Roster: the L shift reads Late, matching the design-system codes Josh's design decision 5 (13 Oct 2026): OC on call, L late, AL leave everywhere. The letters already changed; the word beside L now says Late instead of Evening. Stored kinds are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Format roster calendar test Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work band corner is the Favourite heart only (audit D18) Each page tool that sat in the band's top-right corner now sits in the page: My Day's Quick add (a button at the top of Today; Customise stays in More), Favourites' Add a work page and Add a number, Roster month's Add, Teaching Today's Type a check-in code (under the session), Teaching Week's calendar (already on the week list heading), Assessments' screen action, Renewals' More actions (beside the views), Admin Help's Add your own (beside the box), CPD's Customise and Log's Filter (top of the page), and Routines' New routine (already in the page's dock). ModeBandAction and the band's action slot go. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Work band: the line above the title wraps instead of cutting off (audit D19) With the date gone from most areas, the line carries page state where a page already has it (Renewals' "checked 26 Sep", CPD's "Records loaded"), and it now wraps rather than ending in an ellipsis. Pages with no state leave it empty. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Assessments and Manage team keep their parent's area pill (audit D21) The top bar's pill reads Teaching on Assessments and Roster on Manage team, as Open shifts already does; the band title names the sub-area. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Band titles never cut off at 320 px with large text The Clinical and Work band titles scale with the band's width when enlarged text would push a one-word title ("Psychiatry") past the edge, and the Clinical title breaks inside the word as a last resort. Normal text sizes are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Clinical mode tabs: every tab is at least 48 px wide to tap Short tabs such as Act and Map were 48 px tall but only 21 to 26 px wide, because the link sat inside the slot's padding. The link now reaches over that padding (at least 48 px wide); the word and its underline stay where they were. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Renewals and Admin Today: counts as words, one month-grouped list Renewals showed the same dates three ways: four count tiles, a 12-month dot timeline and the list. The counts are now small words with their status shapes (still filters), the timeline is gone, and what needs action is one list grouped by month, passed first and undated last. Admin Today's three count tiles become the same words. Josh approved the real-app mockup on 13 Oct 2026 ("yes 10"). Design audit D10. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Offline page: urgent numbers first, privacy line last The offline page opened with two paragraphs about the cache and signed URLs, with 000 at the bottom of the first screen. It now leads with one short line, then Urgent numbers (000, then Poisons Information Centre 13 11 26, then the shared crisis list) as 48px call links, then On Call numbers saved on this phone, then the signed-off Act quotes, and the full privacy statement last. CACHE_VERSION is bumped so installed phones fetch the new page (Josh's yes, 13 Oct 2026); its offline.html hash is re-pinned. Design audit D06 and S4. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Format answer notice test Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * fix: keep search header within its size budget and use the pill radius token Moves the composer warning wording into the patient-check module so the search header stays under its no-growth line budget, and swaps a raw 999px radius for the pill token the design-system contract expects. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * fix: let QTc millisecond readings, MS and 'pt with' through the clinical patient check The clinical question check read 'QTc 480 ms' as the title Ms, 'MS on interferon' as a title and name, and 'pt with renal impairment' as a patient name, so routine questions could not be asked. Those shapes are now rewritten before the second reading, like ages; 'Ms Jones' and 'pt John' are still refused. Pinned by new everyday and refusal cases. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * fix: keep the title Ms when a number sits before it in a clinical question The millisecond rewrite matched any case and dropped '4 Ms' in 'Ward 4 Ms Smith clozapine', leaving a bare surname the check does not catch. Units are now lowercase only and never before a capitalised word. Pinned by four new refusal cases. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * test: count the overseas note as answer content and expect the phone row's single action The short-answer scroll check now measures the overseas-processing line under the answer like the other always-rendered content, and the phone cross-mode row expects no search button, which the phone layout hides by design (audit D07). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer page: keep the original phone bottom padding The extra phone bottom room added for D07 spent the short-answer scroll guard's budget (a short answer could scroll 30px into empty space). The original pb-10 stands; the bottom box already hides on scroll. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * test: measure the overseas note with the gap above it The answer stack is space-y-4, so the note adds the stack's 16px gap, which collapses with its own 4px top margin. Measuring only its box and margins left 12px counted as phantom scroll. The 8px allowance is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Answer actions: keep the row on one line, let the Copy label give way Wrapping the row (audit D17) added a second 48px row under short phone answers where the CI fonts run wider. The row stays on one line again and the Copy label truncates instead, which still keeps Report a problem on screen at 320px with large text. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * fix: Validate queries in summary mode * fix: Detect bare patient names near clinical content * fix: 2 findings — Guard all answer-mode searches; Show crisis cards for - Guard all answer-mode searches - Show crisis cards for poisoning wording * fix: Report the true searched-source count * fix: Reject future-dated sign-offs * Revert "fix: Detect bare patient names near clinical content" This reverts commit 828917f. * Format sign-off-label.ts * Load the Clinical patient-detail check only when a question is typed The check and its Work helpers were downloaded with every page through the search box, pushing eight pages past the page-size budget. The box and the Answer path now load it on first use; the server check still refuses patient details before then. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Let the composer tests wait for the lazily loaded patient check Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Reset the Roster shifts and Assessments size baselines to current main Owner-approved on 13 Oct 2026: main had already used nearly all of the 10% room on these two pages (+9.7% and +8.9%). Both now start from a local production build of main at f4bcb55. Other baselines are unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * fix: Invalidate stale searches before patient checks * fix: Load patient checks only for Answer mode * Keep a stale question from taking over, without cancelling the search in flight Qodo's fix claimed a new request number and aborted the running search before the patient check. A question the check then holds back would cancel an answer still streaming and leave its progress on screen, and an empty Prescribing submit stopped clearing the medicine search. This keeps the earlier behaviour and only drops a submission that a mode change, Stop or newer search made stale while the check loaded. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Move the composer's patient check into its own hook to keep the header within budget The lazy-loaded check pushed master-search-header.tsx 13 lines over its no-growth budget. Behaviour is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Audit review follow-ups: bed number with sex word, AL legend, CPD filter on desktop, failed patient-check download, searched count Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Patient check: keep marked and other place-word numbers out of the age rewrite Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LoS9GKm4qEqfAWLm5A8wEw * Review follow-ups: calendar action in Other services, cross-year renewals tests require January, role-based setup links, tap token for source marks * Owner decisions 13 Oct: lowercase ms before capitalised terms is a reading; phones keep a compact Search control on cross-mode rows * Answer home: show the overseas-processing notice before the first question is sent (owner decision 13 Oct) * patient check keeps place numbers that look like ms readings; Answer home notice hidden in every resolved demo mode * fix(clinical-question): keep capitalised place words (RM, CHAIR) from losing their number to the ms rewrite; note source-check cost --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com> Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
User description
Requested by Josh · project thread
Summary
Site recommendations 12 Oct 2026, items 2 and 7.
Before: signed out, On Call Now opened with a large "Hospital numbers are for signed-in members" card that pushed the shift half a screen down; nothing pointed a new doctor to Work setup outside My Day; some empty On Call rows said "Not set up for this hospital" with nothing to tap; while on call, My Day showed Log a call and Handover in the hero and again in the tiles straight below.
After: one slim line "Sign in to see your hospital's numbers" with a Sign in button; a one-line "Finish setting up" row (with a cross to hide it on this device, with Undo) on the first page of On Call, Teaching and CPD while setup is incomplete; empty rows use one shared line, a sentence plus at most one real link (Service handbook); while on call the My Day tiles are Playbook, Contacts, Who's on and Remind me (unchanged off call).
How: new shared
WorkEmptyLine(mode-kit) andWorkSetupRow(work-setup, same device-only progress as My Day's Set up Work card);handbook-statebig card replaced by the slim notice; My Day on-call tile list swapped.Areas touched: Personal practice, App experience, Design system (plus 1 file not yet placed in any area)
Safety: no crisis line, phone number, escalation step or their wording changed or moved; crisis lines still sit directly under the sign-in line.
Screenshots (before and after, 390 light and dark, 1440, 320):
/mnt/project-files/site-recommendations-2026-10-12/built/work-firstrun/in the project files.Verification
npm run test:focused: "Test Files 85 passed (85), Tests 1168 passed"Risk and rollout
Notes
my-day-today-cards.tsxis also edited by draft Design: 12 px text floor, mono figures, status shapes, paler fades, Bright light #3489; this PR only swaps the on-call tile list.🤖 Generated with Claude Code
https://claude.ai/code/session_01Mws6schjKQbpCQqQzPMKSL
Generated by Claude Code
Summary by cubic
Trims the first-visit experience across On Call, Teaching, CPD, and My Day: the signed-out "Hospital numbers are for signed-in members" card becomes a slim "Sign in to see your hospital's numbers" line, incomplete Work setup shows a dismissible "Finish setting up" row on each area's first page, and empty On Call rows now offer one real action (Service handbook) instead of dead-ending at "Not set up for this hospital". While on call, My Day swaps its Log a call and Handover tiles for Playbook and Contacts, since the hero already offers those.
Crisis lines, phone numbers, escalation steps, and their wording are untouched; crisis lines stay above the setup row. The empty shift-lists sheet explains itself instead of showing a blank: while the handbook is still loading, signed out, or unavailable it says shift lists are not available right now; once it has loaded it says the service has added no lists, and a reader with no service at all sees the "Not set up" line with the handbook action rather than an outage message.
Written for commit 01f278e. Summary will update on new commits.
CodeAnt-AI Description
Add setup prompts and simplify On Call guidance
What Changed
Impact
✅ Less screen space used by the signed-out prompt✅ Resume or hide setup from On Call, Teaching, and CPD✅ No repeated call or handover tiles while on call💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.