Skip to content

Repair shared native test synchronization and CLI fixtures - #13263

Merged
teamleaderleo merged 6 commits into
mainfrom
fix/shared-native-test-fixtures
Sep 22, 2026
Merged

teamleaderleo merged 6 commits into
mainfrom
fix/shared-native-test-fixtures

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Full app-host CI exposed existing fixture failures shared by unrelated PRs. This change repairs the source-proven cases while retaining the behavioral assertions and production code.

  • Sign-in tests wait for the fake flow’s actual startup signal instead of assuming one Task.yield finishes a model task that itself yields. A cancellable AsyncStream/task-group race follows the repository’s 10-second app-host readiness bound and throws if startup never occurs; state, URL and start-count checks remain.

  • Tunnel fixtures expect browser-purpose scoped paths; the role-isolation fixture explicitly selects the stable interface whose legacy paths it checks. Key separation, permissions and config isolation checks remain.

  • VM layout apply exercises --workspace and --name independently, matching their documented mutual exclusion. Document bytes, vm.exec/no-open, result, hint and warning checks remain.

  • Claude clear-session startup expects the canonical structured {} acknowledgment. Pane-targeted clear/status checks remain.

  • Cursor approval explicitly points at its authored config directory, so the isolated runner’s XDG_CONFIG_HOME cannot redirect lookup away from the fixture. Approval, sandbox and persistence checks remain.

  • Notification click-action delivery explicitly makes the app unfocused and restores the previous override. A focused live workspace intentionally suppresses external delivery; both stored and delivered payload assertions remain.

  • Simulator orientation coordinates tolerate 1e-12 rounding from 1 - coordinate, retaining all axes, exact phase/edge and required secondary touch. The naming-agent fixture injects a unique UserDefaults suite while retaining its exact configured-value assertion; runtime confirmation is pending.

Validation: git diff --check passes. No local native build was run; exact-head execution is gated by this PR’s full-ci run. Prior red evidence is preserved in 13230 shard4, 13232 shard3, and 13201 shard4. These are existing tests corrected to wait for observable completion or construct the documented input/environment; no assertions were deleted and no production behavior was changed.

Based on main b093335054fbf2fccad53ece5841799b6ad382f8. Nine existing test files are changed. Current head 173b4cee81a5beff04fbed1a9f629726b5b8d678 requests full validation with the additional simulator-rounding and unique-defaults fixtures. Earlier package/compile successes and runtime failures are predecessor evidence, not current-head proof. The unique-defaults change removes shared-domain coupling but its original runtime interference mechanism has not been independently reproduced. Other full-suite failures remain tracked in #8565 and are not claimed fixed; further verified fixture repairs belong in this PR. The distinct production Grok environment defect is repaired separately in #13271.

Await the fake sign-in flow startup instead of assuming one Task.yield finishes the model task. Match the browser-purpose staging tunnel filename. Production behavior and the remaining assertions are unchanged.
@teamleaderleo teamleaderleo added the full-ci EXPENSIVE: full macOS tests/builds; overrides selective PR routing. Not needed for normal checks. label Sep 20, 2026
@cursor

cursor Bot commented Sep 20, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@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 20, 2026 •

Copy link
Copy Markdown

Review Change StackReview Change Stack

Warning

Review limit reached

Next included review available in 15 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

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

Review profile: ASSERTIVE

Plan: Advanced

Run ID: ced0f56a-15e5-48f1-8a09-0e031298a74b

📥 Commits

Reviewing files that changed from the base of the PR and between 2052326 and 667c35e.

📒 Files selected for processing (2)
  • cmuxTests/CLINotifyProcessIntegrationRegressionTests.swift
  • cmuxTests/WindowTitleTemplateTests.swift

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: 04e153b3-08d1-4c20-ae2b-44dd8b17e63e

📥 Commits

Reviewing files that changed from the base of the PR and between b093335 and 2052326.

📒 Files selected for processing (2)
  • cmuxTests/AccountSignInModelTests.swift
  • cmuxTests/VMTunnelStalenessTests.swift

Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review.


📝 Walkthrough

Walkthrough

The tests now synchronize with fake sign-in startup through checked continuations instead of task yielding. The staging tunnel test now expects the browser-specific configuration filename.

Changes

Sign-in test synchronization

Layer / File(s) Summary
Fake flow startup signal
cmuxTests/AccountSignInModelTests.swift
FakeAccountSignInFlow provides waitForStart() and resumes waiting tests after startup state updates. Sign-in tests use this synchronization point instead of Task.yield().

Tunnel filename assertion

Layer / File(s) Summary
Browser configuration filename
cmuxTests/VMTunnelStalenessTests.swift
The staging configuration assertion expects cmux-staging.browser.conf.

Priority: ⬇️ Low

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

Change: Other

Suggested reviewers: austinywang

🚥 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 11 functions across 2 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 authoritative diff changes only two files under cmuxTests/. It updates test synchronization in AccountSignInModelTests.swift and a staging config filename expectation in `VMTunnelStalene…
Cmux Swift Actor Isolation ✅ Passed PASS: The reviewed range changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The changes add test synchronization and update a test fixture filename. N…
Cmux Swift Blocking Runtime ✅ Passed PASS. The authoritative diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift; no production Swift file changes. The new CheckedContinuation helper…
Cmux Browser Automation Off-Main ✅ Passed PASS: The pull request changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The diff adds a test continuation wait and updates a tunnel fixture filename…
Cmux Expensive Synchronous Load ✅ Passed The authoritative diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The changes add test-fixture continuation signaling and update a test filena…
Cmux Cache Substitution Correctness ✅ Passed PASS. The pull request changes only two files under cmuxTests/: a test continuation fixture and a tunnel filename expectation. The authoritative diff contains no production Swift, TypeScript, or Jav…
Cmux No Hacky Sleeps ✅ Passed PASS: The pull request changes only two Swift test files under cmuxTests/. It introduces no TypeScript, JavaScript, shell, or non-Swift runtime changes. The sign-in change replaces Task.yield() wi…
Cmux Algorithmic Complexity ✅ Passed PASS. The authoritative diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift, both wired into the cmuxTests test target. The only added loop resum…
Cmux Swift Concurrency ✅ Passed PASS. The diff changes only two cmuxTests files and no app/runtime Swift code. It replaces test-only Task.yield() calls with withCheckedContinuation in FakeAccountSignInFlow, which is a Swift …
Cmux Swift @Concurrent ✅ Passed PASS. The diff changes only test fixtures. The new waitForStart() async helper belongs to @MainActor FakeAccountSignInFlow and only suspends on a CheckedContinuation to coordinate UI-bound tes…
Cmux Swift Package Boundaries ✅ Passed PASS. The reviewed diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The changes are test synchronization and a test fixture filename expectatio…
Cmux Swiftpm Lockfiles ✅ Passed PASS: The authoritative PR diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. It changes no Package.swift, Package.resolved, .gitignore, Xc…
Cmux Swift Logging ✅ Passed PASS. The pull request changes only two Swift test files. Added code waits for a fake sign-in fixture and updates a tunnel fixture filename. The added lines contain no print, debugPrint, dump, NSLog, …
Cmux User-Facing Error Privacy ✅ Passed PASS. The reviewed range changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The changes add test synchronization and update a test fixture filename. T…
Cmux Full Internationalization ✅ Passed PASS. The authoritative pull-request diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. These are test fixtures and test expectations. The change…
Cmux Swiftui State Layout ✅ Passed PASS. The authoritative diff changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. Neither file imports SwiftUI or defines a SwiftUI view. The additions …
Cmux Architecture Rethink ✅ Passed PASS. The diff changes only two cmuxTests files and adds no production or shared-runtime Swift code. The CheckedContinuation and startWaiters changes provide test-only synchronization for the fa…
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PASS. The pull request changes only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The diff updates test synchronization and a test fixture filename. It adds n…
Cmux Source Artifacts ✅ Passed PASS. The PR changes only two tracked Swift test files: cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. The changes add deterministic test synchronization and u…
Cmux No Test Or Debug Seam In Production Source ✅ Passed PASS. The authoritative pull-request diff contains only cmuxTests/AccountSignInModelTests.swift and cmuxTests/VMTunnelStalenessTests.swift. No Swift file under a production Sources/ path changed…
Title check ✅ Passed The title clearly identifies the two main change areas: native test synchronization and fixture repairs. It is concise and related to the pull request changes.
Description check ✅ Passed The description provides a detailed summary of the changes and explains the validation performed. It does not include the template's Review Trigger or Checklist sections, and it uses a Validation sect…
✨ Finishing Touches 💡 1
📝 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.

@greptile-apps

greptile-apps Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

The PR appears safe to merge, with no outstanding correctness or repository-rule violations identified.

Summary

Repairs shared native test fixtures without changing production behavior.

  • Replaces sign-in task-yield assumptions with startup-signal synchronization and a cancellable timeout.
  • Aligns CLI, tunnel, notification, Cursor, and VM-layout fixtures with documented runtime behavior.
  • Makes simulator coordinate assertions robust to floating-point subtraction and isolates settings-import defaults.
  • The prior tunnel-path finding is fully addressed in the current code and its thread was manually resolved.

Reviews (5) · Last reviewed commit: "test: isolate naming defaults and tolera..."

Comment thread cmuxTests/VMTunnelStalenessTests.swift
Exercise alternative layout targets independently; retain transport and response assertions. Scope tunnel expectations by browser role and pin the stable interface where asserted. Expect Claude structured hook acknowledgement and bind Cursor approval config to its actual fixture directory.
@teamleaderleo teamleaderleo changed the title Repair shared native sign-in and tunnel test fixtures Repair shared native test synchronization and CLI fixtures Sep 20, 2026
Use the existing app-host AsyncStream/task-group deadline convention. A missing startup throws an explicit test error; cancellation terminates the stream waiter. Preserve same-actor completion ordering.
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Shared full-suite failure evidence from the module/contributor campaign (2026-09-20 UTC):

No checks or assertions were disabled in the owning PRs. They remain blocked until the relevant full-suite evidence is green. Shared repair should land once rather than be copied as unrelated changes into each PR.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Pushed 46c12b3 to make the notification click-action delivery fixture explicitly unfocused and restore its previous focus override afterward. A focused live workspace intentionally suppresses external delivery; this test checks the click-action payload, so ambient host focus must not decide whether its delivery callback runs. Both stored and delivered action assertions remain unchanged.

The predecessor 7f39cc7 passed package tests and compile admission in run 35529349027 before this push; its runtime shards had started. That is partial predecessor evidence, not validation of the new head. No local native build was run. full-ci remains enabled for current-head validation. Shared unexplained runtime failures remain tracked in #8565.

@cursor

cursor Bot commented Sep 20, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo

teamleaderleo commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator Author

Integrated the #86 owner's two-file fixture patch on the existing branch as 173b4cee81a5beff04fbed1a9f629726b5b8d678, based exactly on 46c12b36d44d720f8626627d122299ddee20b233.

  • Simulator orientation expectations now compare all four normalized coordinates within 1e-12. Production geometry uses 1 - coordinate, which can differ from decimal literals in binary representation. Phase and edge remain exact, both axes are checked, and the secondary touch remains required rather than optional/skipped.
  • The auto-naming-agent importer fixture now uses a unique UserDefaults suite injected through the existing store initializer, with domain cleanup. It retains the exact configured codex assertion. This removes shared-standard-domain coupling, but the original interference mechanism was not independently reproduced; this is a source-backed isolation candidate pending app-host execution, not a claimed runtime fix.

Verified the supplied patch SHA-256, exact owning head, initializer/transform source and git diff --check; the contributor receipt records that the Swift parser accepted both files. No new native build or app-host test was run locally. Prior failed samples remain intact. full-ci remains enabled for the new head; predecessor results are not current-head proof. The PR has no unresolved review findings at this update and auto-merge is disabled.

Main landed equivalent fixes for the sign-in start signal, VM layout
target runs, simulator rounding and tunnel naming; take main's versions
and drop duplicate lines the auto-merge produced.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@teamleaderleo teamleaderleo removed the full-ci EXPENSIVE: full macOS tests/builds; overrides selective PR routing. Not needed for normal checks. label Sep 22, 2026
@teamleaderleo
teamleaderleo merged commit fa09041 into main Sep 22, 2026
53 of 62 checks passed
teamleaderleo added a commit that referenced this pull request Sep 22, 2026
macOS concurrency on Blacksmith is roughly ten slots, and a run that can no
longer go green keeps holding them. This is structural: `ci-status` accepts
only `success` or `skipped` from each of its `needs`, so an `app-host unit
tests` shard concluding `failure` fails the `macos` reusable-workflow call and
the required check by construction. Across the 299 CI runs created between
2026-09-22T06:05Z and 17:00Z, 21 runs had such a shard failure, `ci-status`
concluded `failure` in all 21, and their sibling macOS jobs went on to burn
1,522 macOS runner-minutes after the verdict was already fixed.

The janitor gains a second rule for that shape. It stays inside the existing
contract: the scheduled run still only reports, cancellation still requires a
workflow_dispatch with `cleanup`, and both rules share the one `max_actions`
budget, doomed runs first.

The rule names one job rather than reading the whole `needs` list, because
cancelling must reclaim only test shards and never a compile.
`app-host-unit-tests` needs `macos-compile-admission` to have succeeded, so the
compiled app-host product is published and seeded before any shard can fail and
later runs still reuse it. A Linux guard failure decides `ci-status` just as
firmly but lands while the macOS compile is still running, where cancelling
would destroy a product other runs would have reused.

The run repairing the failing job is the exception that matters, because its
remaining shards are the result someone is waiting on. A pull request whose
diff touches the shards' own inputs is never cancelled, and `no-janitor` covers
a fix the path list cannot recognise. Replayed over the 21 real runs, this
preserves every app-host repair among them (#13643, #13579, #13574, #13427,
#13414, #13615, #13263, #13271) and leaves two unrelated runs eligible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Sep 22, 2026
macOS concurrency on Blacksmith is roughly ten slots, and a run that can no
longer go green keeps holding them. This is structural: `ci-status` accepts
only `success` or `skipped` from each of its `needs`, so an `app-host unit
tests` shard concluding `failure` fails the `macos` reusable-workflow call and
the required check by construction. Across the 299 CI runs created between
2026-09-22T06:05Z and 17:00Z, 21 runs had such a shard failure, `ci-status`
concluded `failure` in all 21, and their sibling macOS jobs went on to burn
1,522 macOS runner-minutes after the verdict was already fixed.

The janitor gains a second rule for that shape. It stays inside the existing
contract: the scheduled run still only reports, cancellation still requires a
workflow_dispatch with `cleanup`, and both rules share the one `max_actions`
budget, doomed runs first.

The rule names one job rather than reading the whole `needs` list, because
cancelling must reclaim only test shards and never an in-flight compile.
`app-host-unit-tests` needs `macos-compile-admission` to have succeeded, so the
compiled app-host product is already published before any shard can fail and
there is nothing in flight to lose. A Linux guard failure decides `ci-status`
just as firmly but lands while the macOS compile is still running, so a rule
built on it would be discarding compiles: safe only while cross-run reuse stays
broken (#13709), and destructive when #13718 lands.

The run repairing the failing job is the exception that matters, because its
remaining shards are the result someone is waiting on. A pull request whose
diff touches the shards' own inputs is never cancelled, and `no-janitor` covers
a fix the path list cannot recognise. Replayed over the 21 real runs, this
preserves every app-host repair among them (#13643, #13579, #13574, #13427,
#13414, #13615, #13263, #13271) and leaves two unrelated runs eligible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Sep 22, 2026
macOS concurrency on Blacksmith is roughly ten slots, and a run that can no
longer go green keeps holding them. This is structural: `ci-status` accepts
only `success` or `skipped` from each of its `needs`, so an `app-host unit
tests` shard concluding `failure` fails the `macos` reusable-workflow call and
the required check by construction. Across the 299 CI runs created between
2026-09-22T06:05Z and 17:00Z, 21 runs had such a shard failure, `ci-status`
concluded `failure` in all 21, and their sibling macOS jobs went on to burn
1,522 macOS runner-minutes after the verdict was already fixed.

The janitor gains a second rule for that shape. It stays inside the existing
contract: the scheduled run still only reports, cancellation still requires a
workflow_dispatch with `cleanup`, and both rules share the one `max_actions`
budget, doomed runs first.

The rule names one job rather than reading the whole `needs` list, because
cancelling must reclaim only test shards and never an in-flight compile.
`app-host-unit-tests` needs `macos-compile-admission` to have succeeded, so the
compiled app-host product is already published before any shard can fail and
there is nothing in flight to lose. A Linux guard failure decides `ci-status`
just as firmly but lands while the macOS compile is still running, and since
#13718 fixed cross-run reuse on pull requests those compiles produce products
later runs consume.

The run repairing the failing job is the exception that matters, because its
remaining shards are the result someone is waiting on. A pull request whose
diff touches the shards' own inputs is never cancelled, and `no-janitor` covers
a fix the path list cannot recognise. Replayed over the 21 real runs, this
preserves every app-host repair among them (#13643, #13579, #13574, #13427,
#13414, #13615, #13263, #13271) and leaves two unrelated runs eligible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Sep 22, 2026
`ci-status` accepts only `success` or `skipped` from each of its `needs`, so an
`app-host unit tests` shard concluding `failure` fails the `macos`
reusable-workflow call and the required check by construction; no later job
takes it back. Across the 299 CI runs created between 2026-09-22T06:05Z and
17:00Z, 21 runs had such a shard failure, `ci-status` concluded `failure` in
all 21, and their sibling macOS jobs burned 1,522 macOS runner-minutes after
the verdict was already fixed.

This lands as a fourth category in the queue janitor rather than a second
janitor. Reclaiming macOS pool capacity is that module's charter, and putting
it there means one queue threshold, one priority order, one per-sweep cancel
cap and one concurrency group instead of two workflows with `actions: write`
and no shared bound. The threshold gate is also the right policy on its own
terms: cancelling a doomed run when the pool is idle frees nothing anybody is
waiting for and still destroys the remaining shard output.

The category is ordered last. Categories (a) to (c) cancel runs nobody will
read -- an experiment push, a closed or superseded PR, a replaced full-suite
run. A doomed run is still current and its remaining shards are still readable,
so it is the most debatable of the four and is spent only after the others.

That same difference is why this category needs a fix-branch exclusion the
others do not. A run whose diff touches the shards' own inputs is the run whose
remaining shards someone is waiting on, and is never cancelled; `no-janitor`
covers a fix the path list cannot recognise, and an unreadable diff preserves
the run. Replayed over the 21 real runs, this preserves every app-host repair
among them (#13643, #13579, #13574, #13427, #13414, #13615, #13263, #13271,
and #13408 which was cancelled by hand and had to be restarted) and leaves two
unrelated runs eligible.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
teamleaderleo added a commit that referenced this pull request Sep 22, 2026
…ed (#13724)

`ci-status` accepts only `success` or `skipped` from each of its `needs`, so an
`app-host unit tests` shard concluding `failure` fails the `macos`
reusable-workflow call and the required check by construction; no later job
takes it back. Across the 299 CI runs created between 2026-09-22T06:05Z and
17:00Z, 21 runs had such a shard failure, `ci-status` concluded `failure` in
all 21, and their sibling macOS jobs burned 1,522 macOS runner-minutes after
the verdict was already fixed.

This lands as a fourth category in the queue janitor rather than a second
janitor. Reclaiming macOS pool capacity is that module's charter, and putting
it there means one queue threshold, one priority order, one per-sweep cancel
cap and one concurrency group instead of two workflows with `actions: write`
and no shared bound. The threshold gate is also the right policy on its own
terms: cancelling a doomed run when the pool is idle frees nothing anybody is
waiting for and still destroys the remaining shard output.

The category is ordered last. Categories (a) to (c) cancel runs nobody will
read -- an experiment push, a closed or superseded PR, a replaced full-suite
run. A doomed run is still current and its remaining shards are still readable,
so it is the most debatable of the four and is spent only after the others.

That same difference is why this category needs a fix-branch exclusion the
others do not. A run whose diff touches the shards' own inputs is the run whose
remaining shards someone is waiting on, and is never cancelled; `no-janitor`
covers a fix the path list cannot recognise, and an unreadable diff preserves
the run. Replayed over the 21 real runs, this preserves every app-host repair
among them (#13643, #13579, #13574, #13427, #13414, #13615, #13263, #13271,
and #13408 which was cancelled by hand and had to be restarted) and leaves two
unrelated runs eligible.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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