Skip to content

docs(issues): close six verified-delivered Tier 1 design rows and refute the min-h-tap finding - #1838

Merged
BigSimmo merged 20 commits into
mainfrom
claude/design-issues-triage-wnr7k9
Aug 12, 2026
Merged

docs(issues): close six verified-delivered Tier 1 design rows and refute the min-h-tap finding#1838
BigSimmo merged 20 commits into
mainfrom
claude/design-issues-triage-wnr7k9

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

This started as an attempt to bundle the Tier 1 design defects into the minimum number of implementation PRs. Re-verifying each row against origin/main first found that most of the work was already done and one row was actively wrong, so the deliverable is a ledger correction rather than a code change. Nothing under src/ is touched.

Archived as verified-delivered, each checked against current main rather than taken from the row text:

  • #171 — documents filtering. document-search-results.tsx no longer references utilityControls, searchCommandSurfaceConfig or commandScopes, so the scope chips are gone and Sources has left the results bar. Source-type was not absorbed into Document type — per #181 those are complementary axes — it stayed its own axis and now joins the same single panel, counting into activeFilterCount and rendering on the shared applied-filters shelf.
  • #172Sources relocated and renamed rather than deleted, as its stop rule required: browseLibraryControl renders as Browse all sources with the corpus count, shared across the filter-sheet footer and the zero-result empty state.
  • #174 — the decision this row asked for was made in favour of OR-within-group. filterDocumentsBySmartTagFacetIndex partitions the selection by group and breaks on the first hit within a group, so two medications now means "either", not zero.
  • #181 — the correction to #171 was applied, so it retires alongside it.
  • #273 — both max-[413px]: utilities deleted rather than re-thresholded, per the stop rule; the class no longer appears under src/ (8374c3b).
  • #274clearServiceQuery() now resets local state and replaces the route without q, with the desktop Clear and the phone sheet's onClearAll pointing at that one path. The ui-tools URL assertion the row asked for landed in the same commit (8374c3b).
  • #302 — the three ticker exemptions are one clean line each with their reason text preserved; no escaped line-break artifacts remain.

Corrected in place:

  • #293finding 1 is refuted. The row asserted that min-h-tap carriers have the floor "overridden to 0", blamed "likely an unlayered component class in globals.css", and treated the six shapes as a live 48px-floor defect. What actually zeroes the min-height is the source itself, deliberately: these sites carry an explicit sm: step-down beside min-h-tap. The two 36px shapes are exact matches — services-navigator-page.tsx:217 (grid min-h-tap min-w-tap … sm:h-9 sm:min-h-0) and :286 (inline-flex min-h-tap min-w-[94px] … sm:h-9 sm:min-h-0); sm:min-h-0 is the computed 0px and sm:h-9 is the rendered 36px. Seven min-h-tap sites carry sm:min-h-0, and inline-flex min-h-tap items-center alone appears with sm:min-h-0 (4), sm:min-h-7 (2), sm:min-h-8 (2), sm:min-h-9 (4), sm:min-h-10 (8) and sm:min-h-12 (1). min-h-tap is a phone floor that desktop deliberately releases, and the audit navigates at the desktop viewport, so it was measuring intended design and reporting it as an overridden floor. Removing those step-downs would pin every desktop control to 48px — a visual regression, not an accessibility improvement, since the phone contract already exceeds both WCAG 2.5.8 AA and 2.5.5 AAA. Finding 2 (the enumeration is non-deterministic on a live-search route) stands unchanged and is the whole remaining task; the revised next step is to run it at a phone viewport, where the floor is unreleased and the measurement is meaningful, on a deterministic surface.

Ledger totals move from 145 open / 156 archived to 138 open / 163 archived. No row ids were deleted, and the queue entries for the archived rows were removed per the "a gap means completed" convention.

Verification

  • npm run verify:pr-local
PR-local verification summary:
- completed: check:runtime, check:installed-lock-parity, format:changed, sitemap:check,
  docs:check-index, docs:check-inventory, docs:check-scripts, docs:check-links,
  check:branch-review-ledger, check:outstanding-issues
- failed: (none)
- not reached: (none)
Outstanding-issues guard passed: 301 rows (138 open, 163 archived), unique ids,
next-id=304 above the highest, no merge driver, no ids deleted from base 4587f7890818.

verify:pr-local classified this as recognised low-risk docs scope and skipped lint, typecheck, the unit suite, the RAG fixture scan and the build. UI verification not run: no src/ change — the claims about product behaviour are read against origin/main at 4587f78, not introduced here.

