mirror of
https://github.com/openai/codex.git
synced 2026-10-21 17:48:44 +00:00
## Why Background memory consolidation must honor managed completion policies without running project completion checks or sending user-facing notifications. ## What changed - Add a memory-consolidation stop target that selects managed policy hooks and executor-scoped cleanup while excluding user, project, session, and plugin stop hooks. - End memory consolidation with an error when a managed stop hook rejects it, and propagate that turn error into agent status. - Disable legacy completion notifications for the background memory worker. ## Testing - Cover hook selection, executor cleanup, managed rejection, agent error status, and notification suppression. GitOrigin-RevId: be350679ddcde2dde8a408b0972f08facff01a37
32 lines
1.3 KiB
Rust
32 lines
1.3 KiB
Rust
use codex_protocol::protocol::AgentStatus;
|
|
use codex_protocol::protocol::EventMsg;
|
|
|
|
/// Derive the next agent status from a single emitted event.
|
|
/// Returns `None` when the event does not affect status tracking.
|
|
pub(crate) fn agent_status_from_event(msg: &EventMsg) -> Option<AgentStatus> {
|
|
match msg {
|
|
EventMsg::TurnStarted(_) => Some(AgentStatus::Running),
|
|
EventMsg::TurnComplete(ev) => Some(match &ev.error {
|
|
Some(error) => AgentStatus::Errored(error.message.clone()),
|
|
None => AgentStatus::Completed(ev.last_agent_message.clone()),
|
|
}),
|
|
EventMsg::TurnAborted(ev) => match ev.reason {
|
|
codex_protocol::protocol::TurnAbortReason::Interrupted
|
|
| codex_protocol::protocol::TurnAbortReason::BudgetLimited => {
|
|
Some(AgentStatus::Interrupted)
|
|
}
|
|
_ => Some(AgentStatus::Errored(format!("{:?}", ev.reason))),
|
|
},
|
|
EventMsg::Error(ev) => Some(AgentStatus::Errored(ev.message.clone())),
|
|
EventMsg::ShutdownComplete => Some(AgentStatus::Shutdown),
|
|
_ => None,
|
|
}
|
|
}
|
|
|
|
pub(crate) fn is_final(status: &AgentStatus) -> bool {
|
|
!matches!(
|
|
status,
|
|
AgentStatus::PendingInit | AgentStatus::Running | AgentStatus::Interrupted
|
|
)
|
|
}
|