Skip to content

fix: Normalize generated container names in warm recovery - #981

Merged
Pigbibi merged 1 commit into
mainfrom
fix/warm-recovery-generated-container-name
Nov 6, 2026
Merged

Pigbibi merged 1 commit into
mainfrom
fix/warm-recovery-generated-container-name

Conversation

@Pigbibi

@Pigbibi Pigbibi commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

AI assistance

OpenAI Codex (GPT-6 family) applied and verified the previously reviewed patch. The exact model variant is not exposed in this session. A separate native read-only agent reviewed the identical patch in the preceding job and reported zero material findings; that local review does not constitute a GitHub review of this PR head. An exact-head Codex review is requested separately.

What changed

Allow the warm recovery operator to compare a single unnamed template container with a revision that adds only a nonempty generated container name. Apply this comparison to the verified warm baseline and replacement readbacks. Explicit container names, multiple-container mismatches, and all other fields remain strict. Frozen revision fingerprints still include the full spec and generated name, so subsequent name drift fails verification.

Update the rollout contract and add synthetic regression coverage for warm-only and replacement-only generated names, unrelated configuration drift, explicit names, multiple containers, input preservation, and post-freeze drift with the existing compensation bound.

How verified

  • 58 focused recovery tests passed.
  • 103 related warmup, workflow, and runtime-continuity tests passed.
  • Changed-file and repository Ruff checks passed (repository check excludes external).
  • git diff --check, the offline environment-workflow contract, and python scripts/check_style.py passed. The documentation check reports one existing nonblocking README outline advisory.
  • Applied patch SHA-256: 9a06115fb3ac890773295eaa61db8f7c44591f16728c9c205f4955633ccb5fe9, identical to the independently reviewed local patch. Base: 826c9fbf49f86da4cce8ae424c68b95bdd7fbac8.
  • Host-local evidence: ~/codex-jobs/ibkr-s3-norm-publish-r1/out/{verification.json,recovery.log,related.log,ruff-changed.log,ruff-repository.log,diff-check.log,environment-workflow-contract.log,documentation.log,normalization.patch,prior-independent-review.json}. Original review: ~/codex-jobs/ibkr-s3-recover-warm-r2/out/independent-review.json.
  • Existing local Python 3.12 test environment reused; dependencies unchanged. Full repository pytest and remote CI completion are not claimed by this local validation.

Why

Cloud Run may generate a revision-side name for an unnamed container. Strict template-versus-revision equality therefore rejects an API representation difference before warm recovery can proceed. This warm-only normalization preserves the approved template and frozen snapshots and does not broaden the accepted configuration. See the Cloud Run container name reference.

Risk

High: this changes operator verification in scripts/cloud_run_warm_recovery.py. The change is limited to three files and preserves source/digest/UID/generation/traffic checks, frozen fingerprints, execution controls, and the existing one-compensation limit. No workflow or production configuration is changed.

This PR is an engineering-only Draft under owner instruction t1275u; prior normalization authority: t1271s7339, t1271s7341, t1273s7362. Deployment and recovery remain separate owner steps after code integration and exact operator binding. No recovery workflow was dispatched, private card created, cloud/Secret/IAM/Scheduler/peer/switch modified, or deletion performed. Publication does not establish runtime recovery or production acceptance. Do not mark ready, add owner approval, merge, or deploy as part of this job.

Co-Authored-By: Codex <noreply@openai.com>

Pigbibi commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

Please review the complete three-file change at head 82022427cd5aeb693adf33b03f818bec7d152b32 against base 826c9fbf49f86da4cce8ae424c68b95bdd7fbac8, including the narrow generated-name comparison and strict frozen fingerprints. This is an engineering-only Draft; deployment and recovery remain separate owner steps.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-06T05:09:37.725533Z 8202242 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: 82022427cd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@Pigbibi Pigbibi added the agent-approved An agent cleared this high-risk change on the current head; not an owner confirmation label Nov 6, 2026
@Pigbibi
Pigbibi marked this pull request as ready for review November 6, 2026 05:08
@Pigbibi
Pigbibi merged commit 75006aa into main Nov 6, 2026
16 of 18 checks passed
@Pigbibi
Pigbibi deleted the fix/warm-recovery-generated-container-name branch November 6, 2026 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-approved An agent cleared this high-risk change on the current head; not an owner confirmation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant