Pull Requests
#20456
Add <Cache /> component with support for refreshing
#25611
Fix: comment grammar error
#18681
Warn when textarea switches between controlled and uncontrolled
#29162
[compiler:chore] fix SSA pdf reference link
#29159
[Compiler playground] bold changed passes
#29157
compiler: Use types to decide which scopes are eligible for merging
#29156
compiler: Improve merging of memo scopes that invalidate together
#29155
compiler: fixture for suboptimal jsx sibling memo block merging
#29154
compiler: fix accidental propagation of function effects from StartMemoize/FinishMemoize
#29153
[compiler:publish] Don't check branch in debug mode
#29151
compiler: Improve ValidateNoRefAccessInRender to ignore access in effects
#29150
[compiler:publish] Bump time to reconsider to 3s
#29149
[compiler:publish] Prompt for OTP
#29148
[compiler:publish] Rename publish script
#29147
[compiler:publish] Don't hash node_modules
#29146
[compiler:publish] Rename publish script
#29145
[compiler:publish] Don't hash node_modules
#29143
compiler: workaround babel issue with html entity escaping
#29142
compiler: update comment on memo cache import code
#29141
compiler: Workaround Babel bug with unicode in jsx string attrs
#29140
Add issue template for React Compiler
#29139
Lazily freeze in case anything in the currently initializing chunk is blocked
#29138
forktest
#29133
[compiler:playground] Resizable tabs
#29129
[Flight] Add failing test to reproduce issue with `Object.freeze`
#29125
Improve grammar and parallel structure in React library documentation
#29124
fix(compiler-playground): avoid escape non-English character
#29122
[compiler:playground] Fix broken builds
#29121
Create generator-generic-ossf-slsa3-publish.yml
#29118
[compiler] Todo for for-await loops
#29114
Add packageManager fields for Corepack compat
#29112
Add babel-plugin-react-compiler deps to other packages
#29109
CI: Allow to run rust compiler on macos and widnows aswell
#29108
fix: removed redundant character escape in RegExp
#29105
Implement isObject function
#29104
fix: use `filename` instead of `context.filename` in eslint compiler
#29103
Add hyperlink for Good First Issues header
#29102
docs: fix typo DESIGN_GOALS.md
#29101
Resolve defaultProps of class components in JSX runtime
#29096
[React Compiler] Fix rule name for ESLint plugin
#29095
compiler: merge reactive scopes across const StoreLocal
#29094
Update `eslint-plugin-react-compiler` to used named rule severity
#29089
[compiler]: cleanup useless clone
#29088
Move createElement/JSX Warnings into the Renderer
#29087
[compiler:publish] Specify https for registry
#29086
chore(docs): fix typo (plugion => plugin) in DESIGN_GOALS.md
#29085
[Compiler][script] Dedupe error report counts before reporting in healthcheck
#29084
[compiler] Add readme for babel plugin
#29083
[compiler] Check if current branch is main
#29082
[compiler] Various fixes for publishing script
#29081
[compiler:eslint] Fix false positive with TS type param syntax
#29080
feat: add a verbose option to react-compiler-healthcheck to log all c…
#29079
compiler: fix jsx text attributes with double quotes
Build Activity
#84244
Fix cross-fork discrepancy
I missed a few lines when syncing an earlier step. Usually I would find
which one and patch it but I'm about to squash and merge so meh.
#84237
Fix cross-fork discrepancy
I missed a few lines when syncing an earlier step. Usually I would find
which one and patch it but I'm about to squash and merge so meh.
#84194
Detect refreshes by comparing to previous parent
Removes the fresh/stale distinction from the context stack and instead
detects refreshes by comparing the previous and next parent cache.
This is closer to one of the earlier implementation drafts, and...
#84113
Detect refreshes by comparing to previous parent
Removes the fresh/stale distinction from the context stack and instead
detects refreshes by comparing the previous and next parent cache.
This is closer to one of the earlier implementation drafts, and...
#84099
Detect refreshes by comparing to previous parent
Removes the fresh/stale distinction from the context stack and instead
detects refreshes by comparing the previous and next parent cache.
This is closer to one of the earlier implementation drafts, and...
#84096
Detect refreshes by comparing to previous parent
Removes the fresh/stale distinction from the context stack and instead
detects refreshes by comparing the previous and next parent cache.
This is closer to one of the earlier implementation drafts, and...
#83988
Remove provider fiber from cache context
I originally put the provider fiber on the cache context because I
expected the semantics to be that a refresh finds the root of the
"freshness" boundary; that is, all the data that refreshed or appeared
as par...
#83985
Remove provider fiber from cache context
I originally put the provider fiber on the cache context because I
expected the semantics to be that a refresh finds the root of the
"freshness" boundary; that is, all the data that refreshed or appeared
as par...
#83981
Only mutate `root.pooledCache` in complete/unwind
Less indirection when accessing during the render phase and less hard
to make a mutation mistake.
#83979
Only mutate `root.pooledCache` in complete/unwind
Less indirection when accessing during the render phase and less hard
to make a mutation mistake.
#83978
Only mutate `root.pooledCache` in complete/unwind
Less indirection when accessing during the render phase and less hard
to make a mutation mistake.
#83929
Remove default transition priority for refreshes
The flaw here is that if another update in the same event is not wrapped
in `startTransition`, then it won't be batched with the refresh. The
solution is to wrap both in the same `startTransition`. It's...
#83918
Wrap more things in flag
#83916
Wrap more things in flag
#83844
More tests
#83720
More tests
#83693
useRefresh -> useCacheRefresh
useRefresh is probably too general. We may also add additional APIs
related to the cache, and including the word "cache" in all of them
signals they are related.
#83687
Use only a single pooled cache at a time
The cache-per-lane approach makes conceptual sense but it's probably not
worth it until we complete the Lanes entanglement refactor. In the
current implementation we have to do lots of looping to maintain the
p...
#83651
Previous retry cache takes precedence over pool
When committing a fallback, if there's no cache on the stack, check if
there's a cache from the previous render. This is what we would have
used for new content during the first pass when we attempted to...
#83637
Remove useRefresh from unstable-shared-subset
From @sebmarkbage's comment
> This should not be included in this file. Which means that the error
> the dispatcher throws should never be reachable, but worth keep in
> case something is misconfigured or...
#83636
Remove useRefresh from unstable-shared-subset
From @sebmarkbage's comment
> This should not be included in this file. Which means that the error
> the dispatcher throws should never be reachable, but worth keep in
> case something is misconfigured or...
#83634
Code size optimizations
- Wraped more things in the feature flag.
- Removed CacheComponent cases from commit phase.
#83625
Restore retry cache from Suspense/Offscreen fiber
When a Suspense or Offscreen boundary resumes rendering, the inner tree
should use the same cache that the outer one did during the original
render. This is important not just for UI consistency reason...
#83401
Restore retry cache from Suspense/Offscreen fiber
When a Suspense or Offscreen boundary resumes rendering, the inner tree
should use the same cache that the outer one did during the original
render. This is important not just for UI consistency reason...
#83323
Explicitly check if the parent provider is fresh
We can track this cheaply because there's only ever a single fresh
provider. We don't need to store the fresh caches on the stack, just one
if it exists. Then when we unwind the Fiber stack, we reset it...
#83322
Explicitly check if the parent provider is fresh
We can track this cheaply because there's only ever a single fresh
provider. We don't need to store the fresh caches on the stack, just one
if it exists. Then when we unwind the Fiber stack, we reset it...
#83320
Explicitly check if the parent provider is fresh
We can track this cheaply because there's only ever a single fresh
provider. We don't need to store the fresh caches on the stack, just one
if it exists. Then when we unwind the Fiber stack, we reset it...
#83319
Explicitly check if the parent provider is fresh
We can track this cheaply because there's only ever a single fresh
provider. We don't need to store the fresh caches on the stack, just one
if it exists. Then when we unwind the Fiber stack, we reset it...
#83027
Every request in initial render shares same cache
I noticed this bug when writing some new tests.
The HostRoot fiber is special because it's always mounted. The moment
you call `createRoot()`, you have a "current" (albeit empty) tree. So
the "initial...
#83011
Add fast path for nested mounting Caches
Only the top most Cache boundary in a newly mounting tree needs to
call `requestFreshCache`. Nested caches can inherit the parent cache
by reading from context.
This is strictly a performance optimization, sin...
#83010
Use an update queue for refreshes
Refreshes are easier than initial mounts because we have a mounted fiber
that we can attach the cache to. We don't need to rely on clever pooling
tricks; they're just normal updates.
More importantly, we're not at ri...
#82999
Add fast path for nested mounting Caches
Only the top most Cache boundary in a newly mounting tree needs to
call `requestFreshCache`. Nested caches can inherit the parent cache
by reading from context.
This is strictly a performance optimization, sin...
#82996
Use an update queue for refreshes
Refreshes are easier than initial mounts because we have a mounted fiber
that we can attach the cache to. We don't need to rely on clever pooling
tricks; they're just normal updates.
More importantly, we're not at ri...
#82994
Use an update queue for refreshes
Refreshes are easier than initial mounts because we have a mounted fiber
that we can attach the cache to. We don't need to rely on clever pooling
tricks; they're just normal updates.
More importantly, we're not at ri...
#82993
Use an update queue for refreshes
Refreshes are easier than initial mounts because we have a mounted fiber
that we can attach the cache to. We don't need to rely on clever pooling
tricks; they're just normal updates.
More importantly, we're not at ri...
#82975
Add implicit root-level cache
If `getCacheForType` or `useRefresh` cannot find a parent <Cache />,
they will access a top-level cache associated with the root. The
behavior is effectively the same as if you wrapped the entire tree in a
<Cache /> bound...
#82974
Add implicit root-level cache
If `getCacheForType` or `useRefresh` cannot find a parent <Cache />,
they will access a top-level cache associated with the root. The
behavior is effectively the same as if you wrapped the entire tree in a
<Cache /> bound...
#82963
Refreshes should not affect "sibling" boundaries
I had thought we decided that refreshing a boundary would also refresh
all the content that is currently consistent (i.e. shared the same
underlying cache) with it, but I was wrong. Refreshing should on...
#82876
Refresh with seeded data
Usually, when performing a server mutation, the response includes an
updated version of the mutated data.
This avoids an extra roundtrip, and because of eventual consistency, it
also guarantees that we reload with the freshes...
#82716
Cache refreshing
Implements useRefresh, a method to invalidate the cache and request
new data.
It will find the nearest <Cache /> boundary, clear its cache, and
schedule an update to re-render with fresh data.
We had discussed calling this method `u...
#82712
Cache refreshing
Implements useRefresh, a method to invalidate the cache and request
new data.
It will find the nearest <Cache /> boundary, clear its cache, and
schedule an update to re-render with fresh data.
We had discussed calling this method `u...
#82701
Cache refreshing
Implements useRefresh, a method to invalidate the cache and request
new data.
It will find the nearest <Cache /> boundary, clear its cache, and
schedule an update to re-render with fresh data.
We had discussed calling this method `u...
#82688
Cache refreshing
Implements useRefresh, a method to invalidate the cache and request
new data.
It will find the nearest <Cache /> boundary, clear its cache, and
schedule an update to re-render with fresh data.
We had discussed calling this method `u...
facebook/react #83636
Loading Sandboxes...
Loading Packages...
Loading Install Instructions...
Finished!