Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
42d7cee
test: protect worker runtime boundary
ScriptedAlchemy Jul 17, 2026
617880a
chore: update effect
ScriptedAlchemy Jul 18, 2026
73c07f4
refactor: add managed plugin effect runtime
ScriptedAlchemy Jul 18, 2026
c8aa345
refactor: scope plugin runtime and parent workers
ScriptedAlchemy Jul 18, 2026
4f1b8e6
fix: avoid duplicate route transform executor
ScriptedAlchemy Jul 18, 2026
eca5afa
refactor: scope dev background resources
ScriptedAlchemy Jul 18, 2026
769055a
fix: stop route watcher work after close
ScriptedAlchemy Jul 18, 2026
82d007a
fix: finalize route watch after close errors
ScriptedAlchemy Jul 18, 2026
f62eff0
refactor: simplify dev session close observation
ScriptedAlchemy Jul 18, 2026
d1f4174
refactor: simplify dev attempt finalization
ScriptedAlchemy Jul 18, 2026
c7b8cca
refactor: simplify server build resolution
ScriptedAlchemy Jul 18, 2026
d873a05
test: remove obsolete effect implementation checks
ScriptedAlchemy Jul 18, 2026
f1efe4f
refactor: simplify route transform construction
ScriptedAlchemy Jul 18, 2026
bd761d9
refactor: consolidate prerender file emission
ScriptedAlchemy Jul 18, 2026
83627bc
Revert "refactor: consolidate prerender file emission"
ScriptedAlchemy Jul 18, 2026
bb87fcd
refactor: simplify route chunk signatures
ScriptedAlchemy Jul 18, 2026
03f8611
test: deduplicate lifecycle test fixtures
ScriptedAlchemy Jul 18, 2026
1438dce
refactor: simplify server utility helpers
ScriptedAlchemy Jul 18, 2026
904f5ca
refactor: simplify node utility branches
ScriptedAlchemy Jul 18, 2026
bea9b6b
refactor: inline route id extension handling
ScriptedAlchemy Jul 18, 2026
98f9a2d
refactor: consolidate route expression conversion
ScriptedAlchemy Jul 18, 2026
d92e234
test: enforce effect-free runtime outputs
ScriptedAlchemy Jul 18, 2026
fb7647a
refactor: scope plugin background fibers
ScriptedAlchemy Jul 18, 2026
803fab5
refactor: inline SSR external path helpers
ScriptedAlchemy Jul 18, 2026
41c4b9e
fix: defer plugin fiber runtime initialization
ScriptedAlchemy Jul 18, 2026
2d5cf6a
test: remove redundant executor source guard
ScriptedAlchemy Jul 18, 2026
084b19e
docs: update effect architecture version
ScriptedAlchemy Jul 18, 2026
80cbe8a
refactor: use native Effect resource scopes
ScriptedAlchemy Jul 18, 2026
77f6c48
test: consolidate runtime lifecycle coverage
ScriptedAlchemy Jul 18, 2026
2d5960e
test: simplify lifecycle coverage
ScriptedAlchemy Jul 18, 2026
3a55142
refactor: remove unused effect sync adapter
ScriptedAlchemy Jul 18, 2026
0f72f35
ci: benchmark forced route transform startup
ScriptedAlchemy Jul 18, 2026
b876eb4
fix: interrupt route rescans during scope disposal
ScriptedAlchemy Jul 18, 2026
a33cdd0
refactor: simplify scoped effect cleanup
ScriptedAlchemy Jul 18, 2026
839a2ca
refactor: remove nested effect runners
ScriptedAlchemy Jul 18, 2026
e8793b4
refactor: consolidate config effect boundary
ScriptedAlchemy Jul 18, 2026
7cb755d
test: disable rstest worker isolation
ScriptedAlchemy Jul 18, 2026
2f2a25e
refactor: simplify plugin runtime disposal
ScriptedAlchemy Jul 18, 2026
264893d
refactor: compose prerender request effects
ScriptedAlchemy Jul 18, 2026
ca1a5f5
refactor: compose route watcher startup
ScriptedAlchemy Jul 18, 2026
4b2b172
refactor: compose rsc prerender requests
ScriptedAlchemy Jul 18, 2026
09da453
refactor: simplify plugin fiber context
ScriptedAlchemy Jul 18, 2026
3f814ed
refactor: supervise delayed task rescheduling
ScriptedAlchemy Jul 18, 2026
60d6438
refactor: inline prerender task orchestration
ScriptedAlchemy Jul 18, 2026
e56435e
refactor: simplify merged build end hooks
ScriptedAlchemy Jul 18, 2026
fbe35ce
test: update rstest and restore isolation
ScriptedAlchemy Jul 21, 2026
d005c48
fix: order effect runtime shutdown
ScriptedAlchemy Jul 21, 2026
27ab2ce
chore: version packages
ScriptedAlchemy Jul 21, 2026
dde2a2d
fix: preserve in-memory dev output
ScriptedAlchemy Jul 21, 2026
94ed3cc
chore: version packages
ScriptedAlchemy Jul 21, 2026
2b8b4b0
Merge remote-tracking branch 'origin/main' into codex/effect-server-a…
ScriptedAlchemy Jul 25, 2026
5c94997
test: update rstest to 0.11.4
ScriptedAlchemy Jul 25, 2026
8676f0a
docs: align effect plan with maintainability goals
ScriptedAlchemy Jul 25, 2026
1cd7448
fix: map in-memory dev server stacks
ScriptedAlchemy Jul 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions .changeset/align-refresh-registration-backfill.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/classic-dev-hmr.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/docs-and-playwright.md

