react-supergrain: update to @supergrain/kernel 7.3.0 - #1
Merged
Conversation
The library was restructured since the last submission (2.0.1's @supergrain/core + @supergrain/react merged into @supergrain/kernel with a /react entrypoint). App updated to the currently recommended patterns: per-item selection state, parent-ref For (direct DOM moves on swap), and a keyed tbody for wholesale rebuilds. React 19.2.4, Vite 8.
There was a problem hiding this comment.
Pull request overview
Updates the react-supergrain keyed benchmark implementation to the newer @supergrain/kernel@7.3.0 API and modernizes the app code accordingly, keeping changes scoped to frameworks/keyed/react-supergrain/.
Changes:
- Replaces
@supergrain/core+@supergrain/reactwith@supergrain/kernel@7.3.0, and updates React / Vite / TypeScript versions. - Reworks
src/main.tsxto usecreateReactive+tracked()rows, per-row selection state, and an epoch-keyed<tbody>strategy. - Regenerates
package-lock.jsonfor the new dependency graph.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| frameworks/keyed/react-supergrain/src/main.tsx | Refactors the benchmark app to the current Supergrain Kernel patterns (reactive store, tracked rows, selection on row model, keyed tbody epoch). |
| frameworks/keyed/react-supergrain/package.json | Updates runtime/dev dependencies to the new Kernel package plus newer React/Vite/TypeScript versions. |
| frameworks/keyed/react-supergrain/package-lock.json | Lockfile regenerated to match the updated dependencies (includes new engine constraints from Vite/plugin-react). |
Files not reviewed (1)
- frameworks/keyed/react-supergrain/package-lock.json: Generated file
Comments suppressed due to low confidence (1)
frameworks/keyed/react-supergrain/package.json:22
- This implementation stores selection state on each row (
item.selected), which corresponds to Note krausest#800 (“View state on the model”). To keep benchmark metadata consistent with other frameworks that use this optimization (e.g. frameworks/non-keyed/san/package.json), add issue 800 to thejs-framework-benchmarkmetadata.
"js-framework-benchmark": {
"frameworkVersionFromPackage": "react",
"frameworkHomeURL": "https://github.com/commoncurriculum/supergrain",
"customURL": "/dist"
}
Comment on lines
+14
to
+16
| "@vitejs/plugin-react": "6.0.2", | ||
| "typescript": "5.9.2", | ||
| "vite": "8.0.16" |
scottmessinger
pushed a commit
that referenced
this pull request
Jul 28, 2026
…1-codex-ff49 Add reatom jsx bench
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refreshes the submission to the current library and app. Base is
add-supergrainso this stays entirely within this fork — nothing here touches upstream.Changes (3 files in
frameworks/keyed/react-supergrain/)@supergrain/core+@supergrain/react2.0.1 →@supergrain/kernel7.3.0 (single package,/reactentrypoint); React 19.0.0 → 19.2.4; Vite 6 → 8, plugin-react 4 → 6.customURL: "/dist"and thejs-framework-benchmarksection unchanged.createReactivestore,tracked()rows, parent-refFor(direct DOM moves on swap), selection state onitem.selected, tbody keyed by an epoch bumped on run/clear. No test instrumentation, matching the previous submission's style.index.html,tsconfig.json,vite.config.tsunchanged.Verification
npm install && npm run build-prodagainst the published@supergrain/kernel@7.3.0(no workspace links): clean build, 206 KB minified bundle.distpasses the supergrain repo's isKeyed-mirror suite — 6/6 applicable tests (page load, 1000-row DOM structure, keyed swap/replace/remove, select highlight).Context
Kernel 7.3.0 carries the changes measured in supergrain#136: −21% weighted total vs the previous mainline on CI (create-10k −26%, select −26%, clear −14%, nothing slower), on top of the earlier app rework. The published table's 413.7 ms create-10k was measured on kernel 2.0.1.
🤖 Generated with Claude Code