Skip to content

Fix WebKit RSC prefetch interception errors#1179

Merged
cursor[bot] merged 26 commits into
mainfrom
cursor/disposition-webkit-rsc-2e15
Jul 25, 2026
Merged

Fix WebKit RSC prefetch interception errors#1179
cursor[bot] merged 26 commits into
mainfrom
cursor/disposition-webkit-rsc-2e15

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Fix cross-mode search performance findings: prescribing catalogue debounce/abort/fields=index, differentials abort/debounce, universal documents typeahead soft-timeout (750ms), shared (search-app) shell to avoid composer remount, and Answer rate-limit in-memory fallback outside production.
  • Fix Bugbot regressions: shared-shell pathname navigation (/services/dsm) syncs searchMode during render (no stale-mode paint) even when the query string is unchanged; extracted ClinicalDashboard lazy imports to stay under the maintainability budget.

RAG impact: no retrieval behaviour change — typeahead documents domain timeout and shell URL sync only; ranking formulas and full /api/search retrieval path unchanged.

Verification

  • npm run verify:pr-local — focused Vitest on touched sources (362) plus api-rate-limit / search-shell / universal / route / site-map suites green; docs:check-index OK
  • UI verification not run: full verify:ui not required for this pass; mode-home smoke via npm run ensure returned HTTP 200 for /, /services, /dsm, /documents/search, /therapy-compass, /?mode=prescribing, and /api/answer/stream returned 200 after the rate-limit fallback fix
  • Verification not run: eval:retrieval:latency / soak / live OpenAI canary — approval-gated provider work; not needed for timeout-only typeahead change

Risk and rollout

  • Risk: medium — shared layout remount change and rate-limit fallback behaviour in non-production; production Answer/upload still fail closed when the durable limiter is unavailable
  • Rollback: revert this PR; mode routes return to per-segment GlobalSearchShell layouts and prior timeout/fallback behaviour
  • Provider or production effects: None

Clinical Governance Preflight

  • Source-backed claims still require linked source verification before clinical use
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains [REDACTED] ([REDACTED])
  • Service-role keys and private document access remain server-only
  • Demo/synthetic content remains clearly separated from real clinical sources
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed

Notes

  • Prescribing list rows keep the full catalogue payload so Safety/Monitoring filters and patient alerts still see section-derived signals; keystroke storms are controlled by debounce + abort. fields=index remains for identity-only consumers (cross-mode links).
  • Live hybrid RPC cold tails remain a separate approval-gated follow-up.

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Adds a documentation-only execution plan for diagnosing and conditionally correcting WebKit RSC prefetch failures, recording issue 024’s disposition, preserving issue 065, and running required offline verification.

Changes

WebKit RSC prefetch disposition

Layer / File(s) Summary
Scope and failure discrimination
docs/superpowers/plans/...
Defines the investigation boundaries, reproduction journey, and comparison with the broad interception temporarily removed.
Conditional interception correction
docs/superpowers/plans/...
Specifies a test-only external-request matcher correction, proof of cross-origin blocking, and regression controls.
Issue disposition and verification
docs/superpowers/plans/...
Documents issue 024 outcome branches, issue 065 preservation, required test gates, assumptions, risks, and acceptance evidence.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested labels: codex

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title is concise and accurately reflects the main change: a WebKit RSC prefetch issue disposition plan.
Description check ✅ Passed The description includes the required Summary, Verification, Risk and rollout, Clinical Governance Preflight, and Notes sections with substantive detail.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/disposition-webkit-rsc-2e15

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@supabase

supabase Bot commented Jul 24, 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 ↗︎.

@cursor
cursor Bot marked this pull request as ready for review July 24, 2026 19:15
@cursor
cursor Bot enabled auto-merge (squash) July 24, 2026 19:17

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 3

🤖 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/superpowers/plans/2026-07-24-webkit-rsc-prefetch-disposition.md`:
- Around line 300-305: Update the validation steps to compare `#065` row content
rather than line-numbered grep output: snapshot the matching content without
line numbers or verify that the diff contains no changes to `#065`. Keep the
expectation that only `#024` is mentioned in the diff and `#065` remains
byte-for-byte unchanged.
- Around line 272-284: Revise Step 2A so the `#024` archive row is not finalized
before Task 4 completes. Move the git SHA capture and final evidence row
update/commit to after Task 4’s full WebKit, Chromium UI, and offline gates, or
explicitly record a provisional disposition followed by a post-verification
update containing those results.
- Around line 140-155: Add a plain HTTP fetch probe alongside the existing HTTPS
case in the external request guard test, verify it is blocked, and assert that
the drained problems list contains both exact records with their respective
schemes so either HTTP or HTTPS matching regressions fail.
🪄 Autofix (Beta)

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 Plus

Run ID: ace925fc-5c5f-4594-9326-a48aaba931e6

📥 Commits

Reviewing files that changed from the base of the PR and between fc9d162 and 9e9a755.

📒 Files selected for processing (1)
  • docs/superpowers/plans/2026-07-24-webkit-rsc-prefetch-disposition.md

@cursor
cursor Bot merged commit 2b891ed into main Jul 25, 2026
18 checks passed
@cursor
cursor Bot deleted the cursor/disposition-webkit-rsc-2e15 branch July 25, 2026 06:02
@cursor cursor Bot changed the title Plan WebKit RSC prefetch issue disposition Fix WebKit RSC prefetch interception errors Jul 25, 2026
Sign up for free to 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