Skip to content

docs(issues): record why three closures were rejected, and that #231's instrument now exists - #1957

Merged
BigSimmo merged 2 commits into
mainfrom
claude/correct-rejected-closures
Aug 14, 2026
Merged

docs(issues): record why three closures were rejected, and that #231's instrument now exists#1957
BigSimmo merged 2 commits into
mainfrom
claude/correct-rejected-closures

Conversation

@BigSimmo

@BigSimmoBigSimmo commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Summary

Four ledger corrections, queued as immutable inbox requests. No canonical-ledger edit; apply with npm run issues:reconcile.

  • #235, #237, #238 — a rejected closure is only useful if the row remembers it. Each had a done queued in PR docs(issues): retire the stale IN FLIGHT annotations, archive 9 verified rows #1940 and cancelled on review. The cancellations were right: all three rows ask for visual or browser proof and were closed on executable evidence. Without recording that, the same misreading is available to the next reader at the same cost. Each row now carries the attempt, the reason it was refused, and a Stop rule naming the evidence class that must not be used again:
    • #235ADOPTION.md §7.1 opens with "This PR records executable evidence rather than committing image baselines". The section that looks like the evidence says in its own first line that it is not. Stop rule: do not close on unit, DOM or contract evidence of any kind.
    • #237 — jsdom does not lay out text, so a 320px assertion proves the string is present, not that it fits — which is the entire question for a low-confidence extraction in a sparse grid. Stop rule: only a real browser at 320px settles it.
    • #238 — the residual risk is ancestor-scoped CSS / contain / transform on five specific host surfaces, a property of where each overlay sits in the real page. No Sheet component test can see it. Stop rule: the question is about the host surfaces, not about Sheet.
  • The same three drop their IN FLIGHT — do not start prefix. PRs feat(ui): harden design-system a11y contracts (cn, warning contrast, MissingValue, forced-colors, LinkAction) #1841 and docs(ui): record DS adoption evidence and overlay/links checks (221,233,234,235,238,245) #1842 have merged, so that warning was blocking rather than protecting — the same stale-safeguard class PR docs(issues): retire the stale IN FLIGHT annotations, archive 9 verified rows #1940 addressed for the rest of the cluster.
  • #231 — its "Next: instrument and reproduce" is stale. Commit a3bc4da added scripts/probe-generation-quality.ts (one cache-bypassed live answer reporting the structured generation_quality_gate_reasons; provider-backed, refuses demo mode, never caches or logs the probe) and adjudicated PR fix(rag): retry unverified numeric answers safely #1861 as superseded for phase 1, close recommended, with the numeric-retry half deferred to phase 2 pending probe evidence. The row now records both, so nobody reviews fix(rag): retry unverified numeric answers safely #1861 as though it were the live fix or rebuilds the probe. What remains is running it where credentials exist — it is blocked in offline containers, which is why it has not run.

Each update rewrites the whole detail cell, so the existing substance of every row was read first and carried forward verbatim; only the stale prefix was dropped and the correction appended.

Verification

  • npm run verify:pr-local
PR-local verification 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)

The first run of this gate failed on check:ledger-write-discipline — it compares two committed refs, and the requests were still uncommitted, so it refused rather than passing vacuously. Re-run after committing; the summary above is from that second run.

UI verification not run: no UI, routing, styling, or browser-behaviour change in this diff. That is also precisely the point of three of these four corrections — the browser proof they ask for is the work still outstanding, not something this PR supplies.

Risk and rollout

  • Risk: Low. Four added JSON request files under docs/outstanding-issues-inbox/. No application source, no dependency, no schema, no workflow, and the canonical ledger is untouched until a separate reconcile applies them.
  • Rollback: git revert the single commit, or delete the request files before reconciliation.
  • Provider or production effects: None. Every claim was derived from committed files and local git history; nothing reads or mutates Supabase, OpenAI, Railway or hosted CI.

Notes

  • No ## Clinical Governance Preflight section: classifyPullRequestFiles returns clinicalRisk: false, operationalRisk: false, ragRanking: false, ui: false for docs/outstanding-issues-inbox/**. #231 is a clinical-answer row, but this diff only edits its ledger text — it changes no ingestion, answer-generation, ranking, source-rendering, document-access or privacy code.
  • Bundling rationale: four items, one scope (correcting rows this session got wrong or left stale), each listed individually above, all independently low-risk under both the classifier and the broader risk list in AGENTS.md.

