Skip to content

Roadmap: post-17.0.0 — Pro adoption via provable performance, onboarding simplicity, agent-native DX (supersedes #3864) #4607

Description

@justin808

North star: maximize React on Rails Pro adoption (trust-based license) through three funnels — new-app adoption (primary), migrations from Inertia/Next, and OSS→Pro upgrades. Public direction: ROADMAP.md. Strategy language: internal/planning/CONTEXT.md. Vite decision: internal/adr/0001-rspack-answers-vite.md.

Headline themes (all P0/P1 work maps to one): 🏎 Provable performance (every claim gets a public reproducible artifact) · 🚀 Onboarding simplicity (neutralize Inertia's "one command" edge) · 🤖 Agent-native development.

Supersedes #3864 (June 30-day plan — 12/16 children shipped; retrospective on that issue). This umbrella + the 17.0.x / 17.1 / 17.2 / 18.0 milestones are the scheduling surface; roadmap:17x marks this roadmap generation.

Produced by the 2026-07-11 whole-backlog triage: 115 open issues dispositioned (6 review-only agents, evidence-verified per issue; rubric: customer/CI evidence outranks AI-analysis findings; needs-customer-feedback never scheduled without evidence).


🔴 17.0.x — release-line must-fix (milestone 17.0.x)

Issue What Why it gates
#4357 Adopt stable react-on-rails-rsc 19.2.1 Final-blocking; awaits upstream npm publish (rc.1 pinned meanwhile). Carries the RSC CVE-train fixes (bundles react-server-dom-webpack ~19.2.7)
#4567 Land #4594 backport, close rsc#187 Final-blocking merge mechanics
#4536 Changelog entry for #4531 Must land before final stamps the changelog
#4571 Renderer per-thread connection semantics + stale doc Ships in final via #4394; bounded-reuse fix in 17.0.x patch
#4581 Streaming caches persist error chunks (cache poisoning) Sibling of fixed #4550/#4551; needs failing-boundary spec

(Release execution itself: #4569 + gate #3823 — tracking issues, not roadmap items.)

🚀 17.1 — onboarding + agent-native headline (milestone 17.1, ~6–8 wks after final)

Headliners: #4557 FOUC pipeline: prod CI gate + layer deletion (step 0 shipped in 17.0.0 — P0) · #4602 agent-legible doctor (--format=json, copy-promptable fixes) · #4603 agent-builds-the-app tutorial + scripted eval · #4553 Pro license token via Rails credentials (customer-requested) · #4604 existing-app installer Pro prompt (OSS→Pro funnel).

Modern-React quick wins: #3883 <Activity> phase 2a · #3885 cacheSignal test+docs · #3886 19.2 reveal-batching validation (P1).

Bug/quick-win cluster (2026-07 reviews): #4329 perf-marks queue leak · #4572 Redux store rebind on hydrate_on · #4582 html_options mutation (FrozenError) · #4583 stale RailsContext after Turbo nav (core) · #4584 HTTP bundle charset/status · #4585 domId selector metachars · #4565 jest exclusion residual · #4561 CSS test fixture shapes (fold into #4557).

Security cluster (maintainer-filed): #4595 RSC payload endpoint authorization (P1 — docs warning can ship in 17.0.x) · #4596 node-renderer hardening (pre-auth multipart cap first) · #4597 secret/PII log hygiene (renderer_url userinfo-stripping first).

Docs/content: #3805 OSS core-concepts SVGs · #3897 versioned docs + search (site repo) · #3898 demo fleet currency (bump pass at final).

🏎 17.2 — provable performance headline (milestone 17.2)

PPR is the headline: #3571 Track B implementation (promoted P1; plan: internal/planning/ppr-implementation-plan.md; stable React 19.2 prerender/resume) with #3485 Turbo interaction. Proof: #3169 benchmark CI re-enabled as gate · #4073 dedicated-hardware benchmark runner (root of the perf-regression noise cluster) · #3492 A/B benchmark mode.

Also: #3488 Rspack RSC production path (P1; native RSCRspackPlugin pivot — upstream Rspack 2.x native RSC informs it) · #4600 Rspack DX parity benchmarks vs Vite · #4601 "Why Rspack (and not Vite)" page (after #4600 numbers) · #4605 agent toolchain v2 — Skills-in-package + slim-MCP re-eval (maintainer decision needed: #3870 was closed NOT_PLANNED 2026-06-18; new ecosystem evidence in the issue) · #4385 selective hydration investigation (active, PR #4593).

💥 18.0 — breaking batch (milestone 18.0, unscheduled)

#4271 / #4274 / #4279 Redux phase-out (17.x deprecation shipped; removal batch) · #2552 bundler-neutral config renames. Breaking changes accumulate here per the post-RC lock.

🗂 Roadmap, unscheduled (roadmap:17x, no milestone)

#3253+#3263 Gumroad staging benchmark artifacts (consolidate) · #3497 rsc monorepo move (de-risks every RSC release; pain behind #4357) · #3804 Pro SSR SVG diagrams · #3832 agent-eval harness Part B (funding decision; pairs with #4603) · #3873 routing prefetch leg (Inertia <Link> answer; unblocked) · #3891 SSG on PPR shells (after #3571) · #3920 Compiler follow-ups · #4049 Server-Component CSS delivery (design unsettled; upstream rsc#180) · #4133 i18n TS types (API decision first) · #4577 Pro CI dual-version matrix (lockfile quick-win available).

🅿️ Parked (25 — parked label; valid but off-roadmap)

Awaiting customer evidence: #3811 component identity RFC · #3874 image helper (docs recipe shipped #3955) · #3877 RUM hooks (docs shipped #3954) · #3921 font follow-ups · #4236 error-value retry semantics · #4313 source-map caps · #4325 AsyncPropsEmitter log level.
Blocked/sequenced: #3572 CDN edge-resume (needs #3571 phase 6) · #3582 renderer transport cluster root (needs Phase 0 materiality profiling).
Ride-alongs: #4321 benchmark shim debt (with #3169) · #4498 contract-pair guards · #4499 workflow concurrency · #4502/#4503/#4504/#4506 Pro hardening residuals · #4505 knip hygiene.
Deliberately deferred: #2018 AI security scanners · #3266 security@ alias (org email task) · #3373 Vite adapter (ADR-0001; revisit 18.0) · #3449 zizmor · #4079 llms-full required-check (revisit trigger: drift reaches main) · #4127 batch-QA lane · #4322 pr-ci-readiness diagnosability · #4576 merge-ledger evidence gate (agent-workflows scope).

✅ Closed by this triage (evidence on each)

#2169, #2678, #3240, #3896 (llms-full: live + drift-guarded), #3908, #3952, #4111, #4292, #4426, #4560, #4566 — plus #3864 (retrospective) and #3788 (superseded by this triage).

✅ Close candidates — maintainer-approved and executed 2026-07-12 (20 closed)

All 20 closed with reason comments. Evidence preserved: #4323 re-filed upstream as shakacode/agent-workflows#144; #3553's docs residual spun out as #4609 (17.1); #4598's unverified claims transferred onto #4557.

#2180 (pnpm catalogs) · #2572 (ECC patterns) · #3128 (Gumroad hub → consolidate into #3144) · #3553 (client-refs RFC: implemented; docs residual) · #3583 (UDS: evaluated-negative) · #3584 (wire encoding: same gate) · #3974 (coordination umbrella: children carry the work) · #3999 (capacity-AI posture → superseded by scale-to-zero) · #4228 (skills dogfood: satisfied by usage) · #4230/#4434/#4476/#4486 (GHA exercise chores) · #4284 (4th AI reviewer) · #4315 (self-described borderline-wontfix) · #4323 (re-file in agent-workflows) · #4347/#4453/#4537 (batch-QA bookkeeping) · #4598 (FOUC simplify — verify unique claims, fold into #4557; @AbanoubGhadban).

📌 Tracking issues that stay open

#3823 release gate (P0) · #4569 final assembly · #4346 pre-release review ledger · #4010 audit ledger · #3865 React 19.2 umbrella (P0) · #3125 migration PRs · #3144 Gumroad narrative (canonical) · #3355 Inertia demo ports · #3802 SVG umbrella (close when #3804/#3805 done) · #4187 dependabot ledger (migrate to rsc repo after final) · #4507 housekeeping (near-done: #4426 closed by this pass).

Maintainer decisions queued

  1. Agent toolchain v2 (17.2): ship Skills in-package + version-matched bundled docs; slim MCP deferred pending #4603 eval #4605 — Skills-in-package + slim-MCP: does the RFC + build: a React on Rails MCP server (doctor-as-JSON, generators, component scaffold, doc & error-code search) #3870 ruling extend? (Recommend: Skills yes, MCP waits for Tutorial + scripted eval: an AI agent builds a React on Rails Pro app end-to-end, unaided #4603 eval evidence.)
  2. Close-candidate list above (20 issues) — bulk sign-off or per-issue.
  3. 19 stale empty milestones (1.0…16.2.0) — close them (blocked for the triage agents; one-time admin sweep).
  4. PPR Track B: RSC + use cache partial pre-rendering — implementation #3571 P1 promotion applied; confirm PPR as the 17.2 headline bet.

Triage provenance: 6 parallel review-only agents over chunks #2018#4598, coordinator-executed mutations, 2026-07-11. Rubric per $plan-issue-triage. Every disposition carries evidence in the agents' records; dispositions embedded here are the executed state.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TRACKINGParent tracking issue for multi-task initiativesroadmap:17xPost-17.0.0 roadmap generation (supersedes roadmap:modern-react)

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions