Limits and timeouts
Values set by configuration show their default and name the setting. Field lengths and formats are on each resource's own page.
Runs
See Runs.
| Item | Value |
|---|---|
| Run lease | 60 seconds |
| Lease renewal by the runner | every 2 seconds |
| Lease renewal by the host while a sandbox starts | every 20 seconds |
| Attempts when the runner is lost | 3 in all |
| Attempts while hooks go unanswered | 6 in all, 5 seconds to 2 minutes apart |
| Run wall clock on a host | SPOTLIGHT_RUN_TIMEOUT, default 6 hours; the run fails timed-out and is tried again, 3 attempts in all, counted with lost runners |
| Stop grace after the wall clock | 30 seconds |
| Messages a person sends, checked for | every 2 seconds |
Hosts
See Host settings.
| Item | Value |
|---|---|
| Presence report | every 20 seconds |
| Shown as answering | a report within the last 90 seconds |
| Remembered after the last report | 24 hours |
| Requirements refresh | every minute |
| Claim long poll | 10 seconds |
| Retry after a failed report or claim | about 2 seconds, doubling to about 30 seconds |
| Sandboxes at once | SPOTLIGHT_CAPACITY, default 1 |
Pools
| Item | Value |
|---|---|
| Push pool provision call timeout | 10 seconds |
| Provision attempts | 5 in all, 5 seconds to 2 minutes apart |
| Time for a provisioned runner to claim | 5 minutes |
| Time a provisioned runner waits for its work | 5 minutes |
maxRuns | 1 to 10,000, or no limit |
Sandboxes
See Inside a sandbox.
| Item | Value |
|---|---|
| Sandbox start | 5 minutes |
| Image inspection | 2 minutes |
| Harness discovery command | 15 seconds each |
| Wait for a repository mirror | 15 seconds |
| One mirror refresh, at most | 30 minutes |
| Checkouts | 10 minutes for all |
setup per checkout | 15 minutes |
| Change stack check | 5 minutes a step, 60 minutes in all; see Checks |
Egress
See Egress.
| Item | Value |
|---|---|
| Wait for egress to be ready | 90 seconds |
| Redeeming the run's secrets | 1 minute |
| Certificate authority lifetime | 48 hours |
| Upstream connection | 30 seconds |
| Upstream TLS handshake | 15 seconds |
| Shutdown grace | 5 seconds |
Workspace archives
See Inside a sandbox.
| Item | Value |
|---|---|
| Packed size | 2 GiB |
| Unpacked size | 8 GiB |
| Upload or download | 30 minutes |
| Kept after its task finishes, or its chat stops carrying the conversation | 7 days |
| Kept after a newer archive replaces it | 1 hour |
| Kept after its task or chat is deleted | none; removed within a minute, even when a run started from it or a replay set pins it |
| Kept after a run that started from it started | 30 days |
| Kept while a run that started from it is in a replay set | until the run leaves the set, the set is deleted, or its station leaves the line |
| An archive never sealed, kept | 24 hours |
An archive a run started from, or one pinned by a replay set, is kept for that time even when its task has finished or a newer archive has replaced it.
Replays
See Replays.
| Item | Value |
|---|---|
| Runs in a replay set | 50 |
| Replay set name, candidate name | 1 to 100 characters |
| Runs offered to add to a set | the station's latest 50 ended task runs |
| Replay runs of a team queued or running at once, not counting a search's | 2 |
| Ceiling | above 0, at most 1,000, in a three-letter currency |
| Copies of each run in a replay (repeats) | 1 to 5, default 1 |
| Resamples behind a 95% interval | 2,000 |
| Tasks scored on both sides before a gain can read better or worse | 5 |
min_gain | above 0, at most 1, default 0.05 |
| Copies of each run when a baseline checks a set | at least 3 |
| Fewest runs in a set a baseline checks | 5 |
| Live config success above which a set has almost no room to improve | 95% |
| Judge agreement below which its verdicts read as partly chance | 80% |
| Copies of each run in a replay with the answer (repeats) | those of the live replay that started it |
| Attempts to queue a replay run | 10 |
spotlight replay watch interval | default 15 seconds, at least 1 second |
| Replays read for Candidates on the Insights Stations tab | the newest 500 started in the period; see Replayed candidates API |
Searches
See Searches.
| Item | Value |
|---|---|
| Tasks a set must cover | at least 5: at least 2 held out and at least 3 searched |
| Share of tasks held out | 30%, rounded up |
| Iterations | 1 to 10 |
| Candidates per iteration | 1 to 5 |
| Proposals an iteration may try, refused ones included | 3 times its candidates |
| Replay runs of a search queued or running at once | 1 to 10, default 4, apart from the team's 2 |
| Copies of each run in its replays (repeats) | 1 to 5, default 1 |
| Searches of a station under way at once | 1 |
| Ceiling | above 0, at most 1,000, in a three-letter currency |
| Share of the ceiling for the agent's runs | a tenth |
| Least a replay run may be given | 0.01 of the ceiling's currency |
| Hypothesis | 1 to 4,000 characters |
| Iterations left for a stalled search to look into why | at least 2 |
| A task a reflection looks into | the best config's success on it below one half |
| A cause's evidence | 1 to 4,000 characters |
| A cause's suggestion | at most 4,000 characters |
| Points in a search's notice | at most 20, of at most 1,000 characters each |
| A settled notice shown in the inbox | 30 days after it was settled |
| Candidate name | a slug of lowercase letters, digits and hyphens, at most 63 characters |
| An agent run no runner takes | withdrawn after 60 minutes |
| An agent run's spend not known | counted as unpriced 15 minutes after it ended |
| Tries to open a config pull request | 5: the first, then again after 30 seconds, 2, 8 and 32 minutes |
Replay checks
See Replay checks API.
| Item | Value |
|---|---|
| Sets guarding a station's changes | at most 1 |
mostRegressions | 0 or more, default 0 |
minGain | above 0, at most 1, default 0.05 |
| Copies of each run in a check (repeats) | 1 to 5, default 1 |
| Ceiling, each replay a check starts | above 0, at most 1,000, default 10 USD |
| Replays a check starts | 1, or 2 when the set has no baseline of the live config |
| Planned repositories sent with a check | at most 64,000 characters |
spotlight replay check wait | default 60 minutes |
spotlight replay check interval | default 15 seconds, at least 1 second |
Failed tries in a row before spotlight replay check gives up | 5 |
Change stacks and decisions
See Change stacks and decisions.
| Item | Value |
|---|---|
| Diff | 6 MiB, 2,000 changes |
| Drafting attempts | 4 in all, 30 minutes each, 30 seconds apart and doubling |
| Waiting for a runner to check | 60 minutes |
| Check output kept | 16,000 characters a step |
Memory
See Memory and Agent commands.
| Item | Value |
|---|---|
| A memory | 1 to 1,000 characters |
| Reason for retiring a memory | 1 to 500 characters |
| A path a memory bears on | 1 to 500 characters, within its repository |
| Paths a memory bears on | at most 20 |
| Steps and notes a memory rests on | at most 20 steps and 20 notes |
| Words a recall looks for | 1 to 500 characters |
| Memories a recall prints | at most 10 |
| Memories in a run's briefing | at most 8, and 3,000 characters together; see Briefing |
| Memories listed on each tab of the Memory page | the newest 500 |
| Drafting attempts | 4 in all, 30 seconds apart and doubling to 10 minutes; after an unreadable failure, 3 in all, doubling to 5 minutes; after no-evidence or interrupted, 1 |
| Drafts at once | 4 on each control plane server |
| Rejected memories shown to the drafter | the 20 newest from the last 90 days that apply where the run ran |
Agent commands
See Agent commands.
| Item | Value |
|---|---|
| Request timeout | 2 minutes |
| Tool input | 8 MiB |
API descriptions
See API descriptions.
| Item | Value |
|---|---|
| Description size | 64 MB |
| Fetching a description | 30 seconds, redirects included |
| Reading its operations once fetched | 30 seconds, waiting for a turn included |
| Descriptions read at once | 2 on each control plane server |
| Tools generated per integration | 1,000, counted after include and exclude |
| OpenAPI schema depth followed | 8 levels |
| GraphQL input object depth followed | 3 levels |
| Schema nodes read for one operation's inputs | 4,000 |
| Generated tool answer | 4 MB |
| Redirects a request follows | 5 |
GraphQL selection depth | 1 to 5, default 2 |
| Generated tool description | 1,000 characters |
| Descriptions read | OpenAPI 3.0 and 3.1, in JSON or YAML, and GraphQL; not Swagger 2 |
$refs followed | only those inside the description |
MCP servers
See MCP servers.
| Item | Value |
|---|---|
| Listing the tools again | every 600 seconds, set by MCP_RELIST_SECONDS, checked every minute |
| Pages of tools read in one listing | 50 |
| Each MCP request, listing or call | 60 seconds |
| Tool answer | 4 MB |
| Tools offered per integration | 1,000, counted after include and exclude |
| Tool description | 1,000 characters |
| Calls one session carries at once | 1 |
| Session left unused | closed after 5 minutes |
| Calls again after the server forgets a session | 1 |
| Discovery requests | 15 seconds each |
| What discovery found | kept 10 minutes on each control plane server |
| Transport | streamable HTTP |
Hooks
See spotlight_hook.
| Item | Value |
|---|---|
| Request timeout | timeoutSeconds, default 10, 1 to 30 |
| Callback token lifetime | 15 minutes |
| Response body kept | 16 KiB |
| Delivery attempts | 8 in all, 2 seconds to 1 hour apart |
| Causal chain depth | 8 |
| Firings for the same change | 3 within 10 minutes |
Tokens and trusts
See Workspace tokens and spotlight_workspace_token_trust.
| Item | Value |
|---|---|
| Workspace token lifetime | until expiresAt, or no expiry |
| Token from a workspace token trust | lifetimeMinutes, default 15, 1 to 60 |
Resource API
See Resource API.
| Item | Value |
|---|---|
Idempotency-Key kept | 24 hours |
Idempotency-Key length | at most 255 characters |
Other
| Item | Value |
|---|---|
| Attachment size per file | 25 MiB; see Attachments |
| Invite lifetime | 14 days from when it was last sent; see Invites |
| Addresses per invite request | 1 to 50; see Invites |