Quoin carries one bun patch against solid-js@2.0.0-beta.28:
patches/solid-js@2.0.0-beta.28.patchIt is registered through patchedDependencies in package.json.
The provider returned by createContext writes props.value while its
createRoot is the active tracking scope:
| 1 | setContext(provider, props.value); |
When the value getter reads a signal, the provider root subscribes to it. That produces strict untracked-read diagnostics and can re-run provider-owned work when the value's dependencies change.
The patch keeps context setup snapshot-based by untracking the value write:
| 1 | // dist/dev.js |
| 2 | untrack(() => setContext(provider, props.value)); |
| 3 | |
| 4 | // dist/dev.cjs |
| 5 | signals.untrack(() => signals.setContext(provider, props.value)); |
Only the development ESM and CJS builds are patched, matching the scope that Quoin exercises under its development test conditions.
Quoin previously carried three additional beta.14 fixes. Source inspection and the beta.28 regression suite confirm they are now upstream:
@solidjs/signals: rejected actions settle at the call site instead of
recursively throwing into a completed generator.@solidjs/signals: async-memo rejection wakes dependents.@solidjs/web: Portal delegation uses the raw mount node rather than
passing its proxy to Node.contains.Their patch files and patchedDependencies entries were removed during the
beta.28 upgrade.
solid-js patch entry and install the new beta.createContext provider build for an untracked value write.