fix: remediate 2026-07-19 audit findings (inert settings, offline auth, redirect query)#906
Conversation
…h, redirect query) - Mark every settings preference no consumer reads yet with an explicit 'Saved for later — not active yet' badge (jurisdiction, population, answer style, landing, home-content toggles, compact citations, and notification toggles); appearance/density/motion stay live and unmarked. A new dom test locks exactly which rows carry the marker. - Treat a retryable getUser() fetch failure as verification-unavailable in the initial auth resolution: an unreachable auth server no longer drops a valid stored session to signed_out on load, while a reachable server that rejects the token still does. Server-side bearer validation is unchanged. - Preserve the sanitized q/focus/run search context through the /medications legacy redirect, matching the root legacy-mode redirect allowlist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LxzDsyr6FXLG1zcuLGyFsf
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughChangesAudit remediation
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bde4c3a220
ℹ️ 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".
|
@codex resolve actionable Codex review findings for this pull request and current head using the repository instructions. This is the pull request's single automatic repair pass: do not perform a fresh review, create new standalone findings, or request another review. Work only the existing unresolved Codex threads on the current head. Always fix P0 and P1 findings. For P2 and lower findings, fix only clear, scoped, low-risk issues; otherwise disposition them with a concise reason. After fixing or dispositioning a thread, reply in that thread with as the first line, followed by a concise summary; that marker authorizes the workflow to close that exact thread. If human input or new authorization is required, do not use the marker and leave the thread open with the blocker. Finish only after every actionable thread is fixed or dispositioned and closed, or explicitly left open for a human decision. Do not update the branch from main, address unrelated reviews, broaden scope, or create more than one scoped fix commit. Do not use external APIs, paid services, credentials, dependency changes, or broad refactors unless explicitly authorized. Add targeted tests where behavior changes and run the narrowest relevant validation. |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
The 'Saved for later — not active yet' marker was visual-only; screen-reader users focusing an inert select, radiogroup, or switch heard just the label. Each marked control now references its badge through aria-describedby, and the dom test locks the announcement contract for all ten inert rows. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LxzDsyr6FXLG1zcuLGyFsf
|
@copilot resolve the merge conflicts in this pull request |
…hanges-kde66i # Conflicts: # docs/branch-review-ledger.md
The merge conflicts have already been resolved. The merge commit |
Summary
ef042cacd, landed via docs(ledger): record 24-hour merged-window regression audit at ef042cacd #904):settings-dialog.tsx. The functional appearance/density/motion rows stay unmarked. Wiring these preferences into answer generation was deliberately not done here — that is a clinical-behavior change requiring governance review; the new dom test documents the exact contract for flipping a control live later.resolveInitialAuthStategains averificationUnavailableinput, set fromisAuthRetryableFetchError(getUser().error). An unreachable auth server (offline/flaky load) no longer silently drops a valid stored session to signed-out, while a reachable server that rejects the token still resolves signed-out (the stale/tampered-token defense is unchanged). Server-side bearer validation on every API route is untouched./medicationsredirect (P3): now preserves the sanitizedq/focus/runsearch context, using the same allowlist as the root legacy-mode redirect, so bookmarked/medications?q=…links keep their query.docs/branch-review-ledger.md.Verification
settings-inert-preferences.dom.test.tsx(new — locks exactly which rows carry the marker),private-client-auth.test.ts(3 new resolution cases),audit-navigation-auth-regressions.test.ts(new query-preservation case),app-preferences.test.ts,site-map.test.ts.verify:cheapat this head: every static guard (runtime, actions-pin, ci-scope, ci-triage, pr-policy, sitemap, brand, type-scale, icon-scale, function-grants, owner-scope), lint, and typecheck passed; unit suite 2881 passed / 2 skipped with the sole failure being the long-baselined container-onlytests/pdf-extraction-budget.test.tsartifact (fails identically on clean main in this container; hosted CI green on it throughout feat(pwa): retirement kill-switch, offline-version binding guard, and dev teardown flag #826–docs(ledger): record 24-hour merged-window regression audit at ef042cacd #904).UI verification not run: the settings change adds a static badge to existing rows (
ui-smokeasserts row visibility only, unaffected); the blocking hosted Production UI job covers this head in CI.Risk and rollout
Clinical Governance Preflight
Clinical KB Database(sjrfecxgysukkwxsowpy)Notes
🤖 Generated with Claude Code
https://claude.ai/code/session_01LxzDsyr6FXLG1zcuLGyFsf
Summary by CodeRabbit
New Features
Bug Fixes