[INFO] fetching crate oximedia-workflow 0.1.2... [INFO] testing oximedia-workflow-0.1.2 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-1 [INFO] extracting crate oximedia-workflow 0.1.2 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate oximedia-workflow 0.1.2 [INFO] finished tweaking crates.io crate oximedia-workflow 0.1.2 [INFO] tweaked toml for crates.io crate oximedia-workflow 0.1.2 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oximedia-workflow 0.1.2 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oximedia-workflow 0.1.2 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded hashlink v0.9.1 [INFO] [stderr] Downloaded r2d2_sqlite v0.25.0 [INFO] [stderr] Downloaded cron v0.15.0 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 45b73441446da30c8fd7d8ebe7156d639acb14ac58c3135445a866e2a187f20a [INFO] running `Command { std: "docker" "start" "-a" "45b73441446da30c8fd7d8ebe7156d639acb14ac58c3135445a866e2a187f20a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "45b73441446da30c8fd7d8ebe7156d639acb14ac58c3135445a866e2a187f20a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45b73441446da30c8fd7d8ebe7156d639acb14ac58c3135445a866e2a187f20a", kill_on_drop: false }` [INFO] [stdout] 45b73441446da30c8fd7d8ebe7156d639acb14ac58c3135445a866e2a187f20a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 951d9545d49a017af442b5005998cf424f0588fffd692f687ffdee3d82a70bb7 [INFO] running `Command { std: "docker" "start" "-a" "951d9545d49a017af442b5005998cf424f0588fffd692f687ffdee3d82a70bb7", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling axum-macros v0.5.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling winnow v0.6.26 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling cron v0.15.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling oximedia-workflow v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 53.78s [INFO] running `Command { std: "docker" "inspect" "951d9545d49a017af442b5005998cf424f0588fffd692f687ffdee3d82a70bb7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "951d9545d49a017af442b5005998cf424f0588fffd692f687ffdee3d82a70bb7", kill_on_drop: false }` [INFO] [stdout] 951d9545d49a017af442b5005998cf424f0588fffd692f687ffdee3d82a70bb7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 02cbb841bb8b6fb0ae409ac3914f27355e23bb9716a35672a16b74202de0c318 [INFO] running `Command { std: "docker" "start" "-a" "02cbb841bb8b6fb0ae409ac3914f27355e23bb9716a35672a16b74202de0c318", kill_on_drop: false }` [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling oximedia-workflow v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 47.93s [INFO] running `Command { std: "docker" "inspect" "02cbb841bb8b6fb0ae409ac3914f27355e23bb9716a35672a16b74202de0c318", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "02cbb841bb8b6fb0ae409ac3914f27355e23bb9716a35672a16b74202de0c318", kill_on_drop: false }` [INFO] [stdout] 02cbb841bb8b6fb0ae409ac3914f27355e23bb9716a35672a16b74202de0c318 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c6e239aa0b426d8e4fc960313e3309fb7dd6298e26a710b2d8fc86b8c5be8d31 [INFO] running `Command { std: "docker" "start" "-a" "c6e239aa0b426d8e4fc960313e3309fb7dd6298e26a710b2d8fc86b8c5be8d31", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oximedia_workflow-51a088a671cdf7c9) [INFO] [stdout] [INFO] [stdout] running 872 tests [INFO] [stdout] test approval_gate::tests::test_auto_approve_timeout ... ok [INFO] [stdout] test approval_gate::tests::test_all_policy_requires_all ... ok [INFO] [stdout] test approval_gate::tests::test_any_policy_single_approval ... ok [INFO] [stdout] test approval_gate::tests::test_escalation_rule ... ok [INFO] [stdout] test approval_gate::tests::test_gate_id ... ok [INFO] [stdout] test approval_gate::tests::test_decision_after_close_is_ignored ... ok [INFO] [stdout] test approval_gate::tests::test_new_gate_is_pending ... ok [INFO] [stdout] test approval_gate::tests::test_hard_timeout ... ok [INFO] [stdout] test approval_gate::tests::test_quorum_policy ... ok [INFO] [stdout] test approval_gate::tests::test_config_builder_methods ... ok [INFO] [stdout] test approval_gate::tests::test_default_registry ... ok [INFO] [stdout] test approval_gate::tests::test_all_policy_rejects_on_single_rejection ... ok [INFO] [stdout] test approval_gate::tests::test_registry_open_and_get ... ok [INFO] [stdout] test approval_gate::tests::test_quorum_policy_rejection ... ok [INFO] [stdout] test approval_gate::tests::test_registry_submit_and_pending ... ok [INFO] [stdout] test approval_gate::tests::test_role_policy_rejected ... ok [INFO] [stdout] test audit_log::tests::test_append_increments_sequence ... ok [INFO] [stdout] test approval_gate::tests::test_registry_remove_gate ... ok [INFO] [stdout] test audit_log::tests::test_events_for_actor ... ok [INFO] [stdout] test audit_log::tests::test_export_compliance_text ... ok [INFO] [stdout] test audit_log::tests::test_append_with_metadata ... ok [INFO] [stdout] test approval_gate::tests::test_role_policy_approved ... ok [INFO] [stdout] test audit_log::tests::test_log_is_empty_initially ... ok [INFO] [stdout] test audit_log::tests::test_export_csv_rows ... ok [INFO] [stdout] test audit_log::tests::test_export_csv_header ... ok [INFO] [stdout] test batch_status::tests::test_flush_sorts_by_sequence ... ok [INFO] [stdout] test batch_status::tests::test_flush_clears_pending ... ok [INFO] [stdout] test batch_status::tests::test_flush_empty_is_noop ... ok [INFO] [stdout] test batch_status::tests::test_flush_workflows_touched ... ok [INFO] [stdout] test batch_status::tests::test_multiple_flush_cycles ... ok [INFO] [stdout] test batch_status::tests::test_set_max_batch_size ... ok [INFO] [stdout] test audit_log::tests::test_task_id_captured ... ok [INFO] [stdout] test batch_status::tests::test_error_propagation ... ok [INFO] [stdout] test audit_log::tests::test_next_sequence_counter ... ok [INFO] [stdout] test audit_log::tests::test_events_in_range ... ok [INFO] [stdout] test audit_log::tests::test_events_for_workflow ... ok [INFO] [stdout] test audit_log::tests::test_actor_kinds ... ok [INFO] [stdout] test batch_status::tests::test_status_update_fields ... ok [INFO] [stdout] test batch_status::tests::test_writer_accepts_updates ... ok [INFO] [stdout] test batch_status::tests::test_writer_deduplicates_same_task ... ok [INFO] [stdout] test batch_status::tests::test_writer_needs_flush_at_capacity ... ok [INFO] [stdout] test builder::tests::test_qc_task_builder ... ok [INFO] [stdout] test builder::tests::test_transfer_task_builder ... ok [INFO] [stdout] test builder::tests::test_task_builder ... ok [INFO] [stdout] test builder::tests::test_transcode_task_builder ... ok [INFO] [stdout] test audit_log::tests::test_export_compliance_ndjson ... ok [INFO] [stdout] test builder::tests::test_workflow_builder ... ok [INFO] [stdout] test builder::tests::test_workflow_builder_variables ... ok [INFO] [stdout] test builder::tests::test_workflow_builder_with_tasks ... ok [INFO] [stdout] test checkpoint::tests::test_list_empty_when_no_dir ... ok [INFO] [stdout] test checkpoint::tests::test_exists_false_before_save ... ok [INFO] [stdout] test checkpoint::tests::test_delete_nonexistent_ok ... ok [INFO] [stdout] test checkpoint::tests::test_checkpoint_new_fields ... ok [INFO] [stdout] test checkpoint::tests::test_is_step_completed_false ... ok [INFO] [stdout] test checkpoint::tests::test_mark_step_completed_dedup ... ok [INFO] [stdout] test checkpoint::tests::test_should_skip_step_multiple_steps ... ok [INFO] [stdout] test checkpoint::tests::test_mark_step_completed_with_output ... ok [INFO] [stdout] test checkpoint::tests::test_should_skip_step_with_completed_step ... ok [INFO] [stdout] test checkpoint::tests::test_should_skip_step_with_missing_step ... ok [INFO] [stdout] test checkpoint::tests::test_mark_step_completed_no_output ... ok [INFO] [stdout] test checkpoint::tests::test_should_skip_step_with_no_checkpoint ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_state_display ... ok [INFO] [stdout] test circuit_breaker::tests::test_config_creation ... ok [INFO] [stdout] test circuit_breaker::tests::test_failure_rate_threshold_clamp ... ok [INFO] [stdout] test circuit_breaker::tests::test_config_with_builder_methods ... ok [INFO] [stdout] test circuit_breaker::tests::test_failure_rate_threshold ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_max_probes ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_failure_re_opens ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_success_recovers ... ok [INFO] [stdout] test circuit_breaker::tests::test_full_lifecycle ... ok [INFO] [stdout] test circuit_breaker::tests::test_minimum_request_count ... ok [INFO] [stdout] test circuit_breaker::tests::test_metrics_failure_rate_computed ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_check_unknown_allows ... ok [INFO] [stdout] test circuit_breaker::tests::test_open_rejects_requests ... ok [INFO] [stdout] test circuit_breaker::tests::test_metrics_failure_rate_zero_requests ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_record_success_failure ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_names ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_summary ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_remove ... ok [INFO] [stdout] test circuit_breaker::tests::test_registry_register_and_get ... ok [INFO] [stdout] test circuit_breaker::tests::test_rejected_counter ... ok [INFO] [stdout] test circuit_breaker::tests::test_closed_allows_requests ... ok [INFO] [stdout] test checkpoint::tests::test_load_nonexistent_returns_error ... ok [INFO] [stdout] test circuit_breaker::tests::test_starts_closed ... ok [INFO] [stdout] test circuit_breaker::tests::test_trips_after_threshold_failures ... ok [INFO] [stdout] test circuit_breaker::tests::test_reset ... ok [INFO] [stdout] test cost_tracking::tests::test_budget_limit_ok ... ok [INFO] [stdout] test circuit_breaker::tests::test_success_resets_consecutive_failures ... ok [INFO] [stdout] test checkpoint::tests::test_list_excludes_deleted ... ok [INFO] [stdout] test checkpoint::tests::test_save_overwrites_previous ... ok [INFO] [stdout] test circuit_breaker::tests::test_transitions_to_half_open_after_cooldown ... ok [INFO] [stdout] test checkpoint::tests::test_exists_false_after_delete ... ok [INFO] [stdout] test checkpoint::tests::test_exists_true_after_save ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_record_actual_missing ... ok [INFO] [stdout] test cost_tracking::tests::test_evaluate_budget_exceeded ... ok [INFO] [stdout] test cost_tracking::tests::test_budget_limit_exceeded ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_record_actual ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_step_count ... ok [INFO] [stdout] test cost_tracking::tests::test_budget_limit_warning ... ok [INFO] [stdout] test cost_tracking::tests::test_cost_center_total ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_cost_center_registration ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_total_actual_none_if_no_actuals ... ok [INFO] [stdout] test checkpoint::tests::test_delete_existing ... ok [INFO] [stdout] test checkpoint::tests::test_list_checkpoints_after_multiple_saves ... ok [INFO] [stdout] test checkpoint::tests::test_save_and_load ... ok [INFO] [stdout] test cost_tracking::tests::test_ledger_total_estimated ... ok [INFO] [stdout] test cost_tracking::tests::test_money_add_different_currency ... ok [INFO] [stdout] test audit_log::tests::test_audit_event_kind_labels ... ok [INFO] [stdout] test cost_tracking::tests::test_currency_code ... ok [INFO] [stdout] test cost_tracking::tests::test_money_exceeds ... ok [INFO] [stdout] test audit_log::tests::test_capacity_evicts_oldest ... ok [INFO] [stdout] test cost_tracking::tests::test_step_cost_assign_center ... ok [INFO] [stdout] test cost_tracking::tests::test_money_from_decimal ... ok [INFO] [stdout] test cost_tracking::tests::test_money_as_decimal_roundtrip ... ok [INFO] [stdout] test dag::tests::test_dag_add_node_and_edge ... ok [INFO] [stdout] test cost_tracking::tests::test_step_cost_new_and_actual ... ok [INFO] [stdout] test dag::tests::test_dag_cycle_detection ... ok [INFO] [stdout] test dag::tests::test_dag_error_duplicate_node ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_boolean ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_exists ... ok [INFO] [stdout] test cost_tracking::tests::test_money_add_same_currency ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_equality ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_invalid_expression ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_numeric_equality ... ok [INFO] [stdout] test audit_log::tests::test_events_by_kind ... ok [INFO] [stdout] test dag::tests::test_dag_error_node_not_found ... ok [INFO] [stdout] test dag::tests::test_branch_evaluator_numeric_comparison ... ok [INFO] [stdout] test dag::tests::test_edge_creation ... ok [INFO] [stdout] test dag::tests::test_engine_execute_no_executor ... ok [INFO] [stdout] test dag::tests::test_engine_execute_with_executor ... ok [INFO] [stdout] test dag::tests::test_engine_node_failure ... ok [INFO] [stdout] test dag::tests::test_dag_predecessors_successors ... ok [INFO] [stdout] test dag::tests::test_dag_topological_sort ... ok [INFO] [stdout] test dag::tests::test_engine_node_status_accessor ... ok [INFO] [stdout] test dag::tests::test_descendants ... ok [INFO] [stdout] test dag::tests::test_edge_with_condition ... ok [INFO] [stdout] test dag::tests::test_node_creation ... ok [INFO] [stdout] test dag::tests::test_execute_with_branches_if_else ... ok [INFO] [stdout] test dag::tests::test_resolve_branch_if_else_false ... ok [INFO] [stdout] test dag::tests::test_template_default_parameters ... ok [INFO] [stdout] test dag::tests::test_node_set_output ... ok [INFO] [stdout] test dag::tests::test_node_status_terminal ... ok [INFO] [stdout] test dag::tests::test_template_instantiate_audio_normalize ... ok [INFO] [stdout] test error::tests::test_generic_error ... ok [INFO] [stdout] test dag::tests::test_template_instantiate_ingest_transcode ... ok [INFO] [stdout] test dag::tests::test_resolve_branch_if_else_true ... ok [INFO] [stdout] test dag::tests::test_node_with_input_and_parameter ... ok [INFO] [stdout] test error::tests::test_error_display ... ok [INFO] [stdout] test error::tests::test_should_retry ... ok [INFO] [stdout] test error::tests::test_task_execution_failed ... ok [INFO] [stdout] test dag::tests::test_template_instantiate_subtitle_burn ... ok [INFO] [stdout] test event_bus::tests::test_bus_catch_all ... ok [INFO] [stdout] test event_bus::tests::test_bus_drain_events ... ok [INFO] [stdout] test dag::tests::test_resolve_branch_switch_no_default ... ok [INFO] [stdout] test dag::tests::test_template_parameter_override ... ok [INFO] [stdout] test dag::tests::test_resolve_branch_switch ... ok [INFO] [stdout] test error::tests::test_invalid_state_transition ... ok [INFO] [stdout] test event_bus::tests::test_bus_is_clone_and_send ... ok [INFO] [stdout] test error::tests::test_is_recoverable ... ok [INFO] [stdout] test event_bus::tests::test_bus_subscribe_and_publish ... ok [INFO] [stdout] test event_bus::tests::test_bus_unsubscribe ... ok [INFO] [stdout] test event_bus::tests::test_bus_unsubscribe_nonexistent ... ok [INFO] [stdout] test event_bus::tests::test_bus_wildcard_topic ... ok [INFO] [stdout] test event_bus::tests::test_dead_letters ... ok [INFO] [stdout] test event_bus::tests::test_dead_letters_not_for_delivered ... ok [INFO] [stdout] test event_bus::tests::test_empty_filter_matches_all ... ok [INFO] [stdout] test event_bus::tests::test_event_creation ... ok [INFO] [stdout] test event_bus::tests::test_event_history ... ok [INFO] [stdout] test event_bus::tests::test_event_with_correlation ... ok [INFO] [stdout] test event_bus::tests::test_bus_multiple_subscribers ... ok [INFO] [stdout] test event_bus::tests::test_bus_no_match ... ok [INFO] [stdout] test event_bus::tests::test_clear ... ok [INFO] [stdout] test event_bus::tests::test_events_by_topic ... ok [INFO] [stdout] test event_bus::tests::test_metadata_filter ... ok [INFO] [stdout] test event_bus::tests::test_min_value_missing_field ... ok [INFO] [stdout] test event_bus::tests::test_min_value_filter ... ok [INFO] [stdout] test event_bus::tests::test_source_prefix_filter ... ok [INFO] [stdout] test event_bus::tests::test_stats ... ok [INFO] [stdout] test event_bus::tests::test_replay_to_subscription ... ok [INFO] [stdout] test event_bus::tests::test_topic_and_filter_combined ... ok [INFO] [stdout] test executor::tests::test_execution_context_creation ... ok [INFO] [stdout] test monitoring::tests::test_monitoring_service_task_updates ... ok [INFO] [stdout] test monitoring::tests::test_task_metrics_creation ... ok [INFO] [stdout] test monitoring::tests::test_task_metrics_failure ... ok [INFO] [stdout] test monitoring::tests::test_monitoring_service_completion ... ok [INFO] [stdout] test monitoring::tests::test_monitoring_service_creation ... ok [INFO] [stdout] test monitoring::tests::test_monitoring_service_workflow_tracking ... ok [INFO] [stdout] test event_bus::tests::test_retention_limit ... ok [INFO] [stdout] test monitoring::tests::test_task_metrics_lifecycle ... ok [INFO] [stdout] test event_bus::tests::test_subscription_id_display ... ok [INFO] [stdout] test monitoring::tests::test_statistics ... ok [INFO] [stdout] test executor::tests::test_execution_context_variables ... ok [INFO] [stdout] test executor::tests::test_execution_context_results ... ok [INFO] [stdout] test monitoring::tests::test_workflow_metrics_progress ... ok [INFO] [stdout] test notification_system::tests::test_dispatch_no_match_returns_zero ... ok [INFO] [stdout] test notification_system::tests::test_external_channels ... ok [INFO] [stdout] test event_bus::tests::test_event_with_metadata ... ok [INFO] [stdout] test notification_system::tests::test_in_app_is_not_external ... ok [INFO] [stdout] test notification_system::tests::test_render_multiple_placeholders ... ok [INFO] [stdout] test notification_system::tests::test_render_no_vars ... ok [INFO] [stdout] test notification_system::tests::test_render_unknown_placeholder_unchanged ... ok [INFO] [stdout] test notification_system::tests::test_render_replaces_placeholder ... ok [INFO] [stdout] test notification_system::tests::test_rule_does_not_match_different_trigger ... ok [INFO] [stdout] test notification_system::tests::test_rule_does_not_match_lower_severity ... ok [INFO] [stdout] test executor::tests::test_workflow_executor_creation ... ok [INFO] [stdout] test parallel_steps::tests::execute_fail_step ... ok [INFO] [stdout] test notification_system::tests::test_rule_matches_exact ... ok [INFO] [stdout] test monitoring::tests::test_workflow_metrics_creation ... ok [INFO] [stdout] test notification_system::tests::test_rule_matches_higher_severity ... ok [INFO] [stdout] test notification_system::tests::test_severity_levels ... ok [INFO] [stdout] test parallel_steps::tests::execute_compute_step ... ok [INFO] [stdout] test parallel_steps::tests::execute_wait_step_timeout ... ok [INFO] [stdout] test notification_system::tests::test_severity_ordering ... ok [INFO] [stdout] test notification_system::tests::test_total_sent_accumulates ... ok [INFO] [stdout] test parallel_steps::tests::execute_transform_step ... ok [INFO] [stdout] test notification_system::tests::test_typical_latency_ordering ... ok [INFO] [stdout] test parallel_steps::tests::sequential_stage_executes_in_order ... ok [INFO] [stdout] test parallel_steps::tests::stage_step_count ... ok [INFO] [stdout] test parallel_steps::tests::sequential_stage_stops_on_first_failure ... ok [INFO] [stdout] test parallel_steps::tests::parallel_empty_steps_returns_empty ... ok [INFO] [stdout] test parallel_steps::tests::parallel_all_success_returns_results ... ok [INFO] [stdout] test patterns::tests::test_archive_workflow ... ok [INFO] [stdout] test patterns::tests::test_conditional_workflow ... ok [INFO] [stdout] test patterns::tests::test_watch_folder_transcode ... ok [INFO] [stdout] test patterns::tests::test_distribution_workflow ... ok [INFO] [stdout] test patterns::tests::test_multi_pass_encoding ... ok [INFO] [stdout] test patterns::tests::test_parallel_processing ... ok [INFO] [stdout] test patterns::tests::test_sequential_processing ... ok [INFO] [stdout] test patterns::tests::test_validation_pipeline ... ok [INFO] [stdout] test notification_system::tests::test_dispatch_renders_template ... ok [INFO] [stdout] test notification_system::tests::test_dispatch_returns_channel_count ... ok [INFO] [stdout] test queue::tests::test_clear_queue ... ok [INFO] [stdout] test queue::tests::test_priority_ordering ... ok [INFO] [stdout] test queue::tests::test_complete_task ... ok [INFO] [stdout] test parallel_steps::tests::parallel_and_sequential_same_results_all_success ... ok [INFO] [stdout] test queue::tests::test_queue_creation ... ok [INFO] [stdout] test queue::tests::test_queue_statistics ... ok [INFO] [stdout] test queue::tests::test_remove_task ... ok [INFO] [stdout] test parallel_steps::tests::parallel_one_fail_not_fast_gives_multiple_failed ... ok [INFO] [stdout] test queue::tests::test_enqueue_dequeue ... ok [INFO] [stdout] test queue::tests::test_queue_max_size ... ok [INFO] [stdout] test parallel_steps::tests::parallel_single_step_success ... ok [INFO] [stdout] test parallel_steps::tests::parallel_stage_all_success ... ok [INFO] [stdout] test resource_pool::tests::test_multiple_allocations_same_resource ... ok [INFO] [stdout] test resource_pool::tests::test_pool_allocate_success ... ok [INFO] [stdout] test resource_pool::tests::test_pool_allocate_insufficient ... ok [INFO] [stdout] test parallel_steps::tests::parallel_one_fail_fast_gives_step_failed_error ... ok [INFO] [stdout] test resource_pool::tests::test_pool_allocate_unknown_resource ... ok [INFO] [stdout] test resource_pool::tests::test_pool_can_satisfy ... ok [INFO] [stdout] test parallel_steps::tests::parallel_all_fail_no_fast_aggregates ... ok [INFO] [stdout] test resource_pool::tests::test_pool_register_and_count ... ok [INFO] [stdout] test resource_pool::tests::test_pool_release_invalid_token ... ok [INFO] [stdout] test queue::tests::test_fifo_within_priority ... ok [INFO] [stdout] test executor::tests::test_default_executor_wait_task ... ok [INFO] [stdout] test resource_pool::tests::test_pool_release_success ... ok [INFO] [stdout] test resource_pool::tests::test_resource_request_builder ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_apply_to_pool ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_cooldown ... ok [INFO] [stdout] test resource_pool::tests::test_pool_stats ... ok [INFO] [stdout] test resource_pool::tests::test_resource_descriptor_available ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_history ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_fixed_policy ... ok [INFO] [stdout] test executor::tests::test_simple_workflow_execution ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_policy_count ... ok [INFO] [stdout] test resource_pool::tests::test_pool_reset_all ... ok [INFO] [stdout] test resource_pool::tests::test_resource_descriptor_utilisation ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_step_capped_at_max ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_step_capped_at_min ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_step_scale_up ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_step_scale_down ... ok [INFO] [stdout] test resource_pool::tests::test_resource_descriptor_zero_capacity ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_target_tracking_at_target ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_target_tracking_scale_down ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_target_tracking_scale_up ... ok [INFO] [stdout] test resource_pool::tests::test_scaling_action_display ... ok [INFO] [stdout] test resource_pool::tests::test_scaler_unknown_resource ... ok [INFO] [stdout] test retry_policy::exponential_tests::attempts_used_tracks_correctly ... ok [INFO] [stdout] test retry_policy::exponential_tests::fixed_policy_same_delay ... ok [INFO] [stdout] test retry_policy::exponential_tests::jitter_within_expected_range ... ok [INFO] [stdout] test retry_policy::exponential_tests::give_up_after_all_attempts_exhausted ... ok [INFO] [stdout] test retry_policy::exponential_tests::max_delay_cap_honored ... ok [INFO] [stdout] test retry_policy::exponential_tests::exponential_increases_correctly ... ok [INFO] [stdout] test retry_policy::exponential_tests::multiplier_one_acts_like_fixed ... ok [INFO] [stdout] test retry_policy::exponential_tests::no_retry_gives_up_immediately ... ok [INFO] [stdout] test retry_policy::exponential_tests::reset_restarts_from_zero ... ok [INFO] [stdout] test retry_policy::exponential_tests::splitmix64_f64_in_unit_range ... ok [INFO] [stdout] test retry_policy::tests::test_can_retry_limits ... ok [INFO] [stdout] test retry_policy::exponential_tests::splitmix64_produces_different_values ... ok [INFO] [stdout] test retry_policy::tests::test_config_metadata ... ok [INFO] [stdout] test retry_policy::tests::test_exponential_delay ... ok [INFO] [stdout] test retry_policy::tests::test_custom_delays ... ok [INFO] [stdout] test retry_policy::tests::test_fixed_delay ... ok [INFO] [stdout] test retry_policy::tests::test_jitter_equal ... ok [INFO] [stdout] test retry_policy::tests::test_jitter_none ... ok [INFO] [stdout] test retry_policy::tests::test_jitter_full ... ok [INFO] [stdout] test retry_policy::tests::test_linear_delay ... ok [INFO] [stdout] test retry_policy::tests::test_no_retry ... ok [INFO] [stdout] test retry_policy::tests::test_non_retryable_errors ... ok [INFO] [stdout] test retry_policy::tests::test_record_attempt_tracks_history ... ok [INFO] [stdout] test retry_policy::exponential_tests::zero_initial_delay_no_jitter ... ok [INFO] [stdout] test retry_policy::tests::test_registry_basic ... ok [INFO] [stdout] test retry_policy::exponential_tests::default_policy_has_sane_values ... ok [INFO] [stdout] test retry_policy::tests::test_exponential_capped ... ok [INFO] [stdout] test retry_policy::tests::test_default_registry ... ok [INFO] [stdout] test retry_policy::tests::test_reset_state ... ok [INFO] [stdout] test scheduler::tests::test_interval_trigger ... ok [INFO] [stdout] test retry_policy::tests::test_registry_with_defaults ... ok [INFO] [stdout] test retry_policy::tests::test_total_timeout_limit ... ok [INFO] [stdout] test retry_policy::tests::test_retryable_errors ... ok [INFO] [stdout] test scheduler::tests::test_file_watcher ... ok [INFO] [stdout] test retry_policy::tests::test_registry_create_state ... ok [INFO] [stdout] test scheduler::tests::test_add_schedule ... ok [INFO] [stdout] test scheduler::tests::test_remove_schedule ... ok [INFO] [stdout] test scheduler::tests::test_scheduled_workflow_creation ... ok [INFO] [stdout] test retry_policy::tests::test_registry_remove ... ok [INFO] [stdout] test scheduler::tests::test_cron_trigger_parsing ... ok [INFO] [stdout] test scheduler::tests::test_scheduler_creation ... ok [INFO] [stdout] test sla::tests::test_current_availability_with_downtime ... ok [INFO] [stdout] test scheduler::tests::test_time_trigger_past ... ok [INFO] [stdout] test scheduler::tests::test_time_trigger_future ... ok [INFO] [stdout] test sla::tests::test_check_queue_depth_no_violation ... ok [INFO] [stdout] test sla::tests::test_check_queue_depth_violation ... ok [INFO] [stdout] test sla::tests::test_current_availability_no_data ... ok [INFO] [stdout] test sla::tests::test_percentile_processing ... ok [INFO] [stdout] test sla::tests::test_record_completion_no_violation ... ok [INFO] [stdout] test scheduler::tests::test_enable_disable_schedule ... ok [INFO] [stdout] test scheduler::tests::test_scheduler_start_stop ... ok [INFO] [stdout] test sla::tests::test_record_completion_with_violation ... ok [INFO] [stdout] test sla::tests::test_sla_report_compliant ... ok [INFO] [stdout] test sla_tracking::tests::test_add_escalation_rule_missing_entry ... ok [INFO] [stdout] test sla::tests::test_sla_report_empty ... ok [INFO] [stdout] test sla::tests::test_sla_target_defaults ... ok [INFO] [stdout] test sla_tracking::tests::test_add_escalation_rule ... ok [INFO] [stdout] test sla_tracking::tests::test_breach_on_zero_duration ... ok [INFO] [stdout] test sla_tracking::tests::test_at_risk_ids_empty ... ok [INFO] [stdout] test sla::tests::test_violations_in_window ... ok [INFO] [stdout] test sla_tracking::tests::test_breach_rate_empty ... ok [INFO] [stdout] test sla_tracking::tests::test_breach_rate_none_breached ... ok [INFO] [stdout] test sla_tracking::tests::test_breach_report_fields ... ok [INFO] [stdout] test sla::tests::test_sla_report_generation ... ok [INFO] [stdout] test sla_tracking::tests::test_initial_status_active ... ok [INFO] [stdout] test sla_tracking::tests::test_level_accessor ... ok [INFO] [stdout] test sla_tracking::tests::test_mark_met ... ok [INFO] [stdout] test sla::tests::test_violations_in_empty_window ... ok [INFO] [stdout] test sla_tracking::tests::test_breached_ids_empty ... ok [INFO] [stdout] test sla_tracking::tests::test_mark_met_nonexistent ... ok [INFO] [stdout] test sla_tracking::tests::test_build_breach_report_empty ... ok [INFO] [stdout] test sla_tracking::tests::test_remaining_positive ... ok [INFO] [stdout] test sla_tracking::tests::test_compliance_rate_empty ... ok [INFO] [stdout] test sla_tracking::tests::test_tracker_register_and_count ... ok [INFO] [stdout] test state_machine::tests::test_initial_state ... ok [INFO] [stdout] test state_machine::tests::test_is_terminal_false_on_nonterminal ... ok [INFO] [stdout] test sla_tracking::tests::test_status_unknown_id ... ok [INFO] [stdout] test sla_tracking::tests::test_compliance_rate_all_met ... ok [INFO] [stdout] test state_machine::tests::test_error_path ... ok [INFO] [stdout] test sla_tracking::tests::test_count_by_status ... ok [INFO] [stdout] test sla_tracking::tests::test_escalation_rule_fire ... ok [INFO] [stdout] test sla_tracking::tests::test_escalation_rule_new ... ok [INFO] [stdout] test state_machine::tests::test_multi_step_transition ... ok [INFO] [stdout] test state_machine::tests::test_terminal_state_blocks_trigger ... ok [INFO] [stdout] test state_machine::tests::test_transition_matches_trigger ... ok [INFO] [stdout] test state_machine::tests::test_trigger_unknown_event_returns_false ... ok [INFO] [stdout] test state_machine::tests::test_transition_with_guard ... ok [INFO] [stdout] test state_machine::tests::test_trigger_valid_event ... ok [INFO] [stdout] test state_machine::tests::test_valid_triggers_empty_when_terminal ... ok [INFO] [stdout] test state_machine::tests::test_valid_triggers_from_idle ... ok [INFO] [stdout] test state_machine::tests::test_valid_triggers_from_running ... ok [INFO] [stdout] test state_machine::tests::test_workflow_state_is_final ... ok [INFO] [stdout] test state_machine::tests::test_workflow_state_on_enter_exit ... ok [INFO] [stdout] test step_condition::tests::test_always_and_never ... ok [INFO] [stdout] test step_condition::tests::test_and_condition ... ok [INFO] [stdout] test step_condition::tests::test_compare_contains ... ok [INFO] [stdout] test step_condition::tests::test_compare_ends_with ... ok [INFO] [stdout] test step_condition::tests::test_compare_gt_int ... ok [INFO] [stdout] test step_condition::tests::test_compare_eq_string ... ok [INFO] [stdout] test step_condition::tests::test_compare_lte_float ... ok [INFO] [stdout] test step_condition::tests::test_compare_neq ... ok [INFO] [stdout] test step_condition::tests::test_compare_starts_with ... ok [INFO] [stdout] test step_condition::tests::test_condition_builder ... ok [INFO] [stdout] test step_condition::tests::test_condition_context_default ... ok [INFO] [stdout] test step_condition::tests::test_exists ... ok [INFO] [stdout] test step_condition::tests::test_expression_bool_variable ... ok [INFO] [stdout] test step_condition::tests::test_condition_value_as_int ... ok [INFO] [stdout] test step_condition::tests::test_expression_eq ... ok [INFO] [stdout] test step_condition::tests::test_glob_matches ... ok [INFO] [stdout] test step_condition::tests::test_expression_neq ... ok [INFO] [stdout] test step_condition::tests::test_missing_variable_compare_returns_false ... ok [INFO] [stdout] test step_condition::tests::test_not_condition ... ok [INFO] [stdout] test step_condition::tests::test_condition_value_as_bool ... ok [INFO] [stdout] test step_conditions::tests::test_expression_eq_string ... ok [INFO] [stdout] test step_conditions::tests::test_expression_lte_numeric_false ... ok [INFO] [stdout] test step_conditions::tests::test_expression_gt_numeric ... ok [INFO] [stdout] test step_conditions::tests::test_expression_missing_field_returns_false ... ok [INFO] [stdout] test step_condition::tests::test_or_condition ... ok [INFO] [stdout] test step_conditions::tests::test_expression_neq_string ... ok [INFO] [stdout] test step_condition::tests::test_step_status ... ok [INFO] [stdout] test step_conditions::tests::test_always_is_true ... ok [INFO] [stdout] test step_conditions::tests::test_and_all_true ... ok [INFO] [stdout] test step_conditions::tests::test_field_equals_match ... ok [INFO] [stdout] test step_conditions::tests::test_field_equals_missing_field ... ok [INFO] [stdout] test step_conditions::tests::test_field_equals_no_match ... ok [INFO] [stdout] test step_conditions::tests::test_nested_and_or_not ... ok [INFO] [stdout] test step_conditions::tests::test_expression_contains_op ... ok [INFO] [stdout] test step_conditions::tests::test_field_contains_match ... ok [INFO] [stdout] test step_conditions::tests::test_and_short_circuits_on_false ... ok [INFO] [stdout] test step_conditions::tests::test_field_contains_no_match ... ok [INFO] [stdout] test step_conditions::tests::test_not_negates ... ok [INFO] [stdout] test step_conditions::tests::test_on_previous_success_false_when_failed ... ok [INFO] [stdout] test step_conditions::tests::test_on_previous_success_true_when_succeeded ... ok [INFO] [stdout] test step_conditions::tests::test_parse_on_success_short_form ... ok [INFO] [stdout] test step_conditions::tests::test_parse_unknown_returns_err ... ok [INFO] [stdout] test step_conditions::tests::test_or_true_when_any_true ... ok [INFO] [stdout] test step_result::tests::test_log_add_and_total_entries ... ok [INFO] [stdout] test step_result::tests::test_status_failed_is_terminal ... ok [INFO] [stdout] test step_conditions::tests::test_parse_always ... ok [INFO] [stdout] test step_result::tests::test_status_labels ... ok [INFO] [stdout] test step_conditions::tests::test_on_previous_failure_false_when_succeeded ... ok [INFO] [stdout] test step_result::tests::test_failed_steps ... ok [INFO] [stdout] test step_conditions::tests::test_on_previous_failure_true_when_failed ... ok [INFO] [stdout] test step_conditions::tests::test_parse_expr ... ok [INFO] [stdout] test step_conditions::tests::test_parse_field_contains ... ok [INFO] [stdout] test step_conditions::tests::test_or_false_when_all_false ... ok [INFO] [stdout] test step_conditions::tests::test_parse_field_equals ... ok [INFO] [stdout] test step_result::tests::test_run_ids ... ok [INFO] [stdout] test step_conditions::tests::test_parse_on_failure_long_form ... ok [INFO] [stdout] test step_result::tests::test_status_pending_not_terminal ... ok [INFO] [stdout] test step_result::tests::test_status_running_not_terminal ... ok [INFO] [stdout] test step_result::tests::test_status_skipped_is_terminal ... ok [INFO] [stdout] test step_result::tests::test_status_success_is_terminal ... ok [INFO] [stdout] test step_result::tests::test_step_result_elapsed_ms ... ok [INFO] [stdout] test step_result::tests::test_step_result_is_failed ... ok [INFO] [stdout] test step_result::tests::test_step_result_is_success ... ok [INFO] [stdout] test step_result::tests::test_step_result_with_message ... ok [INFO] [stdout] test step_result::tests::test_success_rate_all_success ... ok [INFO] [stdout] test step_result::tests::test_success_rate_mixed ... ok [INFO] [stdout] test step_result::tests::test_success_rate_unknown_run ... ok [INFO] [stdout] test step_result::tests::test_success_rate_no_terminal_steps ... ok [INFO] [stdout] test task::tests::test_retry_policy_delay ... ok [INFO] [stdout] test task::tests::test_retry_policy_exponential_backoff ... ok [INFO] [stdout] test task::tests::test_retry_policy_max_attempts ... ok [INFO] [stdout] test task::tests::test_task_add_dependency ... ok [INFO] [stdout] test task::tests::test_task_id_creation ... ok [INFO] [stdout] test task::tests::test_task_priority_ordering ... ok [INFO] [stdout] test task::tests::test_task_creation ... ok [INFO] [stdout] test task::tests::test_task_retry_logic ... ok [INFO] [stdout] test task::tests::test_task_state_active ... ok [INFO] [stdout] test task::tests::test_task_state_terminal ... ok [INFO] [stdout] test task::tests::test_task_state_transition ... ok [INFO] [stdout] test task::tests::test_task_with_priority ... ok [INFO] [stdout] test task_dependency::tests::test_clear ... ok [INFO] [stdout] test task_dependency::tests::test_dependency_finish_to_start ... ok [INFO] [stdout] test task_dependency::tests::test_dependency_new ... ok [INFO] [stdout] test task_dependency::tests::test_kind_display ... ok [INFO] [stdout] test task_dependency::tests::test_kind_all ... ok [INFO] [stdout] test task_dependency::tests::test_kind_label ... ok [INFO] [stdout] test task_dependency::tests::test_predecessors ... ok [INFO] [stdout] test task_dependency::tests::test_resolver_add ... ok [INFO] [stdout] test task_dependency::tests::test_preferred_edges_ignored_in_sort ... ok [INFO] [stdout] test task_dependency::tests::test_resolver_empty ... ok [INFO] [stdout] test task_dependency::tests::test_successors ... ok [INFO] [stdout] test task_dependency::tests::test_topological_sort_cycle ... ok [INFO] [stdout] test task_dependency::tests::test_topological_sort_diamond ... ok [INFO] [stdout] test task_graph::tests::test_add_node_and_edge ... ok [INFO] [stdout] test task_graph::tests::test_critical_path_linear_chain ... ok [INFO] [stdout] test task_graph::tests::test_critical_path_parallel_paths ... ok [INFO] [stdout] test task_graph::tests::test_critical_path_empty_graph ... ok [INFO] [stdout] test task_graph::tests::test_critical_path_single_node ... ok [INFO] [stdout] test task_graph::tests::test_edge_type_is_conditional_false ... ok [INFO] [stdout] test task_graph::tests::test_edge_type_is_conditional_true ... ok [INFO] [stdout] test task_graph::tests::test_predecessors_empty ... ok [INFO] [stdout] test task_graph::tests::test_predecessors ... ok [INFO] [stdout] test task_graph::tests::test_root_nodes_multiple ... ok [INFO] [stdout] test task_graph::tests::test_root_nodes_single ... ok [INFO] [stdout] test task_graph::tests::test_successors ... ok [INFO] [stdout] test task_graph::tests::test_successors_empty ... ok [INFO] [stdout] test task_dependency::tests::test_topological_sort_linear ... ok [INFO] [stdout] test task_graph::tests::test_task_node_resource_count_with_resources ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_entry_no_deadline ... ok [INFO] [stdout] test task_graph::tests::test_task_node_resource_count_empty ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_entry_wait_time ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_level_ordering ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_level_display ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_entry_deadline ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_fifo_within_same_priority ... ok [INFO] [stdout] test task_template::tests::test_instantiate_error_display ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_clear ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_count_by_priority ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_deadline_ordering ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_drain_overdue ... ok [INFO] [stdout] test task_dependency::tests::test_kind_is_hard ... ok [INFO] [stdout] test task_priority_queue::tests::test_priority_level_promote ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_len_and_empty ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_peek ... ok [INFO] [stdout] test task_template::tests::test_instantiate_all_provided ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_apply_aging ... ok [INFO] [stdout] test task_priority_queue::tests::test_queue_enqueue_dequeue_priority ... ok [INFO] [stdout] test task_template::tests::test_instantiate_missing_required_errors ... ok [INFO] [stdout] test task_template::tests::test_instantiate_second_required_missing ... ok [INFO] [stdout] test task_template::tests::test_instantiate_template_name_preserved ... ok [INFO] [stdout] test task_template::tests::test_instantiate_uses_default ... ok [INFO] [stdout] test task_template::tests::test_no_placeholders_unchanged ... ok [INFO] [stdout] test task_template::tests::test_resolved_params_contains_all_declared ... ok [INFO] [stdout] test task_template::tests::test_template_param_optional ... ok [INFO] [stdout] test task_template::tests::test_template_param_required ... ok [INFO] [stdout] test templates::tests::test_error_action_retry ... ok [INFO] [stdout] test task_template::tests::test_template_with_no_params ... ok [INFO] [stdout] test templates::tests::test_find_by_name_not_found ... ok [INFO] [stdout] test templates::tests::test_find_by_name ... ok [INFO] [stdout] test templates::tests::test_instantiate_missing_required_param ... ok [INFO] [stdout] test templates::tests::test_ingest_and_transcode_template ... ok [INFO] [stdout] test templates::tests::test_substitute_params ... ok [INFO] [stdout] test task_template::tests::test_multiple_same_param_uses ... ok [INFO] [stdout] test templates::tests::test_qc_review_template ... ok [INFO] [stdout] test task_template::tests::test_required_params_list ... ok [INFO] [stdout] test templates::tests::test_template_library_all ... ok [INFO] [stdout] test templates::tests::test_archive_workflow_template ... ok [INFO] [stdout] test templates::tests::test_instantiate_with_defaults ... ok [INFO] [stdout] test templates::tests::test_param_type_enum ... ok [INFO] [stdout] test templates::tests::test_find_by_category ... ok [INFO] [stdout] test triggers::server_tests::test_server_new_not_running ... ok [INFO] [stdout] test templates::tests::test_instantiate_with_required_params ... ok [INFO] [stdout] test triggers::server_tests::test_server_register_multiple_triggers ... ok [INFO] [stdout] test triggers::server_tests::test_server_register_trigger ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_body_json_invalid ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_construction ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_header_case_insensitive ... ok [INFO] [stdout] test triggers::tests::test_file_arrival_trigger_matches_pattern ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_body_json_valid ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_body_str_valid_utf8 ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_empty_body ... ok [INFO] [stdout] test triggers::server_tests::test_webhook_payload_body_str_invalid_utf8 ... ok [INFO] [stdout] test triggers::tests::test_file_arrival_trigger_no_wildcard ... ok [INFO] [stdout] test triggers::tests::test_file_arrival_trigger_wildcard_pattern ... ok [INFO] [stdout] test triggers::tests::test_event_trigger_matches ... ok [INFO] [stdout] test triggers::tests::test_event_trigger_empty_filter ... ok [INFO] [stdout] test triggers::tests::test_hmac_sha256_non_empty ... ok [INFO] [stdout] test triggers::tests::test_schedule_trigger_next_fire_tomorrow ... ok [INFO] [stdout] test triggers::tests::test_schedule_trigger_next_fire_future_today ... ok [INFO] [stdout] test triggers::tests::test_sha256_known_value ... ok [INFO] [stdout] test triggers::tests::test_trigger_engine_multiple_workflows ... ok [INFO] [stdout] test triggers::tests::test_glob_match_star_extension ... ok [INFO] [stdout] test triggers::tests::test_trigger_engine_no_match ... ok [INFO] [stdout] test triggers::tests::test_schedule_trigger_with_max_runs ... ok [INFO] [stdout] test triggers::tests::test_trigger_condition_variants ... ok [INFO] [stdout] test triggers::tests::test_webhook_router_basic_route ... ok [INFO] [stdout] test triggers::tests::test_glob_match_multiple_stars ... ok [INFO] [stdout] test triggers::tests::test_trigger_engine_add_and_evaluate_file ... ok [INFO] [stdout] test triggers::tests::test_webhook_router_path_no_match ... ok [INFO] [stdout] test triggers::tests::test_webhook_router_trigger_count ... ok [INFO] [stdout] test triggers::tests::test_webhook_router_remove ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_no_secret_always_valid ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_missing_field ... ok [INFO] [stdout] test triggers::tests::test_trigger_engine_remove_workflow ... ok [INFO] [stdout] test triggers::tests::test_webhook_router_multiple_workflows ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_with_secret_invalid ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_field_mismatch ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_basic_match ... ok [INFO] [stdout] test triggers::tests::test_event_trigger_no_match ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_builder_chain ... ok [INFO] [stdout] test triggers::tests::test_webhook_trigger_with_secret_valid ... ok [INFO] [stdout] test utils::tests::test_calculate_parallelism ... ok [INFO] [stdout] test utils::tests::test_clone_workflow ... ok [INFO] [stdout] test utils::tests::test_format_duration ... ok [INFO] [stdout] test utils::tests::test_estimate_workflow_duration ... ok [INFO] [stdout] test utils::tests::test_parse_duration ... ok [INFO] [stdout] test utils::tests::test_generate_task_name ... ok [INFO] [stdout] test utils::tests::test_get_workflow_statistics ... ok [INFO] [stdout] test utils::tests::test_merge_configs ... ok [INFO] [stdout] test utils::tests::test_sanitize_task_name ... ok [INFO] [stdout] test validation::tests::test_complexity_level ... ok [INFO] [stdout] test validation::tests::test_complexity_analyzer ... ok [INFO] [stdout] test utils::tests::test_expand_template ... ok [INFO] [stdout] test validation::tests::test_complexity_score ... ok [INFO] [stdout] test validation::tests::test_cycle_detection ... ok [INFO] [stdout] test validation::tests::test_task_validator ... ok [INFO] [stdout] test validation::tests::test_task_validator_empty_name ... ok [INFO] [stdout] test validation::tests::test_valid_edges_rule ... ok [INFO] [stdout] test validation::tests::test_validation_report ... ok [INFO] [stdout] test validation::tests::test_workflow_validator ... ok [INFO] [stdout] test webhook::tests::test_build_headers_signature_matches_compute_signature ... ok [INFO] [stdout] test webhook::tests::test_compute_signature_with_secret_returns_64_hex_chars ... ok [INFO] [stdout] test webhook::tests::test_build_headers_with_secret ... ok [INFO] [stdout] test webhook::tests::test_build_headers_without_secret ... ok [INFO] [stdout] test webhook::tests::test_build_payload_step_completed_includes_step_name ... ok [INFO] [stdout] test webhook::tests::test_build_payload_with_variables ... ok [INFO] [stdout] test webhook::tests::test_build_payload_workflow_started ... ok [INFO] [stdout] test webhook::tests::test_compute_signature_deterministic ... ok [INFO] [stdout] test webhook::tests::test_compute_signature_different_payloads_differ ... ok [INFO] [stdout] test webhook::tests::test_compute_signature_no_secret_returns_none ... ok [INFO] [stdout] test webhook::tests::test_should_notify_empty_events_returns_false ... ok [INFO] [stdout] test webhook::tests::test_should_notify_non_matching_event ... ok [INFO] [stdout] test webhook::tests::test_should_notify_step_event_matches_by_type ... ok [INFO] [stdout] test websocket::tests::test_client_message_serialization ... ok [INFO] [stdout] test webhook::tests::test_hmac_sha256_is_64_hex_chars ... ok [INFO] [stdout] test webhook::tests::test_sha256_known_empty_value ... ok [INFO] [stdout] test webhook::tests::test_should_notify_matching_event ... ok [INFO] [stdout] test webhook::tests::test_webhook_event_step_name ... ok [INFO] [stdout] test websocket::tests::test_websocket_manager ... ok [INFO] [stdout] test websocket::tests::test_websocket_state_creation ... ok [INFO] [stdout] test webhook::tests::test_webhook_event_types ... ok [INFO] [stdout] test workflow::tests::test_add_edge ... ok [INFO] [stdout] test workflow::tests::test_add_edge_invalid_task ... ok [INFO] [stdout] test workflow::tests::test_conditional_edge ... ok [INFO] [stdout] test websocket::tests::test_workflow_event_serialization ... ok [INFO] [stdout] test workflow::tests::test_get_leaf_tasks ... ok [INFO] [stdout] test workflow::tests::test_get_root_tasks ... ok [INFO] [stdout] test workflow::tests::test_get_dependencies ... ok [INFO] [stdout] test workflow::tests::test_topological_sort ... ok [INFO] [stdout] test workflow::tests::test_validate_success ... ok [INFO] [stdout] test workflow::tests::test_workflow_creation ... ok [INFO] [stdout] test workflow::tests::test_workflow_state_terminal ... ok [INFO] [stdout] test workflow_audit::tests::test_all_entries_insertion_order ... ok [INFO] [stdout] test workflow::tests::test_add_task ... ok [INFO] [stdout] test workflow_audit::tests::test_audit_record_and_total ... ok [INFO] [stdout] test workflow_audit::tests::test_by_event_type ... ok [INFO] [stdout] test workflow_audit::tests::test_entries_for_unknown_run ... ok [INFO] [stdout] test workflow::tests::test_validate_cycle ... ok [INFO] [stdout] test workflow_audit::tests::test_entries_for_run ... ok [INFO] [stdout] test queue::tests::test_requeue ... ok [INFO] [stdout] test workflow::tests::test_has_cycle_no_cycle ... ok [INFO] [stdout] test workflow::tests::test_has_cycle_with_cycle ... ok [INFO] [stdout] test workflow_audit::tests::test_entry_description_with_actor ... ok [INFO] [stdout] test workflow_audit::tests::test_entry_with_context ... ok [INFO] [stdout] test workflow_audit::tests::test_event_type_as_str ... ok [INFO] [stdout] test workflow_audit::tests::test_entry_description_no_actor ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_checkpoint_task_count ... ok [INFO] [stdout] test workflow_audit::tests::test_event_type_is_state_change_false ... ok [INFO] [stdout] test workflow_audit::tests::test_event_type_is_state_change_true ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_clear ... ok [INFO] [stdout] test workflow_audit::tests::test_recent_entries ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_checkpoint_new ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_create_checkpoint ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_latest_none ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_multiple_checkpoints ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_default ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_checkpoint_task_completed ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_checkpoint_state ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_policy_label ... ok [INFO] [stdout] test workflow_compose::tests::test_execution_order_cycle_detection ... ok [INFO] [stdout] test workflow_compose::tests::test_cross_dependency ... ok [INFO] [stdout] test workflow_compose::tests::test_add_sub_workflow ... ok [INFO] [stdout] test workflow_compose::tests::test_execution_order_linear ... ok [INFO] [stdout] test workflow_compose::tests::test_flatten_conditional_dependency ... ok [INFO] [stdout] test workflow_compose::tests::test_diamond_dependency ... ok [INFO] [stdout] test workflow_compose::tests::test_invalid_dependency ... ok [INFO] [stdout] test workflow_compose::tests::test_flatten_creates_combined_workflow ... ok [INFO] [stdout] test workflow_compose::tests::test_meta_workflow_creation ... ok [INFO] [stdout] test workflow_compose::tests::test_flatten_preserves_names ... ok [INFO] [stdout] test workflow_compose::tests::test_root_and_leaf_sub_workflows ... ok [INFO] [stdout] test workflow_compose::tests::test_shared_variables ... ok [INFO] [stdout] test workflow_compose::tests::test_status_failed ... ok [INFO] [stdout] test workflow_compose::tests::test_status_tracking ... ok [INFO] [stdout] test workflow_compose::tests::test_sub_workflow_ref_display ... ok [INFO] [stdout] test workflow_compose::tests::test_total_task_count ... ok [INFO] [stdout] test triggers::server_tests::test_server_receives_post_triggers_workflow ... ok [INFO] [stdout] test workflow_diff::tests::test_config_change ... ok [INFO] [stdout] test triggers::server_tests::test_server_body_field_matching ... ok [INFO] [stdout] test triggers::server_tests::test_server_bad_signature_returns_404 ... ok [INFO] [stdout] test workflow_compose::tests::test_summary ... ok [INFO] [stdout] test workflow_diff::tests::test_added_task ... ok [INFO] [stdout] test workflow_diff::tests::test_added_edge ... ok [INFO] [stdout] test triggers::server_tests::test_server_signature_verification_accepted ... ok [INFO] [stdout] test triggers::server_tests::test_server_wrong_path_returns_404 ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_policy_display ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_retention_limit ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_manager_with_interval ... ok [INFO] [stdout] test workflow_checkpoint::tests::test_policy_all ... ok [INFO] [stdout] test workflow_diff::tests::test_complex_diff_multiple_changes ... ok [INFO] [stdout] test workflow_diff::tests::test_description_change ... ok [INFO] [stdout] test workflow_diff::tests::test_empty_workflows_diff ... ok [INFO] [stdout] test workflow_diff::tests::test_metadata_change ... ok [INFO] [stdout] test workflow_diff::tests::test_fail_fast_config_change ... ok [INFO] [stdout] test workflow_diff::tests::test_metadata_removed ... ok [INFO] [stdout] test workflow_diff::tests::test_identical_workflows_no_changes ... ok [INFO] [stdout] test workflow_diff::tests::test_modified_task_priority ... ok [INFO] [stdout] test workflow_diff::tests::test_removed_edge ... ok [INFO] [stdout] test workflow_diff::tests::test_name_change ... ok [INFO] [stdout] test workflow_diff::tests::test_removed_task ... ok [INFO] [stdout] test workflow_diff::tests::test_format_diff_output ... ok [INFO] [stdout] test workflow_diff::tests::test_metadata_added ... ok [INFO] [stdout] test workflow_diff::tests::test_modified_edge_condition ... ok [INFO] [stdout] test websocket::tests::test_broadcast_event ... ok [INFO] [stdout] test workflow_diff::tests::test_task_timeout_change ... ok [INFO] [stdout] test workflow_health_check::tests::test_check_result_constructors ... ok [INFO] [stdout] test workflow_health_check::tests::test_all_healthy ... ok [INFO] [stdout] test workflow_health_check::tests::test_count_by_status ... ok [INFO] [stdout] test workflow_health_check::tests::test_custom_thresholds ... ok [INFO] [stdout] test workflow_health_check::tests::test_failing_checks ... ok [INFO] [stdout] test workflow_health_check::tests::test_failure_rate_zero_workflows ... ok [INFO] [stdout] test workflow_health_check::tests::test_failure_rate_degraded ... ok [INFO] [stdout] test workflow_health_check::tests::test_format_health_report ... ok [INFO] [stdout] test workflow_health_check::tests::test_health_status_combine ... ok [INFO] [stdout] test workflow_health_check::tests::test_queue_depth_degraded ... ok [INFO] [stdout] test workflow_health_check::tests::test_queue_depth_unhealthy ... ok [INFO] [stdout] test workflow_health_check::tests::test_resource_util_unhealthy ... ok [INFO] [stdout] test workflow_health_check::tests::test_stuck_tasks_degraded ... ok [INFO] [stdout] test workflow_health_check::tests::test_scheduler_degraded ... ok [INFO] [stdout] test workflow_health_check::tests::test_stuck_tasks_unhealthy ... ok [INFO] [stdout] test workflow_import_export::tests::test_conditional_edge_roundtrip ... ok [INFO] [stdout] test triggers::server_tests::test_server_start_stop ... ok [INFO] [stdout] test workflow_import_export::tests::test_dag_export ... ok [INFO] [stdout] test workflow_import_export::tests::test_bundle_tags ... ok [INFO] [stdout] test workflow_import_export::tests::test_export_edges_use_names ... ok [INFO] [stdout] test workflow_import_export::tests::test_dag_roundtrip ... ok [INFO] [stdout] test workflow_import_export::tests::test_export_preserves_metadata ... ok [INFO] [stdout] test workflow_import_export::tests::test_export_workflow ... ok [INFO] [stdout] test workflow_import_export::tests::test_dag_with_parameters ... ok [INFO] [stdout] test workflow_import_export::tests::test_import_bad_edge_reference ... ok [INFO] [stdout] test workflow_import_export::tests::test_import_preserves_config ... ok [INFO] [stdout] test workflow_import_export::tests::test_import_preserves_priority ... ok [INFO] [stdout] test workflow_import_export::tests::test_import_workflow ... ok [INFO] [stdout] test workflow_import_export::tests::test_roundtrip_json ... ok [INFO] [stdout] test workflow_health_check::tests::test_health_status_display ... ok [INFO] [stdout] test workflow_health_check::tests::test_active_workflows_degraded ... ok [INFO] [stdout] test workflow_health_check::tests::test_overall_status_worst_wins ... ok [INFO] [stdout] test workflow_health_check::tests::test_resource_util_degraded ... ok [INFO] [stdout] test workflow_import_export::tests::test_serialize_json_pretty ... ok [INFO] [stdout] test workflow_import_export::tests::test_deserialize_json ... ok [INFO] [stdout] test workflow_import_export::tests::test_serialize_yaml ... ok [INFO] [stdout] test workflow_import_export::tests::test_serialize_json ... ok [INFO] [stdout] test workflow_log::tests::test_event_type_is_success ... ok [INFO] [stdout] test workflow_log::tests::test_event_type_label ... ok [INFO] [stdout] test workflow_log::tests::test_events_for_workflow ... ok [INFO] [stdout] test workflow_log::tests::test_events_of_type ... ok [INFO] [stdout] test workflow_log::tests::test_recent_errors_count ... ok [INFO] [stdout] test workflow_import_export::tests::test_roundtrip_yaml ... ok [INFO] [stdout] test workflow_import_export::tests::test_dag_yaml_roundtrip ... ok [INFO] [stdout] test workflow_log::tests::test_recent_errors_newest_first ... ok [INFO] [stdout] test workflow_log::tests::test_recent_errors_limit ... ok [INFO] [stdout] test workflow_log::tests::test_sequence_numbers_monotonic ... ok [INFO] [stdout] test workflow_log::tests::test_task_event_has_task_id ... ok [INFO] [stdout] test workflow_log::tests::test_workflow_event_no_task_id ... ok [INFO] [stdout] test workflow_import_export::tests::test_deserialize_yaml ... ok [INFO] [stdout] test workflow_log::tests::test_append_increments_len ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_aggregator_new_is_empty ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_avg_duration_none_when_empty ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_avg_duration_secs_correct ... ok [INFO] [stdout] test workflow_health_check::tests::test_check_result_with_value ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_failure_rate_by_step_sorted_desc ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_slowest_steps_returns_top_n ... ok [INFO] [stdout] test workflow_health_check::tests::test_custom_check ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_max_history_evicts_oldest ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_p95_duration_secs ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_success_rate_all_success ... ok [INFO] [stdout] test workflow_log::tests::test_clear_resets_sequence ... ok [INFO] [stdout] test workflow_log::tests::test_error_count ... ok [INFO] [stdout] test workflow_log::tests::test_event_type_is_error ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_success_rate_half_success ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_success_rate_zero_when_empty ... ok [INFO] [stdout] test workflow_metrics::tests::test_all_summaries_keys ... ok [INFO] [stdout] test workflow_metrics::tests::test_metric_display ... ok [INFO] [stdout] test workflow_health_check::tests::test_engine_info ... ok [INFO] [stdout] test workflow_health_check::tests::test_persistence_unhealthy ... ok [INFO] [stdout] test workflow_import_export::tests::test_bundle_format_version ... ok [INFO] [stdout] test workflow_log::tests::test_clear_resets_log ... ok [INFO] [stdout] test workflow_log::tests::test_event_type_display ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_p95_none_when_empty ... ok [INFO] [stdout] test workflow_log::tests::test_new_log_empty ... ok [INFO] [stdout] test workflow_metrics::aggregator_tests::test_record_increments_len ... ok [INFO] [stdout] test workflow_metrics::tests::test_metric_lower_is_better ... ok [INFO] [stdout] test workflow_metrics::tests::test_metric_summary_mean_empty ... ok [INFO] [stdout] test workflow_metrics::tests::test_metric_unit ... ok [INFO] [stdout] test workflow_metrics::tests::test_new_collector_empty ... ok [INFO] [stdout] test workflow_metrics::tests::test_record_value_increments_count ... ok [INFO] [stdout] test workflow_metrics::tests::test_reset_clears_samples ... ok [INFO] [stdout] test workflow_migration::tests::test_full_migration ... ok [INFO] [stdout] test workflow_migration::tests::test_change_type_missing_field ... ok [INFO] [stdout] test workflow_migration::tests::test_migration_step_rename_field ... ok [INFO] [stdout] test workflow_migration::tests::test_migration_step_add_field ... ok [INFO] [stdout] test workflow_migration::tests::test_registry_find_path ... ok [INFO] [stdout] test workflow_migration::tests::test_registry_already_current ... ok [INFO] [stdout] test workflow_migration::tests::test_registry_no_path ... ok [INFO] [stdout] test workflow_migration::tests::test_migration_step_remove_field ... ok [INFO] [stdout] test workflow_migration::tests::test_version_compatibility ... ok [INFO] [stdout] test workflow_migration::tests::test_version_display ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_dependencies_listed_via_edges ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_dependencies_listed_via_task_deps ... ok [INFO] [stdout] test workflow_migration::tests::test_version_ordering ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_empty_workflow ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_estimated_duration_sum ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_multiple_dependencies ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_multiple_tasks_step_count ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_no_warnings_for_simple_valid_workflow ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_simulation_report_all_fields_accessible ... ok [INFO] [stdout] test workflow_metrics::tests::test_samples_for_filters_correctly ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_single_task_no_deps ... ok [INFO] [stdout] test workflow_metrics::tests::test_single_sample_summary ... ok [INFO] [stdout] test workflow_metrics::tests::test_summarize_count ... ok [INFO] [stdout] test workflow_metrics::tests::test_summarize_mean ... ok [INFO] [stdout] test workflow_metrics::tests::test_summarize_min_max ... ok [INFO] [stdout] test workflow_metrics::tests::test_summarize_none_for_missing_metric ... ok [INFO] [stdout] test workflow_migration::tests::test_known_versions ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_single_task_step_count ... ok [INFO] [stdout] test workflow_migration::tests::test_registry_downgrade_not_supported ... ok [INFO] [stdout] test workflow_migration::tests::test_step_count ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_wait_task_uses_actual_duration ... ok [INFO] [stdout] test workflow_simulation::dry_run_tests::test_dry_run_warnings_for_empty_workflow ... ok [INFO] [stdout] test workflow_simulation::tests::test_conditions_default_true ... ok [INFO] [stdout] test workflow_simulation::tests::test_critical_path_parallel ... ok [INFO] [stdout] test workflow_simulation::tests::test_estimated_durations ... ok [INFO] [stdout] test workflow_simulation::tests::test_node_statuses_map ... ok [INFO] [stdout] test workflow_simulation::tests::test_quick_simulate_success ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_all_succeed ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_blocked_on_failure ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_diamond_dag ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_with_conditions ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_single_node ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_with_failing_task ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_empty_dag ... ok [INFO] [stdout] test workflow_simulation::tests::test_simulate_with_outputs ... ok [INFO] [stdout] test workflow_simulation::tests::test_trace_dependencies_recorded ... ok [INFO] [stdout] test workflow_simulation::tests::test_trace_visit_order ... ok [INFO] [stdout] test workflow_snapshot::tests::test_captured_task_state_display ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_seq_display ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_seq_ordering ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_clear ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_diff ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_diff_new_task ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_latest ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_max_retention ... ok [INFO] [stdout] test workflow_snapshot::tests::test_snapshot_store_take_and_get ... ok [INFO] [stdout] test workflow_snapshot::tests::test_task_snapshot_builder ... ok [INFO] [stdout] test workflow_snapshot::tests::test_task_snapshot_terminal ... ok [INFO] [stdout] test workflow_snapshot::tests::test_workflow_snapshot_basic ... ok [INFO] [stdout] test workflow_snapshot::tests::test_workflow_snapshot_completion_ratio ... ok [INFO] [stdout] test workflow_snapshot::tests::test_workflow_snapshot_empty_ratio ... ok [INFO] [stdout] test workflow_snapshot::tests::test_workflow_snapshot_find_task ... ok [INFO] [stdout] test workflow_template::tests::test_archive_and_proxy_has_three_steps ... ok [INFO] [stdout] test workflow_template::tests::test_audio_podcast_has_five_steps ... ok [INFO] [stdout] test workflow_template::tests::test_broadcast_delivery_has_four_steps ... ok [INFO] [stdout] test workflow_template::tests::test_ingest_and_transcode_has_four_steps ... ok [INFO] [stdout] test workflow_template::tests::test_instantiate_missing_required_param_returns_err ... ok [INFO] [stdout] test workflow_template::tests::test_instantiate_substitutes_placeholders ... ok [INFO] [stdout] test workflow_template::tests::test_live_event_clip_has_four_steps ... ok [INFO] [stdout] test workflow_template::tests::test_list_all_returns_eight_templates ... ok [INFO] [stdout] test workflow_template::tests::test_newsroom_fast_has_three_steps ... ok [INFO] [stdout] test workflow_template::tests::test_instantiate_optional_defaults_applied ... ok [INFO] [stdout] test workflow_template::tests::test_quality_check_has_three_steps ... ok [INFO] [stdout] test workflow_template::tests::test_social_media_package_has_five_steps ... ok [INFO] [stdout] test workflow_template::tests::test_to_dot_contains_digraph ... ok [INFO] [stdout] test workflow_template::tests::test_to_dot_contains_edges ... ok [INFO] [stdout] test workflow_template::tests::test_to_dot_contains_step_ids ... ok [INFO] [stdout] test workflow_template::tests::test_workflow_template_kind_display ... ok [INFO] [stdout] test workflow_throttle::tests::test_policy_all ... ok [INFO] [stdout] test workflow_throttle::tests::test_policy_display ... ok [INFO] [stdout] test workflow_throttle::tests::test_policy_label ... ok [INFO] [stdout] test workflow_throttle::tests::test_state_default ... ok [INFO] [stdout] test workflow_throttle::tests::test_state_has_capacity ... ok [INFO] [stdout] test workflow_throttle::tests::test_state_utilisation ... ok [INFO] [stdout] test workflow_throttle::tests::test_state_utilisation_zero_capacity ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_fixed_admit ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_release_empty_queue ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_release_promotes_queued ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_reset ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_total_counters ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_unlimited ... ok [INFO] [stdout] test workflow_throttle::tests::test_throttler_utilisation ... ok [INFO] [stdout] test workflow_version::tests::test_is_compatible_different_major ... ok [INFO] [stdout] test workflow_version::tests::test_is_compatible_with_older_minor ... ok [INFO] [stdout] test workflow_version::tests::test_is_compatible_with_same_major ... ok [INFO] [stdout] test workflow_version::tests::test_migration_from_version ... ok [INFO] [stdout] test workflow_version::tests::test_migration_is_major ... ok [INFO] [stdout] test workflow_version::tests::test_migration_not_major ... ok [INFO] [stdout] test workflow_version::tests::test_registry_add_migration_and_lookup ... ok [INFO] [stdout] test workflow_version::tests::test_registry_empty_latest ... ok [INFO] [stdout] test workflow_version::tests::test_registry_missing_migration ... ok [INFO] [stdout] test workflow_version::tests::test_registry_register_and_latest ... ok [INFO] [stdout] test workflow_version::tests::test_registry_version_count ... ok [INFO] [stdout] test workflow_version::tests::test_version_new_and_display ... ok [INFO] [stdout] test workflow_version::tests::test_version_ordering ... ok [INFO] [stdout] test workflow_version::tests::test_version_parse_invalid ... ok [INFO] [stdout] test workflow_version::tests::test_version_parse_valid ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 872 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Doc-tests oximedia_workflow [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test src/checkpoint.rs - checkpoint (line 16) - compile ... ok [INFO] [stdout] test src/lib.rs - (line 16) ... ok [INFO] [stdout] test src/parallel_steps.rs - parallel_steps (line 9) ... ok [INFO] [stdout] test src/lib.rs - (line 31) ... ok [INFO] [stdout] test src/webhook.rs - webhook (line 13) ... ok [INFO] [stdout] test src/checkpoint.rs - checkpoint::should_skip_step (line 258) ... ok [INFO] [stdout] test src/workflow_compose.rs - workflow_compose (line 9) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.79s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c6e239aa0b426d8e4fc960313e3309fb7dd6298e26a710b2d8fc86b8c5be8d31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c6e239aa0b426d8e4fc960313e3309fb7dd6298e26a710b2d8fc86b8c5be8d31", kill_on_drop: false }` [INFO] [stdout] c6e239aa0b426d8e4fc960313e3309fb7dd6298e26a710b2d8fc86b8c5be8d31