Skip to content

fix: restore guest answer thread persistence and catalogue route UX - #263

Merged
BigSimmo merged 3 commits into
mainfrom
codex/pr-262-follow-up
Jul 5, 2026
Merged

fix: restore guest answer thread persistence and catalogue route UX#263
BigSimmo merged 3 commits into
mainfrom
codex/pr-262-follow-up

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Stop clearing persisted answer threads when auth resolves to signed_out during initial load (guest/demo sessions no longer lose thread history on reload).
  • Harden Playwright smoke/tools specs for answer-thread persistence and command-surface timing.
  • Add segment-level loading.tsx and error.tsx boundaries for differential diagnosis, presentation workflow, and medication detail routes.

Test plan

  • npm run test -- tests/answer-thread-storage.test.ts
  • npm run typecheck
  • npm run verify:cheap
  • npm run verify:ui (answer-thread reload smoke + services command surface)

BigSimmo and others added 2 commits July 5, 2026 18:58
Stop clearing persisted answer threads when auth resolves loading to signed_out (guest/demo). Align Playwright expectations with ModeHomeTemplate actions and differential catalogue counts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add segment-level loading skeletons and error recovery UI for differential diagnosis, presentation workflow, and medication detail pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
@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.

@supabase

supabase Bot commented Jul 5, 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 ↗︎.

Co-authored-by: Cursor <cursoragent@cursor.com>
@BigSimmo
BigSimmo enabled auto-merge (squash) July 5, 2026 11:14
@BigSimmo
BigSimmo merged commit 0a54865 into main Jul 5, 2026
9 checks passed
@BigSimmo
BigSimmo deleted the codex/pr-262-follow-up branch July 5, 2026 11:44
cursor Bot pushed a commit that referenced this pull request Aug 8, 2026
- Pagination: announce and restore focus only after current commits to
  pending target; regression when onPageChange rejects the page
- StageList: treat failed stage as current when nothing is active
- Tabs: derive aria-selected from selectedId so disabled value tabs stay
  unselected
- StatusMark/Tabs/StageList/Pagination regression tests per review
- outstanding-issues: add #276 to recommended queue, fix #263 archive
  overstated verification, align #276 session date

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Aug 8, 2026
Resolve docs/outstanding-issues.md conflicts:
- Keep #255 archived (resolved by this PR) out of the recommended queue
- Add main's #276 queue row and #263 archive row alongside PR resolutions

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
BigSimmo added a commit that referenced this pull request Aug 8, 2026
…sured (#1719)

* docs(issues): correct the re-measured A3 scope and B1 adoption count

Replays a correction stranded in a local-only worktree when PR #1712 squash-merged
and its branch was deleted before the commit could be pushed. Both figures were
re-measured today against origin/main 2675e6e rather than copied forward, and one
claim in the stranded version turned out to be wrong.

#262: legacyShadowAliases counts SEVEN tokens, not one and not eight — the regex has
matched tight|card|soft|hover|elevated|lux|lift since PR #1616 and has never included
focus. Measured total 228 = tight 100, soft 72, elevated 17, hover 17, card 12, lux 8,
lift 2. So --shadow-tight is 100 production sites across 55 files rather than the 155
or 229 previously recorded, clearing all 100 will not zero the ratchet, and #261's
--shadow-focus does not appear in this metric at all.

#266: adoption is 23 unadopted, not 24, since Button moved via #263 — its sole
production importer is src/components/AccessibleTable.tsx.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(design-system): mark the TextField/SearchField/Select row done, it was stale

Replays a correction stranded in a local-only worktree when PR #1712 squash-merged
and its branch was deleted before the commit could be pushed.

Re-measured today against origin/main 2675e6e: all three fold onto FormField, which
renders hint AND error unconditionally (form-field.tsx:131-132) and merges
aria-describedby caller -> hint -> error (form-field.tsx:107-109); TextField and
SearchField each take an external id and a Ref<HTMLInputElement>, Select an external id
and a Ref<HTMLSelectElement>. Landed in PR 13, not the PR 7 the row pointed at.

Section 4's 'Do: fold TextField/SearchField/Select/Checkbox/RadioGroup onto this shell
(PR 7)' was stale in a second way and is corrected too: Checkbox and RadioGroup
deliberately do NOT fold onto FormField — a group keeps fieldset/legend and composes
FieldHint/FieldError directly (choice.tsx:207-210). Left as written, that line asks a
future session to 'finish' a fold that is finished and to break one that was a
deliberate decision.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs: correct future-dated re-measurement records to 2026-08-08

Codex review on PR #1719 flagged SCOPE/COUNT RE-MEASURED and COMPONENTS.md
rows dated 2026-08-09 while the recording commits were authored on 2026-08-08.

Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>

* docs(design-system): separate FormField integration from product adoption, re-measure the ui-primitives row

Two review findings on PR #1719, both valid.

Section 4 said 'Select/choice controls remain separate adoption work', which
contradicted the section above it and was wrong on both axes for Select:
select.tsx consumes FormField (folded in PR 13), and adoption-manifest.json gives
Select 2 production importers, so it is adopted. The genuinely unadopted member of
the trio is SearchField, at zero, which the sentence did not mention. Rewritten to
state the two axes explicitly — integration is complete for TextField, SearchField
and Select, and deliberately declined for Checkbox/RadioGroup; adoption is measured
TextField 3, Select 2, SearchField/Checkbox/RadioGroup 0 — so a control cannot be
read as pending on one axis because it is pending on the other.

The ui-primitives row carried three stale figures. Re-measured on this head: the
module is 698 lines, not 686; 157 production files import it, not 200 — that
figure is 202 including mockups, the same mockup-inclusive mislabelling this PR
already corrects for the shadow aliases; and 30 of the 53 registered components
are adopted, not 27.

Future-dated 2026-08-09 records were already corrected to 2026-08-08 by f3a91c6
before this commit; verified none remain under docs/.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: BigSimmo <BigSimmo@users.noreply.github.com>
Sign up for free to 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.

1 participant