docs(audit): 2026-08-14 incident forensics and live index restore evidence (#316, #231) - #1960
Conversation
…be evidence (#316, #231) Fills the 2026-08-14 owner-authorized incident evidence into the live-drift forensics record: Phase 1.1 migration-history fingerprint (20260705180000 executed with 14 statements; the two trigram indexes existed at the 2026-08-04 guard and were dropped by 2026-08-09), Phase 1.3 partial inventory, Phase 4 partial restore (CREATE INDEX CONCURRENTLY, both indisvalid/indisready), and Phase 5 before/after probes (supabase_rpc_latency_ms 31610 -> 1535 text / 8519 hybrid). Carries the PR #1939 review ledger record and queues merge-safe issue updates for #316 and #231. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpjrUp4fYmiDGfc6NBqACX
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpjrUp4fYmiDGfc6NBqACX
CI triageCI failed on this PR. Automated classification of the 2 failed job(s):
Compared with main CI run #10845 (cancelled). Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger. |
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:44 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 (8)
Comment |
…s + one combined update CI (docs:check-links -> ledger-inbox planner) rejected two pending #231 updates: this branch's incident-evidence update and main's instrument-exists update (7f5e6922). Both are cancelled with reasons and replaced by a single combined update carrying the earlier text verbatim plus the 2026-08-14 incident addendum, so no queued content is lost. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpjrUp4fYmiDGfc6NBqACX
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:b9485d897d
ℹ️ 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.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
… proof, record guard-migration debt Removes the unsupported 2026-08-04 existence bound (the 20260804110240 guard validates four other indexes, not this pair): the drop window is 2026-07-05 to 2026-08-02 and the dashboard attribution stays an inference pending audit history. Records the post-build pg_indexes canonical definitions for both restored indexes, and names the still-owed phase 4.4 fail-fast guard migration as follow-up debt rather than claiming no migration is needed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpjrUp4fYmiDGfc6NBqACX
Uh oh!
There was an error while loading. Please reload this page.
…e record Two pending mutations targeted #316 - this branch's dispatch-proof update and the incident session's restoration update from PR #1960 - which the inbox correctly refuses to apply without an explicit decision. Cancelled both and queued a single combined update so the row carries one coherent account. The combined text keeps the incident findings verbatim (both indexes restored and validated, supabase_rpc_latency_ms 31610 -> 1535 text / 8519 hybrid, the drop window, the outstanding dashboard-audit attribution) and corrects two details that PR #1960's own review and the 2026-08-14 dispatch have since settled: the 20260804110240 guard validates four OTHER indexes and never checks this pair, so it gives no existence bound for 2026-08-04; and the missing-index count is measured at 20, not 21. Also cancels a placeholder request queued in error by a failed shell substitution. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BKNFogaYfCQBvFVqFQnfRt
Summary
docs/audit/live-drift-forensics-2026-08.md, filling the previously pending Phase 1.1 / 1.3 / 4 / 5 sections of the remediation evidence file with the actual measured findings: production semantic-query retrieval atsupabase_rpc_latency_ms31,610 ms; migration-history fingerprint showing20260705180000executed with 14 recorded statements (not mark-applied) and the20260804110240guard passing on 2026-08-04; live inventory proving exactly two of the ten reconcile indexes missing (documents_title_trgm_idx,document_chunks_content_trgm_idx), therefore dropped between 2026-08-04 and 2026-08-09.CREATE INDEX CONCURRENTLYfor both indexes (bothindisvalid/indisready, 648 kB and 68 MB) plusANALYZE, and the after-measurements —supabase_rpc_latency_msdown to 1,535 ms (text fast path) / 8,519 ms (hybrid),match_document_chunks_text_v2at 14 ms. No repo schema change was needed; the definitions were already codified.#316(partial index restoration, dropper attribution pending with the dashboard audit history) and#231(rung-2 pre-generation-latency evidence now measured; S1 must re-verify gate dominance on healthy latency).RAG impact: no retrieval behaviour change — documentation, audit evidence, and ledger/inbox records only; the live index restoration itself recreated already-codified index definitions and is recorded here, not performed by this diff.
Verification
npm run verify:pr-local→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).npm run formatrun and committed.Risk and rollout
CREATE INDEX CONCURRENTLYbuilds +ANALYZE) was separately and explicitly owner-authorized in-session, is additive, and rolls back withdrop index concurrentlyif ever needed.Clinical Governance Preflight
Clinical KB Database(sjrfecxgysukkwxsowpy)Generated by Claude Code