This file was deleted.

11 changes: 0 additions & 11 deletions .changeset/export-config-type.md

This file was deleted.

7 changes: 0 additions & 7 deletions .changeset/prerender-legacy-and-warning-paths.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/test-ci-hygiene.md

This file was deleted.

5 changes: 5 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@ jobs:
profile: ci-small
build_order: base,head
dev_order: head,base
parallel_route_transform: auto
- shard: large
label: large fixtures
profile: ci-large
build_order: head,base
dev_order: base,head
parallel_route_transform: 1

env:
BENCHMARK_PROFILE: ${{ matrix.profile }}
Expand All @@ -41,6 +43,7 @@ jobs:
BENCHMARK_ITERATIONS: '5'
BENCHMARK_WARMUP: '1'
BENCHMARK_DEV_ROUTES: auto
BENCHMARK_PARALLEL_ROUTE_TRANSFORM: ${{ matrix.parallel_route_transform }}

steps:
- name: Checkout PR head
Expand Down Expand Up @@ -120,6 +123,7 @@ jobs:
--iterations "$BENCHMARK_BUILD_ITERATIONS" \
--large-iterations "$BENCHMARK_LARGE_ITERATIONS" \
--warmup "$BENCHMARK_WARMUP" \
--parallel-route-transform "$BENCHMARK_PARALLEL_ROUTE_TRANSFORM" \
--clean build \
--format both \
--log-performance \
Expand Down Expand Up @@ -150,6 +154,7 @@ jobs:
--large-iterations "$BENCHMARK_LARGE_ITERATIONS" \
--warmup "$BENCHMARK_WARMUP" \
--dev-routes "$BENCHMARK_DEV_ROUTES" \
--parallel-route-transform "$BENCHMARK_PARALLEL_ROUTE_TRANSFORM" \
--clean build \
--format both \
--log-performance \
Expand Down
29 changes: 29 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
# rsbuild-plugin-react-router

## 0.4.1

### Patch Changes

- dde2a2d: Stop forcing development output to disk so `dev.writeToDisk: false` and Rsbuild's in-memory default are preserved.

## 0.4.0

### Minor Changes

- 2c155f2: Add state-preserving Hot Module Replacement for route modules in development: route updates now apply React Refresh registration and in-place route patching instead of triggering a full page reload. Server code changes also trigger hot data revalidation, so loader data refreshes without a reload. This degrades gracefully to the previous full-reload behavior when `@rsbuild/plugin-react` isn't present or Fast Refresh is disabled.

### Patch Changes

- 2c155f2: Align the Fast Refresh registration backfill with react-refresh's own
component-detection rules so `memo`/`forwardRef` components in pre-lowered
(MDX) routes register for HMR. Multi-declarator lists, curried arrows, and
require/import interop callees no longer produce false registrations.
- 96ed301: Export `ReactRouterRsbuildConfig`, the plugin's typed `react-router.config.*`
shape (React Router's `Config` plus plugin-supported options such as
`splitRouteModules`), so projects no longer need to import types from
`@react-router/dev/config` or hand-roll intersections. `@react-router/dev`
is declared as an optional peer dependency since the exported config and
route types resolve from it; this is not a breaking change — nothing new is
required at install or runtime.
- 35a2036: Prerender fixes: root route data now flows through the legacy handler path,
and the dynamic/splat prerender warning strips the leading slash only for
top-level dynamic segments so nested paths are reported correctly.

## 0.3.1

### Patch Changes
Expand Down
Loading
Loading