docs: replace the search-bar handoff with a durable decisions record - #1609
Conversation
`docs/handoff-search-bar.md` shipped to main in #1555. It existed to carry one unverified commit across a session boundary, and its instructions are now false: it tells the reader that `6917e732` is unverified and that no PR should be opened on it, when #1555 merged exactly that work. Leaving it in the repo means the next person to read it acts on stale gate status. Its durable content — results-bar anatomy, why the filter shelf covers two modes rather than eight, and the two things deliberately not done (the library button stays until nav can preserve the query; Sort does not move into the phone sheet from the shared band) — moves to docs/search-results-bar-decisions.md, verified against current main rather than copied forward: `appliedFilters`/`onClearFilters` still have exactly the two production consumers the doc claims, and the `Open source library` control is still there. Also records the PR-policy body defect that #1555's handoff flagged but never captured: ci.yml's body-sync job reads PR_POLICY_BODY.md from the PR head, so committing that scratch file to main (#1546) replaced every open PR's description, and pr-policy.mjs parses the body as merge-gating input. #1548 deleted the file; nothing stops the next branch adding one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 57 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)
📝 WalkthroughWalkthroughThe PR replaces the search-bar handoff with decision documentation, indexes the new document, records the review outcome, and adds issue 230 about pull-request policy synchronization. ChangesSearch results decisions
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7fc0dbbf48
ℹ️ 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".
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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/branch-review-ledger.md`:
- Line 621: The branch review row for claude/search-bar-decisions-doc claims the
checks passed "with quoted output" but contains no actual output lines from the
verification commands. Either add the decisive summary output line from each
passed check (prettier --check, check:outstanding-issues, docs:check-links,
docs:check-index) following the verification commands, or remove the "with
quoted output" phrase from the row to align the claim with the actual recorded
evidence.
In `@docs/outstanding-issues.md`:
- Line 250: Update the issue `#230` description to scope the impact to PR branches
whose heads contain PR_POLICY_BODY.md, rather than claiming that committing the
file to main affected every open PR. Preserve the existing incident details, and
only mention broader impact if the documented CI checkout path or another
verified path establishes it.
In `@docs/search-results-bar-decisions.md`:
- Around line 32-37: Reconcile the search-mode count in the document. The
introduction references "all twelve search modes" but the scope decision in
lines 34-37 accounts for only eight modes (two shelf modes plus six non-shelf
modes). Either identify and document the scope decisions for the remaining four
modes and their shelf behavior, or correct the total count from twelve to eight
if that is the actual number of search modes. Ensure the section completely
describes the scope boundary for every mode mentioned in the introduction.
- Around line 59-62: Update the statement in the search-results-bar-decisions
documentation about documents and therapy-compass having phone filter sheets to
clearly indicate this is a target decision for future implementation, not
current documented behavior. Alternatively, verify that issue `#170` in the
outstanding-issues document has been closed and updated to reflect the current
state of phone filter sheets across all modes, ensuring the current-state
contract remains accurate for future changes that depend on it.
🪄 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: 8d5eb8fc-757f-4707-8dc9-9e2de5cc8083
📒 Files selected for processing (5)
docs/README.mddocs/branch-review-ledger.mddocs/handoff-search-bar.mddocs/outstanding-issues.mddocs/search-results-bar-decisions.md
💤 Files with no reviewable changes (1)
- docs/handoff-search-bar.md
|
@cursoragent run bugbot and ensure its findings are correct Please also fix any issues, address and fix any comments and resolve once done. Ensure no regression and it makes sense according to PR for any fix in context and also fix failing CI please. |
|
@cursoragent fix failing merge conflict |
|
Nothing left to fix — PR #1609 is already merged. The earlier |
There was a problem hiding this comment.
Pull request overview
This PR replaces an outdated session handoff document about the search results bar with a durable “decisions record”, and captures a related CI/workflow hazard as a new outstanding issue entry. The intent is to keep the docs accurate over time by moving long-lived rationale out of a stale handoff and into the architecture documentation index.
Changes:
- Delete the stale
docs/handoff-search-bar.mdhandoff document. - Add
docs/search-results-bar-decisions.mddocumenting stable design/behavior decisions forSearchResultsHeaderBand, and index it under Architecture. - Append outstanding-issues row
#230about the PR description sync hazard, and bumpissues:next-idaccordingly; record this doc-only review in the branch review ledger.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| docs/search-results-bar-decisions.md | New durable decisions record for the shared search results bar (anatomy, scope rationale, “not done” items). |
| docs/README.md | Adds the new decisions doc to the Architecture index. |
| docs/outstanding-issues.md | Bumps issues:next-id to 231 and adds open issue #230 describing the PR body sync hazard. |
| docs/handoff-search-bar.md | Removes the outdated handoff doc whose gate/branch instructions are no longer correct. |
| docs/branch-review-ledger.md | Records this docs-only review/change entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ix review findings Reviewed the full findings list; fixed the ones I agree with and left the rest, with reasons in the PR thread. **Tap floor on the recovery actions.** `emptyStateAction` was 36px. Pre-existing, but it stopped being incidental when this branch made those controls the designated way out: on the documents zero-result and filtered-to-zero paths they are the only escape, and on therapy-compass `Clear search` is the only one for a query-only zero result. Shipping the escape hatch below the floor the same change raised the facets, find field and disclosure headings to contradicts the rule this PR argues for in its own description. Now `min-h-tap sm:min-h-9`, matching the facets, pinned by a test. **Sheet-footer Library rendered a full border, not the intended rule.** `cn` is a plain join, so `floatingControl`'s own `border` survived the added `border-t` and the result was a fully bordered button whose colour depended on Tailwind's emission order between two competing arbitrary utilities — the exact hazard the facet-chip branches in the same file are written to avoid. `border-0 border-t`. **"No matches" asserted while the registry was still loading.** On the services and forms paths `loading` covers only the document search, so this branch rendered "No matches for …" directly beneath a spine reading "Searching…", which derives its status from `recordStatus`. The band's invariant is that a search in flight asserts nothing; the body now holds to it too. **Therapy quick-filter `Clear` was a no-op with no filters active.** Rewiring it to `clearSearchFilters` fixed the label/handler mismatch and created a second one: in the ordinary "typed a query, got results" case the control did nothing at all. Gated on `activeFilterCount > 0`, as the sheet's `Clear all` already is. **Two stale docs**, both the trap #1609 records. `search-chrome-behaviour.md` item 7 still described the deleted full-width `border-top` accent and the old forced-colors values; it now describes the lead mark, `6px double` faulted, and the card's `4px double`. The `globals.css` band banner still claimed 580 as the heaviest weight and that the query and figure share it — both changed. **`SearchXIcon` deleted**: the therapy empty-state swap left it with no consumer, and `check:knip` does not gate unused exports. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qm3i3eLCDcwytzge1sKM4a


