Skip to content

resume_delegation can lose the original task and custom target defaults after immediate cancellation #639

Description

@rubybrowncoat

Environment

  • Codeg: 0.30.0
  • OS: Windows
  • Parent: Codex, gpt-5.6-sol, High
  • Target: custom:stars-codex-luna-low
  • Custom Codex ACP: 1.7.0
  • Saved target defaults: gpt-5.6-luna, Low
  • Delegation depth: 2
  • Verified with Codex custom agents, might affect all delegated custom agents

Reproduction

  1. From a Sol High parent, call delegate_to_agent with agent_type custom:stars-codex-luna-low.
  2. Immediately after acceptance, call cancel_delegation for that task ID.
  3. Confirm the task reaches canceled.
  4. Call resume_delegation with the same task ID and no changed task text.
  5. Allow the resumed child to complete.
  6. Inspect the resumed Codex session’s turn_context.

Expected

The same child session resumes using the original custom target and its saved defaults: gpt-5.6-luna, Low.
The resumed delegation rereads the original task and continues.

Actual

The resumed session did not contain the original delegated task. It started as gpt-5.6-sol / high rather than the recorded custom Luna Low target, then made 17 tool-wrapper calls (including 14 filesystem/command inspections) to search local Codex session logs for the missing task text.

It ultimately found the original instruction in another session log and reconstructed the requested output from that external evidence.

This means resume_delegation preserved the task ID and conversation row but did not preserve the original execution context or target defaults. It also expanded capability: a task explicitly constrained to zero tools resumed with tool access and used it freely.

The trigger may be cancellation before the original child’s first turn was persisted, but that causal explanation is not yet proven.

Database metadata:
agent_type = custom:stars-codex-luna-low

Resumed Codex turn_context:
model = gpt-5.6-sol
effort = high

Control observations:

  • A fresh custom:stars-codex-luna-low children used gpt-5.6-luna / low correctly.
  • A fresh custom:stars-codex-sol-medium child used gpt-5.6-sol / medium correctly.

The cancellation happened before the original child produced its first turn. This may expose a race where resume loads the session before the custom target defaults were established or reapplied.

Lifecycle behavior otherwise worked: cancellation completed, resume retained the same conversation ID and the worker settled.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions