Blue package and release workflow

September 1, 2026 ยท View on GitHub

Blue publishes ten packages as one 0.2.0-alpha.1 lockstep release: api, ui, frontend, conversation, core, app, transcript, interaction, bundle/blue, and cli. The exact release order lives in script/package-contract.mjs. The supported Harness line is 0.1.2-alpha.3.

Package manifests are the build source of truth. Concrete JavaScript exports and bins become tsdown entries; TypeScript project references emit declarations. Published packages contain runtime JavaScript, declarations, and explicitly listed consumer configuration. Source, maps, workspace protocols, and local paths must not leak.

Run:

pnpm run build
pnpm run check:lib
pnpm run check:pack
pnpm run check:examples

check:pack writes .artifacts/pack/index.json and ten tarballs, then runs manifest/export/bin/protocol checks, publint, AreTheTypesWrong, package budgets, and an external UI-kit install fixture. Release automation publishes those exact artifacts and does not rebuild.

@dsh-blue/blue-cli carries archived dsh runtimes. Refresh its isolated npm lock with pnpm run release:lock-cli; do not resolve it through workspace links.

Tags execute the CI release workflow: publish verified artifacts to candidate, install the exact registry versions on Linux/macOS/Windows, then promote alpha to alpha, RC to rc and latest, and stable to latest. Local release commands must not publish.