Skip to content

FPFNFIXAPEX: Preserve Next Pages data-derived redirects - #2049

Open
aidenybai wants to merge 5 commits into
mainfrom
codex/audit-next-pages-data-redirect
Open

aidenybai wants to merge 5 commits into
mainfrom
codex/audit-next-pages-data-redirect

Conversation

@aidenybai

@aidenybai aidenybai commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Allow an effect that only replaces the route from props explicitly returned by the same Next Pages module’s data function. The exception requires detected Next.js, an eligible Pages file, the default page owner, readonly prop/router bindings, and a single guarded router.replace call.

Keep warnings for extra work, unsupported page hosts, mutable or escaped providers, and ambiguous data transport. Readonly React default/namespace bindings may use static, direct createElement calls; other namespace uses retain the existing checks.

Validation:

  • 135 focused tests passed, including 100 independent synthetic cases and 35 existing regressions.
  • All seven repository checks passed: 34,171 tests passed and 1,118 skipped; lint, formatting, types, generated registry, serial build, and JSON smoke checks passed.
  • Strict fuzzing passed: 500 iterations with seed 42, 2,165 executions, 129 rule fires, 231 parse skips, full fire coverage, and no findings.
  • Built API and CLI each analyzed all 100 synthetic files: target diagnostics fell from 98 to 78, with 20 removals, no additions, and unrelated diagnostic objects unchanged. Missing-capability controls retain separate unit-test evidence.
  • Bounded sample parity passed: 20 roots across six repositories, 1,721 analyzed files, and 3,308 unchanged diagnostic objects, with no additions, removals, or skips. All seven natural CI test jobs passed, including Windows. Full-corpus parity remains blocked; no performance claim is made.

The tracked pre-commit checks passed when run manually because this isolated checkout lacks generated hook launchers. The captured Doctor child scanned 9 files and exited 0; its output does not attest execution of the selected rule and adds no React-rule coverage evidence.

Provider identity review follow-up

Provider admission preserves uncertainty for runtime references masked by erased TypeScript declarations. Genuine same-name values in lexical scope keep their existing behavior, including when an interface is declared later or inside a nested scope. The shared classifier covers type-only import-equals and uninstantiated namespaces; value-import and runtime namespace forms retain each detector's existing syntax boundary. Added independent synthetic regressions and fuzz seeds.

Runtime references and writes now attach to the nearest real value when an erased TypeScript declaration shares its name. Declaration identity stays unchanged, and erased-only lookup retains its existing behavior. Independent provider-exposure regressions cover nested interfaces and type aliases; the reviewed semantic source/test pair and six erasure helpers retain their canonical bytes.

Validation: 307 focused tests passed, including 82 shared helper controls. Strict 500-iteration target-rule fuzz, full repository test and typecheck graphs, lint, format check, registry check, serial build, and built CLI JSON-report smoke passed. Fresh full Daytona parity is unavailable because DAYTONA_API_KEY is absent; the prior candidate evidence above remains unchanged.

The repository graphs ran serially with the local Turbo cache read-only. The scoped stability fixtures retain deterministic pairing, cleanup, and boolean-toggle work counts, fake performance/timers for snapshot deadlines, and the existing seven-scan CLI comparison with a 60-second timeout.

@pkg-pr-new

pkg-pr-new Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/eslint-plugin-react-doctor@2049
npm i https://pkg.pr.new/oxlint-plugin-react-doctor@2049
npm i https://pkg.pr.new/react-doctor@2049

commit: 663d985

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Interactive terminal E2E

Terminal Control verified the built CLI at 663d985 in a real PTY:

  • selected a project interactively and observed Scanning... before the three-second Git delay completed
  • waited for the clean result and exercised the compact report
  • opened copy context and the GitHub Actions confirmation, then cancelled safely

Download the edited MP4 and PNG evidence

@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 02:00
@aidenybai
aidenybai marked this pull request as draft October 17, 2026 02:20
@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit 663d985.

@aidenybai
aidenybai marked this pull request as ready for review October 17, 2026 06:12

This branch has not been deployed

No deployments
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.

1 participant