Skip to content

Override validation uses the image the tick runs with - #447

Merged
renmengye merged 4 commits into
mainfrom
fix/override-default-image
Sep 30, 2026
Merged

renmengye merged 4 commits into
mainfrom
fix/override-default-image

Conversation

@renmengye

Copy link
Copy Markdown
Member

Found on a live deployment before it could hurt it. The tick runs sessions with OUTERLOOP_IMAGE, falling back to the default image, but its startup validation of OUTERLOOP_AUTHOR_OVERRIDES used OUTERLOOP_IMAGE falling back to an empty string. On a deployment that leaves OUTERLOOP_IMAGE unset (its codex authors run fine on the default image), adding a codex override made validation fail with "requires --image", and that failure exits the tick through parser.error: a whole-fleet outage. outerloop start had the same mismatch.

What changes

  • tick.startup_image(): the one place that decides the session image (OUTERLOOP_IMAGE, else the default). The service spec and startup validation both use it.
  • outerloop start validates with the same default when the setting is unset.

Compatibility (RELEASING.md)

No persisted state. Deployments that set OUTERLOOP_IMAGE behave exactly as before; deployments that do not can now use codex overrides.

Tests

The production case (codex override, OUTERLOOP_IMAGE unset) validates with the tick's image and fails with the old empty image; a guard that the tick's entry point validates with startup_image() (mutation-checked: reverting the call fails it). Gate: 2755 passed, 10 skipped; ruff, format, mypy clean.

🤖 Generated with Claude Code

…UTERLOOP_IMAGE is unset)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Round 1 — reviewed head 85213199 — 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: 1 blocking, 0 advisory.

1 finding attached to the lines below.

Merged one blocking finding: coverage, credentials, deployment, general, lifecycle, and prose agree that explicit empty image settings make start-time and tick-time override validation disagree. Rejected findings: none; all submitted findings describe the same defect at src/outerloop/cli.py:620.

Comment thread src/outerloop/cli.py Outdated
@renmengye renmengye added the autoresearch:review Request a fresh advisory review of this PR's current state label Sep 30, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Round 1 — reviewed head 85213199 — reviewer hermes/gpt-5.6-terra.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: 1 blocking, 0 advisory.

1 finding attached to the lines below.

The start command accepts a Codex override with the explicit no-image setting, then launches a tick that rejects it.

Comment thread src/outerloop/cli.py Outdated
… empty means none

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@renmengye renmengye added autoresearch:review Request a fresh advisory review of this PR's current state and removed autoresearch:review Request a fresh advisory review of this PR's current state labels Sep 30, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Round 2 — reviewed head 1346a6cb — reviewer hermes/gpt-5.6-terra.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: 1 blocking, 0 advisory.

1 finding attached to the lines below.

Start can validate a different image from the tick when the environment and .env both set OUTERLOOP_IMAGE.

Comment thread src/outerloop/cli.py Outdated
…hen environment, then default

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@renmengye renmengye added autoresearch:review Request a fresh advisory review of this PR's current state and removed autoresearch:review Request a fresh advisory review of this PR's current state labels Sep 30, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Round 3 — reviewed head 47fd7817 — reviewer hermes/gpt-5.6-terra.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: 1 blocking, 0 advisory.

1 finding attached to the lines below.

Local and login starts can validate a different image from the tick they launch.

Comment thread src/outerloop/cli.py Outdated
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@renmengye renmengye added autoresearch:review Request a fresh advisory review of this PR's current state and removed autoresearch:review Request a fresh advisory review of this PR's current state labels Sep 30, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Round 4 — reviewed head 453ccce0 — reviewer hermes/gpt-5.6-terra.

terra
Advisory findings from outerloop — the code owner decides. Reply to disagree; the outerloop:no-review label opts this PR out.

Verdict: no defects found.

@renmengye
renmengye merged commit e86eeb4 into main Sep 30, 2026
5 checks passed
@renmengye
renmengye deleted the fix/override-default-image branch September 30, 2026 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autoresearch:review Request a fresh advisory review of this PR's current state

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant