Skip to content

ci(process-daemon): run the pipe tests on macOS - #61277

Merged
thdxr merged 1 commit into
devfrom
daemon-pipe-ci
Nov 2, 2026
Merged

thdxr merged 1 commit into
devfrom
daemon-pipe-ci

Conversation

@jlongster

@jlongster jlongster commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

Issue for this PR

Closes #

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation

What does this PR do?

Adds --test pipe to the macOS test step in check-process-daemon.yml, so the pipe-process tests from #60697 run on macOS CI too. Linux CI already runs them, because it runs cargo test --locked with every test target.

The macOS step lists its test targets explicitly (it skips the playground, matching the release workflow), so a new target has to be added by hand. Split out of #60697 so the workflow change gets its own review.

tests/pipe.rs came in with #60697, which is merged, so this can land on its own.

How did you verify your code works?

Ran the same command locally on macOS against dev with #60697: cargo test --locked --lib --test service --test runtime --test ownership --test pipe --test rows --test ghostty-effects passes.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

@jlongster
jlongster requested a review from a team as a code owner November 2, 2026 18:12
Base automatically changed from daemon-pipe-mode to dev November 2, 2026 18:27

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. #60697 has landed on dev, so the effective diff is now just the --test pipe addition to the macOS step. tests/pipe.rs is #![cfg(unix)] and Cargo discovers it automatically, so the target exists and builds on macOS. I couldn't run the step here (no cargo or macOS), so the macOS CI run on this PR will be the real check. The three-dot diff still shows #60697's commits because the branch hasn't been rebased since the squash merge; rebasing onto dev would leave only the workflow change.

Public API: unchanged (CI workflow only).

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. The rebase onto dev leaves only the --test pipe addition to the macOS step, which addresses my earlier note about #60697's commits still showing in the diff. I couldn't run it here (no cargo or macOS), so the macOS CI run on this PR is the real check.

Public API: unchanged (CI workflow only).

@thdxr
thdxr merged commit 2e8a861 into dev Nov 2, 2026
19 of 20 checks passed
@thdxr
thdxr deleted the daemon-pipe-ci branch November 2, 2026 19:06
sharunkumar added a commit to sharunkumar/opencode that referenced this pull request Nov 2, 2026
Brings in 132 upstream commits (upstream tip 2e8a861 "ci(process-daemon):
run the pipe tests on macOS (anomalyco#61277)").

Conflict resolutions
====================
- core/src/tool/plugin/opencode.ts: import collision. Kept the fork's
  `Option` (session roots system hint) and upstream's new `toolFailure`.
- core/src/tool/plugin/read.ts: import collision. Kept the fork's
  `InstructionDiscovery` (instruction filenames walk) and upstream's
  `Permission`.
- core/test/tool-shell.test.ts: upstream restructured the background-shell
  tests (Effect.acquireUseRelease -> withTempDir), re-indenting every line.
  The fork's only change in this file is the Cancel-tool hint in two
  expected background-output texts, so took upstream's file and re-applied
  those two lines.

Fixes for bad auto-merges
=========================
- core/src/session/prompt.ts and core/src/tool/plugin/skill.ts: upstream
  now passes a skill's in-memory files to Skill.prepare via
  `Skill.Service.files(id)`, using a `skillService` / `skills` binding that
  the fork had replaced with SessionRoots.skill. Bound Skill.Service again
  in both places. Root skills are on disk and are not registered in
  Skill.Service, so files() returns undefined for them and prepare scans
  the directory, as before.
- core tests: upstream's PluginHost.make now takes a plugin id; the fork's
  custom.test.ts and tool-opencode.test.ts pass "test" like upstream's
  tests. tool-skill.test.ts adds Skill.node to the skill tool's deps.

Generated files
===============
- Regenerated packages/protocol/openapi.json and the client. Git's text
  merge kept everything the fork had, but upstream added new sections that
  enumerate every event (for example Session.Event.Durable); upstream's
  copies only list upstream events. Regeneration adds the fork's
  session.root.added/removed events, the session `roots` field and
  Session.ForkDestination there.

Verification
============
- bun install; bun turbo typecheck: 35/35; oxlint 0 errors
- bun script/migration.ts --check: no schema changes
- make tests: tui 190, core 465, schema 7, sdk 3 pass, 0 fail
- tool-shell.test.ts + tool-skill.test.ts: 59 pass, 2 fail. The 2
  ("conditional substitutions respect once/always", bash "wait: pid ... is
  not a child of this shell") fail identically on a clean checkout of the
  upstream tip on macOS, so they are upstream's, not the merge's.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants