Spread AbsolutePathBuf (#17792)

Mechanical change to promote absolute paths through code.
This commit is contained in:
pakrym-oai
2026-04-14 14:26:10 -07:00
committed by GitHub
parent dae56994da
commit dd1321d11b
166 changed files with 1638 additions and 1214 deletions
+19 -16
View File
@@ -1,8 +1,7 @@
use std::fs;
use std::path::Path;
use codex_config::ConfigLayerStack;
use codex_config::ConfigLayerStackOrdering;
use codex_utils_absolute_path::AbsolutePathBuf;
use std::fs;
use super::ConfiguredHandler;
use super::config::HookHandlerConfig;
@@ -93,7 +92,7 @@ pub(crate) fn discover_handlers(config_layer_stack: Option<&ConfigLayerStack>) -
&mut handlers,
&mut warnings,
&mut display_order,
source_path.as_path(),
&source_path,
event_name,
groups,
);
@@ -107,7 +106,7 @@ fn append_group_handlers(
handlers: &mut Vec<ConfiguredHandler>,
warnings: &mut Vec<String>,
display_order: &mut i64,
source_path: &Path,
source_path: &AbsolutePathBuf,
event_name: codex_protocol::protocol::HookEventName,
matcher: Option<&str>,
group_handlers: Vec<HookHandlerConfig>,
@@ -151,7 +150,7 @@ fn append_group_handlers(
command,
timeout_sec,
status_message,
source_path: source_path.to_path_buf(),
source_path: source_path.clone(),
display_order: *display_order,
});
*display_order += 1;
@@ -172,7 +171,7 @@ fn append_matcher_groups(
handlers: &mut Vec<ConfiguredHandler>,
warnings: &mut Vec<String>,
display_order: &mut i64,
source_path: &Path,
source_path: &AbsolutePathBuf,
event_name: codex_protocol::protocol::HookEventName,
groups: Vec<MatcherGroup>,
) {
@@ -191,10 +190,10 @@ fn append_matcher_groups(
#[cfg(test)]
mod tests {
use std::path::Path;
use std::path::PathBuf;
use codex_protocol::protocol::HookEventName;
use codex_utils_absolute_path::AbsolutePathBuf;
use codex_utils_absolute_path::test_support::PathBufExt;
use codex_utils_absolute_path::test_support::test_path_buf;
use pretty_assertions::assert_eq;
use super::ConfiguredHandler;
@@ -202,6 +201,10 @@ mod tests {
use super::append_group_handlers;
use crate::events::common::matcher_pattern_for_event;
fn source_path() -> AbsolutePathBuf {
test_path_buf("/tmp/hooks.json").abs()
}
#[test]
fn user_prompt_submit_ignores_invalid_matcher_during_discovery() {
let mut handlers = Vec::new();
@@ -212,7 +215,7 @@ mod tests {
&mut handlers,
&mut warnings,
&mut display_order,
Path::new("/tmp/hooks.json"),
&source_path(),
HookEventName::UserPromptSubmit,
matcher_pattern_for_event(HookEventName::UserPromptSubmit, Some("[")),
vec![HookHandlerConfig::Command {
@@ -232,7 +235,7 @@ mod tests {
command: "echo hello".to_string(),
timeout_sec: 600,
status_message: None,
source_path: PathBuf::from("/tmp/hooks.json"),
source_path: source_path(),
display_order: 0,
}]
);
@@ -248,7 +251,7 @@ mod tests {
&mut handlers,
&mut warnings,
&mut display_order,
Path::new("/tmp/hooks.json"),
&source_path(),
HookEventName::PreToolUse,
matcher_pattern_for_event(HookEventName::PreToolUse, Some("^Bash$")),
vec![HookHandlerConfig::Command {
@@ -268,7 +271,7 @@ mod tests {
command: "echo hello".to_string(),
timeout_sec: 600,
status_message: None,
source_path: PathBuf::from("/tmp/hooks.json"),
source_path: source_path(),
display_order: 0,
}]
);
@@ -284,7 +287,7 @@ mod tests {
&mut handlers,
&mut warnings,
&mut display_order,
Path::new("/tmp/hooks.json"),
&source_path(),
HookEventName::PreToolUse,
matcher_pattern_for_event(HookEventName::PreToolUse, Some("*")),
vec![HookHandlerConfig::Command {
@@ -310,7 +313,7 @@ mod tests {
&mut handlers,
&mut warnings,
&mut display_order,
Path::new("/tmp/hooks.json"),
&source_path(),
HookEventName::PostToolUse,
matcher_pattern_for_event(HookEventName::PostToolUse, Some("Edit|Write")),
vec![HookHandlerConfig::Command {
+3 -3
View File
@@ -117,9 +117,9 @@ fn scope_for_event(event_name: HookEventName) -> HookScope {
#[cfg(test)]
mod tests {
use std::path::PathBuf;
use codex_protocol::protocol::HookEventName;
use codex_utils_absolute_path::test_support::PathBufExt;
use codex_utils_absolute_path::test_support::test_path_buf;
use super::ConfiguredHandler;
use super::select_handlers;
@@ -136,7 +136,7 @@ mod tests {
command: command.to_string(),
timeout_sec: 5,
status_message: None,
source_path: PathBuf::from("/tmp/hooks.json"),
source_path: test_path_buf("/tmp/hooks.json").abs(),
display_order,
}
}
+2 -3
View File
@@ -5,10 +5,9 @@ pub(crate) mod dispatcher;
pub(crate) mod output_parser;
pub(crate) mod schema_loader;
use std::path::PathBuf;
use codex_config::ConfigLayerStack;
use codex_protocol::protocol::HookRunSummary;
use codex_utils_absolute_path::AbsolutePathBuf;
use crate::events::post_tool_use::PostToolUseOutcome;
use crate::events::post_tool_use::PostToolUseRequest;
@@ -34,7 +33,7 @@ pub(crate) struct ConfiguredHandler {
pub command: String,
pub timeout_sec: u64,
pub status_message: Option<String>,
pub source_path: PathBuf,
pub source_path: AbsolutePathBuf,
pub display_order: i64,
}