mirror of
https://github.com/Gitlawb/openclaude.git
synced 2026-11-06 20:58:14 -04:00
The npm package moves from the @gitlawb scope to @twigpine. Everything that names the package now uses the new name, and the release workflow can create the new package and close out the old one. Rename - package.json, bun.lock, release-please config, docs, website, VS Code extension and tests use @twigpine/openclaude. - scripts/build.ts takes the baked-in package name from package.json instead of repeating it; scripts/verify-clean-install.ts does the same. One final release under the old name, then nothing - Shipped builds have no working auto-updater (the no-telemetry plugin stubs it out), so people update by re-running the install command. Anyone still typing the old name lands on whatever is latest there. - release.yml publishes this release once more as @gitlawb/openclaude. That build shows a startup notice, and `openclaude update` and `/update` print the same note and stop, saying the package moved and how to switch. - legacy-scope-gate limits this to a single release. It only runs while the old name's latest version is still 0.31.0. - There is no in-place migration. Both packages own the `openclaude` bin, so npm refuses to install one over the other, and a forced install is undone by uninstalling the old package. The docs give the safe order. Tokenless releases (OIDC only) - Both publish steps authenticate through npm trusted publishing and attach provenance; no npm token is used anywhere. npm only attaches a trusted publisher to a package that already exists, so @twigpine/openclaude is created once by hand as an empty 0.0.0 placeholder before its first release. - Publish steps skip a version that is already on the registry, publish the verified dist/ with --ignore-scripts, and report provenance and whether a trusted publisher was used in the run summary (scripts/npm-publish-report.ts). - The legacy-named build is built and install-verified before anything is published. Co-authored-by: OpenClaude <openclaude@gitlawb.com>