Skip to content

harness: a field under either spelling, and the runtime defaults shown as what they are - #212

Merged
richard-epsilla merged 3 commits into
mainfrom
runtime-limits-and-199
Sep 18, 2026
Merged

richard-epsilla merged 3 commits into
mainfrom
runtime-limits-and-199

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Fixes #199. A client that mirrored the shape GET returns sent defaultModel; the server stored nothing and answered 200 with "defaultModel": "", so every task had to carry a model, and the conformance suite waited out its timeout per task. The schema names the create shape in snake_case and the object in camelCase; a field the server understands under one spelling is not an unknown field under the other. HarnessBody now takes both, and the suite, given a harness with no default model and no --model, says so and stops before the first task.

The runtime limits: a customer's task ran away and drained their credits, and when they looked for the limit the settings page showed a grey placeholder. The step default gets one home beside the timeout's (DEFAULT_MAX_STEP, 400), /v1/bases serves both as runtimeDefaults, and the console shows them as the fields' values with the sentence "Empty means the default, N": the number a person sees is the number that will stop the task, from the server that enforces it. A per-task cost limit is the hosted service's to add; this is the part every instance can have.

Verified on the Azure test VM on top of 0.18.2: the issue's exact request stores codex-tools; /v1/bases answers runtimeDefaults: {maxStep: 400, timeoutSeconds: 7200}; the suite stops with the sentence on a harness with no default model; the settings page shows 400 and 120 in the fields with the sentences under them at 1440 and 390 with no sideways scroll. Gateway 336, conformance 79, console type-check clean.

🤖 Generated with Claude Code

…n as what they are

Issue #199: a client that mirrored the shape GET returns sent
`defaultModel`; the server stored nothing and answered 200 with
`"defaultModel": ""`, so every task had to carry a model, and the
conformance suite waited out its timeout per task, half an hour to
say nothing. The schema names the create shape in snake_case and the
object in camelCase; a field the server understands under one is not
an unknown field under the other. HarnessBody now takes both, and the
suite, given a harness with no default model and no --model, says so
and stops before the first task.

The runtime limits: a customer's task ran away and drained their
credits, and when they looked for the limit the settings page showed a
grey placeholder. The step default gets one home beside the timeout's
(DEFAULT_MAX_STEP, 400), /v1/bases serves both as runtimeDefaults, and
the console shows them as the fields' values with the sentence "Empty
means the default, N": the number a person sees is the number that
will stop the task, from the server that enforces it. A per-task cost
limit is the hosted service's to add; this is the part every instance
can have.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
unified-harness-protocol Ready Ready Preview Sep 18, 2026 7:25am UTC

Request Review

@richard-epsilla richard-epsilla left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. Verified on the Azure test VM on top of 0.18.2: the issue's exact request stores the model, the bases document serves the defaults, the suite stops with the sentence on a harness with no default model, and the settings page shows 400 and 120 with the sentences at 1440 and 390.

@richard-epsilla
richard-epsilla merged commit 0fcd90b into main Sep 18, 2026
8 checks passed
@richard-epsilla
richard-epsilla deleted the runtime-limits-and-199 branch September 18, 2026 07:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

POST /v1/harnesses silently drops defaultModel (returns ""), so every task must carry model — and the conformance suite hangs without --model

1 participant