[INFO] fetching crate theway-core 0.1.27...
[INFO] testing theway-core-0.1.27 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate theway-core 0.1.27 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate theway-core 0.1.27
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate theway-core 0.1.27
[INFO] tweaked toml for crates.io crate theway-core 0.1.27 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate theway-core 0.1.27 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate theway-core 0.1.27 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded compression-codecs v0.4.41
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.78
[INFO] [stderr]   Downloaded async-compression v0.4.46
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.12
[INFO] [stderr]   Downloaded tinyvec v1.13.2
[INFO] [stderr]   Downloaded cc v1.4.5
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.57
[INFO] [stderr]   Downloaded theway-contract v0.1.27
[INFO] [stderr]   Downloaded tests-bridge-macro v0.1.27
[INFO] [stderr]   Downloaded mermaid-rs-parser v0.1.0
[INFO] [stderr]   Downloaded json5 v1.3.1
[INFO] [stderr]   Downloaded rustls v0.23.44
[INFO] [stderr]   Downloaded zerocopy v0.8.57
[INFO] [stderr]   Downloaded web-sys v0.3.105
[INFO] [stderr]   Downloaded theway-llm-provider v0.1.27
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3
[INFO] running `Command { std: "docker" "start" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", 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" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", 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" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.16.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.12
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling rustls v0.23.44
[INFO] [stderr]    Compiling compression-core v0.4.33
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling cc v1.4.5
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling ref-cast v1.0.27
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling compression-codecs v0.4.41
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling globset v0.4.20
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling ref-cast-impl v1.0.27
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling json5 v1.3.1
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling mermaid-rs-parser v0.1.0
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling theway-contract v0.1.27
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling async-compression v0.4.46
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling theway-llm-provider v0.1.27
[INFO] [stderr]    Compiling theway-core v0.1.27 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> src/agent/runtime_extensions/scope.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 66 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 66 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.64s
[INFO] running `Command { std: "docker" "inspect" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", 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" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling zerocopy-derive v0.8.57
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling tests-bridge-macro v0.1.27
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling theway-contract v0.1.27
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling async-compression v0.4.46
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling theway-llm-provider v0.1.27
[INFO] [stderr]    Compiling theway-core v0.1.27 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> src/agent/runtime_extensions/scope.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 66 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 66 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> src/agent/runtime_extensions/scope.rs:66:10
[INFO] [stdout]    |
[INFO] [stdout] 66 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 66 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout] 66 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", 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" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]   --> src/agent/runtime_extensions/scope.rs:66:10
[INFO] [stderr]    |
[INFO] [stderr] 66 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 66 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr] 66 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |current| {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `theway-core` (lib) generated 1 warning (run `cargo fix --lib -p theway-core` to apply 1 suggestion)
[INFO] [stderr] warning: `theway-core` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/theway_core-fbb1cedf0a6ab799)
[INFO] [stdout] 
[INFO] [stdout] running 795 tests
[INFO] [stdout] test agent::assembly::tests::harness_helpers::build_system_prompt_combines_base_and_skills ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::cap_control_plane_audit_label_caps_at_200_chars ... ok
[INFO] [stdout] test agent::assembly::assembly_linecov_tests::tests::subscribe_passthrough_unsubscribes ... ok
[INFO] [stdout] test agent::assembly::assembly_linecov_tests::tests::make_session_listener_records_control_plane_persist_error ... ok
[INFO] [stdout] test agent::assembly::assembly_linecov_tests::tests::abort_cancels_active_hook_token ... ok
[INFO] [stdout] test agent::assembly::assembly_linecov_tests::tests::record_turn_end_decision_emits_persistence_error_when_append_fails ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::check_budget_cap_allows_when_cost_below_cap ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::extract_user_message_text_handles_text_blocks_and_empty ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::extract_user_prompt_text_returns_none_for_non_user ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::finish_persisted_run_prefers_run_error_then_persist_error ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::harness_construction_falls_back_to_dot_cwd_when_blank ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::make_session_listener_persists_message_and_control_plane_prompt ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::ensure_session_start_emitted_fires_once ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::make_session_listener_records_persist_errors ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::subscribe_harness_unsubscribe_noop_after_listener_removed ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::harness_defaults_to_behavior_neutral_runtime_extension_port ... ok
[INFO] [stdout] test agent::assembly::tests::mcp_tools::replace_mcp_tools_drops_new_tools_with_colliding_names ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::last_user_text_from_state_finds_most_recent_user_text ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::shutdown_runtime_extensions_times_out_when_run_never_idles ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::preview_for_banner_truncates_with_ellipsis ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::turn_end_decision_from_action_sets_none_payload ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::check_budget_cap_uses_configured_cap ... ok
[INFO] [stdout] test agent::assembly::tests::harness_helpers::turn_end_action_audit_str_maps_only_non_noop ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::subscribe_harness_receives_and_unsubscribes ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::continue_after_assistant_only_transcript_runs ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::on_turn_end_hook_continue_respects_cap_zero ... ok
[INFO] [stdout] test agent::assembly::tests::mcp_tools::replace_mcp_tools_leaves_non_old_tools_of_same_name_untouched ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::prompt_with_images_and_prompt_from_template_run ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::compaction_lifecycle::compaction_observation_with_non_object_payload_is_ignored ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::prompt_with_input_with_images_appends_record_and_image_blocks ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::on_turn_end_hook_stop_pause_and_noop_paths ... ok
[INFO] [stdout] test agent::assembly::tests::harness_lifecycle::abort_interrupt_enqueue_passthroughs_are_noops_without_active_run ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::user_input_record_round_trips_through_persisted_json ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::prompt_paths_without_input_append_no_record ... ok
[INFO] [stdout] test agent::assembly::tests::mcp_tools::replace_mcp_tools_removes_matching_arcs_and_appends_new ... ok
[INFO] [stdout] test agent::assembly::tests::mcp_tools::replace_mcp_tools_with_empty_old_and_empty_new_is_a_noop ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::on_turn_end_hook_continue_then_stop_writes_both_audit_entries ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::prompt_with_images_with_empty_text_still_sends_images ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::prompt_with_input_appends_record_before_user_message ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::queued_steering_input_reaches_the_log_before_the_steering_message ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::compaction_lifecycle::compaction_gate_precedes_committed_success_observation ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::record_user_prompt_without_input_appends_no_record ... ok
[INFO] [stdout] test agent::assembly::tests::prompt_cycle::user_input_record_is_filtered_from_provider_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_invalid_follow_up_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_observe_message_update_without_message_id_is_noop ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_invocation_error_returns_message ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_dispatch_error_returns_message ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_enqueue_follow_up_capacity_error_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_role_mismatch_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::normalized_request::invalid_request_action_is_rejected_atomically ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_tool::message_lifecycle_uses_stable_ids_and_final_transform_persists ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_replace_invalid_json_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_seams::runtime_ext_transform_message_replace_payload_missing_message_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::normalized_request::concurrent_sessions_derive_independent_request_local_catalogs ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_tool::first_extension_gate_denial_skips_later_gate_and_execution ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_interceptor::provider_adapter_maps_separate_header_raw_and_response_lifecycle_events ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::normalized_request::no_subscriber_fast_path_skips_request_script_dispatch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_returns_original_request_when_no_hook_subscribed ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_observe_ignores_invocation_error_with_empty_cwd ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_observe_no_hook_subscribed_is_noop ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_rejects_disallowed_transform_action ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_rejects_non_transform_result ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::reentrancy::model_and_branch_gates_cancel_before_persisted_or_active_state_changes ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::reentrancy::runtime_ext_guarded_rejects_reentrant_dispatch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_interceptor::provider_request_failure_does_not_publish_a_synthetic_response_event ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::compaction_lifecycle::compaction_receives_deduplicated_model_context_but_never_private_state ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::provider_seams::runtime_ext_provider_observe_request_failure_ignores_invocation_error_with_empty_cwd ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::reentrancy::nested_user_send_from_lifecycle_dispatch_is_rejected_without_nested_provider_run ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::compaction_lifecycle::denied_compaction_gate_leaves_session_without_compaction_entry ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::reentrancy::before_run_patch_persist_failure_returns_agent_error ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_tool::transformed_assistant_drives_tool_extraction_and_full_tool_observation ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::request_seams::runtime_ext_before_model_request_dispatch_error_returns_request ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::request_seams::runtime_ext_before_model_request_invalid_follow_up_returns_request ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::handled_extension_input_returns_outcome_without_dispatching_provider ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::reentrancy::shutdown_waits_for_cancelled_run_settlement_before_session_shutdown ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::handled_extension_input_appends_no_user_input_record ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::request_seams::runtime_ext_before_model_request_replace_payload_invalid_returns_request ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::persistence_failure_uses_the_same_error_then_settled_terminal_order ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::provider_failure_emits_run_error_between_ended_and_settled ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::context_transform_is_request_local_and_runs_between_turn_boundaries ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::successful_run_lifecycle_is_ordered_and_sequences_are_monotonic ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::request_seams::runtime_ext_before_model_request_enqueue_follow_up_capacity_error_returns_request ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::before_run_patch_persists_messages_and_limits_system_prompt_to_the_run ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::input_replacement_is_the_message_used_by_the_run_and_transcript ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::request_seams::runtime_ext_before_model_request_invocation_error_returns_request ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_run_enqueue_follow_up_capacity_error_returns_default_patch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_model_selection_invocation_error_is_reported ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_run_invalid_follow_up_returns_default_patch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::tool_use_run_emits_complete_turn_context_order_before_the_next_turn ... ok
[INFO] [stdout] test agent::assembly::assembly_linecov_tests::tests::rehydrate_restores_known_catalog_model ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_run_patch_deserialize_error_returns_default_patch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_run_invocation_error_returns_default_patch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_ensure_session_start_ignores_invocation_error_with_empty_cwd ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_ensure_session_start_second_call_is_noop ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_shutdown_ignores_invocation_error_with_empty_cwd ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_shutdown_second_call_is_noop ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_observe_run_ignores_invocation_error ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_model_selected_handles_success_and_invocation_error ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_transform_tool_result_dispatch_error_returns_default ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_gate_allows_enqueues_follow_up_and_allows ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::extension_follow_up_is_deduplicated_and_starts_only_after_run_settled ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_observe_session_operation_ignores_invocation_error ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_transform_tool_result_enqueue_follow_up_capacity_error_returns_default ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_before_tool_call_blocked_error_malformed_cancelled ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_dispatch_error_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_context::runtime_ext_transform_context_invalid_follow_up_returns_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_observe_tool_execution_ignores_invocation_error_with_empty_cwd ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_context::runtime_ext_transform_context_enqueue_follow_up_capacity_error_returns_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_before_tool_call_blocked_error_non_cancelled ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_context::runtime_ext_transform_context_invocation_error_returns_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_transform_tool_result_invalid_follow_up_returns_default ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::tool_seams::runtime_ext_transform_tool_result_invocation_error_returns_default ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::session_run_seams::runtime_ext_before_run_dispatch_error_returns_default_patch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_enqueue_follow_up_invalid_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_enqueue_follow_up_capacity_error_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_emit_command_outcome_invalid_payload_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_enqueue_follow_up_valid_is_accepted ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_context::runtime_ext_transform_context_dispatch_error_returns_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_replace_payload_missing_message_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_rejects_empty_follow_up_id ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_invocation_error_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_replace_role_mismatch_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::session_state::set_model_and_thinking_level_persist_entries ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_rejects_oversized_follow_up_id ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_rejects_non_user_follow_up_message ... ok
[INFO] [stdout] test agent::assembly::tests::skills::replace_skills_updates_catalog_and_system_prompt ... ok
[INFO] [stdout] test agent::assembly::tests::tool_dedup::replace_tools_drops_duplicate_names_from_full_reload ... ok
[INFO] [stdout] test agent::compaction::algorithm::tests::builtin_algorithm_name_is_builtin ... ok
[INFO] [stdout] test agent::assembly::tests::session_state::rehydrate_from_session_restores_messages_and_thinking ... ok
[INFO] [stdout] test agent::assembly::tests::skills::prompt_from_template_unknown_name_errors ... ok
[INFO] [stdout] test agent::compaction::algorithm::tests::registry_atomically_replaces_custom_algorithms ... ok
[INFO] [stdout] test agent::assembly::tests::skills::reload_skills_from_disk_errors_when_not_configured ... ok
[INFO] [stdout] test agent::compaction::algorithm::tests::registry_register_rejects_builtin_shadowing_and_lists_sorted_custom_names ... ok
[INFO] [stdout] test agent::compaction::algorithm::tests::trait_defaults_delegate_to_builtin_helpers ... ok
[INFO] [stdout] test agent::compaction::branch_summarization::tests::summarize_branch_returns_generated_summary_and_usage_with_custom_instructions ... ok
[INFO] [stdout] test agent::assembly::tests::session_state::move_to_rehydrates_state_and_emits_branch_event ... ok
[INFO] [stdout] test agent::assembly::tests::tool_dedup::harness_construction_drops_duplicate_tool_names_first_wins ... ok
[INFO] [stdout] test agent::compaction::branch_summarization::tests::summarize_branch_ignores_non_message_entries_and_returns_empty_summary ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_context::runtime_ext_follow_up_dedup_evicts_oldest_seen_id_after_capacity ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::estimate_context_tokens_without_usage_falls_back_to_sum ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::message_tool::parallel_preflight_and_finalized_results_preserve_assistant_source_order ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::calculate_context_tokens_prefers_total_tokens_over_sum ... ok
[INFO] [stdout] test agent::compaction::branch_summarization::tests::summarize_branch_with_no_messages_returns_empty_summary ... ok
[INFO] [stdout] test agent::compaction::algorithm::tests::registry_default_is_empty_and_falls_back_to_builtin ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::find_cut_point_returns_zero_for_empty_entries ... ok
[INFO] [stdout] test agent::assembly::tests::skills::reload_skills_from_disk_applies_loader_result ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::estimate_tokens_covers_user_assistant_tool_and_custom_messages ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::transform_input::runtime_ext_transform_input_replace_invalid_json_returns_original ... ok
[INFO] [stdout] test agent::assembly::tests::session_state::rehydrate_from_session_ignores_unknown_model_and_invalid_thinking ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::estimate_text_tokens_weights_ascii_and_non_ascii ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::find_turn_start_index_returns_start_when_no_user_message ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::generate_summary_with_custom_instructions_and_budget ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::summary_output_tokens_caps_to_reserve_and_context_window ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::get_last_assistant_usage_skips_aborted_and_zero_usage ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::summary_output_tokens_falls_back_to_default_reserve_when_zero ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::estimate_tokens_covers_thinking_and_image_content_blocks ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::prepare_compaction_splits_prefix_and_sums_message_tokens ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::default_compaction_algorithm_and_settings ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::serialize_conversation_covers_user_blocks_and_assistant_image ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::find_cut_point_with_only_non_message_entries_returns_zero ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::prepare_compaction_ignores_non_message_entries_in_token_count ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::compact_with_empty_entries_returns_empty_summary ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::compact_with_entries_but_cut_at_zero_returns_empty_summary ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::generate_summary_errors_on_empty_stream ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::generate_summary_maps_non_overflow_provider_error ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::serialize_conversation_for_summary_budget_smaller_than_note_truncates_note ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::serialize_conversation_renders_all_message_kinds ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::summarize_prompt_estimate_tokens_includes_overhead_and_messages ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::summarization_prompt_budget_returns_default_for_unknown_window ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::generate_summary_extracts_only_text_blocks_from_done_message ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::trim_messages_for_summary_budget_keeps_tail_and_discloses_omissions ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::generate_summary_aborts_when_cancelled_mid_stream ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::get_last_assistant_usage_returns_none_for_aborted_or_non_usage_entries ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::decision::cut_point_lands_on_turn_boundary ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_extra_tests::tests::suffix_start_for_token_budget_respects_cjk_tokens ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::decision::disabled_compaction_returns_false ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::decision::estimate_context_tokens_uses_last_usage_block ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::assistant_usage_accepts_any_nonzero_usage_field ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::decision::should_compact_when_over_threshold ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::project_summary_message_small_tool_call_arguments_are_kept ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::get_last_assistant_usage_skips_non_message_entries ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::summary_budget_caps_single_oversized_message ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::project_summary_message_caps_user_blocks_and_tool_result_image_blocks ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::compaction_run::summarizer_request_sets_bounded_max_tokens ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::summary_budget_leaves_room_for_output_and_estimate_error ... ok
[INFO] [stdout] test agent::compaction::triggers::tests::force_compact_returns_false_for_empty_session ... ok
[INFO] [stdout] test agent::compaction::triggers::tests::force_compact_returns_false_without_model ... ok
[INFO] [stdout] test agent::compaction::triggers::tests::run_auto_compaction_skips_when_disabled ... ok
[INFO] [stdout] test agent::compaction::triggers::tests::run_auto_compaction_skips_below_threshold ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::trim_projected_budget_single_oversized_message_is_kept ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::cjk_truncation_respects_token_budget ... ok
[INFO] [stdout] test agent::compaction::triggers::tests::run_auto_compaction_skips_without_model ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_keeps_summary_when_memory_state_diverged ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_keeps_summary_when_first_kept_entry_id_not_found ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_with_empty_first_kept_id_keeps_summary ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_returns_false_when_summarizer_aborts ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::trim_messages_for_summary_budget_returns_original_when_within_budget ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::serialize_conversation_tool_result_skips_image_blocks ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::run_auto_compaction_triggers_do_compact_branch ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_append_compaction_failure_returns_error ... ok
[INFO] [stdout] test agent::context::tests::build_session_context_skips_other_custom_types_and_empty_compact_text ... ok
[INFO] [stdout] test agent::compaction::triggers::triggers_linecov_tests::tests::do_compact_returns_error_for_provider_failure ... ok
[INFO] [stdout] test agent::context::tests::compact_context_from_entry_parses_partial_and_legacy_payloads ... ok
[INFO] [stdout] test agent::context::tests::compact_context_from_entry_skips_non_custom_and_other_types ... ok
[INFO] [stdout] test agent::context::tests::compact_context_text_filters_empty_text ... ok
[INFO] [stdout] test agent::context::tests::config_override_falls_back_on_invalid ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::compaction_run::compact_trims_summarizer_prompt_before_provider_call ... ok
[INFO] [stdout] test agent::context::tests::config_override_sets_small_threshold ... ok
[INFO] [stdout] test agent::context::tests::exit_code_handles_u64_and_string_values ... ok
[INFO] [stdout] test agent::context::tests::default_threshold_keeps_under_20k_inline_and_virtualizes_over ... ok
[INFO] [stdout] test agent::context::tests::small_result_stays_inline ... ok
[INFO] [stdout] test agent::context::tests::large_result_placeholder_keeps_pairing_and_metadata ... ok
[INFO] [stdout] test agent::context::tests::config_override_falls_back_on_non_positive ... ok
[INFO] [stdout] test agent::context::tests::front_preview_keeps_opening ... ok
[INFO] [stdout] test agent::context::tests::missing_exit_code_uses_is_error ... ok
[INFO] [stdout] test agent::context::tests::utf8_preview_truncates_on_char_boundary ... ok
[INFO] [stdout] test agent::context_cache::coverage_gap::finalize_zero_total_bytes_returns_unknown_rate ... ok
[INFO] [stdout] test agent::context_cache::tests::append_only_context_has_high_prefix_overlap ... ok
[INFO] [stdout] test agent::context_cache::tests::canonicalization_sorts_freeform_object_keys ... ok
[INFO] [stdout] test agent::context::tests::threshold_is_exclusive_on_chars ... ok
[INFO] [stdout] test agent::context::tests::virtualization_is_deterministic ... ok
[INFO] [stdout] test agent::context_cache::coverage_gap::identical_long_contexts_match_every_chunk ... ok
[INFO] [stdout] test agent::context::tests::virtualization_uses_full_text_from_details ... ok
[INFO] [stdout] test agent::context_cache::tests::compaction_drop_of_suffix_lowers_prefix_overlap ... ok
[INFO] [stdout] test agent::context_cache::tests::virtualization_keeps_earlier_prefix_stable ... ok
[INFO] [stdout] test agent::context_cache::tests::mid_insertion_lowers_prefix_overlap ... ok
[INFO] [stdout] test agent::context_cache::tests::missing_total_input_returns_unknown_rate ... ok
[INFO] [stdout] test agent::context_cache::tests::model_switch_resets_baseline ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::reset_clears_all_counters ... ok
[INFO] [stdout] test agent::messages::tests::compaction_summary_creates_expected_custom_message ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::as_callback_records_assistant_message_end_and_ignores_others ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::cost_tracker_default_constructs_empty ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::full_breakdown_formats_all_fields ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::one_line_summary_formats_totals ... ok
[INFO] [stdout] test agent::context::tests::exit_code_without_exit_keys_falls_back_to_is_error ... ok
[INFO] [stdout] test agent::cost::cost_bridge_tests::tests::record_accumulates_usage_and_costs ... ok
[INFO] [stdout] test agent::messages::tests::branch_summary_creates_expected_custom_message ... ok
[INFO] [stdout] test agent::model_request::coverage_gap::validates_identical_draft_and_model_identity ... ok
[INFO] [stdout] test agent::model_request::coverage_gap::validates_visible_tool_names_and_parameters ... ok
[INFO] [stdout] test agent::context::tests::tail_preview_keeps_last_five_lines ... ok
[INFO] [stdout] test agent::model_request::coverage_gap::validates_executable_tool_names_and_set_equality ... ok
[INFO] [stdout] test agent::model_request::coverage_gap::validates_generation_options_limits ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::custom_danger_patterns_are_compiled_and_first_match_wins ... ok
[INFO] [stdout] test agent::messages::tests::custom_uses_supplied_role_and_payload ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::control_plane_write_category_allows_by_default ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::extract_shell_command_tries_all_fields_and_string_fallback ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::non_bash_tool_names_allow_even_for_custom_policy ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::normalize_operand_strips_one_quote_layer_and_rewrites_brace_home ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::rm_recursive_force_home_target_matches_home_string ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::split_shell_clauses_splits_on_separators_and_trims_empty_clauses ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::strip_one_layer_of_quotes_handles_unclosed_quotes ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::rm_classifier_understands_end_of_options_marker ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::rm_classifier_requires_both_flags_and_dangerous_target ... ok
[INFO] [stdout] test agent::run_loop::llm::llm_linecov_tests::tests::call_llm_handles_thinking_and_tool_call_delta_events ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::evaluate_allows_rm_without_recursive_and_force_pair ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::as_before_tool_call_blocks_and_allows ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_builds_optional_context_fields_and_thinking ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::evaluate_allows_normal_shell_commands ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_builds_system_prompt_and_tool_definitions ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_errors_when_no_model_is_set ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_drops_duplicate_tool_definitions_before_provider_request ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_maps_error_event_to_run_error ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_provider_cache_hit_rate_is_none_when_no_cache_read ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_errors_when_stream_is_empty ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_resolves_provider_credential_into_request_options ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_handles_unmatched_stream_event_variants ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_returns_done_message_and_emits_streaming_events ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_runs_transform_context_before_convert_to_llm ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::normalized_request::normalized_request_transform_runs_after_context_and_before_serialization ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::normalized_request::invalid_normalized_request_patch_keeps_the_complete_base_request ... ok
[INFO] [stdout] test agent::permission::permission_linecov_tests::tests::rm_classifier_handles_unknown_long_flag_before_recursive_force ... ok
[INFO] [stdout] test agent::run_loop::run_loop_linecov_tests::tests::drive_loop_should_stop_after_turn_hook_false_falls_through ... ok
[INFO] [stdout] test agent::run_loop::run_loop_linecov_tests::tests::drive_loop_returns_when_all_tool_results_terminate ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_errors_when_max_iterations_exceeded ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::concurrent_prompts_admit_exactly_one_run ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_prepare_next_turn_applies_update ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_returns_ok_when_cancelled ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::empty_shell_command_fields_allow ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::evaluate_allows_non_shell_tools ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_prepare_next_turn_none_update_is_noop ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_tool_cancels_outer_token_finishes_cancelled ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_should_stop_after_turn_hook_stops ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_steering_with_stop_reason_still_continues_once ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::run_agent_loop_appends_new_messages_and_runs ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_tool_enqueues_steering_and_continues ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::run_agent_loop_continue_rejects_empty_transcript ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_blocked_call_returns_error_outcome_without_tool ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_pump_join_timeout_aborts_pump_when_tool_retains_update ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_with_cancelled_token_marks_cancelled ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_with_tool_streams_update_events ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_with_tool_returns_success_and_error_outcomes ... ok
[INFO] [stdout] test agent::run_loop::tests::turn_finalize::finalize_partial_turn_keeps_only_messages_with_content ... ok
[INFO] [stdout] test agent::run_loop::tests::run_one::run_one_unknown_tool_returns_synthesized_error ... ok
[INFO] [stdout] test agent::permission::permission_linecov_tests::tests::default_policy_is_constructed_via_default_impl ... ok
[INFO] [stdout] test agent::run_loop::tests::turn_finalize::finish_message_keeps_original_when_transform_changes_role ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_block_classification_skips_execute_and_hook ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_parallel_executes_multiple_tools ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_prompt_with_allow_hook_executes ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_returns_empty_for_no_tool_calls ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_after_tool_call_hook_overrides_result_and_terminate ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::compaction_run::summarize_with_llm_budget_floor_reports_context_overflow ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::request_snapshot_rejects_tool_registered_after_model_dispatch ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::compaction_lifecycle::compaction_provider_failure_publishes_failure_without_commit ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_more_tests::tests::summarize_with_llm_gives_up_after_max_overflow_retries ... ok
[INFO] [stdout] test agent::compaction::compaction::compaction_linecov_tests::tests::summarize_with_llm_returns_non_overflow_provider_error ... ok
[INFO] [stdout] test agent::permission::permission_external_tests::tests::evaluate_denies_known_destructive_shell_patterns ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_returns_turn_interrupted_when_turn_cancel_fires ... ok
[INFO] [stdout] test agent::run_loop::llm::tests::call_llm_aborts_when_cancel_token_fires ... ok
[INFO] [stdout] test agent::run_loop::tests::driver::drive_loop_turn_interrupted_with_queued_steering_continues ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_synthesizes_error_for_unknown_tool ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_before_tool_call_hook_block_without_reason_uses_default ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_prepare_arguments_non_object_clears_hook_tool_call_args ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_prompt_deny_without_reason_uses_default ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::compaction_run::compact_retries_with_smaller_budget_on_provider_overflow ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_hook_prompt_without_classifier_uses_hook_label_and_rebinds ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_prompt_timeout_blocks_tool ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_sequential_override_forces_one_at_a_time ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_prompt_without_hook_fails_closed ... ok
[INFO] [stdout] test agent::run_loop::tools::tests::execute_tools_before_tool_call_hook_can_block ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::default_prompt_payload_redacts_values_and_bounds_keys ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::emit_dispatches_sync_await_and_broadcast_segments_in_order ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::apply_turn_update_partial_update_keeps_other_fields ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::apply_turn_update_replaces_context_model_and_thinking_level ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::invocation_rejects_blank_context_fields_and_zero_sequence ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::default_prompt_payload_truncates_long_keys_to_64_chars ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::default_prompt_payload_returns_empty_keys_for_non_object_args ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::finalize_keeps_admission_closed_until_permit_release ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_tool_error_becomes_is_error_result ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::model_context_projection_apply_to_request_appends_system_sections ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::model_context_projection_excludes_private_state_and_deduplicates_stable_ids ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::snapshot_context_captures_system_prompt_messages_and_tools ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::persistent_state_port_rejects_cross_owner_batches_before_append ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_extra_tests::tests::execute_tools_terminate_true_sets_all_terminate ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::model_context_projection_apply_to_request_with_empty_base_uses_suffix ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::noop_port_returns_class_specific_results_without_actions ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::core_rejects_daemon_actions_outside_the_requested_lifecycle_seam ... ok
[INFO] [stdout] test agent::session::memory_repo::tests::create_appends_session_and_increments_count ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::compute_args_hash_is_stable_and_sorts_object_keys ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::model_context_projection_replacement_updates_existing_shared_handles ... ok
[INFO] [stdout] test agent::session::memory_repo::tests::new_and_default_start_empty ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::find_entries_filters_by_type_and_get_label_returns_latest ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::default_matches_new ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::new_has_metadata_and_empty_entries ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::path_to_root_returns_ordered_chain ... ok
[INFO] [stdout] test agent::session::persistent_storage::tests::typed_session_implements_raw_reader_without_losing_payload ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::path_to_root_handles_missing_leaf_and_cycle_errors ... ok
[INFO] [stdout] test agent::session::persistent_storage::tests::persistent_adapter_keeps_private_extension_entries_out_of_typed_context ... ok
[INFO] [stdout] test agent::session::persistent_storage::tests::persistent_adapter_roundtrips_typed_entries_through_raw_store ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::fork_options_default_to_before_without_entry_id ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::scope_allocator_is_shared_monotonic_and_kind_stable ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::persistent_state_port_appends_one_atomic_parent_chain_and_replays_it ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::scope_allocator_rejects_blank_session_id ... ok
[INFO] [stdout] test agent::session::memory_repo::tests::delete_by_id_returns_false_for_unknown_id ... ok
[INFO] [stdout] test agent::session::memory_storage::tests::append_entry_updates_leaf_and_entries ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::create_timestamp_parses_as_rfc3339 ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::create_session_id_returns_non_empty_uuidv7_string ... ok
[INFO] [stdout] test agent::session::memory_repo::tests::delete_by_id_removes_only_matching_session_and_reports_true ... ok
[INFO] [stdout] test agent::runtime_extensions::tests::validate_domain_event_rejects_mismatched_domain ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_at_position_replays_through_target_entry ... ok
[INFO] [stdout] test agent::assembly::tests::runtime_extensions::run_lifecycle::unbounded_extension_follow_up_chain_is_stopped_after_the_declared_cap ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_before_assistant_message_returns_not_found ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_with_unknown_entry_id_returns_not_found ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_before_root_user_message_returns_empty_path ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_before_user_message_splits_before_it ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::get_entries_to_fork_without_entry_id_returns_all_entries ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::to_session_wraps_the_given_storage ... ok
[INFO] [stdout] test agent::session::session::session_linecov_tests::tests::session_name_returns_none_when_latest_name_is_blank ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::latest_collapse_summary_falls_back_to_latest_non_empty_compact_context ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::session_collapse_node_id_reads_metadata ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_skips_empty_branch_summary ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::latest_collapse_summary_prefers_compaction_over_compact_context ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_with_compaction_skips_entries_before_first_kept ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_injects_legacy_compact_context_text_field ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::session_compact_context_reads_latest_entry ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_appends_branch_summary_and_custom_message ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_custom_message_with_bad_timestamp_falls_back_to_now ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_replays_messages_and_metadata ... ok
[INFO] [stdout] test agent::session::repo_utils::tests::uuidv7_ids_are_time_ordered ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::latest_session_graph_state_skips_non_custom_entries ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_injects_compact_context_custom_message ... ok
[INFO] [stdout] test agent::session::session::tests::context_build::build_session_context_with_compaction_missing_first_kept_keeps_only_summary ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::latest_collapse_summary_returns_none_without_material ... ok
[INFO] [stdout] test agent::session::session::tests::collapse_summary::latest_collapse_summary_skips_empty_compact_context ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_session_name_finds_latest_non_empty_name ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_append_helpers_create_typed_entries ... ok
[INFO] [stdout] test agent::session::session::tests::entry_accessors::session_tree_entry_accessors_expose_id_parent_and_type ... ok
[INFO] [stdout] test agent::session::session::tests::entry_accessors::session_tree_entry_type_str_covers_all_variants ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_append_compaction_omits_from_hook_when_false ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::merge_ignores_keeps_base_when_extra_empty ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_build_context_replays_appended_messages ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_name_skips_session_info_without_name ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_label_returns_latest_label_for_target ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_move_to_without_summary_sets_leaf_and_returns_none ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::prefix_ignore_pattern_handles_negation_without_prefix ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::load_skills_emits_file_info_diagnostic_for_root_dir ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::merge_ignores_prefers_extra_when_non_empty ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::resolve_kind_returns_none_for_symlink_to_symlink ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_branch_returns_path_to_leaf_or_requested_id ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::walk_one_skips_skill_md_when_it_is_not_a_file ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::walk_one_emits_list_failed_diagnostic ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::resolve_kind_returns_file_or_directory_without_canonical_lookup ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::walk_one_emits_read_failed_for_ignore_file ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_move_to_with_summary_records_branch_summary ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::resolve_kind_reports_non_notfound_canonical_error ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::walk_one_skips_ignored_skill_md ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::resolve_kind_reports_non_notfound_canonical_file_info_error ... ok
[INFO] [stdout] test agent::skills::skills_linecov_tests::tests::walk_one_skips_non_file_ignore_rule ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::env_path_helpers_normalize_relative_paths ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::env_path_helpers_normalize_unix_and_windows_separators ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::format_skill_invocation_includes_location_body_and_extra_prompt ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_emits_read_and_parse_diagnostics ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::format_skill_invocation_without_extra_instructions_closes_block ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_skips_missing_directories_without_diagnostics ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_skips_non_directory_root ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_emits_file_info_diagnostic_for_unknown_error ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_skips_skill_with_empty_description ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_sourced_skills_tags_skill_with_each_source ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_recurses_into_subdirs_and_loads_root_md_files_only_at_root ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::parse_frontmatter_normalizes_crlf_and_rejects_bad_yaml ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::load_skills_loads_root_skill_and_ignores_children ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::validate_description_checks_length ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::prefix_ignore_pattern_treats_backslash_hash_as_literal ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::validate_name_allows_digits_and_rejects_trailing_hyphen ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::prefix_ignore_pattern_handles_comments_negation_and_root_patterns ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::resolve_kind_file_info_not_found_after_canonical_is_silent ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::parse_frontmatter_extracts_metadata_and_body ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::resolve_kind_follows_symlink_to_file ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::validation_rejects_invalid_names_and_missing_descriptions ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::resolve_kind_returns_none_for_missing_canonical ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::parse_frontmatter_without_header_passes_content_through ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::validate_name_checks_length_and_hyphen_rules ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::walker_applies_gitignore_to_root_files ... ok
[INFO] [stdout] test agent::skills::skills_walk_tests::tests::walker_skips_node_modules_and_non_md_root_files ... ok
[INFO] [stdout] test agent::system_prompt::tests::format_skills_renders_each_catalog_entry ... ok
[INFO] [stdout] test agent::system_prompt::tests::format_skills_without_catalog_returns_empty_string ... ok
[INFO] [stdout] test agent::tests::abort_and_interrupt_are_noops_without_active_tokens ... ok
[INFO] [stdout] test agent::tests::pending_message_queue_all_drains_everything ... ok
[INFO] [stdout] test agent::tests::run_permit_rejects_second_owner_and_releases_on_drop ... ok
[INFO] [stdout] test agent::tests::active_token_returns_clone_of_active_cancel ... ok
[INFO] [stdout] test agent::tests::subscribe_and_unsubscribe_remove_listener ... ok
[INFO] [stdout] test agent::tests::convert_to_llm_uses_configured_callback_or_default ... ok
[INFO] [stdout] test agent::tests::enqueue_steering_and_follow_up_push_into_queues ... ok
[INFO] [stdout] test agent::tests::pending_message_queue_one_at_a_time_empty_is_noop ... ok
[INFO] [stdout] test agent::compaction::compaction::tests::summary_budget::projection_caps_tool_outputs_and_bounds_total ... ok
[INFO] [stdout] test agent::tests::subscribe_sync_and_unsubscribe_remove_callback ... ok
[INFO] [stdout] test agent::tests::release_run_is_noop_when_not_active ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::exec_options_default_is_empty ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::execution_error_new ... ok
[INFO] [stdout] test agent::types::tests::interpolates_known_vars_and_leaves_unknown ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::prompt_template_interpolates_non_string_values ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::file_error_new_and_with_path ... ok
[INFO] [stdout] test agent::tests::pending_message_queue_one_at_a_time_drains_oldest_only ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::skill_frontmatter_deserializes_snake_and_kebab_disable_flags ... ok
[INFO] [stdout] test agent::tests::unsubscribe_sync_callback_noop_when_already_removed ... ok
[INFO] [stdout] test agent::types::types_external_tests::tests::skill_source_labels ... ok
[INFO] [stdout] test agent::session::session::tests::session_api::session_move_to_unknown_entry_returns_not_found ... ok
[INFO] [stdout] test executor::tests::kind_reports_local_for_local_fake ... ok
[INFO] [stdout] test executor::tests::executor_kind_display_uses_lowercase_names ... ok
[INFO] [stdout] test executor::tests::read_file_records_call_and_returns_content ... ok
[INFO] [stdout] test agent::types::types_linecov_tests::tests::cleanup_default_impl_is_noop ... ok
[INFO] [stdout] test executor::tests::command_output_success_reflects_exit_code ... ok
[INFO] [stdout] test executor::tests::git_records_args_and_returns_output ... ok
[INFO] [stdout] test executor::tests::kind_reports_sandbox_for_sandbox_fake ... ok
[INFO] [stdout] test executor::tests::unsupported_kind_error_propagates_like_sandbox_stub ... ok
[INFO] [stdout] test executor::tests::list_dir_grep_find_record_queries_and_return_entries ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::agent_message_text_handles_image_only_and_empty_tool_result ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::ensure_goal_run_falls_back_to_existing_running_goal_run ... ok
[INFO] [stdout] test executor::tests::dyn_trait_object_dispatches_and_is_shareable_across_threads ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::clear_without_goal_creates_cleared_state ... ok
[INFO] [stdout] test executor::tests::executor_side_error_propagates_with_message ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::latest_from_entries_skips_non_custom_and_other_custom_types ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::persist_state_best_effort_warns_when_append_fails ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::stop_hook_with_initialized_harness_cell_returns_noop_when_no_goal ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::ensure_goal_run_skips_non_goal_runs_and_terminal_goal_runs ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::evaluate_stop_hook_pauses_when_evaluator_cancelled ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::ensure_goal_run_creates_one_goal_run_per_session ... ok
[INFO] [stdout] test executor::tests::write_file_records_path_and_content ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::complete_goal_cancelled_handles_some_and_none_run_ids ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::evaluate_stop_hook_returns_noop_when_goal_not_pursuing ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::evaluate_stop_hook_pauses_when_evaluator_run_fails ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::agent_run_params_are_send_sync ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::evaluate_stop_hook_returns_noop_without_goal ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::evaluator_system_prompt_contains_contract ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::evaluate_stop_hook_pauses_when_no_model ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::goal_tick_handles_some_and_none_run_ids ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::is_ignored_returns_false_for_empty_relative_path ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::stop_hook_returns_pause_when_harness_cell_unset ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::session_id_from_harness_reads_storage_metadata ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::transcript_from_messages_skips_custom_messages ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::parse_decision_falls_back_to_embedded_json_object ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::agent_message_text_handles_content_blocks_and_custom ... ok
[INFO] [stdout] test multiagent::goal::tests::fallbacks::evaluate_stop_hook_pauses_when_no_evaluator_spec ... ok
[INFO] [stdout] test multiagent::goal::tests::parses_json_decision_inside_text ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::goal_payload_includes_status_condition_reason_and_budget ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluator_system_prompt_documents_json_contract ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::goal_status_as_str_is_snake_case ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::parse_decision_accepts_valid_json_and_extracts_fenced_json ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::latest_from_entries_finds_latest_goal_state_and_skips_other_entries ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluate_stop_hook_returns_stop_when_goal_achieved ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::pause_decision_returns_pause_action_with_payload ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::tail_chars_returns_original_when_within_limit ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::goal_state_active_is_true_for_pursuing_paused_budget_limited ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::set_current_pause_resume_clear_roundtrip ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluate_stop_hook_budget_limits_after_max_continuations ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::transcript_from_messages_truncates_to_last_chars ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::transcript_from_messages_bounds_and_joins_text ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::user_content_text_renders_blocks_and_image_placeholder ... ok
[INFO] [stdout] test agent::skills::skills_extra_tests::tests::load_sourced_skills_with_empty_inputs_returns_empty ... ok
[INFO] [stdout] test agent::tests::unsubscribe_async_listener_noop_when_already_removed ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::continuation_prompt_contains_condition_and_missing_evidence ... ok
[INFO] [stdout] test multiagent::goal::tests::transcript_tail_is_bounded ... ok
[INFO] [stdout] test executor::tests::run_command_records_cwd_argv_and_timeout ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::goal::complete_goal_cancels_run ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::goal::goal_run_emits_events ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::goal::on_goal_tick_updates_iteration_and_completes ... ok
[INFO] [stdout] test multiagent::goal::tests::failure_paths::stop_hook_with_uninitialized_harness_cell_pauses ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::parse_decision_rejects_invalid_json_and_empty_reason ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::goal::goal_counter_independent_of_dag_counter ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::goal::plan_goal_creates_single_node_run ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::cancel_run_unknown_or_terminal_is_noop ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::on_goal_tick_missing_main_node_returns_false ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::rehome_runs_without_matching_session_returns_zero ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::plan_rejects_unknown_agent_when_known_agents_supplied ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::skip_unknown_run_or_node_returns_false ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::begin_observations_are_noops_for_missing_run_or_node ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::cancel_run_with_running_node_without_job_token_is_noop_for_jobs ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::complete_goal_unknown_run_is_noop ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::debug_fmt_reports_engine_state ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::most_recent_active_none_when_no_running ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::cancelling_dag_finishes_node_and_run_as_cancelled ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::list_runs_orders_newest_first ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::dag_observations_link_run_node_and_terminal_measurements ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::retry_with_empty_explicit_ids_uses_all_blocked_nodes ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluator_user_prompt_contains_condition_and_transcript ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::on_goal_evaluator_finished_unknown_or_missing_main_is_noop ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluate_stop_hook_pauses_on_invalid_evaluator_json ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::abort_all_runs_returns_zero_when_none_running ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::finish_observations_with_missing_entity_and_content_still_finish_scopes ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::persist_sink::notify_persist_safe_under_lock ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::skipping_pending_node_emits_a_paired_skipped_observation ... ok
[INFO] [stdout] test multiagent::goal::tests::state_and_evaluation::evaluate_stop_hook_returns_continue_when_not_achieved ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::plan::plan_auto_starts_roots ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::plan::plan_without_launcher_fails_roots_immediately ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::restore::restore_aligns_dag_counter ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::plan::plan_rejects_invalid_graph ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::persist_sink::state_changes_notify_persist_sink ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retention::clear_session_runs_keep_zero_clears_all_terminal ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::finish_node_observation_attaches_content_when_enabled ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::restore::restore_hydrates_and_reschedules ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retention::evict_below_cap_and_other_session_are_noop ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retention::evict_over_cap_removes_oldest_terminal_and_keeps_running ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retry_skip_cancel::skip_failed_releases_downstream_closure ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::observability::finish_run_observation_attaches_content_when_run_still_exists ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::list_runs_order_and_most_recent_active ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::failfast_true_cancels_whole_run ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retry_skip_cancel::skip_running_aborts_job ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::dependency_chain_advances_and_completes ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::restore::restored_runs_dispatch_through_session_launcher_registered_before_restore ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::failfast_false_keeps_independent_branch ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retention::clear_run_removes_only_terminal_runs ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal_paths::retry_skips_non_blocked_targets ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retry_skip_cancel::retry_resets_blocked_nodes_with_closure ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal::reset_for_tests_clears_state ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal_paths::complete_goal_without_main_node_still_completes_run ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retention::clear_session_runs_keeps_most_recent_n_and_is_session_scoped ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal::cancel_run_aborts_jobs_and_drops_stale_reports ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal::abort_all_runs_cancels_running_only ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::stale_launch_generation_update_is_dropped ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::emit_state_stamps_last_activity_at ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::reset_node_reverts_all_runtime_fields_to_pending ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::on_node_update_syncs_tokens_preview_activity ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::schedule::tick_respects_concurrency_budget ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::push_unique_adds_new_and_skips_duplicate ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::run_counter_parses_dag_suffix_or_zero ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::terminal_paths::complete_goal_non_failed_cancelled_preserves_main_status ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::cap_chars_truncates_on_char_boundary ... ok
[INFO] [stdout] test multiagent::graph::engine_state::tests::panic_message_downcasts_str_string_and_other ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_label_with_closing_bracket_reports_parse_error ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::split_label_unquotes_single_quoted_labels ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::escape_label_handles_quotes_backslashes_newlines ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::render_tree_handles_missing_dependency ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_reports_non_flowchart_diagram_kind ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::first_line_trims_and_truncates ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::node_short_label_contains_status_deps_id_agent_and_task ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::node_summary_line_without_attempt_or_error_has_no_suffix ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::node_summary_line_appends_attempts_and_error ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::map_id_rewrites_hyphens_and_deduplicates_collisions ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::lifecycle_edges::retry_unknown_run_or_node_is_noop ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::retry_skip_cancel::retry_explicit_ids_reset_only_closure ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::preprocess_blank_and_comment_only_yields_empty_declared ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::render_mermaid_lr_uses_lr_and_skips_pending_class ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::run_summary_line_active_time_zero_or_negative_is_skipped ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::parse_mermaid_empty_input_returns_no_nodes_or_errors ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::render_tree_survives_dependency_cycle ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::wait::wait_for_runs_returns_on_completion ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::split_ampersand_does_not_close_quote_after_backslash ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::split_ampersand_respects_quotes_and_escapes ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::split_label_handles_agent_with_empty_task ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::run_summary_line_skips_nodes_without_started_at_and_without_output ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::run_token_stats_sums_all_nodes ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::run_summary_line_running_without_tokens_has_no_token_part ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::output::node_summary_line_format ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::split_label_handles_colon_at_zero_and_whitespace_before_colon ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::split_label_handles_double_quotes_and_unclosed_quotes ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::output::run_summary_line_format ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::thousands_formats_with_commas ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::output::render_tree_layers_by_dependency_depth ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::run_summary_line_computes_tps_when_tokens_and_positive_active_time ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_chain_edges_and_dedupe ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_malformed_target_with_already_declared_id_is_an_error ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_reports_malformed_label_with_unclosed_quote ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::helpers_and_rendering::parse_mermaid_unlabeled_node_reports_missing_agent_and_task ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_basic_graph ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::output::render_mermaid_round_trip ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::wait::wait_for_runs_idle_watchdog ... ok
[INFO] [stdout] test multiagent::graph::model::tests::build::build_run_passes_budget_and_tools_from_def ... ok
[INFO] [stdout] test multiagent::graph::model::tests::helpers::downstream_closure_deduplicates_diamond_paths ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_hyphen_ids_survive_mmdr ... ok
[INFO] [stdout] test multiagent::graph::model::tests::helpers::status_tags_and_prefix ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_reports_bad_lines ... ok
[INFO] [stdout] test multiagent::graph::model::tests::helpers::fmt_dur_cases ... ok
[INFO] [stdout] test multiagent::graph::model::tests::helpers::status_label_variants_and_predicates ... ok
[INFO] [stdout] test multiagent::graph::model::tests::reconcile::closure_includes_transitive_dependents ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_label_with_ampersand_is_not_split ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_fullwidth_colon_and_quotes ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_multi_target_and_dotted_edges ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_comma_multi_target_reports_error ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::parse_comments_and_directions ... ok
[INFO] [stdout] test multiagent::graph::model::tests::reconcile::reconcile_readies_when_deps_succeed ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_accepts_agent_listed_in_known_agents ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_unknown_agent ... ok
[INFO] [stdout] test multiagent::graph::model::tests::reconcile::reconcile_cancels_blocked_downstream ... ok
[INFO] [stdout] test multiagent::graph::model::tests::reconcile::reconcile_treats_skipped_as_success_and_keeps_running ... ok
[INFO] [stdout] test multiagent::graph::model::tests::status::status_tag_covers_ready ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_cycle ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_unknown_dependency ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_dup_ids ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_invalid_id_missing_agent_and_empty_task ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_catches_self_dependency ... ok
[INFO] [stdout] test multiagent::graph::model::tests::validate::validate_empty_known_agents_accepts_unknown_agent ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::launch_ignores_missing_run_or_node ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::budget::tools_allowlist_unknown_name_fails_node_synchronously ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::cap_chars_truncates_on_char_boundary ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::cancellation_and_tracing::launch_returns_early_when_cancel_is_already_cancelled ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::missing_model_fails_the_node_with_clear_error ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::invalid_thinking_fails_node_synchronously ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::budget::max_iterations_override_caps_agent_loop ... ok
[INFO] [stdout] test multiagent::graph::engine::tests::wait::wait_for_runs_times_out_and_multi_run ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::known_agent_completes_with_output_and_tokens ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::model_override_same_id_uses_parent_model ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::legacy_state_without_budget_fields_hydrates_none ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::provider_without_model_fails_node_synchronously ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::hydrate_demotes_running_nodes_and_preserves_terminal_results ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::session_graph_state_projection_roundtrips_persisted_runs ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::unknown_agent_fails_node_synchronously ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::max_run_counter_uses_only_well_formed_dag_ids ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::snapshot_hydrate_roundtrip_preserves_budget_and_tools ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::maybe_complete_unknown_run_is_noop ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::unknown_provider_model_pair_fails_node_synchronously ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::background_dag_uses_original_session_launcher_after_global_switch ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::explicit_provider_model_resolves_without_parent_model ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::no_op_paths::after_node_terminal_unknown_run_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::no_op_paths::reconcile_unknown_run_is_noop ... ok
[INFO] [stdout] test multiagent::graph::persist::tests::roundtrip::snapshot_json_uses_camel_case_budget_keys ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::no_op_paths::start_node_unknown_run_or_node_or_not_ready_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::on_node_completed_no_result_error_uses_fallback ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::budget::tools_allowlist_narrows_the_tool_set ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::on_node_completed_unknown_run_or_node_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::on_node_update_unknown_run_or_node_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::tick_non_running_run_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::restore_empty_runs_returns_empty ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::on_node_update_with_none_fields_refreshes_activity ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::restore_terminal_run_skips_run_observation ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::model_override_rewrites_id_and_still_completes ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::tick_unknown_run_is_noop ... ok
[INFO] [stdout] test multiagent::job_events::tests::broadcast_capacity_is_256 ... ok
[INFO] [stdout] test multiagent::job_events::tests::agent_job_events_are_clone_and_debug ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::wait_for_runs_empty_is_noop ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::wait_for_runs_unknown_run_is_immediately_finished ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::wake_waiters_without_waiters_is_noop ... ok
[INFO] [stdout] test multiagent::job_events::tests::agent_job_event_variants_carry_their_fields ... ok
[INFO] [stdout] test multiagent::job_events::tests::job_status_into_static_str_matches_as_str ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::metrics_listener_message_end_unknown_job_is_noop ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::cap_tool_result_keeps_short_text_unchanged ... ok
[INFO] [stdout] test multiagent::job_events::tests::job_status_as_str_returns_lowercase_variant_names ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::cap_tool_result_truncates_long_text_on_char_boundary ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::turns::metrics_listener_attributes_tool_calls_to_their_turn ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::metrics_listener_message_end_counts_tokens_for_assistant ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::turns::metrics_listener_drops_oldest_turn_summary_beyond_cap ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::turns::metrics_listener_accumulates_usage_into_each_turn ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::agent_message_to_json_projects_custom_object_payload_with_merged_fields ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::agent_message_to_json_projects_tool_result ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::agent_message_to_json_projects_custom_non_object_payload_under_payload_key ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::turns::metrics_listener_non_assistant_message_end_leaves_turn_usage_zero ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::turns::metrics_listener_events_before_any_turn_start_update_aggregates_only ... ok
[INFO] [stdout] test multiagent::job_metrics::tests::metrics_listener_tool_execution_end_extracts_text_content_only ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::agent_message_to_json_projects_llm_user_and_assistant ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_message_accumulates_under_cap ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_output_ignores_empty_chunks ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::job_transcript_exposes_all_fields ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::tail_within_bytes_starts_on_char_boundary_when_aligned ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::tail_within_bytes_with_zero_budget_returns_empty ... ok
[INFO] [stdout] test multiagent::jobs::tests::control_handle_debug_does_not_leak ... ok
[INFO] [stdout] test multiagent::jobs::tests::finish_with_include_content_attaches_content ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_output_appends_within_cap ... ok
[INFO] [stdout] test multiagent::jobs::tests::finish_without_operation_scope_skips_observation_finish ... ok
[INFO] [stdout] test multiagent::jobs::tests::job_messages_falls_back_to_store_when_job_has_empty_messages ... ok
[INFO] [stdout] test multiagent::jobs::tests::job_new_starts_with_empty_turn_summaries ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_output_keeps_tail_and_flags_when_crossing_cap ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_output_single_oversized_chunk_keeps_only_tail ... ok
[INFO] [stdout] test multiagent::jobs::tests::job_tps_and_cps_need_elapsed_time ... ok
[INFO] [stdout] test multiagent::jobs::tests::job_tps_and_cps_return_none_for_zero_elapsed ... ok
[INFO] [stdout] test multiagent::jobs::tests::node_messages_falls_back_to_store_when_job_has_empty_messages ... ok
[INFO] [stdout] test multiagent::jobs::tests::messages::job_messages_returns_in_memory_messages_when_present ... ok
[INFO] [stdout] test multiagent::jobs::tests::messages::session_transcript_store_is_selected_by_job_session_id ... ok
[INFO] [stdout] test multiagent::jobs::tests::list_returns_newest_first ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_output_truncates_unicode_on_character_boundaries ... ok
[INFO] [stdout] test multiagent::jobs::tests::node_messages_for_session_requires_node_id_match ... ok
[INFO] [stdout] test multiagent::jobs::tests::node_operations_target_latest_registered_attempt ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::control_handle_routes_by_run_node_ids ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::control_handle_routes_interrupt_and_steer_by_job_id ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::evicts_oldest_terminal_job_when_over_cap ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::job_messages_fall_back_to_host_store_after_restart ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::finish_saves_transcript_to_host_store ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::metrics_listener_counts_tools_and_turns ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::message_end_captures_full_transcript_in_order ... ok
[INFO] [stdout] test multiagent::jobs::tests::registry_keeps_all_running_jobs_over_history_cap ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::output_buffer_caps_and_flags_truncated ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::register_list_finish_roundtrip ... ok
[INFO] [stdout] test multiagent::jobs::tests::subscribe_returns_receiver ... ok
[INFO] [stdout] test multiagent::jobs::tests::update_finish_and_find_with_unknown_id_are_noops ... ok
[INFO] [stdout] test multiagent::runner::tests::filter::filter_tool_set_empty_allow_returns_full_set ... ok
[INFO] [stdout] test multiagent::runner::tests::filter::filter_tool_set_subset_allow_keeps_only_allowed_tools ... ok
[INFO] [stdout] test multiagent::runner::tests::filter::filter_tool_set_unknown_name_fails_and_lists_available ... ok
[INFO] [stdout] test multiagent::runner::tests::filter::filter_tool_set_result_keeps_tool_set_order ... ok
[INFO] [stdout] test multiagent::runner::tests::lifecycle::run_agent_observations_link_job_to_agent_without_content ... ok
[INFO] [stdout] test multiagent::runner::tests::lifecycle::run_agent_interrupted_by_control_handle_marks_job_interrupted ... ok
[INFO] [stdout] test multiagent::runner::tests::context_virtualization::dag_node_subagent_virtualizes_large_tool_results_like_main_agent ... ok
[INFO] [stdout] test multiagent::runner::tests::lifecycle::run_agent_succeeds_and_registers_job ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::explicit_pair_resolves_from_catalog_without_parent ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_not_found_message_for_known_provider_lists_candidates ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::cancellation_and_tracing::launch_logs_debug_fields_when_subscriber_enabled ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_only_unknown_id_rewrites_the_parent_descriptor ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_not_found_message_for_provider_with_many_models_adds_more_hint ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_only_without_parent_returns_none ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_not_found_message_for_small_provider_lists_candidates_without_more_hint ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::no_overrides_return_the_parent_model ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::model_only_uses_catalog_entry_on_the_parent_provider ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::provider_without_model_errors ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::same_id_returns_the_parent_model ... ok
[INFO] [stdout] test multiagent::runner::tests::model_resolution::unknown_pair_errors_with_catalog_hint ... ok
[INFO] [stdout] test agent::run_loop::utils::tests::emit_isolates_panicking_sync_callback ... ok
[INFO] [stdout] test multiagent::runner::tests::lifecycle::run_agent_returns_cancelled_when_parent_cancel_fires ... ok
[INFO] [stdout] test multiagent::session_graph::tests::collapse::collapse_material_accepts_bare_graph_state ... ok
[INFO] [stdout] test multiagent::session_graph::tests::collapse::append_and_read_session_graph_state_roundtrips_latest ... ok
[INFO] [stdout] test multiagent::session_graph::tests::collapse::collapse_material_reads_compaction_summary_session_id_and_graph_state ... ok
[INFO] [stdout] test multiagent::session_graph::tests::collapse::collapse_material_falls_back_to_compact_context_for_nested_collapse ... ok
[INFO] [stdout] test multiagent::session_graph::tests::collapse::collapse_material_without_graph_state_uses_default ... ok
[INFO] [stdout] test multiagent::session_graph::tests::snapshot_attach::attach_runs_moves_engine_runs_and_job_ownership ... ok
[INFO] [stdout] test multiagent::session_graph::tests::snapshot_attach::snapshot_for_session_excludes_other_sessions ... ok
[INFO] [stdout] test multiagent::session_graph::tests::snapshot_attach::snapshot_for_session_filters_engine_and_jobs_by_session ... ok
[INFO] [stdout] test observability::tests::agent_run_emits_correlated_run_turn_and_llm_operations ... ok
[INFO] [stdout] test observability::tests::attached_content_carries_into_the_finish_observation ... ok
[INFO] [stdout] test observability::tests::details_have_no_payload_or_raw_error_fields ... ok
[INFO] [stdout] test observability::tests::dropped_scope_finishes_as_abandoned_once ... ok
[INFO] [stdout] test observability::tests::failed_agent_observations_use_categories_without_raw_error ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_mmdr_error_returns_parse_failure ... ok
[INFO] [stdout] test agent::run_loop::tools::tools_linecov_tests::tests::execute_tools_parallel_join_error_synthesizes_error ... ok
[INFO] [stdout] test observability::tests::aborting_agent_finishes_run_and_request_as_cancelled ... ok
[INFO] [stdout] test observability::tests::include_content_defaults_to_false ... ok
[INFO] [stdout] test observability::tests::observer_panic_is_isolated ... ok
[INFO] [stdout] test observability::tests::operation_scope_pairs_start_and_finish_with_parent ... ok
[INFO] [stdout] test types::tests::agent_context_clone_is_deep ... ok
[INFO] [stdout] test observability::tests::full_content_observer_gets_llm_and_tool_input_output ... ok
[INFO] [stdout] test observability::tests::parallel_tools_are_siblings_and_payloads_are_absent ... ok
[INFO] [stdout] test multiagent::graph::mermaid::tests::error_paths::parse_mermaid_malformed_segment_without_id_prefix_is_an_error ... ok
[INFO] [stdout] test types::tests::agent_message_from_llm_message ... ok
[INFO] [stdout] test types::tests::agent_tool_error_from_string_and_str ... ok
[INFO] [stdout] test types::tests::agent_tool_result_default_is_empty_null_and_none ... ok
[INFO] [stdout] test types::tests::control_plane_prompt_decision_audit_str ... ok
[INFO] [stdout] test types::tests::thinking_level_as_str_and_provider_conversion ... ok
[INFO] [stdout] test multiagent::graph::scheduler::tests::launcher_panic_is_caught_and_fails_node ... ok
[INFO] [stdout] test types::tests::default_convert_to_llm_keeps_llm_variants_and_filters_unknown_custom ... ok
[INFO] [stdout] test types::tests::default_convert_to_llm_materializes_known_custom_summary_roles ... ok
[INFO] [stdout] test types::tests::exports_marker_accepts_provider_types ... ok
[INFO] [stdout] test multiagent::runner::tests::task_failures::run_agent_maps_join_error_to_subagent_task_failure ... ok
[INFO] [stdout] test multiagent::jobs::tests::operations::message_buffer_caps_drops_oldest_keeps_newest ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_message_keeps_newest_when_over_cap ... ok
[INFO] [stdout] test multiagent::job_transcript::tests::append_message_drops_oldest_until_total_fits_before_len_one ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::run_cancel_aborts_the_node_job ... ok
[INFO] [stdout] test multiagent::runner::tests::task_failures::run_agent_handles_watchdog_overflow_panic ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::node_timeout_fails_the_node ... ok
[INFO] [stdout] test multiagent::runner::tests::lifecycle::run_agent_idle_timeout_reports_timeout_error ... ok
[INFO] [stdout] test multiagent::graph::node_launcher::tests::lifecycle::idle_timeout_reschedules_on_activity ... ok
[INFO] [stdout] test multiagent::runner::tests::task_failures::run_agent_idle_timeout_force_kills_blocked_prompt ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 795 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/context_cache.rs (/opt/rustwide/target/debug/deps/context_cache-f2b148e826fc6cb4)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test finalize_with_zero_total_bytes_returns_zero_unknown_rate ... ok
[INFO] [stdout] test canonical_context_bytes_are_stable_for_identical_contexts ... ok
[INFO] [stderr]      Running tests/harness_e2e_main.rs (/opt/rustwide/target/debug/deps/harness_e2e_main-ea177cc25ffa4f7d)
[INFO] [stdout] test identical_long_contexts_match_every_chunk ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test harness_e2e::compaction::cut_point_anchors_on_user_message_even_around_trigger_custom ... ok
[INFO] [stdout] test harness_e2e::compaction::build_session_context_skips_trigger_custom_entries ... ok
[INFO] [stdout] test harness_e2e::prompt_session::move_to_rehydrates_thinking_level_from_session_context ... ok
[INFO] [stdout] test harness_e2e::compaction::force_compact_fallback_when_session_branch_read_fails ... ok
[INFO] [stdout] test harness_e2e::events_abort::budget_cap_blocks_new_prompts_after_cap_reached ... ok
[INFO] [stdout] test harness_e2e::events_abort::cost_tracker_accumulates_across_turns ... ok
[INFO] [stdout] test harness_e2e::control_plane::control_plane_prompt_no_hook_writes_audit_with_failclosed_deny ... ok
[INFO] [stdout] test harness_e2e::control_plane::control_plane_prompt_allow_writes_audit_entry ... ok
[INFO] [stdout] test harness_e2e::prompt_session::prompt_from_template_interpolates_and_runs ... ok
[INFO] [stdout] test harness_e2e::control_plane::control_plane_prompt_audit_caps_oversized_label ... ok
[INFO] [stdout] test harness_e2e::control_plane::control_plane_prompt_deny_writes_audit_with_reason ... ok
[INFO] [stdout] test harness_e2e::prompt_session::prompt_persists_user_and_assistant_to_session ... ok
[INFO] [stdout] test harness_e2e::events_abort::harness_event_bus_delivers_session_and_branch ... ok
[INFO] [stdout] test harness_e2e::compaction::force_compact_writes_reachable_first_kept_entry_id_and_resume_preserves_tail ... ok
[INFO] [stdout] test harness_e2e::skills_reload::reload_skills_from_disk_emits_skills_reloaded_event ... ok
[INFO] [stdout] test harness_e2e::prompt_session::skills_block_appears_in_system_prompt ... ok
[INFO] [stdout] test harness_e2e::prompt_session::set_model_persists_to_session ... ok
[INFO] [stdout] test harness_e2e::skills_reload::reload_skills_from_disk_without_loader_errors_with_not_configured ... ok
[INFO] [stdout] test harness_e2e::skills_reload::reload_skills_from_disk_propagates_loader_diagnostics ... ok
[INFO] [stdout] test harness_e2e::turn_end::on_turn_end_hook_noop_writes_no_audit_no_event ... ok
[INFO] [stdout] test harness_e2e::prompt_session::prompt_reports_session_persistence_failures ... ok
[INFO] [stdout] test harness_e2e::turn_end::on_turn_end_hook_unset_keeps_single_cycle_behavior ... ok
[INFO] [stdout] test harness_e2e::skills_reload::reload_skills_from_disk_invokes_loader_and_replaces_catalog ... ok
[INFO] [stdout] test harness_e2e::skills_reload::reload_skills_from_disk_preserves_message_state_and_streaming_flag ... ok
[INFO] [stdout] test harness_e2e::turn_end::on_turn_end_continue_runs_second_turn_then_stops ... ok
[INFO] [stdout] test harness_e2e::turn_end::on_turn_end_hook_stop_emits_event_and_audits_payload ... ok
[INFO] [stdout] test harness_e2e::turn_end::on_turn_end_continuation_cap_emits_budget_limited_without_invoking_hook ... ok
[INFO] [stdout] test harness_e2e::skills_reload::control_plane_write_category_defaults_to_allow_at_runtime_layer ... ok
[INFO] [stdout] test harness_e2e::events_abort::abort_promptly_unblocks_a_stalled_stream ... ok
[INFO] [stdout] test harness_e2e::compaction::auto_compaction_bounds_oversized_summary_prompt_before_provider_call ... ok
[INFO] [stdout] test harness_e2e::prompt_session::rehydrate_from_session_restores_messages_model_thinking ... ok
[INFO] [stdout] test harness_e2e::events_abort::subscribe_harness_unsub_stops_delivery ... ok
[INFO] [stdout] test harness_e2e::events_abort::abort_cancels_in_flight_prompt ... ok
[INFO] [stdout] test harness_e2e::events_abort::harness_event_bus_isolates_panicking_listener ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/model_request.rs (/opt/rustwide/target/debug/deps/model_request-b54ff5572fbc942d)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test validate_replacement_rejects_max_tokens_above_model_limit ... ok
[INFO] [stdout] test validate_replacement_rejects_model_identity_change ... ok
[INFO] [stdout] test validate_replacement_rejects_duplicate_executable_tool_names ... ok
[INFO] [stdout] test validate_replacement_rejects_visible_executable_mismatch ... ok
[INFO] [stdout] test validate_replacement_rejects_duplicate_visible_tool_names ... ok
[INFO] [stdout] test validate_replacement_rejects_executable_tool_missing_from_base ... ok
[INFO] [stdout] test validate_replacement_accepts_identical_draft ... ok
[INFO] [stdout] test validate_replacement_rejects_zero_thinking_budget ... ok
[INFO] [stdout] test validate_replacement_accepts_boolean_tool_parameters ... ok
[INFO] [stdout] test validate_replacement_ignores_max_tokens_limit_when_model_max_is_zero ... ok
[INFO] [stdout] test validate_replacement_accepts_positive_thinking_budgets ... ok
[INFO] [stdout] test validate_replacement_rejects_empty_visible_tool_name ... ok
[INFO] [stdout] test validate_replacement_rejects_visible_tool_missing_from_base ... ok
[INFO] [stdout] test validate_replacement_rejects_non_finite_temperature ... ok
[INFO] [stdout] test validate_replacement_rejects_empty_provider ... ok
[INFO] [stdout] test validate_replacement_rejects_empty_model ... ok
[INFO] [stdout] test validate_replacement_rejects_zero_max_tokens ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/permission_e2e.rs (/opt/rustwide/target/debug/deps/permission_e2e-3e97fa21830b323a)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test safe_bash_passes_through_with_policy_enabled ... ok
[INFO] [stdout] test dangerous_bash_is_blocked_before_tool_runs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/run_loop_main.rs (/opt/rustwide/target/debug/deps/run_loop_main-68564b613c66116c)
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test run_loop::lifecycle::abort_reaches_listeners_and_bound_backstops_hung_ones ... ok
[INFO] [stdout] test run_loop::lifecycle::single_turn_no_tools_emits_lifecycle_events ... ok
[INFO] [stdout] test run_loop::permission::permission_classification_default_allow_keeps_legacy_behavior ... ok
[INFO] [stdout] test run_loop::lifecycle::before_tool_call_can_veto_execution ... ok
[INFO] [stdout] test run_loop::permission::permission_classification_prompt_with_no_hook_fails_closed ... ok
[INFO] [stdout] test run_loop::lifecycle::tool_call_loops_until_non_tool_use_stop ... ok
[INFO] [stdout] test run_loop::permission::runtime_overrides_hook_supplied_binding_fields_in_prompt ... ok
[INFO] [stdout] test run_loop::lifecycle::prepare_arguments_normalizes_args_for_hook_and_execute ... ok
[INFO] [stdout] test run_loop::lifecycle::hung_await_listener_is_dropped_after_bound ... ok
[INFO] [stdout] test run_loop::permission::default_prompt_payload_does_not_include_raw_args_values ... ok
[INFO] [stdout] test run_loop::permission::permission_classification_block_short_circuits_before_hook_and_execute ... ok
[INFO] [stdout] test run_loop::permission::permission_classification_prompt_with_hook_deny_blocks_and_emits_audit_event ... ok
[INFO] [stdout] test run_loop::lifecycle::max_iterations_caps_tool_loop ... ok
[INFO] [stdout] test run_loop::updates::tool_execution_update_callback_emits_listener_events_in_order ... ok
[INFO] [stdout] test run_loop::permission::permission_classification_prompt_with_hook_allow_executes_and_emits_audit_event ... ok
[INFO] [stdout] test run_loop::permission::classifier_prompt_preserved_through_default_before_tool_call_hook ... ok
[INFO] [stdout] test run_loop::lifecycle::parallel_tools_execute_concurrently ... ok
[INFO] [stdout] test run_loop::updates::run_one_does_not_hang_when_tool_retains_on_update_past_return ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/session_storage.rs (/opt/rustwide/target/debug/deps/session_storage-d4a0da49195b727e)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test branch_walks_parent_chain_in_root_to_leaf_order ... ok
[INFO] [stderr]      Running tests/skills_loader.rs (/opt/rustwide/target/debug/deps/skills_loader-9ca3d8716f8dd3c6)
[INFO] [stdout] test memory_session_roundtrips_messages ... ok
[INFO] [stdout] test compaction_summary_replaces_history_up_to_first_kept ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test name_must_match_parent_dir ... ok
[INFO] [stdout] test missing_description_emits_diagnostic_and_skips ... ok
[INFO] [stdout] test system_prompt_block_lists_each_skill ... ok
[INFO] [stdout] test discovers_skill_with_matching_parent_dir ... ok
[INFO] [stdout] test resume_rebuilds_skill_block_byte_identical_from_same_directory ... ok
[INFO] [stdout] test disable_model_invocation_accepts_both_kebab_and_snake ... ok
[INFO] [stdout] test resume_rebuilds_harness_system_prompt_byte_identical ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests theway_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3", kill_on_drop: false }`
[INFO] [stdout] 3d95b1192549e9bf64e01495889dd6e6ce82bdbce6663b010f2e13dcc90166e3
