Merge current master lifecycle and CI fixes into Claude behavior

Co-Authored-By: Paperclip <noreply@paperclip.ing>

* codex/claude-runner-protocol:
  fix(grok): avoid routine wakes for proactive admission (#16422)
  feat(ci): profile full CODEOWNER PR suites in Honeycomb (#16378)
  test: bound command snapshot forwarding checks (#16421)
  fix(agents): report actionable lifecycle failure steps (#16418)
This commit is contained in:
DottaandPaperclip committed 2026-10-15 07:23:22 -05:00
commit bd3ceab2b2
50 files changed
+1630 -60

No files matched your search

@@ -34,7 +34,9 @@ it("retries a failed step once while pending and removes the failure after recov
try {
await act(async () => root.render(<AgentLifecycleStatus agent={agent} onRetry={retry} retryPending={false} />));
expect(container.textContent).toContain(agent.lifecycleError);
expect(container.textContent).toContain("Termination is not complete");
expect(container.textContent).toContain("Agent cleanup failed");
expect(container.textContent).toContain("Paperclip retries automatically");
expect(container.textContent).not.toContain("Required resources are being removed");
await act(async () => container.querySelector("button")!.click());
expect(retry).toHaveBeenCalledOnce();
await act(async () => root.render(<AgentLifecycleStatus agent={agent} onRetry={retry} retryPending />));
+10 -3
View File
@@ -15,6 +15,12 @@ const phases = {
cleaning_up: ["Cleaning up agent", "Required resources are being removed. Termination is not complete."],
} satisfies Partial<Record<AgentLifecycleState, [string, string]>>;
const failedPhases = {
preparing: "Agent preparation failed", verifying: "Agent verification failed",
pausing: "Agent pause failed", resuming: "Agent resume failed",
terminating: "Agent termination failed", cleaning_up: "Agent cleanup failed",
};
function pendingPhase(state?: AgentLifecycleState) {
return state && state in phases ? phases[state as keyof typeof phases] : undefined;
}
@@ -48,15 +54,16 @@ export function AgentLifecycleStatus({ agent, onRetry, retryPending, refreshErro
{phase && <div className="flex flex-wrap items-center gap-2">
<Badge variant={agent.lifecycleError ? "destructive" : "secondary"}>
{!agent.lifecycleError && <Loader2 aria-hidden="true" className="mr-1 size-3 animate-spin motion-reduce:animate-none" />}
{phase[0]}
{agent.lifecycleError ? failedPhases[agent.lifecycleState as keyof typeof failedPhases] : phase[0]}
</Badge>
<span className="text-muted-foreground">{phase[1]}</span>
{!agent.lifecycleError && <span className="text-muted-foreground">{phase[1]}</span>}
</div>}
{phase && agent.lifecycleError && <div className="flex flex-wrap items-center gap-2 text-destructive">
<span>{agent.lifecycleError}</span>
<Button variant="outline" size="sm" disabled={retryPending} onClick={onRetry}>
{retryPending ? "Retrying…" : "Retry"}
{retryPending ? "Retrying…" : "Retry now"}
</Button>
</div>}
{phase && agent.lifecycleError && <p className="text-muted-foreground">Paperclip retries automatically; Retry now checks again immediately.</p>}
</div>;
}