Skip to content

test: await fork probe fixture start signals - #15025

Merged
teamleaderleo merged 3 commits into
mainfrom
fix/fork-probe-test-start-signals
Sep 27, 2026
Merged

teamleaderleo merged 3 commits into
mainfrom
fix/fork-probe-test-start-signals

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Five fork-probe tests could advance cancellation and batch-release steps before their injected loader or provider started. They now await buffered start signals with a five-second failure bound, keep their existing behavioral assertions, and release blocked fixtures on early failure. Each affected test also has a one-minute limit. The private helper follows the suite so CI’s test-impact parser retains the focused selection.

At 23cd674828d9f4aa0c21da6753796d0484f8a2ff, native CI executed 71 tests in WorkspaceForkConversationContextMenuTests, all passing in 11.459 seconds. The CI run passed. Local Swift syntax, test wiring, and feature-flag checks also passed.

The original native failure recorded five failing tests and eleven assertions. A separate artifact-reuse setup failure is being repaired in #15026; it supplied no test execution evidence. No production code changes.

Changelog

none

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 42d134a6-4b99-487f-bda2-7d2af3c2c464

📥 Commits

Reviewing files that changed from the base of the PR and between 2394771 and 23cd674.

📒 Files selected for processing (1)
  • cmuxTests/WorkspaceForkConversationContextMenuTests.swift
 _______________________________________________
< I'm approving this in spirit, but not in Git. >
 -----------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 00f5ac22-0917-43ef-8da5-a4710c99148e

📥 Commits

Reviewing files that changed from the base of the PR and between 648d5c1 and 2394771.

📒 Files selected for processing (1)
  • cmuxTests/WorkspaceForkConversationContextMenuTests.swift

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

Fork-probe concurrency tests now use buffered start signals instead of polling or stream-based start detection. They also defer releasing blocked work, remove an obsolete loader counter, and add time limits to two tests.

Changes

Fork Probe Concurrency Tests

Layer / File(s) Summary
Signal helper and validation tests
cmuxTests/WorkspaceForkConversationContextMenuTests.swift
Adds a buffered start signal and uses it to coordinate loaders, refreshes, and probes in validation tests. Defers release of blocked work and adds time limits.
Provider, replay, and background probe tests
cmuxTests/WorkspaceForkConversationContextMenuTests.swift
Uses explicit start signals in provider, replay, and background probe tests. Defers release of blocked work and retains the queued-request check.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 23947

The cancellation test reaches the pending-request state before cancelling. No actionable merge-blocking issue remains after normal checks.

