Skip to content

docs(ui): record DS adoption evidence and overlay/links checks (221,233,234,235,238,245) - #1842

Merged
BigSimmo merged 6 commits into
mainfrom
codex/update-ds-adoption-documentation-and-checks
Aug 12, 2026
Merged

docs(ui): record DS adoption evidence and overlay/links checks (221,233,234,235,238,245)#1842
BigSimmo merged 6 commits into
mainfrom
codex/update-ds-adoption-documentation-and-checks

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Converge remaining local EmptyState/LoadingState/Chip call-sites onto DS primitives where safe and document the convergence state.
  • Capture and publish the answer-copy clipboard contract so all product copy paths share one canonical payload builder.
  • Record adoption evidence and focused verification for overlay portal defaults and CrossModeLinks rail behavior without introducing visual-baseline image commits.

Description

  • Delegate the mode-home status notice to the DS EmptyState and surface its action slot so retry/navigation semantics are preserved (src/components/mode-home-template.tsx).
  • Ensure Sheet overlay default (portal → OverlayRoot) is exercised; removed redundant explicit portal flags from the Clinical Sidebar and answer-review sheets so they use the component default (src/components/clinical-dashboard/ClinicalSidebar.tsx, src/components/clinical-dashboard/answer-result-surface.tsx).
  • Add a focused DOM/static test that asserts portal-hosting behavior and that owners do not opt out (tests/sheet.dom.test.tsx).
  • Add a targeted evidence test that asserts DS delegation (EmptyState/LoadingPanel/Chip), overlay defaults, and CrossModeLinks rails declarations (tests/design-system-target-evidence.test.ts).
  • Document the single answer-copy payload contract and cite the helper functions and callers added/verified (docs/design-system/ADOPTION.md and related ADOPTION notes).
  • Update the DS maturity matrix and COMPONENTS doc to reflect current registered/import counts and the FormField optionality-marker contract (docs/design-system/COMPONENTS.md, docs/design-system/adoption-manifest.json).
  • Small test-focused and documentation-only edits; no product behavior changes beyond the described delegation/portal-default confirmation and no visual-baseline PNGs were committed.

Files touched (high level): src/components/mode-home-template.tsx, src/components/clinical-dashboard/ClinicalSidebar.tsx, src/components/clinical-dashboard/answer-result-surface.tsx, tests/design-system-target-evidence.test.ts, tests/sheet.dom.test.tsx, tests/answer-copy-payload.test.ts (existing), docs/design-system/ADOPTION.md, docs/design-system/COMPONENTS.md, docs/design-system/adoption-manifest.json.

Testing

  • Ran the design sweep and local server ensure (npm run workflow:design-sweep -- --write-evidence, npm run ensure) and captured a non-committed UI proof screenshot for the mode-home status notice (/tmp/ds-mode-home-status-notice.png).
  • Unit/DOM tests: ran the focused test set including tests/design-system-target-evidence.test.ts, tests/mode-home-status-notice.dom.test.tsx, tests/sheet.dom.test.tsx, and tests/answer-copy-payload.test.ts; all passed (4 test files, 23 tests in this run).
  • Design-system contract checks: npm run check:design-system-contract and the generated adoption check both completed with the design-system contract passing and the adoption manifest updated (54 components, 59 roots, 51 production routes) as documented in the manifest; no baseline images were committed.
  • Focused Playwright journeys: ran a small set of UI smoke journeys covering CrossModeLinks and account/settings flows; the matched journeys passed (2 focused Playwright checks passed).
  • Docs verification: npm run docs:check-links completed successfully and repo doc links resolved. prettier formatting was run and git diff --check / staged diff checks passed.

Notes and follow-up

  • No visual-baseline PNGs or Playwright snapshot images were committed; the PR records evidence and requests a follow-up Chromium keyboard pass for nested overlay keyboard/focus sequences where additional real-browser proof is advisable.
  • GitHub CLI in the environment is unauthenticated, so PR creation was not attempted here (no remote push or provider actions were performed).

Codex Task

Summary by CodeRabbit

  • New Features

    • Standardized status notices with consistent empty-state layouts and support for button or link actions.
    • Improved responsive navigation and overlay behavior across supported views.
  • Bug Fixes

    • Corrected sheet rendering so modal content consistently appears in the designated overlay host.
  • Tests

    • Added coverage for design-system component adoption, responsive links, and sheet portal behavior.
  • Documentation

    • Updated design-system adoption, component registry, and evidence documentation.

@supabase

supabase Bot commented Aug 12, 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

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The change updates design-system adoption records, delegates ModeHomeStatusNotice to EmptyState, removes explicit Sheet portal props, and adds source and DOM evidence tests for component adoption and default overlay placement.

Changes

Design-system adoption and component alignment

Layer / File(s) Summary
Adoption records and component contracts
docs/design-system/ADOPTION.md, docs/design-system/COMPONENTS.md, docs/design-system/adoption-manifest.json
The documents and manifest now report updated component counts, import references, answer-copy handling, field-label behavior, and adoption test evidence.
Shared EmptyState status notice
src/components/mode-home-template.tsx
ModeHomeStatusNotice now renders through EmptyState and supplies either a button or link action when the required action properties exist.
Default Sheet overlay behavior
src/components/clinical-dashboard/..., tests/design-system-target-evidence.test.ts, tests/sheet.dom.test.tsx
Clinical Sheets no longer pass portal. Tests verify default portal placement in the modal overlay host and related design-system evidence.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: claude, cursoragent

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.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 name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: recording design-system adoption evidence and overlay/link checks.
Description check ✅ Passed The description clearly states motivation, scope, affected files, verification results, and follow-up; omitted template sections are non-critical for this scoped UI and documentation change.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/update-ds-adoption-documentation-and-checks

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed: dependency version conflict. Check your lock file or package.json.


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

