Preserve active indexing-v3 processing locks during strict-gate seeding - #162
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:08fd5df4c8
ℹ️ 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".
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:304caefa99
ℹ️ 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".
Uh oh!
There was an error while loading. Please reload this page.
…nt_gate_batch in schema.sql
Head branch was pushed to by a user without write access
Uh oh!
There was an error while loading. Please reload this page.
… state (#1839) * feat(mockups): three runnable directions for the Tools search results state `/tools?q=…` is rated an urgent redesign in the outstanding-issues ledger (`#162`). The July 2026 study produced three static PNG comps and picked direction A, but nothing runnable was ever built, so the pick had never been read against live catalogue data. Adds `/mockups/tools-search-directions`: one route, three stacked directions for the submitted results state, each shown at phone 390 and desktop 1280. - 01 Compact Results Instrument — query-as-h1, hero and quick-action grid dropped on submit, filters folded onto the title row, dense rows whose primary button launches the tool. - 02 Ranked Clinical Brief — adopts `rankToolRecords` (already exported by the catalogue, never called by this page) and promotes the top match into an inline brief built from `bestFor` / `checkFirst` / `neededInput` / `output`. - 03 Launch-First Triage Deck — no dialog at all; native `<details>` rows, and the area filter and count fuse into one segmented band. Frames are built from the real 13-record `src/lib/tools-catalog.ts`, so match counts, orderings, badges and per-tool copy are genuine rather than fixtures. Both demo queries are real: `monitoring` (3 substring matches vs 4 ranked — today's matcher puts the exactly-named tool last) and `compare` (one match, the reported screenshot). Match-reason chips deliberately use categorical `--type-*` tones rather than the `relevance.tsx` badges, whose `EvidenceRelevance` verdicts would print a source-grounding claim where only a keyword hit exists. Shared app chrome is suppressed for this route because every frame draws its own top bar, composer and band; per `mockups/README.md` shared chrome is inherited or suppressed, never forked into the page. Scope is the results state only — no production surface changes, and the Tools home redesign stays out per `#162`'s own stop rule. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CCSWnNvh73Y3FG3oDj6rRi * docs(ledger): record the tools search mockups review Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CCSWnNvh73Y3FG3oDj6rRi * fix(mockups): align tools search comparison evidence * fix(mockups): update generated site map * fix(mockups): format layout client * fix(mockups): align tools study with submitted search * test(mockups): pin submitted matcher and ranked filters * style(mockups): format search direction regression test * style(mockups): apply repository Prettier width --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
indexing_v3_agent_status='processing'rows to deferred/pending metadata during seeding, making them immediately claimable by another worker and duplicating enrichment work.repair_strict_enrichment_gate_batch, non-passed gate rows now preserveprocessingstate when the existingindexing_v3_agent_locked_atis still within the active lock window; stale/missing locks continue to flow to deferred/pending.supabase/schema.sqlsnapshot to prevent drift.enrichment_status='processing'preservation.Verification
npm run verify:cheapnpm run verify:uiwhen UI, routing, styling, browser behavior, reduced-motion, or forced-colors behavior changednpm run verify:releasebefore release or handoff confidence claimsnpm run format:checknpm run check:production-readinesswhen clinical workflow, privacy, environment, Supabase, source governance, or deployment behavior changednpm run check:deployment-readinesswhen deployment startup, hosting, or rollout behavior changedClinical Governance Preflight
Complete this section when the change touches ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output.
Clinical KB Database(sjrfecxgysukkwxsowpy)Notes
v_processing_lock_timeout) to avoid hard-coded lock-window literals in the repaired function path.