Skip to content

[Bug]: Native Codex goal continues while coordinator awaits app-owned child terminal delivery #16942

Closed

Description

@grasdal

Before submitting

  • I searched existing issues and did not find this T3 integration case.
  • I included a minimal reproduction and explicit investigation limits.

Area

apps/server, Codex provider and app-owned delegated-task delivery integration

Problem

An active native Codex goal starts another coordinator turn while the coordinator is waiting exclusively for an app-owned review child. Ending the current turn and explicitly selecting automatic terminal delivery does not suppress goal auto-continuation. This produces unsolicited model turns before a review result exists.

Steps to reproduce

  1. In T3 Code with the Codex provider, keep a legitimate incomplete goal active.
  2. Dispatch one asynchronous app-owned review with delegate_task and retain its taskId.
  3. While the review is pending, direct the coordinator to end its active wait loop and rely only on automatic terminal child delivery. It must preserve the active goal, child work and existing resource custody.
  4. Let the coordinator end its turn without polling or sleeping.
  5. Observe that native goal auto-continuation starts another coordinator turn before the child publishes a terminal result.

This was reported in a deployed app coordinator on 2026-10-07. A retained workboard explicitly selected automatic terminal delivery only. The observer reported the unexpected continuation. This filing did not rerun the workflow, inspect the review child, or reproduce it in a clean public-source checkout. Exact emitting component and source revision remain unknown.

Expected behavior

Expose a supported event-driven wait control, or document the existing control if one exists, that suppresses unsolicited native goal continuation while preserving the goal objective and active lifecycle. The app-owned child terminal event must still resume the rightful parent once.

Actual behavior

Chat-level end-of-turn instructions stop polling intent but not native goal scheduling. The current callable tool catalog has no documented goal wait or continuation-inhibition operation. Native update_goal permits complete, blocked and explicitly requested paused states, none of which honestly describes this pending review wait. T3 thread configuration controls provider/model selection and modes, not goal scheduling.

Impact

Major degradation for delegated orchestration: unnecessary model turns and repeated wait messages, with possible duplicate observation or dispatch. No measured token-cost claim is made here.

Version or commit

Installed T3 serverVersion reported by t3_environment_read: 0.0.46-nightly.20261007.2761. Installed source revision and Codex binary/app-server version were not authenticated in this bounded investigation.

Environment

macOS arm64, T3 app-owned orchestration, Codex provider. Account, machine identity, project paths and child/task identifiers intentionally omitted.

Evidence and ownership boundary

  • Live orchestrator_capabilities reports appOwnedSubagents, threadManagement and incrementalThreadRead.
  • Public task_status contract establishes automatic completion delivery and terminal-result acknowledgement.
  • t3_thread_configuration/configure and environment preference schemas expose no waiting-goal control.
  • Native goal waiting support is already requested upstream: Add wait/wake support for goals without spending tokens openai/codex#28144 . This issue concerns T3's integration with that native scheduler and its own delegated-child wake path, not a second generic upstream request.
  • Existing T3 issues 16610 and 16611 concern Claude background subagent/completion state and are adjacent, not this native Codex continuation case.

Please triage the actual emitting scheduler and ownership boundary. If suppression requires the native Codex app-server, retain this T3 integration acceptance and link the upstream dependency rather than offering pause, complete or blocked as equivalent behavior.

Acceptance tests

  1. A parent with an active incomplete goal and one pending child enters the supported event wait. No model turn or provider dispatch occurs while the registered child remains nonterminal.
  2. The actual terminal child event starts exactly one parent continuation, with the actual result available.
  3. Replayed terminal events, acknowledgement, reconnect and process restart do not duplicate the continuation or child dispatch.
  4. The same goal objective and active lifecycle survive the wait; no false paused, complete or blocked transition is required.
  5. Child work, claims, provider selection, resource custody and permissions remain unchanged. No cancellation or interruption occurs.
  6. A terminal event racing with wait registration is not lost, and an explicit human message can still reach the parent normally.
  7. The supported operation and its task/goal scope, persistence, wake and idempotency contracts are documented and tested through the normal callable route.

Workaround

No supported workaround was verified that satisfies all constraints. Do not disable review, cancel children, spoof goal status or alter unmanaged runtime/configuration state.

Activity

  1. locked and limited conversation to collaborators on Oct 22, 2026
  2. converted this issue into a discussion #23292 on Oct 22, 2026
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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions