[INFO] fetching crate llm-mux 20260905.0.0...
[INFO] testing llm-mux-20260905.0.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate llm-mux 20260905.0.0 into /workspace/builds/worker-1-tc2/source
[INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate llm-mux 20260905.0.0
[INFO] finished tweaking crates.io crate llm-mux 20260905.0.0
[INFO] tweaked toml for crates.io crate llm-mux 20260905.0.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate llm-mux 20260905.0.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate llm-mux 20260905.0.0 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e
[INFO] running `Command { std: "docker" "start" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling zmij v1.0.20
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling deranged v0.5.6
[INFO] [stderr]    Compiling time-core v0.1.7
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling time v0.3.45
[INFO] [stderr]    Compiling self_cell v1.2.2
[INFO] [stderr]    Compiling memo-map v0.3.3
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling shellexpand v3.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling minijinja v2.15.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling llm-mux v20260905.0.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `tracing-appender`
[INFO] [stderr]   --> Cargo.toml:66:15
[INFO] [stderr]    |
[INFO] [stderr] 66 | [dependencies.tracing-appender]
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing-appender`
[INFO] [stderr] warning: `llm-mux` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 36s
[INFO] running `Command { std: "docker" "inspect" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling llm-mux v20260905.0.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `tracing-appender`
[INFO] [stderr]   --> Cargo.toml:66:15
[INFO] [stderr]    |
[INFO] [stderr] 66 | [dependencies.tracing-appender]
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing-appender`
[INFO] [stderr] warning: `llm-mux` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 54.02s
[INFO] running `Command { std: "docker" "inspect" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused dependency `tracing-appender`
[INFO] [stderr]   --> Cargo.toml:66:15
[INFO] [stderr]    |
[INFO] [stderr] 66 | [dependencies.tracing-appender]
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tracing-appender`
[INFO] [stderr] warning: `llm-mux` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/llm-mux/a22f60cad1f32c0a/out/llm_mux-a22f60cad1f32c0a)
[INFO] [stdout] 
[INFO] [stdout] running 302 tests
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_apply_full_file_create ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_rejects_absolute_path ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_apply_old_new_create_file ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_rejects_dangling_symlink_create_escape ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_allows_curdir_prefixed_path ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_apply_unified_diff ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_old_text_not_found ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_empty_old_replaces_existing_file_with_backup ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_rejects_parent_traversal ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_apply_old_new_exact ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_allows_legitimate_nested_path ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_batch_failure_rolls_back_prior_modifications_and_creations ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_same_named_files_get_distinct_backups ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_rejects_parent_traversal_for_old_new_create ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_normalize_whitespace ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_backup_created ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_fuzzy_matching_whitespace ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_diff_line_types ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_parse_full_file_json ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_extract_json_from_markdown ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_build_retry_prompt_custom ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_parse_edits_array ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_build_retry_prompt_default ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_config_default ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_rejects_symlinked_parent_escape ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_parse_unified_diff_multiple_hunks ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_no_edits_found ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_parse_unified_diff_single_hunk ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_result_is_complete ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_apply_verify_failure_no_retry ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_strategy_from_str ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_apply_verify_result_helpers ... ok
[INFO] [stdout] test apply_and_verify::edit_parser::tests::test_parse_old_new_json ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_successful_command ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_verify_result_constructors ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_backup ... ok
[INFO] [stdout] test apply_and_verify::diff_applier::tests::test_empty_old_batch_failure_restores_existing_file ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_cleanup_backups ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_none ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_removes_created_files ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_apply_only ... ok
[INFO] [stdout] test apply_and_verify::rollback::tests::test_rollback_backup_restores_repeated_edits_in_reverse_order ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_apply_no_verify ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_command_with_stderr ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_working_directory ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_uses_request_working_directory ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_codex_jsonl_extracts_final_agent_message ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_failing_command ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_apply_verify_success ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_echo ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_combined_output ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_unavailable ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_is_available ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_array ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_codex_jsonl_extracts_token_usage ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_from_config ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_direct ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_from_generic_block ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_from_code_block ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_nested ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_immediate_success ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_no_retry_on_non_retryable ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_none ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_json_output ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_failure ... ok
[INFO] [stdout] test backend_executor::output_parser::tests::test_extract_json_embedded ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_helper_functions ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_retry_budget_caps_all_attempts_and_backoff ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_timeout_and_rate_limit_flags_control_retries ... ok
[INFO] [stdout] test backend_executor::tests::test_create_cli_executor ... ok
[INFO] [stdout] test backend_executor::tests::test_backend_error_display ... ok
[INFO] [stdout] test backend_executor::types::tests::test_backend_request_builder ... ok
[INFO] [stdout] test backend_executor::types::tests::test_backend_error_retryable ... ok
[INFO] [stdout] test backend_executor::types::tests::test_backend_response_builder ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_retry_after_is_capped ... ok
[INFO] [stdout] test backend_executor::types::tests::test_retry_policy_honors_backend_flags ... ok
[INFO] [stdout] test backend_executor::types::tests::test_retry_policy_delays ... ok
[INFO] [stdout] test backend_executor::types::tests::test_retry_policy_with_jitter ... ok
[INFO] [stdout] test cli::commands::tests::test_list_roles_empty ... ok
[INFO] [stdout] test cli::commands::tests::test_list_backends_empty ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_retry_succeeds_after_failures ... ok
[INFO] [stdout] test cli::commands::tests::test_list_teams_empty ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_retry_exhausted ... ok
[INFO] [stdout] test cli::commands::tests::test_parse_workflow_args_mixed ... ok
[INFO] [stdout] test cli::commands::tests::test_resolve_workflow_args_applies_defaults_and_checks_required ... ok
[INFO] [stdout] test cli::output::tests::test_console_format_duration ... ok
[INFO] [stdout] test cli::output::tests::test_create_handler ... ok
[INFO] [stdout] test cli::commands::tests::test_parse_workflow_args_key_value ... ok
[INFO] [stdout] test cli::commands::tests::test_parse_workflow_args_positional ... ok
[INFO] [stdout] test cli::output::tests::test_json_handler_serializes ... ok
[INFO] [stdout] test cli::output::tests::test_output_mode_from_str ... ok
[INFO] [stdout] test cli::signals::tests::test_cancellation_token_cancel ... ok
[INFO] [stdout] test backend_executor::retry::tests::test_retry_backoff_observes_cancellation ... ok
[INFO] [stdout] test cli::output::tests::test_mock_handler_captures_events ... ok
[INFO] [stdout] test cli::signals::tests::test_cancellation_token_new ... ok
[INFO] [stdout] test cli::signals::tests::test_shutdown_flag ... ok
[INFO] [stdout] test cli::signals::tests::test_with_cancellation_cancelled ... ok
[INFO] [stdout] test config::backend::tests::test_deserialize_http_backend ... ok
[INFO] [stdout] test config::backend::tests::test_deserialize_minimal ... ok
[INFO] [stdout] test cli::signals::tests::test_cancellation_token_clone ... ok
[INFO] [stdout] test config::backend::tests::test_deserialize_full ... ok
[INFO] [stdout] test cli::signals::tests::test_with_cancellation_completes ... ok
[INFO] [stdout] test config::backend::tests::test_reject_unknown_fields ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_config ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_get_by_tag ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_get_by_type ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_get_dependencies ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_knowledge ... ok
[INFO] [stdout] test config::ecosystem::tests::test_project_config_full ... ok
[INFO] [stdout] test config::ecosystem::tests::test_project_config_minimal ... ok
[INFO] [stdout] test config::env_expand::tests::expand_dollar_without_brace_passthrough ... ok
[INFO] [stdout] test config::env_expand::tests::expand_empty_string ... ok
[INFO] [stdout] test config::env_expand::tests::expand_literal_passthrough ... ok
[INFO] [stdout] test config::ecosystem::tests::test_ecosystem_get_dependents ... ok
[INFO] [stdout] test config::env_expand::tests::expand_single_var ... ok
[INFO] [stdout] test config::env_expand::tests::expand_multiple_vars ... ok
[INFO] [stdout] test config::env_expand::tests::expand_unset_var_errors ... ok
[INFO] [stdout] test config::env_expand::tests::expand_empty_var_name_errors ... ok
[INFO] [stdout] test config::env_expand::tests::expand_var_within_string ... ok
[INFO] [stdout] test config::error::tests::test_error_kind_retryable ... ok
[INFO] [stdout] test config::env_expand::tests::expand_unterminated_brace_errors ... ok
[INFO] [stdout] test config::loader::tests::test_config_merge ... ok
[INFO] [stdout] test config::error::tests::test_step_error_display ... ok
[INFO] [stdout] test config::loader::tests::test_load_config_file ... ok
[INFO] [stdout] test config::loader::tests::test_load_empty_config ... ok
[INFO] [stdout] test config::loader::tests::test_available_workflows_includes_builtin_and_project_files ... ok
[INFO] [stdout] test config::loader::tests::test_load_passes_through_literal_api_key ... ok
[INFO] [stdout] test config::loader::tests::test_load_expands_api_key_env_placeholder ... ok
[INFO] [stdout] test config::loader::tests::test_all_shipped_workflow_examples_parse_and_validate ... ok
[INFO] [stdout] test config::loader::tests::test_repository_review_is_a_valid_builtin ... ok
[INFO] [stdout] test config::loader::tests::test_load_fails_when_referenced_env_var_unset ... ok
[INFO] [stdout] test config::env_expand::tests::expand_empty_var_errors ... ok
[INFO] [stdout] test config::loader::tests::test_untrusted_project_cannot_set_command_wrapper ... ok
[INFO] [stdout] test config::loader::tests::test_step_result ... ok
[INFO] [stdout] test config::loader::tests::test_project_workflow_requires_explicit_trust ... ok
[INFO] [stdout] test config::loader::tests::test_untrusted_project_may_still_set_safe_backend_metadata ... ok
[INFO] [stdout] test config::loader::tests::test_untrusted_project_new_backend_is_disabled ... ok
[INFO] [stdout] test config::role::tests::test_role_config_minimal ... ok
[INFO] [stdout] test config::role::tests::test_team_get_backends ... ok
[INFO] [stdout] test config::loader::tests::test_untrusted_project_cannot_override_backend_command ... ok
[INFO] [stdout] test config::workflow::tests::test_step_config_query ... ok
[INFO] [stdout] test config::loader::tests::test_untrusted_project_cannot_override_backend_environment_or_credentials ... ok
[INFO] [stdout] test config::workflow::tests::test_step_config_shell ... ok
[INFO] [stdout] test config::workflow::tests::test_workflow_validation ... ok
[INFO] [stdout] test config::role::tests::test_team_config ... ok
[INFO] [stdout] test config::loader::tests::test_trusted_load_honors_project_backends ... ok
[INFO] [stdout] test config::role::tests::test_role_config_parallel ... ok
[INFO] [stdout] test config::workflow::tests::test_validation_rejects_unimplemented_execution_contracts ... ok
[INFO] [stdout] test config::workflow::tests::test_workflow_config ... ok
[INFO] [stdout] test memory::schema::tests::test_init_schema ... ok
[INFO] [stdout] test process::tests::exit_code_passthrough ... ok
[INFO] [stdout] test process::tests::signal_exit_code ... ok
[INFO] [stdout] test memory::store::tests::test_get_entities_by_type ... ok
[INFO] [stdout] test memory::store::tests::test_record_workflow_run ... ok
[INFO] [stdout] test memory::store::tests::test_entity_property_tracking ... ok
[INFO] [stdout] test process::tests::test_capture_exit_code ... ok
[INFO] [stdout] test memory::store::tests::test_add_and_get_facts ... ok
[INFO] [stdout] test memory::store::tests::test_add_and_get_findings ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_no_pipes ... ok
[INFO] [stdout] test role::role_executor::tests::test_all_failed ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_replaces_invalid_utf8 ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_both_streams ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_stderr_only ... ok
[INFO] [stdout] test role::role_executor::tests::test_role_result_to_step_result ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_nonzero_exit ... ok
[INFO] [stdout] test process::tests::test_wait_for_child_output_stdout_only ... ok
[INFO] [stdout] test role::role_executor::tests::test_disabled_backend_skipped ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_global_role ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_backend_not_found ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_fallback_to_global ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_role_not_found ... ok
[INFO] [stdout] test role::role_executor::tests::test_execute_first_mode ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_no_backends ... ok
[INFO] [stdout] test role::role_resolver::tests::test_available_roles ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_role_function ... ok
[INFO] [stdout] test role::role_resolver::tests::test_resolve_team_override ... ok
[INFO] [stdout] test role::team_detector::tests::test_cli_override ... ok
[INFO] [stdout] test role::team_detector::tests::test_detect_node ... ok
[INFO] [stdout] test role::team_detector::tests::test_detect_rust ... ok
[INFO] [stdout] test role::team_detector::tests::test_detect_ruby ... ok
[INFO] [stdout] test role::team_detector::tests::test_detect_none ... ok
[INFO] [stdout] test role::team_detector::tests::test_unknown_override ... ok
[INFO] [stdout] test role::team_detector::tests::test_default_teams ... ok
[INFO] [stdout] test role::team_detector::tests::test_detect_team_function ... ok
[INFO] [stdout] test role::tests::test_full_resolution_flow ... ok
[INFO] [stdout] test run_ledger::tests::failed_steps_are_not_resumed ... ok
[INFO] [stdout] test run_ledger::tests::records_and_reloads_complete_run ... ok
[INFO] [stdout] test template::conditionals::tests::test_empty_condition ... ok
[INFO] [stdout] test template::conditionals::tests::test_boolean_or ... ok
[INFO] [stdout] test template::conditionals::tests::test_evaluate_expression_bool ... ok
[INFO] [stdout] test template::conditionals::tests::test_evaluate_expression_string ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_backup_rollback_preserves_uncommitted_user_work ... ok
[INFO] [stdout] test role::role_executor::tests::test_execute_parallel_mode ... ok
[INFO] [stdout] test template::conditionals::tests::test_boolean_and ... ok
[INFO] [stdout] test template::conditionals::tests::test_boolean_not ... ok
[INFO] [stdout] test role::tests::test_execution_flow ... ok
[INFO] [stdout] test template::conditionals::tests::test_false_literal ... ok
[INFO] [stdout] test template::conditionals::tests::test_step_output_access ... ok
[INFO] [stdout] test template::conditionals::tests::test_string_equality ... ok
[INFO] [stdout] test template::conditionals::tests::test_string_inequality ... ok
[INFO] [stdout] test template::conditionals::tests::test_should_execute_step_true_condition ... ok
[INFO] [stdout] test template::context::tests::test_context_creation ... ok
[INFO] [stdout] test template::conditionals::tests::test_parentheses ... ok
[INFO] [stdout] test template::context::tests::test_item_iteration ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_large_stderr_stdout_eof ... ok
[INFO] [stdout] test template::conditionals::tests::test_should_execute_step_false_condition ... ok
[INFO] [stdout] test template::conditionals::tests::test_should_execute_step_no_condition ... ok
[INFO] [stdout] test template::conditionals::tests::test_true_literal ... ok
[INFO] [stdout] test template::conditionals::tests::test_undefined_variable_error ... ok
[INFO] [stdout] test template::context::tests::test_context_with_args ... ok
[INFO] [stdout] test template::engine::tests::test_item_in_for_each ... ok
[INFO] [stdout] test template::context::tests::test_add_step ... ok
[INFO] [stdout] test template::engine::tests::test_for_loop_in_template ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_auto_escapes ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_explicit_escape_is_not_double_escaped ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_simple_value ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_step_output ... ok
[INFO] [stdout] test apply_and_verify::retry_loop::tests::test_git_rollback_loses_uncommitted_work_regression_guard ... ok
[INFO] [stdout] test template::context::tests::test_value_as_bool ... ok
[INFO] [stdout] test template::engine::tests::test_nested_step_access ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_literal_text_not_escaped ... ok
[INFO] [stdout] test template::engine::tests::test_render_shell_quotes_in_value ... ok
[INFO] [stdout] test template::engine::tests::test_render_with_args ... ok
[INFO] [stdout] test template::engine::tests::test_render_with_filters ... ok
[INFO] [stdout] test template::engine::tests::test_render_with_step_output ... ok
[INFO] [stdout] test template::context::tests::test_known_variables ... ok
[INFO] [stdout] test template::engine::tests::test_shell_escape_filter ... ok
[INFO] [stdout] test template::engine::tests::test_conditional_in_template ... ok
[INFO] [stdout] test template::engine::tests::test_env_access ... ok
[INFO] [stdout] test template::errors::tests::test_levenshtein_distance ... ok
[INFO] [stdout] test template::errors::tests::test_error_display ... ok
[INFO] [stdout] test template::engine::tests::test_simple_render ... ok
[INFO] [stdout] test template::engine::tests::test_render_trimmed ... ok
[INFO] [stdout] test template::errors::tests::test_source_location_display ... ok
[INFO] [stdout] test template::errors::tests::test_suggest_correction ... ok
[INFO] [stdout] test template::filters::tests::test_default_filter_with_value ... ok
[INFO] [stdout] test template::filters::tests::test_first_filter_empty ... ok
[INFO] [stdout] test template::filters::tests::test_default_filter ... ok
[INFO] [stdout] test template::filters::tests::test_first_filter ... ok
[INFO] [stdout] test template::filters::tests::test_join_filter ... ok
[INFO] [stdout] test template::filters::tests::test_join_filter_custom_separator ... ok
[INFO] [stdout] test template::filters::tests::test_json_filter ... ok
[INFO] [stdout] test template::filters::tests::test_json_filter_array ... ok
[INFO] [stdout] test template::filters::tests::test_join_filter_default_separator ... ok
[INFO] [stdout] test template::filters::tests::test_last_filter ... ok
[INFO] [stdout] test template::filters::tests::test_shell_escape_quotes ... ok
[INFO] [stdout] test template::filters::tests::test_lines_filter ... ok
[INFO] [stdout] test template::filters::tests::test_shell_escape_simple ... ok
[INFO] [stdout] test template::filters::tests::test_shell_escape_special_chars ... ok
[INFO] [stdout] test template::engine::tests::test_validate_good_template ... ok
[INFO] [stdout] test template::filters::tests::test_shell_escape_spaces ... ok
[INFO] [stdout] test template::filters::tests::test_strftime_filter_custom_format ... ok
[INFO] [stdout] test template::engine::tests::test_syntax_error ... ok
[INFO] [stdout] test template::engine::tests::test_validate_bad_template ... ok
[INFO] [stdout] test template::engine::tests::test_undefined_variable_error ... ok
[INFO] [stdout] test template::filters::tests::test_strftime_filter_now ... ok
[INFO] [stdout] test template::filters::tests::test_strftime_filter_rfc3339 ... ok
[INFO] [stdout] test template::filters::tests::test_truncate_chars_filter_preserves_unicode_boundaries ... ok
[INFO] [stdout] test template::filters::tests::test_trim_filter ... ok
[INFO] [stdout] test template::tests::test_error_suggestions ... ok
[INFO] [stdout] test template::tests::test_for_each_iteration ... ok
[INFO] [stdout] test template::tests::test_full_workflow ... ok
[INFO] [stdout] test template::tests::test_shell_safety ... ok
[INFO] [stdout] test tests::parses_project_workflow_trust_flag ... ok
[INFO] [stdout] test tests::parses_run_ledger_commands ... ok
[INFO] [stdout] test workflow::ecosystem_detector::tests::test_detect_ecosystem_in_project ... ok
[INFO] [stdout] test workflow::ecosystem_detector::tests::test_detect_ecosystem_not_found ... ok
[INFO] [stdout] test workflow::ecosystem_detector::tests::test_detect_ecosystem_in_subdirectory ... ok
[INFO] [stdout] test workflow::executor::tests::test_dry_run_query_renders_prompt_without_calling_backend ... ok
[INFO] [stdout] test workflow::executor::tests::test_dry_run_store_renders_data_without_opening_database ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_continue_on_error ... ok
[INFO] [stdout] test backend_executor::cli_backend::tests::test_cli_backend_timeout ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_query_step ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_skipped_condition ... ok
[INFO] [stdout] test apply_and_verify::verification::tests::test_timeout ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_step ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_failure ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_with_template ... ok
[INFO] [stdout] test workflow::runner::tests::test_circular_dependency_detection ... ok
[INFO] [stdout] test backend_executor::http_backend::tests::test_http_backend_builder ... ok
[INFO] [stdout] test workflow::runner::tests::test_topological_sort ... ok
[INFO] [stdout] test workflow::runner::tests::test_run_simple_workflow ... ok
[INFO] [stdout] test workflow::runner::tests::test_unknown_dependency_detection ... ok
[INFO] [stdout] test workflow::state::tests::test_failure_propagation ... ok
[INFO] [stdout] test workflow::state::tests::test_state_creation ... ok
[INFO] [stdout] test workflow::state::tests::test_dependencies_met ... ok
[INFO] [stdout] test workflow::state::tests::test_to_template_context ... ok
[INFO] [stdout] test workflow::state::tests::test_add_result ... ok
[INFO] [stdout] test workflow::state::tests::test_workflow_result ... ok
[INFO] [stdout] test workflow::runner::tests::test_resume_reuses_successful_steps_and_runs_remaining_tail ... ok
[INFO] [stdout] test workflow::runner::tests::test_step_output_in_template ... ok
[INFO] [stdout] test workflow::runner::tests::test_workflow_with_args ... ok
[INFO] [stdout] test backend_executor::http_backend::tests::test_map_http_error ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_timeout_continue_on_error ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_timeout ... ok
[INFO] [stdout] test backend_executor::tests::test_create_http_executor ... ok
[INFO] [stdout] test backend_executor::http_backend::tests::test_from_config ... ok
[INFO] [stdout] test workflow::runner::tests::test_workflow_timeout_is_enforced ... ok
[INFO] [stdout] test backend_executor::http_backend::tests::test_chat_completion_url ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_cancellation_kills_descendants ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_timeout_kills_descendants ... ok
[INFO] [stdout] test workflow::executor::tests::test_execute_shell_timeout_success ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 302 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.17s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e", kill_on_drop: false }`
[INFO] [stdout] 169b45e26644d44696fc24717b27525676caa38c5cf67d124a9c682200bd871e
