Skip to content

fix(chatgpt): reproduce embedded artifact drift after Rsbuild 2 upgrade #3219

Closed

Description

@ScriptedAlchemy

Problem

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.

Evidence

  • PR fix(runtime): repair cross-host storage and verification journeys #3200 head: 9ddae8cb7c951104598ae5443582c586c97769d6.
  • 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.

Activity

  1. ScriptedAlchemy commented on Oct 9, 2026

    @ScriptedAlchemy
    OwnerAuthor

    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.

  2. ScriptedAlchemy commented on Oct 9, 2026

    @ScriptedAlchemy
    OwnerAuthor

    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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions