Docs menu · Incident providers

Incident providers

Choose an incident execution provider and retain the actual selection.

Availability: Source client

The dashboard source adds a Provider selector to the existing investigation and Generate PR actions. Choose Default (Codex), Claude, Cursor or Random. Each action lists the capabilities its runtime and connected organization credentials can support. An unavailable choice explains why it cannot run. This guide describes source support; availability also requires the matching backend and runtime deployment.

Provider and execution location are separate. Claude and Cursor incident adapters currently support the Dancer runtime's host workspace. Cursor Cloud is unavailable for this path while its account and team MCP configuration cannot be disabled by an agent-scoped SDK policy. A connected key alone does not prove that a provider can execute a run.

Claude's host profile supports repository text reads and edits without exposing a shell. It becomes usable only after the runtime's native file-access check passes. Source tests and a connected key are separate from that check.

Random selection

Random selects one eligible provider, uniformly, before dispatch. It does not run a comparison or try another provider after a failure. The stored receipt records candidate IDs, exclusion reasons, algorithm, selection time and the actual provider. Recovery and duplicate delivery reuse that choice.

The dashboard offers Random when an action has at least two usable providers. The source selection API also permits one eligible provider. A caller seed makes selection repeatable; the stored receipt contains its digest rather than the seed. Production entropy stays private.

The private @happycatlabs/core-contracts workspace exports selectExecutionProvider and parseExecutionProviderSelectionReceipt. Run the synthetic experiment from a checkout:

bun packages/core-contracts/examples/provider-selection.ts

It checks stable replay across candidate orderings and varied selection across 200 synthetic seeds. It starts no model and makes no paid requests. The example is source code, not a published standalone SDK release.

Results and authority

The run displays the provider actually selected. A provider result does not approve, merge or deploy a proposal. An uncertain startup or shutdown stays held for reconciliation; lease expiry cannot authorize a second launch. Cursor's local adapter validates its result through a private in-process tool and waits for the provider run to stop before finalization. That tool has no file or external-service access. Prompt customization and additional MCP grants are separate capabilities.

Built from agent-platform at cc6e915.