Make control-plane and repair waits deterministic - #193
Conversation
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Hooray! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Purpose
CI runs 33609497643 and 33696791792 exposed scheduler-dependent control-plane tests on the macOS 26 runner.
The second failure confirmed that the prewarm test registered two independent refresh tasks: initialization already schedules the configured prewarm, and the test scheduled it again. A delayed duplicate could enter after the first load timed out and legitimately create a second load. The same path also allowed an already-expired request to start a load before its observer was rejected.
Make load creation reject expired work, and make the timeout and promotion tests advance only through explicit actor-owned state transitions.
Changes
ControlPlaneCoordinatorload identity, waiter membership, and cancellation handle.loadID/ waiter transitions rather than upstream message counts or cancellation delivery order.Review focus
ControlPlane.DebugMirroronly as an event barrier, then inspect the actor-owned load identity and waiter set as the source of truth.L1 -> L2, sharing preservesL2, and cancellation removes waiters as2 -> 1 -> 0without depending on executor speed.Testing
XcodeMCPProcessRuntimeTests: 24 tests passedProxyStdioAdapterTests: 13 tests passedRuntimeCoordinatorRecoveryTests|RuntimeCoordinatorWindowRoutingTests: 95 tests passed./scripts/verify-proxy-target-boundaries.shgit diff --checkmain: clean, 0 findings