Author overrides can give an author longer sessions - #451
Merged
Merged
Conversation
Optional session_minutes (10-240) and session_max_turns (10-300) on an OUTERLOOP_AUTHOR_OVERRIDES entry, for authors on slower self-hosted models. Operator-only: a contract can still lower them. The limits bind at claim into the run record, every session path of the run uses them, and the job walltime follows the session within the operator job cap. Judges are unchanged, and settings without the fields behave as before.
There was a problem hiding this comment.
Round 1 — reviewed head 5f7b033d — reviewer summarizer:hermes/gpt-5.6-terra over coverage+credentials+deployment+general+lifecycle+prose.
terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.
Verdict: nothing blocking — 4 advisory notes.
3 findings attached to the lines below.
Advisory (non-blocking):
- Suggestion: The minutes ceiling test leaves values 241 through 300 untested. [coverage] Both parameter sets use 301 as the invalid value, so an implementation that accepts session_minutes 241 through 300 would still pass despite the documented 240-minute cap. (
tests/test_author_overrides.py:715; high confidence)
Four findings recorded. Rejected: none; the deployment, general, and prose reports about malformed author-limit input were merged because they identify the same bound_limits coercion defect, with the combined finding retaining each distinct consequence.
…ary, document Codex's lack of a turn cap
…-limits # Conflicts: # CHANGELOG.md # tests/test_author_overrides.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Authors on slower self-hosted models can need more time and turns than an API model for the same work, but every author session is capped at the code defaults (90 minutes, 120 turns, in a 120-minute job), and a contract can only lower them.
OUTERLOOP_AUTHOR_OVERRIDESentries (object and list forms) accept optionalsession_minutes(10–240) andsession_max_turns(10–300). Operator-only: a contract can still lower them (effective = the smaller of the two), never raise them. Out-of-range values fail validation.author_limits), so a later settings change does not alter a running run. Every session path of the run uses them: fresh climb from the tick, direct climb (re-clamped against the cloned contract), wakes, author-sleep wakes, review replies and panel revisions.OUTERLOOP_MAX_JOB_MINUTES. At the cap the session is kept and the panel allowance is cut. An explicit--job-minutes 0still turns the self-deadline off.--author-limitsis an argument error.Compatibility: run records gain an optional
author_limitsfield, written only for runs bound to an override that sets the new fields. Legacy records and settings are unchanged (wire-shape testtest_no_override_record_keeps_wire_bytes); no backfill. Older kernels drop the unknown field on load, so a rolled-back kernel runs such a run with the default limits. TheUpgrading:line is in the CHANGELOG.Review: built by Codex (its own gate green). I reviewed it, checking the job ceiling (the 6-hour default cap fits a 240-minute session) and adding the tolerant reader. GLM-5.3 cross-reviewed it: no medium or higher findings; the three low ones (ceilings on stored limits,
--author-limitsvalidation,--job-minutes 0) are fixed here. Gate: pytest, ruff check, ruff format --check, mypy.