Generated by Claude Code

Summary by CodeRabbit

  • Documentation
    • Added review records covering queued updates, rejected closures, stale issues, and superseded requests.
    • Expanded the outstanding-issues inbox with current status, residual risks, validation requirements, test and canary results, and next steps.
    • Documented required real-browser visual checks across supported surfaces, including narrow-screen validation and restrictions on relying solely on non-visual evidence.

…s instrument now exists
Four corrections, queued as immutable inbox requests.
#235, #237 and #238 each had a `done` queued in PR #1940 and cancelled on
review. The cancellations were right: all three ask for visual or browser
proof and were closed on executable evidence. Each row now records the
attempt, the reason it was refused, and a Stop rule naming the evidence
class that must not be used again — so the next reader does not repeat it:
- #235: section 7.1 opens with "records executable evidence RATHER THAN
committing image baselines", so the section that looks like the evidence
says in its first line that it is not
- #237: jsdom does not lay out text, so a 320px assertion proves the string
is present, not that it fits
- #238: the risk is ancestor-scoped CSS/contain/transform on five specific
host surfaces, which no Sheet component test can see
All three also drop their IN FLIGHT do-not-start prefix; PRs #1841 and
#1842 have merged, so the warning was blocking rather than protecting.
#231's "Next: instrument and reproduce" is stale — commit a3bc4da added
scripts/probe-generation-quality.ts and adjudicated PR #1861 as superseded
for phase 1. The row now says so, so nobody reviews #1861 as the live fix
or rebuilds the probe. Next is running it where credentials exist.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
@coderabbitai

coderabbitaiBot commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR adds one branch review record and four outstanding-issue inbox records. The records document issue status, rejected closure conditions, validation evidence, follow-up actions, and restrictions on unsupported closure evidence.

Changes

Issue record updates

Layer / File(s)Summary
Review record and cache-fix adjudication
docs/branch-review-records/..., docs/outstanding-issues-inbox/7f5e6922-8d0b-424a-b359-12bed3a4e315.json
The records document queued review updates, merged status, and the validated stale-fallback cache fix for issue #231.
Outstanding visual-validation records
docs/outstanding-issues-inbox/38c6095f-41f5-4925-b1ea-f5af5187885d.json, docs/outstanding-issues-inbox/bd11cfe9-1627-425f-a8f7-e0e202b980a4.json, docs/outstanding-issues-inbox/ec6d0c23-2f19-4159-9c73-49bdc103b61e.json
The records capture rejected closures, missing visual evidence, real-browser validation requirements, follow-up actions, and closure restrictions for issues #235, #237, and #238.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk:🔵 Low · up to aae70

The PR only adds issue-ledger request records, but its review record omits the decisive verification output and required ledger lookup. Merge is reasonable with explicit owner follow-up to add or accept this bounded evidence gap.

Possibly related PRs

  • BigSimmo/Database#1830: Documents issue #231’s stale-fallback cache fix and related RAG fallback-cache changes.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly identifies the rejected closure records and the newly available #231 instrument.
Description check✅ PassedThe description covers the changes, verification, risks, rollback, production effects, and explains why UI and governance checks were not applicable.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/correct-rejected-closures

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

@supabase

supabaseBot commented Aug 14, 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 ↗︎.

@BigSimmo
BigSimmo enabled auto-merge August 14, 2026 15:00
@BigSimmo
BigSimmo merged commit b58a235 into mainAug 14, 2026
27 checks passed
@BigSimmo
BigSimmo deleted the claude/correct-rejected-closures branch August 14, 2026 15:01

@chatgpt-codex-connectorchatgpt-codex-connectorBot 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:e4372b5b4e

ℹ️ 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".

