Skip to content

Surface rejected hosted operations#387

Merged
SoundBlaster merged 1 commit into
mainfrom
codex/hosted-managed-execution-rejected-state
Jul 10, 2026
Merged

Surface rejected hosted operations#387
SoundBlaster merged 1 commit into
mainfrom
codex/hosted-managed-execution-rejected-state

Conversation

@SoundBlaster

Copy link
Copy Markdown
Member

Summary

  • Surface a valid hosted queue rejected receipt as a blocked managed operation.
  • Give the operator an explicit next action to inspect rejection and create a replacement request.

Motivation

Goals

  • Keep rejected as non-authoritative transport evidence while preventing a false ready_to_execute projection.
  • Preserve the existing quarantine and failure semantics.

Changes

  • Map hosted rejected to managed-operation blocked.
  • Add regression coverage for transport status and next-safe-action visibility.

Validation

  • Tests added/updated for changed behavior
  • Local checks passed

Commands run:

.venv/bin/python -m pytest -q tests/test_hosted_managed_execution.py
make test
git diff --check

Results:

  • Focused hosted tests: 15 passed.
  • Full backend: 970 passed.

Risks / Notes

  • Backward compatibility impact: rejected requests now fail visibly instead of falling back to artifact-derived readiness.
  • Migration/config changes required: none.
  • Known limitations: queue rejection remains transport evidence; lifecycle recovery still requires a valid replacement request and authoritative Platform reports.

Checklist

  • PR title clearly describes the change
  • Scope is focused and minimal
  • Documentation updated (or N/A)
  • API/artifact/UI-state changes distinguish presence from readiness/status
  • Temporary or intermediate paths are scoped to the current run/task where relevant
  • No secrets or sensitive data added

Copilot AI review requested due to automatic review settings July 10, 2026 12:18

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@SoundBlaster SoundBlaster merged commit 14571e8 into main Jul 10, 2026
8 checks passed

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 74333599e2

ℹ️ 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".

elif hosted_status in {"failed", "timed_out"}:
status = "failed"
elif hosted_status == "quarantined":
elif hosted_status in {"quarantined", "rejected"}:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve failed reports when a request is rejected

When a replacement enqueue is rejected after an operation already has a failed Platform output report, _managed_operation_status_from_reports returns failed, but adding rejected to this transport override rewrites it to blocked. Since hosted transport is still reported as non-lifecycle evidence, this hides the authoritative failed report and changes the recovery guidance away from inspecting that failed report; restrict the rejected override to non-report states such as ready_to_execute or request_needed.

Useful? React with 👍 / 👎.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants