Uh oh!
There was an error while loading. Please reload this page.
fix(fleet): keep adjacent dispatches reusable - #470
Conversation
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 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. Comment |
@coderabbitai review Requested for exact head |
Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596 Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596
Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596
be58cbd to
0b6df4eCompare@coderabbitai review Requested for exact head |
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596
kjgbot
commented
Sep 4, 2026
Addressed all four Cubic findings on head
Final focused suites: 112 passed; |
@coderabbitai review Requested for exact head |
There was a problem hiding this comment.
1 issue found across 4 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/fleet/control-plane-circuit.ts">
<violation number="1" location="src/fleet/control-plane-circuit.ts:221">
P2: When `resetTimeoutMs` is shorter than `rosterTimeoutMs`, a half-open mutation can join the stale pre-open probe instead of starting recovery. That probe rejects after the generation changes, so the mutation fails and no recovery roster probe runs. Make `probe()` ignore an in-flight request from an older open generation when starting half-open recovery.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| // half-open must run the recovery probe even if older evidence exists. | ||
| const admissionState = circuit.status().state | ||
| if (admissionState === 'open') circuit.assertMutationAllowed() | ||
| if (admissionState === 'half-open' || !hasFreshAdmissionEvidence()) await probeRoster(true) |
There was a problem hiding this comment.
P2: When resetTimeoutMs is shorter than rosterTimeoutMs, a half-open mutation can join the stale pre-open probe instead of starting recovery. That probe rejects after the generation changes, so the mutation fails and no recovery roster probe runs. Make probe() ignore an in-flight request from an older open generation when starting half-open recovery.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/fleet/control-plane-circuit.ts, line 221:
<comment>When `resetTimeoutMs` is shorter than `rosterTimeoutMs`, a half-open mutation can join the stale pre-open probe instead of starting recovery. That probe rejects after the generation changes, so the mutation fails and no recovery roster probe runs. Make `probe()` ignore an in-flight request from an older open generation when starting half-open recovery.</comment>
<file context>
@@ -204,9 +214,11 @@ export function guardFleetControlPlane(
+ // half-open must run the recovery probe even if older evidence exists.
+ const admissionState = circuit.status().state
+ if (admissionState === 'open') circuit.assertMutationAllowed()
+ if (admissionState === 'half-open' || !hasFreshAdmissionEvidence()) await probeRoster(true)
circuit.assertMutationAllowed()
try {
</file context>
Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596
kjgbot
commented
Sep 4, 2026
Addressed Cubic’s follow-up P2 on head |
@coderabbitai review Requested for exact head |
There was a problem hiding this comment.
All reported issues were addressed across 2 files (changes from recent commits).
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
Uh oh!
There was an error while loading. Please reload this page.
Session-Id: 01a06e0f-f7a1-7902-b058-9129b9679596
@coderabbitai review Requested for exact head |
kjgbot
commented
Sep 4, 2026
Addressed Cubic’s latest P2 on exact head |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Why
A full fleet inventory can exceed the five-second admission boundary in a workspace with substantial historical node data. Repeating it between sequential implementer and reviewer placements can strand a half-created team. Separately, releasing only the runtime retains its create-only identity, so retrying the deterministic name collides.
The release metadata is included here so these required fixes can be deployed without merging the older release-only PR #460. Publication remains exclusively through the repository publish workflow and the next dist-tag.
Validation
d780d09)The complete local suite used an existing dependency tree because no install was performed: 2,468 tests passed; nine unrelated tests failed because that tree lacks the built dist artifacts and has an incompatible persona-kit export. Clean-runner CI is the merge gate.