🚥 Pre-merge checks | ✅ 24 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 9 functions across 1 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (24 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input ✅ Passed PASS. The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds buffered test start signals, timeout handling, deferred fixture release, and test time li…
Cmux Swift Actor Isolation ✅ Passed PASS: The authoritative PR diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The added ForkProbeTestSignal and all modified code are test fixtures and test methods. The …
Cmux Swift Blocking Runtime ✅ Passed PASS. The authoritative diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift; no production Swift file changes are present. The added Task.sleep timeout, semaphores, locks, …
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It does not modify Sources/TerminalController.swift or ControlCommandExecutionPolicy.swift, and the…
Cmux Expensive Synchronous Load ✅ Passed PASS: The authoritative PR diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It adds test-only ForkProbeTestSignal coordination and timeout/deferred-release logic. No pr…
Cmux Cache Substitution Correctness ✅ Passed PASS. The authoritative PR diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It adds test synchronization signals and changes test fixture coordination. It does not change…
Cmux No Hacky Sleeps ✅ Passed PASS. The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift, a Swift test file. The added five-second Task.sleep is inside private test-only signal scaffolding, w…
Cmux Algorithmic Complexity ✅ Passed PASS. The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The added ForkProbeTestSignal and the revised waits are test-only scaffolding. The algorithmic-complexity rule …
Cmux Swift Concurrency ✅ Passed PASS. The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The new ForkProbeTestSignal uses AsyncStream and a timeout Task; the task is stored in timeout and cancel…
Cmux Swift @Concurrent ✅ Passed PASS. The PR adds only ForkProbeTestSignal.wait() async, which awaits an AsyncStream and a five-second Task.sleep for test coordination. It performs no CPU-heavy, file, parsing, or network work.…
Cmux Swift Package Boundaries ✅ Passed PASS. The review-scoped diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It adds a private test-only ForkProbeTestSignal and updates test fixtures. No production Swift …
Cmux Swiftpm Lockfiles ✅ Passed PASS: The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It does not change Package.swift, Package.resolved, .gitignore, workflow files, or Xcode project/…
Cmux Swift Logging ✅ Passed PASS. The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds test coordination signals, timeout handling, and test assertions. It adds no print, `de…
Cmux User-Facing Error Privacy ✅ Passed PASS: The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The added signal and #require messages are test-only diagnostics. The rule explicitly allows tests an…
Cmux Full Internationalization ✅ Passed PASS. The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds test synchronization signals, timeout annotations, and test failure messages. It does not change pr…
Cmux Swiftui State Layout ✅ Passed PASS: The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds ForkProbeTestSignal and updates async test coordination. It adds no SwiftUI import, `ObservableOb…
Cmux Architecture Rethink ✅ Passed PASS. The diff changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. It adds a private buffered ForkProbeTestSignal and replaces executor-scheduling polling with explicit fixture…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds ForkProbeTestSignal and updates test synchronization, with no NSWindow, NSPanel, `NSWindowCon…
Cmux Source Artifacts ✅ Passed The PR changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff adds hand-written Swift test coordination code, signals, and test time limits. It adds no logs, screenshots, r…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS. The pull request changes only cmuxTests/WorkspaceForkConversationContextMenuTests.swift. The diff contains no Swift file under a production Sources/ path, and it adds no production test/debu…
Title check ✅ Passed The title clearly identifies the main change: awaiting fork-probe fixture start signals in tests.
Description check ✅ Passed The description explains the problem, the resulting test behavior, the validation performed, the known CI limits, and that no production code changed. It provides a changelog entry of none. The templa…
  • Fix all pre-merge checks with AI
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

CI failure attribution

CI passes on 23cd674828 (run 36331821493 attempt 1).

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Toolbox g1 🔔 reviewed the one-file test-only change. It replaces scheduler-yield polling with buffered start signals, adds bounded time limits and cleanup on early failure, and current CI has green fast guards, app-host tests, and status checks. CodeRabbit is still pending; attempting the ordinary squash merge without bypassing any required checks.

@teamleaderleo
teamleaderleo merged commit d363290 into main Sep 27, 2026
51 of 54 checks passed
@teamleaderleo
teamleaderleo deleted the fix/fork-probe-test-start-signals branch September 27, 2026 16:12
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 23cd674828: every check was green at merge (16 verified; 14 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 27, 2026
8efe28d Add terminal.confirmUnsafePaste to confirm unsafe pastes in a window sheet (manaflow-ai#14951)
368ec9f fix(ci): restore app-host artifact rerun setup (manaflow-ai#15029)
e67ea0f perf: stop launching the cmux CLI for every queued Claude hook (manaflow-ai#14931)
badf9f6 test: give the tmux split mapping test its own portal authority (manaflow-ai#15028)
41a0c37 current-work: preserve remote machine kinds (manaflow-ai#14914)
c842f7d test(hermes): wait for the hook installer instead of racing a 1 s deadline (manaflow-ai#15027)
810ffba fix(ci): resolve binary modules in detached test reruns (manaflow-ai#15026)
d363290 test: await fork probe fixture start signals (manaflow-ai#15025)
8c98e64 Add cmux import for settings from other terminals (manaflow-ai#15004)
30aa6c1 Keep SSH workspace titles when cmux-tui creates the remote workspace (manaflow-ai#14976)
b33c467 Restore workspace group color and icon key handling from manaflow-ai#13877 (manaflow-ai#15000)

# Conflicts:
#	.github/workflows/app-host-test-rerun.yml
#	.github/workflows/ci-macos.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant