Repository navigation
test(clipboard): run copy-command stubs through /bin/sh - #683
Merged
Merged
Conversation
The `copy_via_user_command` tests executed a freshly written stub
script. macOS scans a file the first time it is executed, and in a
loaded parallel run that can outlast even the tests' 10s reap budget:
the copy then returns once its text is in the pipe, before the stub has
run, and the test finds no sidecar ("read sidecar: NotFound", seen in
the rc.4 release-prep gate). The three tests now name `/bin/sh` with the
stub as its argument, which never executes a new file and still checks
the whitespace split, the stdin payload and the exit status.
Co-Authored-By: Claude <noreply@anthropic.com>
DerekMarshall
added a commit
that referenced
this pull request
Oct 15, 2026
Sets the version to `2.2.0-rc.4`, made with `make release-prep VERSION=2.2.0-rc.4`. Only `Cargo.toml` and `Cargo.lock` change. As with the earlier rcs, it gets no CHANGELOG section, because the 2.2.0 section covers the whole cycle. ## What rc.4 adds over rc.3 | PR | Change | |---|---| | #680 / #681 | fix(list): pages are counted from the top, so a `/` jump always shows the cursor and `l` off a page's last column opens the next page at its first column (#679). PageDown/PageUp keep the column and row. | | #682 | fix(agent-hud): the first column holds its width through every state, and row headings are bright and bold (#676). | | #683 | test(clipboard): the copy-command stubs run through `/bin/sh`, fixing a local macOS flake that failed this release's first prep. | The owner tested builds of #681 and #682 before they merged. `main` stays at `2.2.0-rc.4` through the soak. **After merge, on `main`:** 1. `make release-tag VERSION=2.2.0-rc.4` 2. Push the tag. `release.yml` verifies the archives reproduce, publishes a GitHub pre-release, and dispatches the Homebrew tap and apt. The crates job publishes `spyc 2.2.0-rc.4` and skips `spyc-vt-sys 0.1.0`, which is unchanged. **Checks:** the release-prep commit hook ran `make check` (3,240 tests passed). Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes a local flake that failed the rc.4 release-prep gate on macOS:
clipboard::tests::copy_via_user_command_splits_on_whitespace_and_args_reach_the_childpanicked withread sidecar: NotFound.Cause: the three
copy_via_user_commandtests executed a freshly written stub script. macOS scans a file the first time it's executed, and in a loaded parallel run that scan can outlast even the tests' 10-second reap budget.spawn_and_pipethen returnsOkonce the payload is in the pipe, as it should for a helper that keeps running, and the test reads a sidecar the stub hasn't written yet.The other explanations, ruled out from the code:
retry_text_busyretries.catwaiting would still leave the sidecar, becauseechowrites it first.Fix: the three tests name
/bin/shwith the stub as its argument (user_command_via_sh). That never executes a new file and still covers the whitespace split, the stdin payload and the exit status. The override-path tests already did this, for theText file busyrace.Checks:
make check-cipasses.Generated with Claude Code