server: raise per-run timeout cap 1800s -> 7200s

A max-effort whole-book audit pass (skald's prose audit over a
50k+-word story) runs past the old 30-minute ceiling. Raise the
RunRequest/TurnRequest timeout_secs cap to 7200s so the slowest
legitimate pass isn't stranded.
This commit is contained in:
Kayos 2026-05-15 11:54:49 -07:00
parent ae829416d0
commit 54e6732e39

View file

@ -129,11 +129,12 @@ class RunRequest(BaseModel):
# get the budget they deserve.
effort: Literal["low", "medium", "high", "xhigh", "max"] | None = None
files: list[str] | None = None
# Long-form prose-craft at --effort max can run 1020 min wall clock,
# so the per-run cap is 1800s. Server still streams a per-process
# SIGTERM at the boundary; the caller's RunResult.duration_ms is
# honest about wall clock.
timeout_secs: int | None = Field(default=None, ge=5, le=1800)
# Long-form prose-craft at --effort max can run 1020 min wall clock;
# a max-effort whole-book audit pass can run past an hour. The
# per-run cap is 7200s to cover the slowest case. Server still
# streams a per-process SIGTERM at the boundary; the caller's
# RunResult.duration_ms is honest about wall clock.
timeout_secs: int | None = Field(default=None, ge=5, le=7200)
class TokenCreateRequest(BaseModel):
@ -153,7 +154,7 @@ class CreateSessionRequest(BaseModel):
class TurnRequest(BaseModel):
prompt: str = Field(min_length=1)
files: list[str] | None = None
timeout_secs: int | None = Field(default=None, ge=5, le=1800)
timeout_secs: int | None = Field(default=None, ge=5, le=7200)
# ---------- endpoints --------------------------------------------------------