@@ -975,20 +975,24 @@ pub fn up_once_selected_specs(
975975
976976/// Discover a folder catalog once, resolve one task before any owner hook/render mutation, then
977977/// materialize only that owner and execute the selected plan.
978- pub fn up_once_selected_catalog (
978+ pub fn up_once_selected (
979979 catalog_root : & Path ,
980980 selector : & str ,
981981 this_host : & str ,
982982 runner : & dyn Runner ,
983983) -> anyhow:: Result < UpReport > {
984984 let found = crate :: discovery:: discover ( catalog_root) ;
985985 let ( owner, _, _) = crate :: reconcile:: resolve_task ( & found. specs , selector, this_host) ?;
986+ let all_specs = found. specs . clone ( ) ;
986987 let mut report = UpReport :: default ( ) ;
987988 report. warnings . extend ( found. warnings ) ;
988989 report. errors . extend ( found. errors . into_iter ( ) . map ( |e| e. message ) ) ;
989990 let owner = owner. clone ( ) ;
990- if crate :: hooks:: required_by_codex ( std:: slice:: from_ref ( & owner) , this_host) {
991- crate :: hooks:: verify_installed ( ) . map_err ( |e| anyhow:: anyhow!( "verify hooks: {e}" ) ) ?;
991+ if crate :: hooks:: required_by_codex_agent ( & owner, this_host) {
992+ if let Err ( error) = crate :: hooks:: verify_installed ( ) {
993+ report. errors . push ( format ! ( "verify lifecycle hooks: {error}" ) ) ;
994+ return Ok ( report) ;
995+ }
992996 }
993997 let materialized =
994998 crate :: materialize:: materialize_catalog ( catalog_root, std:: slice:: from_ref ( & owner) , this_host) ;
@@ -997,7 +1001,17 @@ pub fn up_once_selected_catalog(
9971001 if !report. errors . is_empty ( ) {
9981002 return Ok ( report) ;
9991003 }
1000- up_once_selected_specs ( catalog_root, std:: slice:: from_ref ( & owner) , selector, this_host, runner)
1004+ let mut execution = up_once_selected_specs_with_gates (
1005+ catalog_root, & all_specs, selector, this_host, runner,
1006+ || Ok ( ( ) ) , crate :: pretrust:: pretrust_codex,
1007+ ) ?;
1008+ report. warnings . append ( & mut execution. warnings ) ;
1009+ report. errors . append ( & mut execution. errors ) ;
1010+ report. launched . append ( & mut execution. launched ) ;
1011+ report. torn_down . append ( & mut execution. torn_down ) ;
1012+ report. gc . append ( & mut execution. gc ) ;
1013+ report. adopted . append ( & mut execution. adopted ) ;
1014+ Ok ( report)
10011015}
10021016
10031017fn up_once_selected_specs_with_gates < V , F > (
0 commit comments