mirror of
https://github.com/openai/codex.git
synced 2026-10-29 19:08:43 +00:00
Approval responses were keyed only by string ID and could return values the server did not offer. That allowed one approval kind to consume another kind’s waiter and trusted client-supplied persistence payloads too broadly. Key pending approvals by request kind, record the exact accepted ReviewDecision values, and consume each waiter once before applying an amendment or continuing execution. Preserve ordinary session approval and the exact server-proposed restrictive network-deny path, while treating unoffered responses as denied. Route delegated cancellation to the matching exec or patch waiter and keep Guardian-only reviews independent of the approval ledger. Add unit, integration, delegation, and telemetry coverage for exact payloads, kind isolation, cancellation, replay, and compatibility.
20 lines
646 B
Rust
20 lines
646 B
Rust
mod additional_context;
|
|
mod auto_compact_window;
|
|
mod service;
|
|
mod session;
|
|
mod turn;
|
|
|
|
pub(crate) use additional_context::AdditionalContextStore;
|
|
pub(crate) use auto_compact_window::AutoCompactWindowIds;
|
|
pub(crate) use auto_compact_window::AutoCompactWindowSnapshot;
|
|
pub(crate) use service::SessionServices;
|
|
pub(crate) use session::SessionState;
|
|
pub(crate) use turn::ActiveTurn;
|
|
pub(crate) use turn::MailboxDeliveryPhase;
|
|
pub(crate) use turn::PendingApproval;
|
|
pub(crate) use turn::PendingApprovalKind;
|
|
pub(crate) use turn::PendingRequestPermissions;
|
|
pub(crate) use turn::RunningTask;
|
|
pub(crate) use turn::TaskKind;
|
|
pub(crate) use turn::TurnState;
|