v0.1.0-rc.3 — Generative UI Protocol
Pre-releasev0.1.0-rc.3 — pnpm-OIDC root cause fix + multi-provider work
Third public release candidate of the @ggui-ai/* npm wave. Install via npm install @ggui-ai/cli@next (next dist-tag for prereleases; latest stays on whatever stable is current, which is still nothing — 0.1.0 GA pending).
Why rc.3 (and not just rc.2)
Update (this draft): The first rc.3 attempt also 404'd. Root cause was DEEPER than the registry-url fix: pnpm 9 does not natively engage OIDC publishing. Upgraded to pnpm 11.2.2 + migrated all pnpm config (overrides, settings) from package.json/.npmrc to pnpm-workspace.yaml per pnpm 11 layout. This draft cut against the fresh workflow.
rc.2 was cut, draft was flipped to published, the workflow ran the OIDC publish step — and every attempt 404'd at the first package's tarball PUT. Six hours of investigation traced the root cause to a real pnpm bug: when actions/setup-node writes _authToken=${NODE_AUTH_TOKEN} to .npmrc and NODE_AUTH_TOKEN is unset (the normal state under OIDC Trusted Publishing), pnpm 9.x passes the literal ${NODE_AUTH_TOKEN} placeholder through verbatim — registry returns 404 (npm's masked auth-failure response) BEFORE OIDC fallback fires. Documented in pnpm/pnpm#11513, fixed in pnpm 11.0.9+ via pnpm/pnpm#11526; not backported to 9.x. The surgical workaround that landed in this rc: drop registry-url: from the publish job's setup-node config so the broken .npmrc never gets written. rc.2 release+tag deleted, version available again, rc.3 picks up where rc.2 should have shipped.
Reliability + tooling improvements since v0.1.0-rc.1
- Pre-cut publish-gate as a slash-command step —
/release:cutnow firespublish-gate.ymlvia workflow_dispatch BEFORE creating the GitHub draft. If the gate is red, no draft is ever cut. Two-layer defense in depth with the on-flip gate already wired intorelease.yml. Caught 3 release-time parity-drift bugs during rc.2 prep (STDLIB_GADGETS_VERSION constant, tarball-smoke tool count, tarball-smoke named-list). - Pre-publish gate as a hard prerequisite of
publish—publish-gate.yml(source half + clean-room-consumer registry round-trip) blocks publish on packaging bugs invisible to monorepo builds (missingfiles, brokenexports, transitive-dep gaps). - Smoke job hardened with 60-min npm replication wait + version equality check. rc.1's first smoke flake (registry CDN lag) cannot recur.
typescondition first inexports— fixed in 3 packages (@ggui-ai/protocol,@ggui-ai/gadgets,@ggui-ai/react), 17 export entries reordered. Real consumer-side fix for TypeScript strict module resolution (bundler/nodenext).- Build is now warning-free — npm/pnpm env-var leakage cleaned up, Vite bundle-size threshold raised to match the project's actual gzip budget. 73 warnings → 0 across
pnpm -r build. - Trusted Publishing (OIDC) replaces
NPM_TOKEN— publish auth is now per-package OIDC config on npmjs.com (post the rc.2-debugging dance); no long-lived secret in CI. Each@ggui-ai/*tarball still carries the--provenanceattestation.
Multi-provider work (from the cloud session)
- Multi-provider routing through ui-gen —
resolveRoutewidened for the Bedrock + Anthropic + OpenAI + Gemini + OpenRouter pool.routeKindthreaded end-to-end for per-route billing fidelity. - Default model = gemini-3.5-flash for the platform-key path; typed
infra.modelplumbed through the pod handlers.
Install
npm install @ggui-ai/cli@0.1.0-rc.3
# or via the prerelease dist-tag:
npm install @ggui-ai/cli@nextVerify provenance
Each tarball is signed via npm Trusted Publishing (OIDC). Verify on any @ggui-ai/* package page on npm; look for the "Provenance" badge linking back to the GitHub Actions run that built it.