One note on the run: check:installed-lock-parity failed on the first attempt because a local npm run build (used while investigating #293) had mutated node_modules after the trusted post-install stamp. That is the full-tree check from #149 working as intended. Resolved with npm ci --include=dev rather than by re-stamping over the drift, then the gate was re-run clean.

Risk and rollout

  • Risk: none to the product. Documentation-only; no src/, schema, workflow or dependency change. The residual risk is editorial — if any "verified delivered" reading is wrong, a row is archived that should be open. Each is cited to a file:line or commit so it can be re-opened from the archive, which is why the rows are archived rather than deleted.
  • Rollback: git revert this single commit; the archive rows carry their original type and summary text intact.
  • Provider or production effects: None.

Notes

Three Tier 1 rows were deliberately left open because they are not implementation work:

  • #281 (two clinical-summary surfaces on the phone document route) — both surfaces still render, and the row's own stop rule says the difference between the two renderings is the decision. It needs a clinical-content judgement, not a layout merge.
  • #290 (ui-smoke phone scroll-hide flaky on main) — a root-cause investigation on the base branch, not a bundleable fix.
  • #300 — exists precisely so nobody converts the three sites it names; no action by design.

#265 still points at #293 for gate 2 and now resolves to the corrected text, so no edit was needed there.


Generated by Claude Code

… min-h-tap finding

Re-verified the Tier 1 design backlog against origin/main rather than
implementing it. Six rows were already delivered and one was wrong.

Archived as verified-delivered:
- #171 documents filtering — one Filter panel; scope chips and utilityControls
  are gone, source-type kept as its own axis per #181's correction
- #172 Sources relocated and renamed to "Browse all sources"
- #174 facets now OR within a group and AND across groups
- #181 the correction to #171 was applied, so it retires with it
- #273 max-[413px] wrap threshold deleted (8374c3b)
- #274 services Clear now clears the q param, both controls share one path,
  and the ui-tools URL assertion landed (8374c3b)
- #302 style-contract exemption artifacts cleaned up

Corrected #293: finding 1 is refuted. Controls carrying min-h-tap are not
having the floor overridden by an unlayered class — they carry an explicit
sm: step-down beside it, and the audit measures at the desktop viewport
where that step-down is in force. services-navigator-page.tsx:217 and :286
are exact matches for the two 36px shapes via sm:h-9 sm:min-h-0. min-h-tap
is a phone floor that desktop deliberately releases, so "fixing" these
would pin every desktop control to 48px. Finding 2 stands and is the whole
remaining task; the revised next step is to run the enumeration at a phone
viewport on a deterministic surface.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

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: 20 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: 5174e87e-06ba-4a88-87bd-439e80541b6f

📥 Commits

Reviewing files that changed from the base of the PR and between 34a2f9f and dcebcc0.

📒 Files selected for processing (2)
  • docs/branch-review-ledger.md
  • docs/outstanding-issues.md

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

@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 ↗︎.

BigSimmo and others added 8 commits August 12, 2026 14:29
…system rows

Archived as verified-delivered or duplicate: #303, #284 (dup of #296), #149,
#159, #286, #287, #288, #256, #261, #291.
Re-scoped with re-measured evidence: #210 (gate was never missing; the defect
is the .next/dev types include), #262 (aliases 228 -> 193), #266 (counts moved,
23 unadopted holds), #275 (premise 'only one implementation' is false — the
values leaked to five files).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
…e-local rows

Archived: #179 (compact catalogue restored AND gated at build-therapies-index
.mjs:240-244).
Re-measured: #213 (only 3 empty catches left), #180 (re-confirmed live with
exact source/target lines), #275.
Annotated four machine-local rows (#152, #169, #236, #260) so a cloud session
cannot mistake a fresh container for evidence and close them wrongly.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Archived #298: GATES.md:126 now records the '0 matches after a failed request'
rule as implemented-blocking (11 Aug 2026) via errorStateCountProps and
failedStateResultCounts at baseline 0, so the row's 'nothing enforces it'
premise no longer holds. Adoption stays open under #299.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5

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

Updates the repository’s outstanding-issues ledger and branch review ledger to reflect re-verified “delivered” work on main, and corrects a misdiagnosis in issue #293 (the min-h-tap “0px” finding).

Changes:

  • Archives several Tier 1 design rows as verified-delivered and records detailed closure evidence in docs/outstanding-issues.md.
  • Refutes #293 finding (desktop viewport measured intended sm: step-down behavior) and updates next steps toward a deterministic, phone-viewport audit surface.
  • Appends review-ledger entries documenting the verification pass(es).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated 1 comment.

File Description
docs/outstanding-issues.md Archives/updates multiple ledger rows with current-main verification evidence; refutes the #293 min-h-tap claim and adjusts follow-ups.
docs/branch-review-ledger.md Adds ledger rows documenting the Tier 1 re-verification and a broader ledger sweep verification run.

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

Comment thread docs/branch-review-ledger.md
claude added 10 commits August 12, 2026 09:51
docs/outstanding-issues.md has no merge driver by design, so this conflicted
in seven hunks. Resolved by taking main's file as the base — it carries main's
own archives (#207, #226, #230, #261, #284, #296) — then re-applying all 23 of
this branch's changes through scripts/outstanding-issues.mjs: 15 archives and
8 detail rewrites. Verified afterwards that every one landed and that the
guard reports no ids deleted from base.

Two rows are deliberately NOT resurrected. This branch's #302 (style-contract
line-break artifacts) and #303 (issues:next-id sync) no longer exist anywhere
on main under any id — main has since reused both numbers for entirely
different live rows. Both of this branch's rows were verified-delivered trivia,
so nothing actionable is lost, but the disappearance is itself evidence for
#156/#168: a main-side merge dropped rows, which is the hazard those rows
describe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
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
…re-scope the wave plan

Archived with source evidence:
- #166 the verify-before-use caveat ships (verification-notice.tsx:52, rendered
  unconditionally by AnswerCard at answer-card.tsx:108). I reported this row as
  open twice before reading the code; the archive says so.
