Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
eae58a7
test(simulator): bound the panel waits by a deadline, not a yield cou…
teamleaderleo Sep 23, 2026
49037ac
coderouter: accept chatmux per-VM tokens (team-shared accounts only) …
lawrencecchen Sep 23, 2026
1ec0f20
test: guard the DerivedData boundary app-host cleanup enforces (#13949)
teamleaderleo Sep 23, 2026
61a2a3c
fix(ci): report recorded failures even when the app-host xcresult is …
teamleaderleo Sep 23, 2026
bb03a25
test: cover managed Claude teammate spawning under rate limits (#13844)
austinywang Sep 23, 2026
46402d2
Make dashboard team switching optimistic (#13570)
azooz2003-bit Sep 23, 2026
bc58eef
ci: report how many runner minutes came from paid capacity (#13966)
teamleaderleo Sep 23, 2026
ef9e547
Fix OMP workspace auto-naming flags (#13840)
austinywang Sep 23, 2026
8af9a6f
ci: make the pull-request Xcode lane a default-deny structural rule (…
teamleaderleo Sep 23, 2026
436e94f
ci: replay app-host shard verdicts offline from run artifacts (#13972)
teamleaderleo Sep 23, 2026
081be0f
Welcome first-time contributors and credit their work (#13955)
teamleaderleo Sep 23, 2026
8c6e32a
Honor a reconnect budget above 20 instead of discarding it silently (…
teamleaderleo Sep 23, 2026
ca060bd
API: report terminal paste delivery outcome (#13849)
austinywang Sep 23, 2026
638aaa7
feat(tui): adopt Herdr-style agent plugins and journal projections (#…
lawrencecchen Sep 23, 2026
afd5c47
ci: let E2E dispatches adopt a compiled product instead of rebuilding…
teamleaderleo Sep 23, 2026
5985cf5
Mirror terminal focus before the runtime surface exists (#13968)
teamleaderleo Sep 23, 2026
c14b142
test: target local Undo at the editable responder (#13989)
teamleaderleo Sep 23, 2026
a0b1dea
fix(ci): unquote replayed argv so post-#13831 selectors resolve (#13974)
teamleaderleo Sep 23, 2026
0044d5a
ci: mirror app-host batch output without racing a tail (#13990)
teamleaderleo Sep 23, 2026
c7fb3b1
ci: put the switch for paid macOS capacity in the repository (#13973)
teamleaderleo Sep 23, 2026
9963f3f
ci: stop admitting macOS after a run has already failed (#13969)
teamleaderleo Sep 23, 2026
157c67f
ci: pin the paid-overflow gate's fallbacks and name the Tart catch (#…
teamleaderleo Sep 23, 2026
db5d212
docs: record how to read CI cost measurements (#13971)
teamleaderleo Sep 23, 2026
c3dd613
fix(ci): name recorded failures when the app host restarts mid-run (#…
teamleaderleo Sep 23, 2026
3c58b03
ci: add a unit-ci tier between compile-only and the full suite (#13996)
teamleaderleo Sep 23, 2026
49bd8be
ci: make unit-ci compile, and fail when its unit tests skip (#14008)
teamleaderleo Sep 23, 2026
c42548e
test(settings): enforce that advertised cmux.json paths are actually …
teamleaderleo Sep 23, 2026
3ca19ad
fix: honor the tab index when inserting a Cloud mirror terminal (#13998)
teamleaderleo Sep 23, 2026
5d1ecb8
test: give each drained write its own deadline in the short-chunks re…
teamleaderleo Sep 23, 2026
4b82298
ci: let test-depot run one app-host test by selector (#14001)
teamleaderleo Sep 23, 2026
2a4f3f6
fix(fork): make the fallback refresh await its own queued validation …
teamleaderleo Sep 23, 2026
11202e3
Name the workspace that workspace.reorder could not resolve (#13961)
teamleaderleo Sep 23, 2026
daf9649
test: drop six focus-history cases superseded by FocusHistoryScopeTes…
teamleaderleo Sep 23, 2026
25ad5af
feat(terminal): opt-in macOS text-editing gestures at the shell promp…
teamleaderleo Sep 23, 2026
260b648
ci: check what the runner variables hold, not just what the workflows…
teamleaderleo Sep 23, 2026
e4ca672
ci(ios): record the cmux.app upload once Apple accepts it (#14014)
teamleaderleo Sep 23, 2026
8abd2e9
ci: flag condition polls bounded by a Task.yield() count (#14019)
teamleaderleo Sep 23, 2026
c890374
ci: pin the nightly runner guards to the whole expression (#13997)
teamleaderleo Sep 23, 2026
1773c54
ci(e2e): start builds from main's DerivedData so test-only changes sk…
teamleaderleo Sep 23, 2026
06c2101
ci: route streamed validation by capability instead of by lane name (…
teamleaderleo Sep 23, 2026
ad7f9fe
ci: run app-host unit tests for a cmuxTests/ diff without a label (#1…
teamleaderleo Sep 23, 2026
9697411
test(ios): expect the construction focus event in composer diagnostic…
teamleaderleo Sep 23, 2026
ef98b5e
ci: name the macOS 26 runner variables after machines, not lanes (#14…
teamleaderleo Sep 23, 2026
19a6ac1
test: read errno before the assertion that can overwrite it (#13957)
teamleaderleo Sep 23, 2026
82d49a3
fix(ios): keep an offline sibling build out of secondary aggregation …
teamleaderleo Sep 23, 2026
6332063
test(ios): give pool alias fixtures one build identity (#14004)
teamleaderleo Sep 23, 2026
ccdbf30
fix(ios): let a legacy untagged Mac row take pushed presence routes (…
teamleaderleo Sep 23, 2026
e1632a0
ci: add capability runner resolver
teamleaderleo Sep 23, 2026
dbefc1a
ci: add capability runner resolver
teamleaderleo Sep 23, 2026
4d69cfb
ci: add capability runner resolver
teamleaderleo Sep 23, 2026
064a783
ci: add capability runner resolver
teamleaderleo Sep 23, 2026
48506ab
ci: add capability runner resolver
teamleaderleo Sep 23, 2026
1380c75
ci: run capability resolver guard
teamleaderleo Sep 23, 2026
401416e
ci: prove capability runner resolution in app-store workflow
teamleaderleo Sep 23, 2026
e300cd4
ci: route runner resolver files to guard tests
teamleaderleo Sep 23, 2026
21b3d40
ci: register runner resolver tests
teamleaderleo Sep 23, 2026
5a661dc
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
babb384
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
3734489
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
6a50313
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
cdd7c7c
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
3acb5ed
ci: use GitHub-hosted runners on forks
teamleaderleo Sep 23, 2026
192749d
ci: teach runner guards about fork-hosted routing
teamleaderleo Sep 23, 2026
6895978
test: expect fork-safe release admission runner
teamleaderleo Sep 23, 2026
74cf4ff
test: require zero-config runners across the core CI graph
teamleaderleo Sep 23, 2026
477dc97
docs: make zero-config fork runner behavior explicit
teamleaderleo Sep 23, 2026
5481e9b
test: describe fork-hosted runner defaults accurately
teamleaderleo Sep 23, 2026
82026de
docs: describe immediate zero-config fork CI bridge
teamleaderleo Sep 23, 2026
837f397
test: exclude resolver controls from runner-label report
teamleaderleo Sep 23, 2026
dc474f1
test: pin fork-aware release runner expression
teamleaderleo Sep 23, 2026
be9bd93
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
ca82b6c
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
367599c
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
3d1079c
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
25d5f1d
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
629aae1
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
fdf6762
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
44e3f04
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
17f4615
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
17753df
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
55a68ed
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
2bfecd2
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
964b897
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
86a0431
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
7b35b2a
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
cf31472
ci: use GitHub-hosted runners in forks
teamleaderleo Sep 23, 2026
14bb39a
test: require hosted routing for every pull-request workflow
teamleaderleo Sep 23, 2026
5953c44
test: follow reusable workflows from fork pull requests
teamleaderleo Sep 23, 2026
f37e772
docs: define fork safety over the full PR workflow graph
teamleaderleo Sep 23, 2026
6686c7e
docs: describe full pull-request fork coverage
teamleaderleo Sep 23, 2026
b5b5c55
test: pin fork-aware dual-Xcode runner expression
teamleaderleo Sep 23, 2026
d8fbf3a
ci: keep fork routing independent of capability resolver
teamleaderleo Sep 23, 2026
819404d
ci: keep fork routing independent of capability resolver
teamleaderleo Sep 23, 2026
a11a1b9
ci: keep fork routing independent of capability resolver
teamleaderleo Sep 23, 2026
abb944c
ci: keep fork routing independent of capability resolver
teamleaderleo Sep 23, 2026
983a523
ci: keep fork routing independent of capability resolver
teamleaderleo Sep 23, 2026
82c3ad2
test: require zero-config hosted runners for fork PRs
teamleaderleo Sep 23, 2026
dc07694
ci: route fork-runner policy changes through all guards
teamleaderleo Sep 23, 2026
348f92a
ci: register fork runner routing test
teamleaderleo Sep 23, 2026
0614aee
ci: validate zero-config fork runner routing
teamleaderleo Sep 23, 2026
52b7169
ci: split capability resolver from fork routing
teamleaderleo Sep 23, 2026
d973376
ci: split capability resolver from fork routing
teamleaderleo Sep 23, 2026
d82dace
ci: split capability resolver from fork routing
teamleaderleo Sep 23, 2026
ad00e15
ci: split capability resolver from fork routing
teamleaderleo Sep 23, 2026
6ec32f7
ci: split capability resolver from fork routing
teamleaderleo Sep 23, 2026
cbd4032
docs: keep fork routing contract self-contained
teamleaderleo Sep 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
10 changes: 10 additions & 0 deletions .github/contributor/welcome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Thanks for opening your first cmux pull request!

We're a small team and the outside-PR queue is long, so a reply can take a while — sometimes longer than we'd like. If this one goes quiet and you'd like eyes on it, comment here and we'll pick it up.

A few things that help:

- The PR template has a "Review Trigger" block of review-bot mentions. Pasting it as a comment after your latest commit is the quickest way to get automated review.
- If the CLA check asks, reply with the sentence it gives you.
- The [verification ladder](https://github.com/manaflow-ai/cmux/blob/main/docs/contributor-verification.md) shows which checks fit your change. Say in the description which ones you ran.
- If we end up fixing the same problem another way, we'll credit you with a `Co-authored-by` trailer and link the fix here.
1 change: 1 addition & 0 deletions .github/review-bot-rules/test-determinism.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ This gate enforces two principles:
Report a failure when the changed test code introduces or materially expands any of these:

- A fixed `sleep`/`usleep`/`Task.sleep`/`setTimeout`/`Thread.sleep`/`time.sleep` used to wait for async readiness before an assertion (the `sleep(0.3); assert` shape that fails on correct code under load).
- A poll of a condition bounded by an iteration count of `Task.yield()` (or any other reschedule) instead of a deadline, such as `for _ in 0..<100 { if ready { break }; await Task.yield() }`. A yield waits for nothing, so N yields shrinks to microseconds on an idle machine and gives no fixed budget under load: a busy runner turns a slow pass into a failure. Bound the poll by a clock deadline, or await the real signal.
- An assertion on a measured wall-clock duration, or a hard absolute latency ceiling on shared CI.
- Reading `Date()` / `Date.now` / `CACurrentMediaTime()` / `perf_counter` / `performance.now()` in an assertion.
- Binding a fixed non-zero port, or hitting a live network host instead of a local fake or ephemeral server.
Expand Down
58 changes: 58 additions & 0 deletions .github/test-determinism-allowlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,61 @@ Packages/Shared/CmuxIrxTransport/Tests/CmuxIrxTransportTests/IrxRelayCredentialI
cmuxTests/MobileHostConnectionEventLaneTests.swift sleep-then-assert upstream event-lane timing tests; replace with event-driven readiness
cmuxTests/MobileHostConnectionLifecycleTests.swift sleep-then-assert upstream connection lifecycle timing tests; replace with event-driven readiness
web/tests/iroh-dashboard-controller.test.ts sleep-then-assert upstream dashboard render timing tests; replace with event-driven readiness
Packages/Shared/CMUXMobileCore/Tests/CMUXMobileCoreTests/DiagnosticLogTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CMUXMobileCore/Tests/CMUXMobileCoreTests/TerminalWorkIntervalTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxAuthRuntime/Tests/CmuxAuthRuntimeTests/AuthCoordinatorPostSignInTimeoutTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxAuthRuntime/Tests/CmuxAuthRuntimeTests/AuthCoordinatorSignInExchangePreflightTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxAuthRuntime/Tests/CmuxAuthRuntimeTests/AuthCoordinatorSignInPreflightTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxAuthRuntime/Tests/CmuxAuthRuntimeTests/AuthCoordinatorTimeoutTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxAuthRuntime/Tests/CmuxAuthRuntimeTests/AuthCoordinatorTokenTouchingPhaseCancellationTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxConnectivityEngineTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxConnectivityPeerSessionTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohClientRuntimeTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohEndpointServerTests+Capacity.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohHostRuntimeFailedRestartTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohHostRuntimePolicyTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohOnlineAdmissionRegistryOfflineTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohRegistryContextProviderStalenessTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxIrohTransport/Tests/CmuxIrohTransportTests/CmxIrohServerSessionTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/Shared/CmuxSentryTelemetry/Tests/CmuxSentryReportingTests/TransportSentryReporterTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileRPC/Tests/CmuxMobileRPCTests/CancellationIgnoringTokenProvider.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileRPC/Tests/CmuxMobileRPCTests/MobileCoreRPCSessionPipelinedTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileRPC/Tests/CmuxMobileRPCTests/MobileCoreRPCTokenTimeoutTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileShell/Tests/CmuxMobileShellTests/MobileTaskModelCatalogClientTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileShell/Tests/CmuxMobileShellTests/TerminalLaneReplayBarrierTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileShell/Tests/CmuxMobileShellTests/TerminalRawInputOrderingTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/iOS/CmuxMobileToast/Tests/CmuxMobileToastTests/ToastCenterTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxControlSocket/Tests/CmuxControlSocketTests/ControlPlaneConcurrencyTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxFoundation/Tests/CmuxFoundationTests/Concurrency/MainActorCoalescingDeadlineTimerTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSidebarGit/Tests/CmuxSidebarGitTests/ProbeSchedulingTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorCameraCleanupDeadlineTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientCameraCleanupTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientContainmentTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientLifecycleTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientQueueTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientRecoveryTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientStagedReplayTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorTests/SimulatorWorkerClientWheelRecoveryTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorAccessibilityPresentationTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorLiveStatusWatcherTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorPaneCoordinatorCancellationTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorPaneCoordinatorLocationLifecycleTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorPaneCoordinatorOverflowTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorPaneCoordinatorTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorProcessSessionTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorUITests/SimulatorWebInspectorCoordinatorTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorWorkerTests/SimulatorToolOperationSchedulingTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSimulator/Tests/CmuxSimulatorWorkerTests/SimulatorWebInspectorServiceFailureTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
Packages/macOS/CmuxSudoBroker/Tests/CmuxSudoBrokerTests/SudoReviewRegressionTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/CloudWireGuardHubTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/DockShortcutRoutingTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/FilePreviewKindResolverTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/MobileHostAuthorizationTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/MobileHostConnectionEventLaneTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/MobileHostOrderedInputTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/RemoteTmuxPaneSeedTransportTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/SidebarScrollViewConfiguratorTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/SidebarWorkspaceTableTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/TextBoxInlineAttachmentRenderingTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
cmuxTests/WindowAndDragTests.swift yield-count-poll polls bounded by a Task.yield() count; convert to a deadline-bounded poll (#13903)
2 changes: 1 addition & 1 deletion .github/workflows/ci-artifact-transport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ concurrency:

jobs:
transport:
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 10
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-cache-receipts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ concurrency:

jobs:
receipt-contract:
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 5
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
Expand Down
31 changes: 26 additions & 5 deletions .github/workflows/ci-guards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
fail-fast: false
matrix:
group: ${{ fromJSON(inputs.linux_guard_test_groups) }}
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
# Its three sibling guard jobs are bounded at 15; 65 recent runs peaked at 0.8 min.
timeout-minutes: 15
# This job executes scripts from the pull request. It needs only read
Expand Down Expand Up @@ -159,6 +159,10 @@ jobs:
if: ${{ matrix.group == 'preflight' }}
run: python3 tests/test_write_sidebar_extension_point.py

- name: Validate settings rows advertise supported cmux.json paths
if: ${{ matrix.group == 'preflight' }}
run: python3 tests/test_settings_configuration_review_paths.py

- name: Validate Localizable.xcstrings catalog structure
if: ${{ matrix.group == 'preflight' }}
run: python3 tests/test_localizable_xcstrings_structure.py
Expand Down Expand Up @@ -335,6 +339,10 @@ jobs:
if: ${{ matrix.group == 'ci' }}
run: python3 tests/test_ci_health_report.py

- name: Validate runner label policy
if: ${{ matrix.group == 'ci' }}
run: python3 tests/test_runner_label_policy.py

- name: Validate the trusted web complexity workflow
if: ${{ matrix.group == 'ci' }}
run: python3 tests/test_web_complexity_trusted_workflow.py
Expand Down Expand Up @@ -469,6 +477,10 @@ jobs:
if: ${{ matrix.group == 'app-host-process' }}
run: python3 tests/test_ci_app_host_failure_census.py

- name: Validate app-host verdict replay
if: ${{ matrix.group == 'app-host-process' }}
run: python3 tests/test_ci_replay_app_host_verdict.py

- name: Validate app-host result ratchet
if: ${{ matrix.group == 'app-host-process' }}
env:
Expand Down Expand Up @@ -545,6 +557,10 @@ jobs:
if: ${{ matrix.group == 'release-ios' }}
run: python3 tests/test_ios_appstore_lane_identity.py

- name: Validate the cmux.app upload marker follows the receipt
if: ${{ matrix.group == 'release-ios' }}
run: python3 tests/test_ios_appstore_upload_marker.py

- name: Validate TestFlight upload argument expansion
if: ${{ matrix.group == 'release-ios' }}
run: python3 tests/test_ios_upload_array_expansion.py
Expand Down Expand Up @@ -703,6 +719,10 @@ jobs:
python3 tests/test_ci_change_areas.py
python3 tests/test_ci_linux_guard_routing.py

- name: Validate fork runner routing
if: ${{ matrix.group == 'ci' }}
run: python3 tests/test_ci_fork_runner_routing.py

- name: Validate evidence collection reporting
if: ${{ matrix.group == 'ci' }}
run: python3 tests/test_ci_evidence_outcomes.py
Expand All @@ -717,6 +737,7 @@ jobs:
python3 tests/test_ci_guard_workflow_structure.py
python3 tests/test_app_host_test_products.py
python3 tests/test_reuse_app_host_products.py
python3 tests/test_e2e_warm_derived_data.py
python3 tests/test_ci_product_publication.py

- name: Validate Python R2 appcast upload guard
Expand Down Expand Up @@ -790,7 +811,7 @@ jobs:
# The lockfile policy compares the candidate with the exact base parent of
# GitHub's synthetic PR/merge-group commit. Depth 2 contains HEAD and that
# parent; the policy does not need the rest of repository history.
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -839,7 +860,7 @@ jobs:
group: [tui-resolution, profiling]
# The two slow CLI contracts are independent; run them beside each other
# and let the reusable-workflow job aggregate their result.
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -874,7 +895,7 @@ jobs:
group: [sidebar-layout, dispatch-ownership]
# These source-policy scans are independent and each dominates wall time;
# run them concurrently and aggregate through the reusable-workflow job.
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 15
permissions:
contents: read
Expand Down Expand Up @@ -918,7 +939,7 @@ jobs:
- workflow-guard-cli-scripts
- workflow-guard-source-lints
if: ${{ always() }}
runs-on: ${{ vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
runs-on: ${{ github.repository_owner != 'manaflow-ai' && 'ubuntu-24.04' || vars.LINUX_RUNNER || 'blacksmith-4vcpu-ubuntu-2404' }}
timeout-minutes: 5
steps:
- name: Check routed guard jobs
Expand Down
Loading
Loading