mirror of
https://github.com/openai/codex.git
synced 2026-11-14 14:49:31 +00:00
Route Guardian reviewers through ThreadManager for inline parents (#45518)
## Why Inline delegates have no entry in the thread registry, so reviewer creation cannot depend on looking up the parent or waiting for its thread-ready notification. ## What changed - Capture parent identity, authentication, shared agent control, originator, and inherited instructions in `StartThreadOptions` so `ThreadManager` can start a child without a registered parent. - Route Guardian reviewer creation through this path, remove the standalone fallback and readiness gate, and require a Guardian extension host. - Install explicit reviewer hosts in unit tests and the Guardian reviewer extension in the integration test harness, using `ExtensionRegistry::to_builder()` to preserve existing contributors. ## Testing Extend the thread-manager regression test to remove the parent from the registry before starting a child, then verify inherited lineage, originator, session identity, and authentication, and exclusion from the public thread list. GitOrigin-RevId: 468ded6fdce7520cb39d55c1a884dcfa5aaea2d9
This commit is contained in:
1 parent
280c7e1e56
commit
7c73903be2
18 files changed
+318
-199
No files matched your search
@@ -81,11 +81,8 @@ pub(crate) async fn run_codex_thread_interactive(
|
||||
} else {
|
||||
Arc::clone(&parent_session.services.extensions)
|
||||
};
|
||||
// Inline delegates never register with ThreadManager or receive on_thread_ready.
|
||||
// Bind their standalone spawn path before inherited extensions run.
|
||||
let mut thread_extension_init = codex_extension_api::ExtensionDataInit::default();
|
||||
thread_extension_init.insert(isolation);
|
||||
thread_extension_init.insert(crate::guardian::GuardianReviewSessionHost::default());
|
||||
let (session, io) = Session::spawn(SessionSpawnArgs {
|
||||
startup: None,
|
||||
config,
|
||||
|
||||
Reference in new issue
Block a user