From c929f6ce780379de0e899a421f75db033b9b350a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 18 Aug 2026 14:01:59 +0000 Subject: [PATCH] Version Packages --- .tegami/2026-08-18-7c4e19.md | 14 -------- .tegami/2026-08-18-b93d05.md | 12 ------- .tegami/2026-08-18-e4a71c.md | 12 ------- .tegami/publish-lock.yaml | 32 ++++++++----------- packages/create/CHANGELOG.md | 27 ++++++++++++++++ packages/create/package.json | 2 +- .../create/scaffold/Packages/manifest.json | 4 +-- packages/create/scaffold/react/package.json | 4 +-- packages/material/package.json | 2 +- packages/renderer/package.json | 2 +- packages/scripts/package.json | 2 +- unity/clearscript/package.json | 2 +- unity/core/package.json | 2 +- unity/jint/package.json | 2 +- unity/quickjs/package.json | 2 +- 15 files changed, 53 insertions(+), 68 deletions(-) delete mode 100644 .tegami/2026-08-18-7c4e19.md delete mode 100644 .tegami/2026-08-18-b93d05.md delete mode 100644 .tegami/2026-08-18-e4a71c.md create mode 100644 packages/create/CHANGELOG.md diff --git a/.tegami/2026-08-18-7c4e19.md b/.tegami/2026-08-18-7c4e19.md deleted file mode 100644 index dff25ede..00000000 --- a/.tegami/2026-08-18-7c4e19.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -packages: - "npm:@reactunity/create": patch ---- - -### Refresh the scaffold's prebuilt bundle, and keep it refreshed - -A scaffolded project renders `Assets/Resources/react/index.js` on first open, before the user has run a build. That bundle was webpack output from April 2024 carrying React 18.2, sitting in a project whose `package.json` asked for React 19. Nothing in the repo could catch it: generated output that nothing regenerates is invisible until someone scaffolds a project and looks at it. - -`scripts/create/refresh-scaffold.mts` rebuilds it from the scaffold's own app, in a temp copy so the shipped template never gains a `node_modules`, and a nightly workflow opens a PR when the result moves. Because the rebuild resolves the app's dependency ranges fresh, it also catches breakage arriving from upstream rather than only from a ReactUnity release. `--check` reports drift without writing, for use as a gate. - -It verifies that the build still emits exactly the asset set the scaffold has `.meta` files for. A sourcemap or a hashed chunk would otherwise land in a user's project unimported, and anything that stopped being emitted would leave an orphan `.meta` behind. - -The scaffold project itself moved to Unity 6000.5.5f1, matching the sample ReactUnity is developed against. The script reports that drift but never writes it — Unity performs an Editor upgrade by opening the project and re-serializing it, so editing `ProjectVersion.txt` alone would label a project upgraded without upgrading it. diff --git a/.tegami/2026-08-18-b93d05.md b/.tegami/2026-08-18-b93d05.md deleted file mode 100644 index 93c8b9d6..00000000 --- a/.tegami/2026-08-18-b93d05.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -packages: - "npm:@reactunity/create": patch ---- - -### Keep the scaffold's ReactUnity pins on the released version - -A scaffolded project asked for `com.reactunity.core` 0.18.0, `com.reactunity.quickjs` 0.17.1 and `@reactunity/renderer` ^0.20.1 — the UPM pair untouched since April 2024. The scaffold sits outside the pnpm workspace on purpose, so nothing in the release ever bumped it. - -The rot was hidden rather than harmless: the CLI repairs both at scaffold time, `openupm-cli add` for the Unity manifest and `ncu -u` for the React app. Both are best-effort network calls, and both were dead on Windows for months, which handed those users the checked-in numbers verbatim. - -`syncUnityVersions` in `scripts/tegami.mts` now carries the released version into both files alongside the four UPM manifests, and throws if a pin it expects has been renamed away rather than leaving it silently frozen. diff --git a/.tegami/2026-08-18-e4a71c.md b/.tegami/2026-08-18-e4a71c.md deleted file mode 100644 index e74d2a23..00000000 --- a/.tegami/2026-08-18-e4a71c.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -packages: - "npm:@reactunity/create": patch ---- - -### Fix `npx @reactunity/create` failing to find its own scaffold - -Every run ended at `Copying files failed` with `ENOENT ... dist/scaffold/react`. The scaffold ships at the package root, but the CLI resolves it relative to its own file — which stopped being the package root when tsdown moved the build output into `dist/`. - -The entry point moved to `src/index.ts` so that source and bundle sit at the same depth, and the scaffold is now `../scaffold` from either. `.npmignore` still whitelisted the pre-tsdown `/index.js`; `dist/index.js` was only reaching the tarball because npm force-includes `bin`, so its sourcemap was being dropped. - -The same run then failed at `spawn EINVAL` on Windows. Node 20.12 stopped spawning `.cmd` files directly (CVE-2024-27980), and `npx`, `npm` and `yarn` are all `.cmd` there — so the package update step, `--install` and `--unity`'s OpenUPM call were all dead. Those now go through a shell on Windows, with arguments quoted so a project path containing a space still works. diff --git a/.tegami/publish-lock.yaml b/.tegami/publish-lock.yaml index 4ce6e4d9..d4cead44 100644 --- a/.tegami/publish-lock.yaml +++ b/.tegami/publish-lock.yaml @@ -1,35 +1,31 @@ core:changelogs: - - content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix gradients rendering too dark in gamma colour space\n\nEvery gradient — `linear-gradient`, `radial-gradient`, `conic-gradient` and their repeating forms — had its colours converted to linear space regardless of the project's colour space. A gamma-space project never converts them back, so the whole ramp came out darkened by a 2.2 exponent: CSS `green` painted as `rgb(0,55,0)` rather than `rgb(0,128,0)`, and `linear-gradient(red, blue)` crossed at `rgb(54,0,55)` rather than `rgb(127,0,128)`. Saturated endpoints survived while everything between them sank toward black.\n\nThe ramp is stored in a texture flagged linear and its contents have to agree with that flag, so the conversion is right in a linear-space project and stays. It now follows `QualitySettings.activeColorSpace` instead of applying unconditionally. Gamma-space projects again match what a browser paints for the same CSS declaration, to the byte.\n\nIntroduced in 0.23.0. Projects on Linear colour space were never affected, and need no changes.\n" - filename: 2026-07-28-9c4e2b.md + - content: "---\npackages:\n npm:@reactunity/create:\n type: patch\n---\n\n### Refresh the scaffold's prebuilt bundle, and keep it refreshed\n\nA scaffolded project renders `Assets/Resources/react/index.js` on first open, before the user has run a build. That bundle was webpack output from April 2024 carrying React 18.2, sitting in a project whose `package.json` asked for React 19. Nothing in the repo could catch it: generated output that nothing regenerates is invisible until someone scaffolds a project and looks at it.\n\n`scripts/create/refresh-scaffold.mts` rebuilds it from the scaffold's own app, in a temp copy so the shipped template never gains a `node_modules`, and a nightly workflow opens a PR when the result moves. Because the rebuild resolves the app's dependency ranges fresh, it also catches breakage arriving from upstream rather than only from a ReactUnity release. `--check` reports drift without writing, for use as a gate.\n\nIt verifies that the build still emits exactly the asset set the scaffold has `.meta` files for. A sourcemap or a hashed chunk would otherwise land in a user's project unimported, and anything that stopped being emitted would leave an orphan `.meta` behind.\n\nThe scaffold project itself moved to Unity 6000.5.5f1, matching the sample ReactUnity is developed against. The script reports that drift but never writes it — Unity performs an Editor upgrade by opening the project and re-serializing it, so editing `ProjectVersion.txt` alone would label a project upgraded without upgrading it.\n" + filename: 2026-08-18-7c4e19.md v: 0.0.0 - - content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix non-solid border styles rendering as solid until the next style update\n\n`inset`, `outset`, `groove`, `ridge`, `dotted`, `dashed` and `double` borders came out flat solid on an element's first render. Any later style update — a hot reload, a state change, anything that re-ran the style pass — painted them correctly, so in the Editor they appeared to work while a build, where no such update ever arrives, showed solid borders forever.\n\nThe style is encoded as UVs into a lookup texture that the border graphic samples. That texture was bound from the `Rounding` setter alone, and the graphic is also created from the layout pass, which never assigns rounding: styles run before layout, so on the first pass Yoga has no border widths yet and no border graphic exists to receive the rounding, and by the time the layout pass creates one the style pass is over. With no texture bound, Unity substitutes a white one and every style samples as solid.\n\nThe texture is now resolved on each material rebuild instead of being cached on assignment, so it is correct however the graphic came to exist.\n\nBorders with a `border-radius` still ignore `border-style` and paint solid — a separate, pre-existing limitation of the rounded mesh path.\n" - filename: 2026-07-29-b71c4e.md + - content: "---\npackages:\n npm:@reactunity/create:\n type: patch\n---\n\n### Keep the scaffold's ReactUnity pins on the released version\n\nA scaffolded project asked for `com.reactunity.core` 0.18.0, `com.reactunity.quickjs` 0.17.1 and `@reactunity/renderer` ^0.20.1 — the UPM pair untouched since April 2024. The scaffold sits outside the pnpm workspace on purpose, so nothing in the release ever bumped it.\n\nThe rot was hidden rather than harmless: the CLI repairs both at scaffold time, `openupm-cli add` for the Unity manifest and `ncu -u` for the React app. Both are best-effort network calls, and both were dead on Windows for months, which handed those users the checked-in numbers verbatim.\n\n`syncUnityVersions` in `scripts/tegami.mts` now carries the released version into both files alongside the four UPM manifests, and throws if a pin it expects has been renamed away rather than leaving it silently frozen.\n" + filename: 2026-08-18-b93d05.md v: 0.0.0 - - content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Support border-style and outline-style on rounded corners\n\n`border-radius` used to drop `border-style` entirely: the rounded mesh path sampled no style at all, so every style painted as flat solid, and `none` painted a solid border rather than nothing. Browsers render all of them with rounded corners, so a declaration that worked on a square element silently lost its style once a radius was added. `outline-style` was dropped the same way. All seven styles now render along the curve.\n\n`groove`, `ridge`, `inset`, `outset` and `double` are ramps across the border width, and the rounded path already emitted an inner and an outer vertex ring stitched 1:1 into a quad strip. Feeding the style band's inner edge to the inner ring and its outer edge to the outer ring makes the strip interpolate the ramp, using the same bands and the same per-side inversion as the square path.\n\n`dotted` and `dashed` repeat *along* the edge instead, which one continuous ring cannot express. When a side asks for one, the rings are emitted as vertices only and each side is drawn as its own strip, walked out by arc length along the border's centreline so a dash keeps its length through a corner. The dash and dot counts are fitted to a whole number per side, so a side begins and ends with half a gap rather than a clipped dash at the mitre. Sides can mix freely - a dashed top against solid sides keeps a clean mitre, since each corner arc doubles its vertex at 45 degrees and the per-side split lands exactly on that pair.\n" - filename: 2026-07-29-e35a90.md - v: 0.0.0 - - content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix React Fast Refresh never repainting a hot-updated component\n\nAn edit to a component was fetched, applied and acknowledged by the dev server, and then nothing on screen changed. Both dev servers were affected — webpack and Vite alike — so any hot reload that was not a full page reload silently did nothing.\n\n`render` registered the renderer with the devtools hook *after* committing the tree. React Refresh learns which roots it may refresh from the hook's `onCommitFiberRoot`, and only calls `scheduleRefresh` for roots it has seen mount — so a renderer that registers after its first commit is invisible to it forever. The initial mount was the commit being missed, which meant the app's only root was never a refresh candidate.\n\n`injectIntoDevTools` now runs before the first commit, and once per reconciler rather than on every `render` call — repeated injection was registering the same renderer under a new id each time.\n" - filename: 2026-07-30-c73d51.md + - content: "---\npackages:\n npm:@reactunity/create:\n type: patch\n---\n\n### Fix `npx @reactunity/create` failing to find its own scaffold\n\nEvery run ended at `Copying files failed` with `ENOENT ... dist/scaffold/react`. The scaffold ships at the package root, but the CLI resolves it relative to its own file — which stopped being the package root when tsdown moved the build output into `dist/`.\n\nThe entry point moved to `src/index.ts` so that source and bundle sit at the same depth, and the scaffold is now `../scaffold` from either. `.npmignore` still whitelisted the pre-tsdown `/index.js`; `dist/index.js` was only reaching the tarball because npm force-includes `bin`, so its sourcemap was being dropped.\n\nThe same run then failed at `spawn EINVAL` on Windows. Node 20.12 stopped spawning `.cmd` files directly (CVE-2024-27980), and `npx`, `npm` and `yarn` are all `.cmd` there — so the package update step, `--install` and `--unity`'s OpenUPM call were all dead. Those now go through a shell on Windows, with arguments quoted so a project path containing a space still works.\n" + filename: 2026-08-18-e4a71c.md v: 0.0.0 core:packages: - id: npm:@reactunity/monorepo updated: false - - id: npm:@reactunity/create + - changelogIds: + - 2026-08-18-7c4e19.md + - 2026-08-18-b93d05.md + - 2026-08-18-e4a71c.md + id: npm:@reactunity/create updated: true - id: npm:@reactunity/material updated: true - - changelogIds: - - 2026-07-28-9c4e2b.md - - 2026-07-29-b71c4e.md - - 2026-07-29-e35a90.md - - 2026-07-30-c73d51.md - id: npm:@reactunity/renderer - updated: true - id: npm:@reactunity/scripts updated: true + - id: npm:@reactunity/renderer + updated: true npm:packages: - id: npm:@reactunity/monorepo - id: npm:@reactunity/create - id: npm:@reactunity/material - - id: npm:@reactunity/renderer - id: npm:@reactunity/scripts + - id: npm:@reactunity/renderer diff --git a/packages/create/CHANGELOG.md b/packages/create/CHANGELOG.md new file mode 100644 index 00000000..2f358cad --- /dev/null +++ b/packages/create/CHANGELOG.md @@ -0,0 +1,27 @@ +## @reactunity/create@0.23.2 + +### Refresh the scaffold's prebuilt bundle, and keep it refreshed + +A scaffolded project renders `Assets/Resources/react/index.js` on first open, before the user has run a build. That bundle was webpack output from April 2024 carrying React 18.2, sitting in a project whose `package.json` asked for React 19. Nothing in the repo could catch it: generated output that nothing regenerates is invisible until someone scaffolds a project and looks at it. + +`scripts/create/refresh-scaffold.mts` rebuilds it from the scaffold's own app, in a temp copy so the shipped template never gains a `node_modules`, and a nightly workflow opens a PR when the result moves. Because the rebuild resolves the app's dependency ranges fresh, it also catches breakage arriving from upstream rather than only from a ReactUnity release. `--check` reports drift without writing, for use as a gate. + +It verifies that the build still emits exactly the asset set the scaffold has `.meta` files for. A sourcemap or a hashed chunk would otherwise land in a user's project unimported, and anything that stopped being emitted would leave an orphan `.meta` behind. + +The scaffold project itself moved to Unity 6000.5.5f1, matching the sample ReactUnity is developed against. The script reports that drift but never writes it — Unity performs an Editor upgrade by opening the project and re-serializing it, so editing `ProjectVersion.txt` alone would label a project upgraded without upgrading it. + +### Keep the scaffold's ReactUnity pins on the released version + +A scaffolded project asked for `com.reactunity.core` 0.18.0, `com.reactunity.quickjs` 0.17.1 and `@reactunity/renderer` ^0.20.1 — the UPM pair untouched since April 2024. The scaffold sits outside the pnpm workspace on purpose, so nothing in the release ever bumped it. + +The rot was hidden rather than harmless: the CLI repairs both at scaffold time, `openupm-cli add` for the Unity manifest and `ncu -u` for the React app. Both are best-effort network calls, and both were dead on Windows for months, which handed those users the checked-in numbers verbatim. + +`syncUnityVersions` in `scripts/tegami.mts` now carries the released version into both files alongside the four UPM manifests, and throws if a pin it expects has been renamed away rather than leaving it silently frozen. + +### Fix `npx @reactunity/create` failing to find its own scaffold + +Every run ended at `Copying files failed` with `ENOENT ... dist/scaffold/react`. The scaffold ships at the package root, but the CLI resolves it relative to its own file — which stopped being the package root when tsdown moved the build output into `dist/`. + +The entry point moved to `src/index.ts` so that source and bundle sit at the same depth, and the scaffold is now `../scaffold` from either. `.npmignore` still whitelisted the pre-tsdown `/index.js`; `dist/index.js` was only reaching the tarball because npm force-includes `bin`, so its sourcemap was being dropped. + +The same run then failed at `spawn EINVAL` on Windows. Node 20.12 stopped spawning `.cmd` files directly (CVE-2024-27980), and `npx`, `npm` and `yarn` are all `.cmd` there — so the package update step, `--install` and `--unity`'s OpenUPM call were all dead. Those now go through a shell on Windows, with arguments quoted so a project path containing a space still works. diff --git a/packages/create/package.json b/packages/create/package.json index 2e4c9c14..9d5d8a86 100644 --- a/packages/create/package.json +++ b/packages/create/package.json @@ -1,6 +1,6 @@ { "name": "@reactunity/create", - "version": "0.23.1", + "version": "0.23.2", "description": "Scaffold a ReactUnity app using npm init", "license": "MIT", "//type": "ESM, as of the chalk 6 / commander 15 upgrade: both dropped CommonJS. index.ts is emitted next to itself as ESM, so `bin` keeps pointing at index.js.", diff --git a/packages/create/scaffold/Packages/manifest.json b/packages/create/scaffold/Packages/manifest.json index 65b2871b..e22fc1a1 100644 --- a/packages/create/scaffold/Packages/manifest.json +++ b/packages/create/scaffold/Packages/manifest.json @@ -1,7 +1,7 @@ { "dependencies": { - "com.reactunity.core": "0.23.1", - "com.reactunity.quickjs": "0.23.1", + "com.reactunity.core": "0.23.2", + "com.reactunity.quickjs": "0.23.2", "com.unity.ai.navigation": "2.0.14", "com.unity.editorcoroutines": "1.1.0", "com.unity.ide.visualstudio": "2.0.26", diff --git a/packages/create/scaffold/react/package.json b/packages/create/scaffold/react/package.json index 7cec5706..808882f9 100644 --- a/packages/create/scaffold/react/package.json +++ b/packages/create/scaffold/react/package.json @@ -10,11 +10,11 @@ "lint": "react-unity-scripts lint" }, "dependencies": { - "@reactunity/renderer": "^0.23.1", + "@reactunity/renderer": "^0.23.2", "react": "^19.1.0" }, "devDependencies": { - "@reactunity/scripts": "^0.23.1", + "@reactunity/scripts": "^0.23.2", "typescript": "^5.8.3" } } diff --git a/packages/material/package.json b/packages/material/package.json index 2e247b5f..1084a21c 100644 --- a/packages/material/package.json +++ b/packages/material/package.json @@ -1,6 +1,6 @@ { "name": "@reactunity/material", - "version": "0.23.1", + "version": "0.23.2", "description": "Material Design components and utilities for React Unity", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/renderer/package.json b/packages/renderer/package.json index 05fb88f1..fb22a69e 100644 --- a/packages/renderer/package.json +++ b/packages/renderer/package.json @@ -1,6 +1,6 @@ { "name": "@reactunity/renderer", - "version": "0.23.1", + "version": "0.23.2", "description": "React renderer for Unity3D", "types": "dist/index.d.ts", "typings": "dist/index.d.ts", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 27ee1ead..3f18f2be 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@reactunity/scripts", - "version": "0.23.1", + "version": "0.23.2", "description": "Configuration and scripts for React Unity.", "repository": { "type": "git", diff --git a/unity/clearscript/package.json b/unity/clearscript/package.json index 7b5c90ce..b0f22060 100644 --- a/unity/clearscript/package.json +++ b/unity/clearscript/package.json @@ -6,7 +6,7 @@ "url": "https://github.com/KurtGokhan" }, "displayName": "React Unity ClearScript", - "version": "0.23.1", + "version": "0.23.2", "unity": "2019.4", "description": "ClearScript (V8) Plugin for ReactUnity", "keywords": ["ReactUnity", "ClearScript", "V8"], diff --git a/unity/core/package.json b/unity/core/package.json index dbae458a..9c7a995a 100644 --- a/unity/core/package.json +++ b/unity/core/package.json @@ -6,7 +6,7 @@ "url": "https://github.com/KurtGokhan" }, "displayName": "React Unity", - "version": "0.23.1", + "version": "0.23.2", "unity": "2021.3", "description": "React renderer for Unity", "keywords": ["React", "Framework", "UI", "UGUI", "UIToolkit"], diff --git a/unity/jint/package.json b/unity/jint/package.json index 95905c89..e6e51c0d 100644 --- a/unity/jint/package.json +++ b/unity/jint/package.json @@ -6,7 +6,7 @@ "url": "https://github.com/KurtGokhan" }, "displayName": "React Unity Jint", - "version": "0.23.1", + "version": "0.23.2", "unity": "2019.4", "description": "Jint Plugin for ReactUnity", "keywords": ["ReactUnity", "Jint"], diff --git a/unity/quickjs/package.json b/unity/quickjs/package.json index 63e51ba3..b3a3a4b1 100644 --- a/unity/quickjs/package.json +++ b/unity/quickjs/package.json @@ -6,7 +6,7 @@ "url": "https://github.com/KurtGokhan" }, "displayName": "React Unity QuickJS", - "version": "0.23.1", + "version": "0.23.2", "unity": "2019.4", "description": "QuickJS Plugin for ReactUnity", "keywords": ["ReactUnity", "QuickJS"],