Codex `SubagentStart` hook handler.
()
| 134 | |
| 135 | /// Codex `SubagentStart` hook handler. |
| 136 | pub async fn hook_codex_subagent_start() -> i32 { |
| 137 | let event = read_hook_event!(); |
| 138 | let root = codex_project_root_from_event(&event); |
| 139 | record_hook_invoked(root.as_deref(), HintAgent::Codex, "SubagentStart", &event); |
| 140 | let count = record_codex_subagent_start(&event); |
| 141 | let output = evaluate_codex_subagent_start(&event); |
| 142 | let digest = match root.as_deref() { |
| 143 | Some(root) => memory_inject::session_memory_digest(root, None).await, |
| 144 | None => None, |
| 145 | }; |
| 146 | let output = merge_codex_subagent_output(output, digest); |
| 147 | eprintln!( |
| 148 | "{}", |
| 149 | codex_subagent_start_log_line(&event, count, output.is_some()) |
| 150 | ); |
| 151 | if let Some(output) = output { |
| 152 | println!("{output}"); |
| 153 | } |
| 154 | 0 |
| 155 | } |
| 156 | |
| 157 | fn merge_codex_subagent_output(output: Option<String>, digest: Option<String>) -> Option<String> { |
| 158 | let Some(digest) = digest else { |
no test coverage detected