Skip to content

ci(demo): test the package built from each commit - #97

Merged
Kinfe123 merged 1 commit into
mainfrom
ci/test-demo-package
Oct 30, 2026
Merged

Kinfe123 merged 1 commit into
mainfrom
ci/test-demo-package

Conversation

@Kinfe123

Copy link
Copy Markdown
Collaborator

Problem

The assistant-ui demo's model and parser-runner tests install streamfold@0.1.7 from npm. A PR can therefore break the current package's demo integration while those checks still pass. The separate WASM bundling test already covers workspace code, but it does not exercise the installed adapter through the demo.

Reproduction on main at 3965515: run npm ci in examples/assistant-ui-demo, then npm ls streamfold. It resolves 0.1.7 although the workspace package is 0.1.14, and changing the workspace adapter does not change that installed copy.

Root cause

The only demo CI lane uses its committed npm lockfile and never installs the package from the commit under test.

Change

Run the existing demo checks in two matrix lanes. The published lane retains the pinned npm release. The candidate lane uses the pinned Rust toolchain and the package's existing prepack hook to build and pack the current commit, then installs that tarball with --no-save --ignore-scripts before running the same unit tests, production build, and Chromium tests.

The install continues reading the demo lockfile. --no-save leaves both the manifest and lockfile unchanged. Only Streamfold is replaced; no workspace alias or new runtime dependency is added.

Verification

  • pnpm release:check: 197 JavaScript tests and 11 Rust tests pass, plus type, syntax, formatting, Clippy, WASM build, and package checks.
  • Published and candidate lanes: npm test passes 24 tests, npm run build passes, and node --test --test-concurrency=1 tests/*.test.mjs passes all 7 browser tests in each lane.
  • Compared the installed dependency trees: only Streamfold changes, from 0.1.7 to the candidate 0.1.14. The installed adapter and generated WASM bytes match the current package; the demo manifest and lockfile remain unchanged.
  • Local browser verification uses installed Chrome through CHROME_EXECUTABLE; CI installs Playwright Chromium.

Public surface

None. CI and contributor/demo documentation only; the demo's published dependency pin remains unchanged.

@Kinfe123
Kinfe123 merged commit 9b56bfc into main Oct 30, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant