You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(chatgpt): reproduce embedded artifact drift after Rsbuild 2 upgrade #3219
The Dashboard CI job fails pnpm run check:embedded for the ChatGPT extension after the Rsbuild 2 upgrade in #3146. It reports embedded/app.html is stale despite that upgrade already including a regenerated app bundle.
Exact CI checkout / currently advertised PR merge: 9d94a30051a87a34790e8a24d2cf37aa7c29d959, with parents 9375d7a0cab51684a4c1df7de256fe1711c44a6f and the PR head above.
CI used Ubuntu 24.04.5, Node 22.23.3, pnpm 12.9.1, and the committed lockfile. The log identifies Rsbuild 2.2.12. TypeScript SDK build, extension typecheck, all 6 extension adapter tests, and all 2029 dashboard tests passed before the embedded freshness check failed.
The extension source, SDK source, committed embedded files, and pnpm lock/workspace inputs in that CI merge are identical to base 9375d7a0; this failure does not arise from the PR's dashboard read-state edit.
Dependency upgrade commit b0878772554fe55b40a32ae3bcceaa80deeee829 (chore(deps): upgrade Rsbuild and React plugin to v2 #3146) changes extension Rsbuild 1.7.6 to 2.2.12, Rspack to 2.2.8, applies the Rsbuild patch, and regenerates embedded/app.html.
Local checks on the PR head alone pass under Node 24.15.0 and 22.23.2, including CI=true, after rebuilding the SDK. Those checks use Rsbuild 1.7.6 and therefore do not reproduce the actual CI dependency inputs.
Required investigation and behavior
Integrate the current base inputs, install the exact pnpm lockfile, and reproduce the canonical extension build/check. Determine whether the committed generated app is stale or the build varies across environments; do not create an artificial bundle change or weaken byte-for-byte checking. Regenerate through the maintained build script if appropriate, preserve self-contained offline artifacts, and verify freshness against the integrated inputs.
The precise cause within the Rsbuild 2 build is not established yet.
Reproduced the stale app check after integrating current origin/master and installing the locked dependencies. Rebuilt the SDK with Rslib 1.0.3, then the maintained extension build regenerated only embedded/app.html (479600 to 477886 bytes); server.mjs stayed byte-identical. Three subsequent freshness builds passed, including CI=true with Node 22.23.2 from the exact extension working directory. Extension typecheck and all 6 adapter tests also passed. No browser-target override or ancestor browserslist configuration was found locally. The original committed artifact generation environment is unknown; the new output is stable locally with the integrated locked inputs, and native CI must still verify it. No script/config/source changes were needed.
Clean hosted Dashboard CI passed on commit 2288d2669e134b0a382a37d3f4e4de5150150b1f, including the embedded artifact freshness step. This confirms the canonical regeneration fixes the reproducible failure. Local verification also passed three freshness builds, extension typechecking, six adapter tests, and three browser journeys using the actual packaged app with an isolated real daemon. Remaining Linux/Windows/Clippy/CLI checks are still running before merge.
Activity
ScriptedAlchemy commentedon Oct 9, 2026
Reproduced the stale app check after integrating current origin/master and installing the locked dependencies. Rebuilt the SDK with Rslib 1.0.3, then the maintained extension build regenerated only embedded/app.html (479600 to 477886 bytes); server.mjs stayed byte-identical. Three subsequent freshness builds passed, including CI=true with Node 22.23.2 from the exact extension working directory. Extension typecheck and all 6 adapter tests also passed. No browser-target override or ancestor browserslist configuration was found locally. The original committed artifact generation environment is unknown; the new output is stable locally with the integrated locked inputs, and native CI must still verify it. No script/config/source changes were needed.
ScriptedAlchemy commentedon Oct 9, 2026
Clean hosted Dashboard CI passed on commit
2288d2669e134b0a382a37d3f4e4de5150150b1f, including the embedded artifact freshness step. This confirms the canonical regeneration fixes the reproducible failure. Local verification also passed three freshness builds, extension typechecking, six adapter tests, and three browser journeys using the actual packaged app with an isolated real daemon. Remaining Linux/Windows/Clippy/CLI checks are still running before merge.CI: https://github.com/ScriptedAlchemy/tracedecay/actions/runs/37870608232