Repository navigation
chore(process-daemon): release 0.3.2 under the @opencode scope - #59879
Conversation
There was a problem hiding this comment.
Looks good. I ran script/npm-packages.mjs on dummy archives for all 8 targets. Every generated package is @opencode/pty* at 0.3.2 and matches the dispatcher's optionalDependencies. I then packed and installed the dispatcher with linux-x64-gnu, as the workflow's validation step does: opencode-pty --version and binaryPath both resolve through the new scope. Nothing under packages/process-daemon or .github still mentions @opencode-ai/pty.
Public API: the published package names change from @opencode-ai/pty and @opencode-ai/pty-<platform> to @opencode/pty and @opencode/pty-<platform>, starting at 0.3.2. The existing @opencode-ai/pty@0.3.1 packages stay on npm, so current consumers keep working until the follow-up switch. The binaryPath export, binary name, env vars and runtime paths are unchanged.
No blocking concerns.
Issue for this PR
Closes #
Type of change
What does this PR do?
Prepares the first
process-daemonrelease under the@opencodenpm scope.opencode-ptyfrom 0.3.1 to 0.3.2 inCargo.toml,Cargo.lock(only theopencode-ptyentry), andnpm/package.json(versionand all 8optionalDependencies).@opencode-aito@opencodeeverywhere in the publishing flow:optionalDependencieskeys innpm/package.json.npm/index.js. The dispatcher resolves@opencode/pty-<platform>at runtime, so the scope here has to match the published names.script/npm-packages.mjs.name="@opencode/pty"publish check, the release notes, and the header comment inrelease-process-daemon.yml.git grep "@opencode-ai/pty" -- packages/process-daemon .githubnow returns nothing.Consumers are not switched yet. core, server, and cli keep
@opencode-ai/pty@0.3.1until@opencode/pty@0.3.2is on npm. A follow-up PR will update these references:packages/core/package.json:108,packages/server/package.json:40,packages/cli/package.json:34packages/core/src/persistent-pty/pty-binding.ts:2packages/server/test/persistent-pty.test.ts:6packages/cli/script/opencode-pty.ts:19,29packages/cli/script/build.ts:74bunfig.toml:5(minimumReleaseAgeExcludes: the dispatcher and 8 platform names)bun.lock(regenerate)Publishing auth findings
release.ymlpublish-npmjob publishes everything under@opencode/*(@opencode/cli*,@opencode/sdk,@opencode/core, ...) via.github/release/publish-npm.sh. It uses npm trusted publishing (OIDC):id-token: write,npm publish --provenance, andenvironment: release. No workflow referencesNPM_TOKENorNODE_AUTH_TOKEN; the latest@opencode/sdkwas published byGitHub Actions <npm-oidc-no-reply@github.com>.@opencode/pty*packages already exist on npm as placeholders (0.0.0and0.0.0-stage,latest=0.0.0, maintainerthdxr). They were created on 2026-10-27. So the "trusted publishing needs an existing package" problem doesn't apply: trusted publishers can be configured on them right now.id-token: write, installs npm ≥ 11.5.1, and publishes with--provenance. The only remaining work is npm-side configuration (below).Maintainer steps
Before tagging:
@opencode/ptyand@opencode/pty-{darwin-arm64,darwin-x64,linux-arm64-gnu,linux-arm64-musl,linux-x64-gnu,linux-x64-musl,win32-arm64,win32-x64}. Use GitHub Actions, repoanomalyco/opencode, workflowrelease-process-daemon.yml, and leave the environment blank. Thereleasejob has noenvironment:, unlikerelease.yml.process-daemon-v*limiting who can create those tags.Tagging:
After the release:
npm view @opencode/pty@0.3.2and the platform packages exist with provenance. Publishing 0.3.2 moveslatestoff the0.0.0placeholder.How did you verify your code works?
cargo fmt --check: passes.cargo clippy --locked --all-targets --all-features -- -D warnings: passes.cargo run --locked -- --versionprintsopencode-pty 0.3.2 (protocol 7), which matches the workflow smoke test.node --checkpasses onnpm/index.js,npm/bin/opencode-pty.js, andscript/npm-packages.mjs, andnpm/package.jsonparses as JSON.script/npm-packages.mjsagainst archives for all 8 targets: the real local binary for darwin-arm64 and dummy binaries for the rest. All generated names are@opencode/pty-*at 0.3.2 and exactly match the dispatcher'soptionalDependencieskeys. The versions agree, andos/cpu/libcare correct.npm pack --dry-runsucceeds on all 9 generated packages.node_modules/.bin/opencode-pty --versionprintsopencode-pty 0.3.2 (protocol 7).import { binaryPath } from "@opencode/pty"resolves to an existing@opencode/pty-darwin-arm64/bin/opencode-pty.Checklist