- #208 buildAnswerClipboardText composes renderCopyText rather than replacing
  formatAnswerRenderCopyText (answer-copy-payload.ts:121-138).
- #216 AnswerCard is adopted on the answer surface and the manifest agrees.

Re-scoped #250: its wave plan names A1 rows that are now closed and hygiene
rows that are in flight, so as written it misdirects. Recorded what actually
remains (#147, #117, #118, #98, #189).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
… rows

Repairs. Two main-merges silently reverted edits from this branch, and the
re-apply script missed them because it was hand-enumerated from round 1's
second commit only:
- #293 the entire min-h-tap refutation was gone (grep sm:min-h-0 returned 0);
  the row was back to asserting a defect that does not exist. Restored from
  a6bfc6f. This was the live hazard — as reverted it directed a reader to
  strip desktop step-downs and pin every control to 48px.
- #266 restored the 2026-08-12 counts (54/31/23) over main's older 53/30/23.
- #262 deliberately NOT restored: main's version is newer than mine and
  records --shadow-tight retired outright on 2026-08-10.
- #289 archived; verified fixed in round 1 and never actually closed.

Stamps. Sixteen rows were checked during the sweep, found correct, and left
unchanged — which left no trace, so they were indistinguishable from rows
nobody had opened. Each now carries VERIFIED CORRECT 2026-08-12 plus the
measurement that settled it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Archived #303: probed the real CLI rather than reading it — ledger:append now
accepts a --scope value beginning with a double dash. (The probe row it wrote
was removed immediately and the guard re-run clean.)

#302 re-measured and WORSE, which strengthens it: the legacyShadowAliases
ceiling is still pinned at 220 while the gate measures 193 — 27 units of
unguarded slack, up from 3 when the row was written. Paying #262's debt down
bought headroom instead of tightening the gate, which is exactly the row's
thesis.

#215 re-scoped: one of its three items is done (image-lightbox has
decoding=async) and the row's path was misleading — the file is under
clinical-dashboard/, so a root-level search reads as 'already fixed'.

Twenty stamped VERIFIED CORRECT with the measurement that settled each.

Coverage: 58 of 119 open rows now carry sweep evidence, up from 34.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
…d rows

The conflict was one hunk. Resolved by keeping this branch's #302 (re-measured
2026-08-12, newer than main's) and all four of main's genuinely new rows
(#304, #305, #306, #307), dropping only main's older #302 and its #303, which
this branch had already archived as delivered after probing the CLI.

Correcting an earlier claim in this branch's history: #302 and #303 were NOT
lost by main. Main renumbered them to #306 and #307 after the id collision,
which is exactly what the guard advises. Both are re-filings of work already
done, and both are archived here with evidence — style-contracts.ts:352-354 is
clean, and the marker reads 308 against a highest declared id of 307.

The derived loss detector reports one exception, #262, which is intentional:
main's version of that row is newer than this branch's.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Measured, not assumed. Two independent runs of the offline harness this row
specifies, on Chromium 141 — the same browser that produced the row's original
figures, so before/after is like-for-like. Mobile CLS (run1/run2 vs recorded):

  /dsm               0.035 / 0.035   was 0.363
  /documents/search  0.000 / 0.000   was 0.220
  /                  0.013 / 0.013   was 0.023
  /forms             0.081 / 0.081   was 0.310 local
  /therapy-compass   0.000 / 0.000   was 0.240 local

The 128px reserve round trip is gone. The cause was fixed by PR #1616, not by
this session: use-phone-overlay-chrome-reserve.ts keeps the CSS seed until an
observer candidate holds across an 80ms quiet window and publishes only via
ResizeObserver — both remedies the row proposed — and its comment at :61 cites
the row by number.

Two controls make this a pass rather than the false clean the row warns about:
values are not uniformly 0.000, so the observer is live; and the /dsm variance
the row recorded (0.363 vs 0.219) has itself vanished, which is what you expect
once the transient write causing it stopped.

Also recorded: #118 updated — the Lighthouse browser drift is 141-vs-151, wider
than the 150-vs-151 the row states, so the budget cannot grade from this
container at all. New row #308 for desktop /documents/search CLS 0.119, stable
against a 0.119 baseline, above threshold, and outside #147's mobile scope —
which also makes the row's "desktop passes everywhere 0.016-0.097" stale.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@BigSimmo
BigSimmo merged commit b3b1202 into main Aug 12, 2026
24 checks passed
@BigSimmo
BigSimmo deleted the claude/design-issues-triage-wnr7k9 branch August 12, 2026 11:53
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.

3 participants