mirror of
https://github.com/openai/codex.git
synced 2026-11-14 21:40:39 +00:00
Include environment hooks in thread hook listings (#56553)
## Why Listing hooks by working directory alone omits hooks supplied by a thread's selected execution environments, including hooks that can block a turn. ## What changed - Add `threadId` to `hooks/list` to return a loaded thread's current hook inventory, including selected, ready environments. Reject requests that also specify `cwds`. - Expose `environmentId` in hook metadata and have the TUI hooks browser query the current thread and label environment-owned hooks. Keep working-directory lookup for startup review. - Represent environment hook source paths with `PathUri` and use `LegacyAppPathString` in hook run summaries to preserve native path conventions. ## Testing Add coverage for listing a blocking environment hook and removing it after environment failure, delivering prompt input and reporting exit status in PowerShell and Bash, and running `PreToolUse` hooks only on the command's owning executor. Extend remote network tests to verify that environment hooks use the command's network policy while retaining their filesystem access. GitOrigin-RevId: 97229e22793df51f4bd502c1f9e19f0c52fb2305
This commit is contained in:
@@ -1024,6 +1024,16 @@ impl CodexThread {
|
||||
self.session.get_config().await
|
||||
}
|
||||
|
||||
/// List the thread's current hook declarations, including its selected, ready environments.
|
||||
pub fn list_hooks(&self) -> codex_hooks::HookListOutcome {
|
||||
let environments = self.session.services.turn_environments.snapshot_now();
|
||||
let sources = crate::hook_environment_executor::environment_hook_sources(
|
||||
&environments,
|
||||
/*target_environments*/ &[],
|
||||
);
|
||||
self.session.hooks().list_with_environment_hooks(sources)
|
||||
}
|
||||
|
||||
/// Observes this thread's published MCP connections that match the requested config.
|
||||
pub async fn mcp_connection_statuses(
|
||||
&self,
|
||||
|
||||
Reference in New Issue
Block a user