Skip to content

fix(operator): bound autonomous task convergence - #59

Closed
urbanplanningpros wants to merge 3 commits into
devfrom
fix/operator-task-convergence-35892
Closed

fix(operator): bound autonomous task convergence#59
urbanplanningpros wants to merge 3 commits into
devfrom
fix/operator-task-convergence-35892

Conversation

@urbanplanningpros

Copy link
Copy Markdown
Owner

Issue for this PR

Tracks the long-running task non-convergence failure reported in upstream openai/codex#35892 on July 29, 2026.

The report describes a finite coding task repeatedly expanding into new tasks, subagent lanes, review cycles, and verification gates over approximately three days instead of reducing one evidence-backed critical path. Local repository issues are disabled, so the upstream report is the compatibility reference.

Type of change

  • Bug fix / automation continuity guard
  • New feature
  • Refactor / code improvement
  • Documentation through executable policy

What does this PR do?

Adds a provider-neutral convergence admission guard that:

  • binds execution to an immutable completion-criteria SHA-256;
  • enforces maximum elapsed time, correction-cycle, and consecutive non-reduction limits;
  • detects unjustified work expansion;
  • preserves the existing single-agent boundary on authoritative routes;
  • rejects completion-criteria drift without a new authorized task manifest;
  • requires reconciliation of uncertain external writes before replay or publication;
  • requires a terminal snapshot when a limit or operator stop is reached;
  • verifies the task-owned diff manifest, clean snapshot state, immutable commit SHA and draft PR when repository writes are authorized;
  • requires continuation state outside model memory;
  • ends the current task after the terminal snapshot instead of starting another review or QA cycle;
  • preserves direct OpenAI and explicitly authorized local continuity routes without adding a provider, gateway, automatic selector, Bedrock, Vertex, or Copilot dependency.

Run:

node scripts/operator/codex-task-convergence-guard.mjs \
  --input /approved/task/convergence-evidence.json \
  --json

Exit behavior:

0   task remains bounded, or a terminal snapshot is verified
75  convergence limit reached; terminal snapshot required
64  policy, routing, state, provenance or write-reconciliation failure
2   malformed evidence

How did you verify the code?

The deterministic self-test covers:

  • a healthy reducing task;
  • correction-cycle exhaustion;
  • an operator-requested stop with a verified commit and draft PR snapshot;
  • completion-criteria drift;
  • forbidden subagent enablement;
  • unreconciled uncertain writes;
  • prohibited gateway or automatic-selection identifiers.

Remote repository CI and one disposable bounded long-running task canary remain required before promotion.

Screenshots / recordings

Not applicable; this is a non-UI automation guard.

Checklist

  • No excluded provider, gateway, automatic selector, Bedrock, Vertex, or Copilot route was introduced
  • No production secret, connector credential, or customer data was added
  • Business-critical work continues through direct OpenAI or the explicitly authorized local route

Sanitized-Manifest: codex-task-convergence-2026-07-29
Allowed-Paths: scripts/operator/codex-task-convergence-guard.mjs, scripts/operator/codex-task-convergence-guard-selftest.mjs, docs/operator/codex-task-convergence.md

@github-actions

Copy link
Copy Markdown

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions

Copy link
Copy Markdown

Thanks for your contribution!

This PR doesn't have a linked issue. All PRs must reference an existing issue.

Please:

  1. Open an issue describing the bug/feature (if one doesn't exist)
  2. Add Fixes #<number> or Closes #<number> to this PR description

See CONTRIBUTING.md for details.

@github-actions

Copy link
Copy Markdown

This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.

Feel free to open a new pull request that follows our guidelines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant