Repository navigation
chore(process-daemon): move opencode-pty into the monorepo - #59694
Conversation
There was a problem hiding this comment.
This looks sound as a move. The workflow is a faithful port of opencode-pty's core.yml/windows.yml, scoped to packages/process-daemon. Bun won't treat the package as a workspace because the root globs don't match npm/, and nothing in the monorepo consumes the copied sources. I couldn't build or run the Rust tests here because the review environment has no Rust or Zig, so the CI run on this PR is the real check.
Public API: unchanged. The npm package names, crate and binary names, OPENCODE_PTY_BIN and runtime paths are all kept, and @opencode-ai/pty still comes from npm 0.3.1.
One thing for the release follow-up: repository in npm/package.json and Cargo.toml still points at anomalyco/opencode-pty. If publishing from this repo uses npm provenance, that URL will need to point at the monorepo, otherwise npm's provenance check will reject the publish.
58833a6 to
985f7a3
Compare
There was a problem hiding this comment.
This push only rebases onto dev. The PR's own patch is unchanged since my last review, so I have nothing new to add. My earlier note about the repository URLs in npm/package.json and Cargo.toml still applies for the release follow-up. Public API: unchanged.
Issue for this PR
No issue. This moves anomalyco/opencode-pty into the monorepo.
Type of change
What does this PR do?
Copies anomalyco/opencode-pty at
443945a(v0.3.1) intopackages/process-daemon, without git history. Only the folder and workflow are called "process-daemon". The npm packages (@opencode-ai/pty*), theopencode-ptycrate and binary,OPENCODE_PTY_BINand runtime paths keep their names..github/workflows/check-process-daemon.yml("Process daemon"), ported from opencode-pty'score.ymlandwindows.yml. It runs Miri, Core (ubuntu-22.04, macos-15) and Windows (x64 on windows-2025, arm64 on windows-11-arm, with the x64-Zig workaround and the Zig std patch). Action SHAs, runners and toolchains are unchanged. It only runs for changes underpackages/process-daemon/**or to the workflow itself, on PRs and pushes todev, and can be started manually. Steps run inpackages/process-daemon, and rust-cache points atpackages/process-daemon -> target. The Windows cache step dropscache-on-failure, because a timed-out run once saved a partial cache that broke re-runs (opencode-pty fix: log pane text wrapping #32)..githubis not copied. The README points at the new workflow and notes the move. The package's.gitignoreignores/targetand the nested test crates' targets.@opencode-ai/pty: it still comes from npm at 0.3.1. There is nopackage.jsonat the package root (the npm dispatcher is innpm/), so Bun does not treat it as a workspace, andbun.lockis unchanged.Follow-ups, in separate PRs: the release/publish workflow, then the open opencode-pty PRs (#27–#33). The old repo will be archived after the first release from here.
How did you verify your code works?
cargo fmt --check,cargo clippy --locked --all-targets --all-features -- -D warningsand the macOS test command fromcore.yml(cargo test --locked --lib --test service --test runtime --test ownership --test rows --test ghostty-effects) pass inpackages/process-daemonon macOS arm64 with Rust 1.90.0 and Zig 0.16.0.bun installleavesbun.lockunchanged.@opencode-ai/ptyin cli, core and server still resolves to the npm 0.3.1 package.bun run checkpasses. oxlint lints the package's 3 JS files without findings, andbun run lint:effect-simplificationspasses, so no tooling config changes were needed.Screenshots / recordings
N/A
Checklist