Summary
docs/handoff-search-bar.md. It shipped tomainin Search results bar: delete the inert scope system, rebuild the filter shelf, and land the bar anatomy #1555 as a session handoff, and its instructions are now false: it states that6917e732is unverified and that no PR should be opened on it, when Search results bar: delete the inert scope system, rebuild the filter shelf, and land the bar anatomy #1555 merged exactly that work. A reader acting on it today acts on stale gate status.docs/search-results-bar-decisions.mdwith the durable content from that file — results-bar anatomy, why the filter shelf covers two modes rather than eight, and the two things deliberately not done — and lists it indocs/README.mdunder Architecture.#230:ci.yml's "Sync PR policy body" job readsPR_POLICY_BODY.mdfrom the PR head and replaces the PR description with it. Claude/clinical kb design system 333a69 #1546 committed that scratch file tomain, so every open PR inherited Claude/clinical kb design system 333a69 #1546's body, andpr-policy.mjsparses the body as merge-gating input. Therapy Compass: stop faking multi-select with a listbox on phones #1548 deleted the file, which removes the symptom; nothing stops the next branch adding one.The new doc was verified against current
mainrather than copied forward.appliedFilters/onClearFiltersstill have exactly the two production consumers it claims (document-search-results.tsx,therapy-compass/screens/search-screen.tsx, plus gate-exempt mockups), and theOpen source librarycontrol is still present.Docs only — no source, test, or configuration files change.
Verification
npm run verify:pr-localVerification not run:
verify:cheapwas started on this tree and did not complete — its log ends part-way throughlintwith no lint result, no typecheck, and no unit-test tally, so it is not being reported as a pass. The checks that cover this diff were run directly on this exact tree and are quoted below.npx prettier --check .(whole tree) —All matched files use Prettier code style!npm run check:outstanding-issues—228 rows (100 open, 128 archived), unique ids, next-id=231 above the highest, no merge driver, no ids deleted from base 130c7746d9f4npm run docs:check-links—docs link check passed: 1615 repo path references resolve.npm run docs:check-index—all 50 repository roots/modules/routes and all schema tables are indexedUI verification not run: no UI, routing, styling, or browser behaviour changes in this diff.
Risk and rollout
docs/,.github/,scripts/,src/, ortests/.Notes
#230was allocated off currentmain(next-id=230). An earlier attempt on a stale branch had allocated#186, whichmainhad since taken for an unrelated row — the read-modify-write allocation hazard recorded in#156, reproduced here.Summary by CodeRabbit