feat(ui): harden design-system a11y contracts (cn, warning contrast, MissingValue, forced-colors, LinkAction) - #1841
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 34 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 (3)
Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
There was a problem hiding this comment.
Pull request overview
Hardens design-system accessibility contracts for dense table missing values and warning-token contrast.
Changes:
- Prevents missing-value phrases from truncating in dense previews.
- Adds focused DOM coverage for wrapping behavior.
- Enforces WCAG AA warning-text contrast across themes.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
src/components/AccessibleTable.tsx |
Wraps empty dense cells while preserving populated-cell truncation. |
tests/accessible-table.dom.test.tsx |
Tests explicit, non-truncated missing values. |
tests/design-token-contract.test.ts |
Verifies warning-text contrast against default surfaces. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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
CI triageCI failed on this PR. Automated classification of the 2 failed job(s):
Compared with main CI run #9924 (success). Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger. |
afa7b49 to
c3f1ba1
Compare
…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
Motivation
Description
whitespace-normal break-words text-2xs leading-4instead of a blindtruncate, while leaving populated cells truncating as before (src/components/AccessibleTable.tsx).MissingValuephrases remain explicit, wrap, and are not truncated in the dense 320px preview (tests/accessible-table.dom.test.tsx).--warningbody-text token meets WCAG AA against the default surface in both themes (tests/design-token-contract.test.ts).cn()/tailwind-merge andLinkActiontone contracts intact and rely on existing tests that assert last-wins merging and tone rejection via type-level and render assertions (no behavioural change tocn()orLinkActionsource files).src/components/AccessibleTable.tsx,tests/accessible-table.dom.test.tsx, andtests/design-token-contract.test.ts.Testing
tests/tailwind-merge-config.test.ts,tests/design-token-contract.test.ts,tests/ckb-v2-token-contract.test.ts,tests/accessible-table.dom.test.tsx, andtests/ui-v2-components.dom.test.tsx, with all tests passing (5 files, 182 tests passed).npm run check:design-system-contract,npm run check:design-system-adoption,npm run check:design-sync-contract) and received successful pass reports from the contract scripts.npm run lint,npm run format) and fixed/synchronized generated docs via pre-commit hooks; both checks completed without failures.npm run test:e2e:style-contract) that verified forced-colors mappings and unlayered rule behaviour and returned all style-contract checks passing (7 Chromium checks passed).npm run ensureto validate runtime identity and the server reported its repo-selected URL;git diff --checkreported no whitespace or check failures.All automated checks executed here succeeded; no provider-backed PR creation or remote pushes were performed in this environment.
Codex Task