Skip to content

chore(issues): close #170, and correct #309 to partially delivered - #1925

Merged
BigSimmo merged 5 commits into
mainfrom
claude/close-filter-rollout-rows
Aug 13, 2026
Merged

chore(issues): close #170, and correct #309 to partially delivered#1925
BigSimmo merged 5 commits into
mainfrom
claude/close-filter-rollout-rows

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 13, 2026

Copy link
Copy Markdown
Owner

Summary

Two ledger rows were stale in opposite directions. #170 describes work that has shipped and would send the next session to rebuild finished code. #309 describes work that is half shipped, and my first attempt at this PR wrongly closed it — corrected in review, see below.

#170 — shared-band filter adoption · closed

Evidence read out of merged source on main, not from PR state:

Mode Evidence
services src/lib/service-facets.ts exists; navigator imports resultFilterFacetGroup; scope segment is a SegmentedControl backed by a scope URL param; the six query-replacing quick filters now feed AnswerSuggestionChips as composer suggestions rather than the sheet
factsheets converted to SegmentedControl with per-option counts
therapy-compass src/components/therapy-compass/filter-sheet.tsx deleted; screens/search-screen.tsx uses the shared control (#1885, #1889)
documents converged onto the shared sheet with meterContent / footerOverride so its progress meter and "Browse all sources" footer survive (#1910)

The contract also spread past the original six: dsm-search-page, forms-search-results-page, tools-search-results-page and differential-stream-workspace are on the shared sheet.

One correction recorded in the outcome: the earlier plan claimed factsheets' category presets discarded the query and needed evicting to the composer. Measured false — searchHref preserves q and adds category — so no eviction was needed and none was done.

#309 — facet density · stays open, updated to partially delivered

This PR originally closed #309 and that was wrong. The Codex reviewer caught it and was right. Verified against main:

result-filter-control.tsx:712
  const dense = facetGroups.length > 3 || totalFacetOptions > 20;

Formulation passes one facet group with formulationDomainsInUse.length === 9, so neither condition fires, dense is false, and it still renders a wrapping chip row — the exact case that opened the row.

§5 has two thresholds. PR F (#1910) delivered the upper one (find-a-filter + collapse for >20 options or >3 groups), because that is what documents needed. The 6–20 full-width band with its right-aligned count column is unimplemented, as is the nine-option DOM assertion the row itself requested. I conflated "the dense tier landed" with "this row's band landed" and would have archived a row whose specific case is unbuilt.

The done request is replaced with an update recording which band shipped, which did not, the line and measurement proving it, and a stop rule against closing on the upper tier's strength. It preserves the reviewer's alternative: amend §5 to drop the middle band deliberately and record the contract as reversed rather than satisfied.

Verification

  • npm run check:ledger-write-disciplineLedger write discipline passed for f2abf5baf3f4..HEAD
  • npm run check:outstanding-issuesOutstanding-issues guard passed: 310 rows (114 open, 196 archived), unique ids, next-id=313 above the highest, no merge driver, no ids deleted from base f2abf5baf3f4
  • npx prettier --check docs/outstanding-issues-inbox/*.jsonAll matched files use Prettier code style!
  • Every claim re-checked against main by grep before writing it, including the dense expression and formulation's group/option counts.

Two process notes worth recording.

First, I wrote the closures straight into docs/outstanding-issues.md via scripts/outstanding-issues.mjs and check:ledger-write-discipline rejected it. npm run issues:done routes through scripts/ledger-inbox.mjs, which queues a merge-safe request instead — the raw writer is the reconcile-side tool, not the branch-side one. The two entry points are not interchangeable.

Second, and worse: that gate reported a pass while the edit was uncommitted. It compares a committed range, so a dirty tree gives an empty range and a green verdict having evaluated nothing. Captured as a new /issues request in this PR.

Not run, with reasons: verify:ui, build, check:bundle-budget — no source file is touched. classifyPullRequestFiles returns clinicalRisk: false, operationalRisk: false, ragRanking: false, so no Clinical Governance Preflight or RAG impact: line is required.

Risk and rollout

  • Risk: None. Additive JSON request files; the canonical ledger is untouched until a deliberate reconcile.
  • Rollback: delete the request files in docs/outstanding-issues-inbox/.
  • Provider or production effects: None.

Notes

Still open and deliberately not closed here: #275 (the shared filter trigger's arbitrary spacing values, now leaked across five files) and docs/filter-contract.md §7 (SearchScopeFilters — 20 server-side keys editable from no panel), which §7 itself records as not a prerequisite.

npm run issues:reconcile from a fresh ledger branch applies these once this lands.

Both rows describe work that has since landed, and left open they would send the
next session to rebuild finished code. Closed with evidence taken from merged
source on main 2d27039, not from PR state:

  #170 — services (service-facets.ts, scope segment on a `scope` URL param,
         quick filters evicted to composer suggestions), factsheets
         (SegmentedControl + counts), therapy-compass (filter-sheet.tsx deleted,
         converged in #1885/#1889), documents (converged in #1910 with
         meterContent/footerOverride). Contract also spread to dsm, forms,
         tools and differential-stream.
  #309 — the dense tier now lives in the shared ResultFilterSheet: find-a-filter
         plus collapse-by-default per facet group, ported UP from documents by
         PR F rather than duplicated, which is what the row's stop rule required.

Queued as inbox requests rather than canonical edits. I first wrote straight to
docs/outstanding-issues.md via scripts/outstanding-issues.mjs and
check:ledger-write-discipline correctly rejected it — `npm run issues:done`
routes through scripts/ledger-inbox.mjs, which is the merge-safe path. Reverted
and redone. Run npm run issues:reconcile from a fresh ledger branch once this
lands.

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

coderabbitai Bot commented Aug 13, 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: 51 seconds

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: 30591d16-700d-4e55-bea1-384715ec3c9c

📥 Commits

Reviewing files that changed from the base of the PR and between f2abf5b and 124ea05.

📒 Files selected for processing (4)
  • docs/branch-review-records/20b22bab9c03df1ef75e5fc68a4e23226d261c700a10fb4113feca85edc6de57.record.md
  • docs/outstanding-issues-inbox/4944d2d8-69b6-479c-b0bd-a977494a74fb.json
  • docs/outstanding-issues-inbox/4bb5ba0d-ca46-454e-97f4-5a49f5c87f22.json
  • docs/outstanding-issues-inbox/e48b440b-d5a0-436b-bea8-ca7670d1a6bb.json

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

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

supabase Bot commented Aug 13, 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 ↗︎.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b7ac0f244b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/outstanding-issues-inbox/24423d90-c47f-437d-8707-0885fb9b2183.json Outdated
claude added 3 commits August 13, 2026 16:06
check:ledger-write-discipline compares a committed range, so an uncommitted
edit to docs/outstanding-issues.md yields an empty range and a pass having
evaluated nothing. Hit live in this session: I made a forbidden canonical edit,
the gate said green, and only committing and re-running surfaced the real
failure. Also records that scripts/outstanding-issues.mjs (canonical, reconcile
side) and npm run issues:done (inbox, branch side) are different tools with
nothing at the call site saying so.

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

The Codex reviewer on PR #1925 is right and my closure was wrong. Verified on
main 2d27039: result-filter-control.tsx computes

  const dense = facetGroups.length > 3 || totalFacetOptions > 20

so formulation — one facet group of nine derived domains, the exact case that
opened #309 — evaluates dense=false and still renders a wrapping chip row. The
6-20 full-width tier with its right-aligned count column does not exist, and
neither does the nine-option DOM assertion the row asked for.

What PR F (#1910) delivered is the upper tier: find-a-filter and collapse for
>3 groups or >20 options, which is what documents needed. Section 5 has two
thresholds; I conflated them and would have archived the row whose specific
band is unbuilt.

Replaces the done request with an update recording the partial delivery, what
remains, and an explicit stop rule against closing on the strength of the upper
tier. #170 is unaffected — mode adoption did complete.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011btGFwWKYFWDs5McQkqz9J
@BigSimmo BigSimmo changed the title chore(issues): close #170 and #309 — the filter contract rollout is delivered chore(issues): close #170, and correct #309 to partially delivered Aug 13, 2026
@BigSimmo
BigSimmo merged commit 63526ee into main Aug 13, 2026
26 checks passed
@BigSimmo
BigSimmo deleted the claude/close-filter-rollout-rows branch August 13, 2026 16:20
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.

2 participants