Skip to content

Expose completed replies and message phases to non-AIR clients #637

Open

Description

@xuanda0201

Summary

Codex reports whether an agent message is commentary or final_answer, and sends its complete text in item/completed. Ordinary ACP clients do not have a documented, client-independent completion event carrying that information. The current phase metadata is AIR-specific.

Why it matters

Our client runs Codex through ACPX. A task can produce progress messages such as "I will check the files" before its final reply. We need to keep progress separate from the final reply and know when each message is complete.

Text chunks alone do not provide that completion signal. Some providers can also return a completed message without sending text deltas, leaving the client with no reply to display.

Suggestion

Expose an opt-in completed-message event for non-AIR clients, containing:

  • The message ID and native thread/turn IDs.
  • The original phase, preserving unknown/null values.
  • The complete message text.

Keep this separate from text chunks so streaming clients do not append the reply twice. Child-session messages should keep their own identity, and message completion should remain distinct from turn success.

The event and capability names are open to discussion.

Related: #169 and #267 discuss phases; #500 addresses missing text when providers omit deltas. This request also covers explicit completion when deltas were delivered normally.

Checked against codex-acp 2.2.2 source.

Activity

  1. changed the title [-]Expose a client-independent completed-message contract with phase and native turn identity[/-] [+]Expose completed replies and message phases to non-AIR clients[/+] on Oct 16, 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