docs(issues): close out PR E (therapy-compass) — already merged, close the rollout tracking row - #1921
Conversation
PR E (therapy-compass) was requested as the next task in this rollout, but investigation found it already merged into main — twice, independently, by concurrent sessions (#1885, then #1889 which redid the convergence and also fixed a real AND/OR bug in searchTherapies' tag matching that #1885 left mode-owned). #1889 is what's live: search-screen.tsx uses the shared ResultFilterSheet/ResultFilterTrigger/ResultFilterFacetChips exclusively, onClearAll no longer touches the query, and all three filter dimensions are correctly typed as facets. Re-verified against current main HEAD rather than trusting the merge commit messages: lint and typecheck clean, the therapy-compass filter tests plus the shared-component and services/documents regression suites all pass, and result-filter-control.tsx has a single dense-tier implementation (no duplicate/conflicting logic from the two therapy PRs or the similarly-duplicated services PRs, #1878 then #1882). Since services (#1878/#1882), factsheets (#1888), therapy-compass (#1885/#1889) and documents (#1910) are all now merged, queues a `done` request for /issues #170 — the row tracking the whole filter-contract rollout — through the outstanding-issues inbox (docs/outstanding-issues-inbox/) rather than editing docs/outstanding-issues.md directly, per this repo's conflict-free ledger-write-discipline gate. Reconciliation into the canonical markdown happens after this PR lands (npm run issues:reconcile). Also flags one open thread rather than resolving it here: the services merge conflict-resolution wasn't re-audited line-by-line, so some of #1882's specific implementation choices (a typed ServiceRecord.facets carrier) didn't survive the merge in favor of #1878's catalogPayload-based approach. No product code changes — this is a bookkeeping-only commit plus the branch-review ledger record for the post-merge verification.
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 41 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 (2)
Comment |
Flagged in the previous commit's PR body but not actually captured as a trackable item: the services filter-contract adoption (#1878, then #1882) was independently implemented twice by concurrent sessions, and whatever conflict resolution happened between them when both merged was never reviewed line-by-line. A spot check found registry-records.ts has no ServiceRecord.facets carrier and no corresponding test file on main, so #1878's approach is what survived rather than #1882's — likely equivalent, not verified. Queues a P2 add request via the outstanding-issues inbox so this doesn't only live as prose inside an archived row's outcome text.
CI triageCI failed on this PR. Automated classification of the 2 failed job(s):
Compared with main CI run #10571 (failure). Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger. |
Codex review-and-fix summaryThis comment supersedes the stale PR title and body.
The PR was not merged. Final merge is left to the user. |
Summary
docs/filter-contract.mdrollout), following the kickoff prompt in the handover artifact. Investigation found there is no code left to write: therapy-compass's convergence onto the sharedResultFilterSheet/ResultFilterTrigger/ResultFilterFacetChipsis already merged intomain.onClearAllconflict (wired toclearSearchFilters, filters only, matchingdocs/filter-contract.md§6) but left the Topics tag-matching AND/OR behavior "mode-owned" (unchanged).searchTherapies' Topics predicate was AND-within-group (a second topic narrowed instead of widening), the same defect class already fixed for document tags. feat(filters): therapy-compass adopts the filter contract (PR E) #1889 is what's live onmainnow.mainHEAD rather than trusting the merge-commit messages (per this repo's "third-party fix claims stay unverified until checked" rule):src/components/therapy-compass/screens/search-screen.tsxuses the shared components exclusively,onClearAllnever touches the query, Topics is a correct OR-within-group facet, Review status and Handout are independent one-option facet groups. Lint, typecheck, and the therapy-compass/services/documents/shared-component test suites all pass.result-filter-control.tsxhas exactly onedense = ...definition — no duplicate or conflicting logic survived the double implementation.donerequest for/issues #170— the row tracking the entire filter-contract rollout — throughdocs/outstanding-issues-inbox/(this repo's new conflict-free ledger-write mechanism; direct edits todocs/outstanding-issues.mdare now rejected bycheck:ledger-write-discipline). Reconciliation into the canonical markdown happens after this lands vianpm run issues:reconcile.docs/branch-review-records/entry documenting the post-merge verification, since no ledger row existed for feat(filters): therapy-compass adopts the filter contract (PR E) #1889.src/lib/registry-records.ts(last touched by an unrelated 2026-07 commit) never got a typedServiceRecord.facetscarrier — feat(filters): services adopts the filter contract (PR C, rebased — supersedes #1866) #1878'scatalogPayload-based approach is what's live instead. Both approaches may be functionally equivalent, but this wasn't verified as part of this PR. Worth a follow-up if a deeper reconciliation audit is wanted.Verification
npm run verify:pr-local— recognized as low-risk docs/inbox scope; 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, check:ledger-write-discipline — failed: (none) — not reached: (none). Build skipped (no build-affecting changes detected).mainHEAD, independent of the merge-commit claims:npx tsc --noEmitclean.npx eslintclean acrosstherapy-compass,result-filter-control.tsx,services,factsheets,document-search-results.tsx.tests/therapy-compass-search-filters.dom.test.tsx,tests/therapy-search-facets.test.ts,tests/therapy-compass-mode-wiring.test.ts,tests/search-results-header-band.dom.test.tsx,tests/document-filter-panel.dom.test.tsx,tests/service-facets.test.ts,tests/services-catalog.test.ts,tests/decoration-on-text.contract.test.ts— 8 files, 162 tests, all passed.dense = facetGroups.length > 3 || totalFacetOptions > 20definition inresult-filter-control.tsx(no duplicate dense-tier logic from the two therapy PRs).npm run check:ledger-write-disciplinepasses (the gate that specifically catches an improperly-applied outstanding-issues mutation — it caught my first attempt, which hand-edited the markdown directly; this PR's committed version queues the request correctly instead).Risk and rollout
classifyPullRequestFilesreportsclinicalRisk: false,operationalRisk: false,ragRanking: false,ui: false.Notes
mainvia feat(therapy-compass): converge filter sheet onto the shared contract #1885/feat(filters): therapy-compass adopts the filter contract (PR E) #1889. This PR is pure bookkeeping to close the loop that "begin and complete PR E" surfaced.npm run issues:reconcileneeds to run after this merges to actually move/issues #170into the archive table.Generated by Claude Code