App tool schemas omit list_threads/read_thread maxima, causing deterministic retries
Version
Codex Desktop 26.818.41509, bundled command runner 0.149.0-alpha.4.1, Windows.
Problem
The app-hosted tool schemas expose numeric pagination parameters without machine-readable maxima:
list_threads.limit?: numberread_thread.turnLimit?: number
The descriptions say only "Maximum number..." but do not state the actual limits. The server then rejects:
list_threads({limit: 100}): maximum is 50read_thread({turnLimit: 20, ...}): maximum is 10
An agent auditing task history has no schema signal that these otherwise reasonable values are invalid, so it spends a failed tool call and another model turn discovering each hidden contract.
Expected behavior
Publish the server constraints in the generated JSON Schema and prose:
list_threads.limit.maximum = 50read_thread.turnLimit.maximum = 10
Include defaults/minima where applicable, and keep host validation and callable schema generated from the same source so they cannot drift.
Why this matters
These are deterministic, preventable failures. Complete schemas let the client/model choose a valid request on the first attempt and avoid retry-token amplification. No private task data or local paths are needed to reproduce.