Copilot AI 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.

Pull request overview

Converges mode-home status notices on design-system primitives and records adoption evidence for overlays, clipboard composition, and responsive link rails.

Changes:

  • Delegates status notices to EmptyState while preserving actions.
  • Relies on and tests the default Sheet portal behavior.
  • Updates design-system adoption documentation and generated evidence.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/components/mode-home-template.tsx Adopts EmptyState for status notices.
src/components/clinical-dashboard/ClinicalSidebar.tsx Uses the default Sheet portal.
src/components/clinical-dashboard/answer-result-surface.tsx Uses the default portal for answer-review sheets.
tests/sheet.dom.test.tsx Tests default modal-host portal behavior.
tests/design-system-target-evidence.test.ts Pins targeted adoption declarations.
docs/design-system/ADOPTION.md Records adoption and verification evidence.
docs/design-system/COMPONENTS.md Updates maturity counts and FormField guidance.
docs/design-system/adoption-manifest.json Regenerates adoption inventory and test evidence.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

BigSimmo pushed a commit that referenced this pull request Aug 12, 2026
Checked all 12 open PRs and mapped them to ledger rows. Twenty-four open rows
are actively being fixed right now — #1835 (7 rows), #1840 (4), #1842 (6),
#1841 (4), #1836 (2), #1837 (1), #1839 (1) — and none of those rows said so.

This is the #292 failure mode with the safety off: a queued row that reads as
unclaimed while a PR is open against it is how the same conversion shipped
twice on 2026-08-09. Each row now names its PR and says not to start until
that PR merges.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
@BigSimmo
BigSimmo enabled auto-merge August 12, 2026 15:01

@coderabbitai coderabbitai Bot 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: 2

🤖 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 `@docs/design-system/COMPONENTS.md`:
- Around line 64-89: Synchronize the stale component contract sections with the
ledger: update the Button section to remove ref forwarding from follow-on
defects, and update the TextField/SearchField/Select section to reflect their
completed FormField, hint/error, aria-describedby, external id, and ref
behavior. Alternatively, correct the corresponding ledger claims if those
contracts are not actually implemented, keeping both sections consistent.

In `@tests/design-system-target-evidence.test.ts`:
- Around line 35-43: Update the test case “keeps responsive CrossModeLinks
declarations distinct and the generic rail phone-only” so the desktop visibility
assertion targets the `cross-mode-links-card-rail` declaration rather than
`cross-mode-links-rail`; keep the phone-only assertion for
`cross-mode-links-rail` and the existing prohibition on
`cross-mode-links-rail-desktop` unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: bd342f1e-4660-4d65-9e06-12b810ab1318

📥 Commits

Reviewing files that changed from the base of the PR and between 0820281 and 9e06837.

📒 Files selected for processing (8)
  • docs/design-system/ADOPTION.md
  • docs/design-system/COMPONENTS.md
  • docs/design-system/adoption-manifest.json
  • src/components/clinical-dashboard/ClinicalSidebar.tsx
  • src/components/clinical-dashboard/answer-result-surface.tsx
  • src/components/mode-home-template.tsx
  • tests/design-system-target-evidence.test.ts
  • tests/sheet.dom.test.tsx
💤 Files with no reviewable changes (2)
  • src/components/clinical-dashboard/ClinicalSidebar.tsx
  • src/components/clinical-dashboard/answer-result-surface.tsx

Comment thread docs/design-system/COMPONENTS.md
Comment thread tests/design-system-target-evidence.test.ts
@BigSimmo
BigSimmo merged commit 8709ddd into main Aug 12, 2026
41 checks passed
@BigSimmo
BigSimmo deleted the codex/update-ds-adoption-documentation-and-checks branch August 12, 2026 15:20
BigSimmo pushed a commit that referenced this pull request Aug 14, 2026
…s instrument now exists

Four corrections, queued as immutable inbox requests.

#235, #237 and #238 each had a `done` queued in PR #1940 and cancelled on
review. The cancellations were right: all three ask for visual or browser
proof and were closed on executable evidence. Each row now records the
attempt, the reason it was refused, and a Stop rule naming the evidence
class that must not be used again — so the next reader does not repeat it:

- #235: section 7.1 opens with "records executable evidence RATHER THAN
  committing image baselines", so the section that looks like the evidence
  says in its first line that it is not
- #237: jsdom does not lay out text, so a 320px assertion proves the string
  is present, not that it fits
- #238: the risk is ancestor-scoped CSS/contain/transform on five specific
  host surfaces, which no Sheet component test can see

All three also drop their IN FLIGHT do-not-start prefix; PRs #1841 and
#1842 have merged, so the warning was blocking rather than protecting.

#231's "Next: instrument and reproduce" is stale — commit a3bc4da added
scripts/probe-generation-quality.ts and adjudicated PR #1861 as superseded
for phase 1. The row now says so, so nobody reviews #1861 as the live fix
or rebuilds the probe. Next is running it where credentials exist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants