Persist and prewarm agent tasks per thread (#17978)

## Summary
- persist registered agent tasks in the session state update stream so
the thread can reuse them
- prewarm task registration once identity registration succeeds, while
keeping startup failures best-effort
- isolate the session-side task lifecycle into a dedicated module so
AgentIdentityManager and RegisteredAgentTask do not leak across as many
core layers

## Testing
- cargo test -p codex-core startup_agent_task_prewarm
- cargo test -p codex-core
cached_agent_task_for_current_identity_clears_stale_task
- cargo test -p codex-core record_initial_history_
This commit is contained in:
Adrian
2026-04-19 15:45:28 -07:00
committed by GitHub
parent b885c3f8b1
commit e5b52a3caa
20 changed files with 680 additions and 149 deletions

View File

@@ -228,6 +228,7 @@ async fn process_sse_records_failed_event_when_stream_closes_without_completed()
.features
.disable(Feature::GhostCommit)
.expect("test config should allow feature update");
config.model_provider.stream_max_retries = Some(0);
})
.build(&server)
.await
@@ -406,6 +407,7 @@ async fn process_sse_failed_event_logs_missing_error() {
.features
.disable(Feature::GhostCommit)
.expect("test config should allow feature update");
config.model_provider.stream_max_retries = Some(0);
})
.build(&server)
.await