mirror of
https://github.com/openai/codex.git
synced 2026-11-07 20:30:33 +00:00
## What changed Add `MessageLifecycleContributor` hooks to capture extension state when local agent control publishes a message and notify contributors when the recipient commits it to history, before sampling. Carry shared delivery state through submissions, input queues, and mailbox eviction with `PendingAgentMessage`. Notify consumption at most once per delivery, release captured state when consumed or abandoned, and drop pending mail outside queue locks. Preserve the serialized message format without republishing restored history. ## Testing Extend the mailbox eviction test to verify that publication state survives eviction and retained messages are consumed before the first resumed model sample. GitOrigin-RevId: 9a1f6832bd48ec646a3fd179485c095e8dcc72cc
23 lines
987 B
Rust
23 lines
987 B
Rust
//! Core-owned queue metadata; forwarding transfers the residency guard with the operation.
|
|
|
|
use codex_extension_api::ExtensionDataInit;
|
|
use codex_protocol::protocol::Op;
|
|
use codex_protocol::protocol::W3cTraceContext;
|
|
use tokio::sync::OwnedRwLockReadGuard;
|
|
|
|
#[derive(Debug)]
|
|
pub(crate) struct Submission {
|
|
pub id: String,
|
|
pub op: Op,
|
|
/// Accepted with settings, never separately from the request that supplied them.
|
|
pub turn_extension_init: Option<ExtensionDataInit>,
|
|
/// Optional W3C trace carrier propagated across async submission handoffs.
|
|
pub trace: Option<W3cTraceContext>,
|
|
pub parent_turn_id: Option<String>,
|
|
pub root_turn_id: Option<String>,
|
|
/// Keeps a V2 recipient resident until this submission is handled or dropped.
|
|
pub residency_guard: Option<OwnedRwLockReadGuard<()>>,
|
|
/// Owns delivery until dispatch; failed or abandoned submissions discard it.
|
|
pub message_delivery: Option<crate::agent_communication::MessageDelivery>,
|
|
}
|