"action": "update",
"payload": {
"id": "#231",
"detail": "PARTIAL 2026-08-12: This PR fixes the clinically consequential stale-fallback path: every answer whose routing or degraded reason contains generation_fallback is excluded from rag_response_cache. Offline evidence: 96 focused answer-route tests and 574 RAG fixture/contract tests passed. Approved live baseline/final canaries preserved 36/36 document and content recall at 1.0 with zero per-case reciprocal-rank regressions; the final 44-case answer gate had zero citation or numeric-grounding failures. A budget extension was tested and rejected: four cache-bypassed 'Lithium dosing?' probes remained grounded, cited safe extractive fallbacks at 35-40 second candidate budgets; the decisive 40-second probe completed generation in 25.272 seconds and 27.237 seconds total with route_deadline_exceeded=false, but failed generation quality. Therefore OPENAI_ANSWER_TIMEOUT_MS and the route budget are not the current residual binding cause. INSTRUMENT NOW EXISTS 2026-08-14: the \"Next: instrument\" half of this row is done. Commit a3bc4da adds scripts/probe-generation-quality.ts — one cache-bypassed live answer reporting the structured generation_quality_gate_reasons, provider-backed, refusing demo mode, never caching or logging the probe. The same commit adjudicates PR #1861: superseded for phase 1, close recommended, with the numeric-retry half deferred to phase 2 pending probe evidence. So do not review #1861 as though it were the live fix, and do not re-implement the probe. Next: run scripts/probe-generation-quality.ts in an environment that has OPENAI and Supabase credentials — it is blocked in offline containers, which is why it has not been run yet — then make a separate bounded output-quality fix with an offline fixture and live canary. Stop: do not increase route/provider timeouts or cache any generation fallback."

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Correct the false no-logging claim

When an operator supplies any query—especially clinical text—the probe prints the complete query at scripts/probe-generation-quality.ts:38 and includes it again in the JSON report via the query field at lines 55–56, despite this durable ledger entry saying it never logs the probe. Terminal or CI output may therefore retain the text; distinguish logQuery: false preventing database persistence from the script's stdout logging, or redact the query before describing the probe as non-logging.

AGENTS.md reference: AGENTS.md:L895-L898

Useful? React with 👍 / 👎.

@coderabbitaicoderabbitaiBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔇 Additional comments (5)
docs/branch-review-records/4859907cc6069250fcef7f0156490f1e04d0fd60e25fab0edbf33408b720efa9.record.md (1)

1-1: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

⚠️Unverified finding
Sandbox verification was unavailable.

Complete the required verification evidence before accepting this record.

Line 1 reports verify:pr-local as 11 completed, 0 failed, but it does not include the decisive gate output line. The supplied context also does not show the required ledger lookup for PR #1957.

Run:

Include the decisive verify:pr-local and ledger:lookup output lines in the review evidence. Do not rely on an exit code alone.

As per coding guidelines: “When reporting verification, include the decisive gate output line; an exit code of 0 alone is insufficient evidence,” and run npm run ledger:lookup -- <ref> --scope "<scope>" before reviewing a branch or pull request.

docs/outstanding-issues-inbox/7f5e6922-8d0b-424a-b359-12bed3a4e315.json (1)

1-10: LGTM!

docs/outstanding-issues-inbox/bd11cfe9-1627-425f-a8f7-e0e202b980a4.json (1)

1-10: LGTM!

docs/outstanding-issues-inbox/ec6d0c23-2f19-4159-9c73-49bdc103b61e.json (1)

1-10: LGTM!

docs/outstanding-issues-inbox/38c6095f-41f5-4925-b1ea-f5af5187885d.json (1)

1-10: LGTM!


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 295ba699-1eea-42be-af21-ae0689733dee

📥 Commits

Reviewing files that changed from the base of the PR and between 088a3ab and aae7081.

📒 Files selected for processing (5)
  • docs/branch-review-records/4859907cc6069250fcef7f0156490f1e04d0fd60e25fab0edbf33408b720efa9.record.md
  • docs/outstanding-issues-inbox/38c6095f-41f5-4925-b1ea-f5af5187885d.json
  • docs/outstanding-issues-inbox/7f5e6922-8d0b-424a-b359-12bed3a4e315.json
  • docs/outstanding-issues-inbox/bd11cfe9-1627-425f-a8f7-e0e202b980a4.json
  • docs/outstanding-issues-inbox/ec6d0c23-2f19-4159-9c73-49bdc103b61e.json

Sign up for freeto 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

@BigSimmo@claude