[INFO] cloning repository https://github.com/Entelligentsia/grove [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Entelligentsia/grove" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntelligentsia%2Fgrove", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntelligentsia%2Fgrove'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] da8a9043f43f1c55ff2423aee0034408b2c42b80 [INFO] testing Entelligentsia/grove against 1.99.0-beta.8 for beta-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEntelligentsia%2Fgrove" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Entelligentsia/grove [INFO] finished tweaking git repo https://github.com/Entelligentsia/grove [INFO] tweaked toml for git repo https://github.com/Entelligentsia/grove written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Entelligentsia/grove 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 git repo https://github.com/Entelligentsia/grove 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 serde_json v1.0.150 [INFO] [stderr] Downloaded wasmtime-versioned-export-macros v29.0.1 [INFO] [stderr] Downloaded cranelift-control v0.116.1 [INFO] [stderr] Downloaded wasmtime-winch v29.0.1 [INFO] [stderr] Downloaded utf8-zero v0.8.1 [INFO] [stderr] Downloaded leb128 v0.2.7 [INFO] [stderr] Downloaded cranelift-bitset v0.116.1 [INFO] [stderr] Downloaded embedded-io v0.4.0 [INFO] [stderr] Downloaded cranelift-native v0.116.1 [INFO] [stderr] Downloaded wasmtime-c-api-macros v29.0.1 [INFO] [stderr] Downloaded cranelift-entity v0.116.1 [INFO] [stderr] Downloaded rustls-pki-types v1.14.1 [INFO] [stderr] Downloaded wasmtime-component-util v29.0.1 [INFO] [stderr] Downloaded embedded-io v0.6.1 [INFO] [stderr] Downloaded cobs v0.3.0 [INFO] [stderr] Downloaded wasmtime-slab v29.0.1 [INFO] [stderr] Downloaded wasmtime-jit-icache-coherence v29.0.1 [INFO] [stderr] Downloaded dirs v5.0.1 [INFO] [stderr] Downloaded wasmtime-math v29.0.1 [INFO] [stderr] Downloaded wasmtime-asm-macros v29.0.1 [INFO] [stderr] Downloaded libredox v0.1.17 [INFO] [stderr] Downloaded tree-sitter-language v0.1.7 [INFO] [stderr] Downloaded postcard v1.1.3 [INFO] [stderr] Downloaded wasmprinter v0.221.3 [INFO] [stderr] Downloaded env_home v0.1.0 [INFO] [stderr] Downloaded streaming-iterator v0.1.9 [INFO] [stderr] Downloaded cranelift-codegen-shared v0.116.1 [INFO] [stderr] Downloaded cranelift-bforest v0.116.1 [INFO] [stderr] Downloaded which v7.0.3 [INFO] [stderr] Downloaded wasmtime-fiber v29.0.1 [INFO] [stderr] Downloaded wasmtime-wit-bindgen v29.0.1 [INFO] [stderr] Downloaded globset v0.4.18 [INFO] [stderr] Downloaded compact_str v0.8.2 [INFO] [stderr] Downloaded psm v0.1.31 [INFO] [stderr] Downloaded ignore v0.4.26 [INFO] [stderr] Downloaded clap_derive v4.6.1 [INFO] [stderr] Downloaded ureq-proto v0.6.0 [INFO] [stderr] Downloaded wasm-encoder v0.221.3 [INFO] [stderr] Downloaded cranelift-frontend v0.116.1 [INFO] [stderr] Downloaded pulley-interpreter v29.0.1 [INFO] [stderr] Downloaded clap v4.6.1 [INFO] [stderr] Downloaded cranelift-codegen-meta v0.116.1 [INFO] [stderr] Downloaded ureq v3.3.0 [INFO] [stderr] Downloaded cranelift-isle v0.116.1 [INFO] [stderr] Downloaded ar_archive_writer v0.5.2 [INFO] [stderr] Downloaded http v1.4.2 [INFO] [stderr] Downloaded winch-codegen v29.0.1 [INFO] [stderr] Downloaded wasmtime-c-api-impl v29.0.1 [INFO] [stderr] Downloaded regalloc2 v0.11.2 [INFO] [stderr] Downloaded wit-parser v0.221.3 [INFO] [stderr] Downloaded wasmtime-cranelift v29.0.1 [INFO] [stderr] Downloaded regex v1.12.4 [INFO] [stderr] Downloaded webpki-roots v1.0.8 [INFO] [stderr] Downloaded tree-sitter v0.25.10 [INFO] [stderr] Downloaded wasmtime-environ v29.0.1 [INFO] [stderr] Downloaded wasmtime-component-macro v29.0.1 [INFO] [stderr] Downloaded wasmparser v0.221.3 [INFO] [stderr] Downloaded rustls v0.23.40 [INFO] [stderr] Downloaded bstr v1.12.1 [INFO] [stderr] Downloaded winsafe v0.0.19 [INFO] [stderr] Downloaded wasmtime v29.0.1 [INFO] [stderr] Downloaded cranelift-codegen v0.116.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927 [INFO] running `Command { std: "docker" "start" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", 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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927" "/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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", 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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling cranelift-isle v0.116.1 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling cranelift-codegen-shared v0.116.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling target-lexicon v0.13.5 [INFO] [stderr] Compiling cc v1.2.65 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling cranelift-codegen-meta v0.116.1 [INFO] [stderr] Compiling either v1.16.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling bumpalo v3.20.3 [INFO] [stderr] Compiling wasmparser v0.221.3 [INFO] [stderr] Compiling rustc-hash v2.1.2 [INFO] [stderr] Compiling arbitrary v1.4.2 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Compiling object v0.36.7 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling termcolor v1.4.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling leb128 v0.2.7 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling wasm-encoder v0.221.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling cranelift-control v0.116.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling wasmtime-c-api-impl v29.0.1 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling tree-sitter-language v0.1.7 [INFO] [stderr] Compiling wasmtime-jit-icache-coherence v29.0.1 [INFO] [stderr] Compiling wasmtime-math v29.0.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling wasmtime-asm-macros v29.0.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling sptr v0.3.2 [INFO] [stderr] Compiling bytes v1.12.1 [INFO] [stderr] Compiling memfd v0.6.5 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling wasmtime-slab v29.0.1 [INFO] [stderr] Compiling rustls v0.23.40 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling gimli v0.31.1 [INFO] [stderr] Compiling wasmtime-c-api-macros v29.0.1 [INFO] [stderr] Compiling cranelift-codegen v0.116.1 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling webpki-roots v1.0.8 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling utf8-zero v0.8.1 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling unicode-segmentation v1.13.3 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling regex v1.12.4 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling ureq-proto v0.6.0 [INFO] [stderr] Compiling ignore v0.4.26 [INFO] [stderr] Compiling tree-sitter v0.25.10 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling compact_str v0.8.2 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling wasmtime-versioned-export-macros v29.0.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling wasmtime v29.0.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling instability v0.3.7 [INFO] [stderr] Compiling cobs v0.3.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling cranelift-bitset v0.116.1 [INFO] [stderr] Compiling postcard v1.1.3 [INFO] [stderr] Compiling cranelift-entity v0.116.1 [INFO] [stderr] Compiling regalloc2 v0.11.2 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling cranelift-bforest v0.116.1 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling ureq v3.3.0 [INFO] [stderr] Compiling wasmprinter v0.221.3 [INFO] [stderr] Compiling wasmtime-environ v29.0.1 [INFO] [stderr] Compiling cranelift-frontend v0.116.1 [INFO] [stderr] Compiling cranelift-native v0.116.1 [INFO] [stderr] Compiling wasmtime-cranelift v29.0.1 [INFO] [stderr] Compiling grove-cst v0.5.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling grove-explore-core v0.5.0 (/opt/rustwide/workdir/explore) [INFO] [stderr] Compiling grove-cst-cli v0.5.0 (/opt/rustwide/workdir/cli) [INFO] [stderr] Compiling grove-explore-bin v0.5.0 (/opt/rustwide/workdir/grove-explore) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 46s [INFO] running `Command { std: "docker" "inspect" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", 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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927" "/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 grove-explore-core v0.5.0 (/opt/rustwide/workdir/explore) [INFO] [stderr] Compiling grove-cst v0.5.0 (/opt/rustwide/workdir/core) [INFO] [stderr] Compiling grove-cst-cli v0.5.0 (/opt/rustwide/workdir/cli) [INFO] [stderr] Compiling grove-explore-bin v0.5.0 (/opt/rustwide/workdir/grove-explore) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 9.92s [INFO] running `Command { std: "docker" "inspect" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", 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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/grove_core-0167c33a9085c5a8) [INFO] [stdout] [INFO] [stdout] running 146 tests [INFO] [stdout] test config::tests::bad_version_rejected ... ok [INFO] [stdout] test config::tests::explore_section_absent_when_none ... ok [INFO] [stdout] test config::tests::explicit_harnesses_round_trip_by_slug ... ok [INFO] [stdout] test config::tests::bad_mode_error_names_field_and_legal_values ... ok [INFO] [stdout] test config::tests::explore_section_present_when_some ... ok [INFO] [stdout] test config::tests::active_mode_mcp_config_ignores_stale_explore_json ... ok [INFO] [stdout] test config::tests::deprecation_warning_emitted ... ok [INFO] [stdout] test config::tests::missing_harnesses_defaults_to_claude_code ... ok [INFO] [stdout] test config::tests::second_load_after_migration_reads_config_not_legacy ... ok [INFO] [stdout] test config::tests::active_mode_none_reads_declared_mcp_llm_mode ... ok [INFO] [stdout] test config::tests::active_mode_none_reads_declared_mcp_mode ... ok [INFO] [stdout] test config::tests::config_json_present_ignores_stale_explore_json ... ok [INFO] [stdout] test config::tests::active_mode_no_config_falls_back_to_mcp ... ok [INFO] [stdout] test config::tests::migrate_legacy_explore_writes_config_json ... ok [INFO] [stdout] test config::tests::save_load_round_trip_atomic ... ok [INFO] [stdout] test config::tests::missing_file_actionable_error ... ok [INFO] [stdout] test config::tests::serde_round_trip_each_mode ... ok [INFO] [stdout] test config::tests::steering_key_in_explore_section ... ok [INFO] [stdout] test config::tests::unknown_harness_slug_is_actionable_error ... ok [INFO] [stdout] test doctor::tests::warn_only_report_exits_zero ... ok [INFO] [stdout] test doctor::tests::grammars_mode_with_grove_block_in_claude_md_is_warn ... ok [INFO] [stdout] test doctor::tests::mcp_llm_missing_explore_entry_is_fail ... ok [INFO] [stdout] test engine::tests::c_callers_capture_calls_with_enclosing_function ... ok [INFO] [stdout] test doctor::tests::mcp_llm_without_explore_registration_skips_explore_group ... ok [INFO] [stdout] test doctor::tests::mcp_llm_cursor_only_explore_registration_triggers_explore_group ... ok [INFO] [stdout] test doctor::tests::multi_harness_config_checks_each_registration ... ok [INFO] [stdout] test doctor::tests::multi_harness_missing_cursor_registration_is_fail ... ok [INFO] [stdout] test doctor::tests::mcp_mode_with_explore_args_in_mcp_json_is_fail ... ok [INFO] [stdout] test doctor::tests::lock_integrity_absent_lockfile_is_warn ... ok [INFO] [stdout] test doctor::tests::mcp_mode_with_explore_marker_in_claude_md_is_fail ... ok [INFO] [stdout] test engine::tests::c_function_definition_span_includes_the_body ... ok [INFO] [stdout] test doctor::tests::mcp_llm_mode_without_agents_md_is_warn ... ok [INFO] [stdout] test doctor::tests::mcp_mode_with_cursor_explore_registration_is_fail ... ok [INFO] [stdout] test doctor::tests::harness_matrix_clean_fixtures_all_ok ... ok [INFO] [stdout] test doctor::tests::explore_config_absent_is_fail ... ok [INFO] [stdout] test doctor::tests::mcp_llm_stale_layout_single_registration_is_fail ... ok [INFO] [stdout] test engine::tests::extract_with_tree_returns_a_reusable_tree ... ok [INFO] [stdout] test engine::tests::identifier_at_resolves_the_name_under_the_cursor ... ok [INFO] [stdout] test engine::tests::supertype_pattern_detected_outside_strings ... ok [INFO] [stdout] test fetch::tests::accepts_plain_file_names ... ok [INFO] [stdout] test fetch::tests::build_agent_honors_http_proxy_environment ... ok [INFO] [stdout] test fetch::tests::catalog_parses_schema_2_with_release_assets ... ok [INFO] [stdout] test fetch::tests::catalog_tolerates_missing_optional_fields ... ok [INFO] [stdout] test fetch::tests::fetch_verifies_with_the_shared_helper ... ok [INFO] [stdout] test fetch::tests::host_defaults_and_honors_env_override ... ok [INFO] [stdout] test fetch::tests::rejects_traversal_and_separators ... ok [INFO] [stdout] test engine::tests::extract_imports_empty_without_query ... ok [INFO] [stdout] test fetch::tests::traversal_segment_does_not_escape_cache ... ok [INFO] [stdout] test engine::tests::rust_definition_span_covers_the_whole_body ... ok [INFO] [stdout] test harness::tests::agents_md_expected_for_all_mcp_surfaces ... ok [INFO] [stdout] test harness::tests::codex_is_global_toml ... ok [INFO] [stdout] test harness::tests::detect_markers_present_only_for_project_footprint_harnesses ... ok [INFO] [stdout] test harness::tests::expected_claude_marker_coverage ... ok [INFO] [stdout] test harness::tests::expected_explore_args_coverage ... ok [INFO] [stdout] test harness::tests::expected_mcp_args_coverage ... ok [INFO] [stdout] test harness::tests::from_slug_bad_names_field_and_legal_values ... ok [INFO] [stdout] test harness::tests::most_json_harnesses_use_mcp_servers ... ok [INFO] [stdout] test harness::tests::slug_round_trips_over_all ... ok [INFO] [stdout] test harness::tests::only_claude_code_has_mcp_tool_prefix ... ok [INFO] [stdout] test harness::tests::vscode_uses_servers_root_key_and_type_stdio ... ok [INFO] [stdout] test harness::tests::project_paths_resolve_under_root_global_under_home ... ok [INFO] [stdout] test ingest::tests::default_tags_path ... ok [INFO] [stdout] test ingest::tests::extra_tags_deserializes_when_present ... ok [INFO] [stdout] test ingest::tests::run_errors_on_malformed_sources ... ok [INFO] [stdout] test ingest::tests::run_errors_on_missing_sources_file ... ok [INFO] [stdout] test ingest::tests::sources_spec_deserializes_with_defaults ... ok [INFO] [stdout] test ingest::tests::run_errors_when_only_names_an_unknown_grammar ... ok [INFO] [stdout] test init::tests::provision_empty_project_writes_nothing_and_returns_empty ... ok [INFO] [stdout] test init::tests::provision_dry_run_writes_no_lock_and_returns_empty ... ok [INFO] [stdout] test engine::tests::check_passes_clean_source ... ok [INFO] [stdout] test engine::tests::extract_finds_definitions_with_container_parent ... ok [INFO] [stdout] test engine::tests::check_reports_defects_on_broken_source ... ok [INFO] [stdout] test engine::tests::resolve_local_returns_none_off_an_identifier ... ok [INFO] [stdout] test engine::tests::resolve_local_prefers_the_shadowing_binding ... ok [INFO] [stdout] test engine::tests::enclosing_function_at_qualifies_method_with_its_type ... ok [INFO] [stdout] test ops::tests::has_whole_word_finds_identifier_names ... ok [INFO] [stdout] test engine::tests::extract_imports_python_named_and_aliased ... ok [INFO] [stdout] test ops::tests::import_candidates_dotted_package_absolute ... ok [INFO] [stdout] test ops::tests::import_candidates_dotted_package_relative_dots ... ok [INFO] [stdout] test ops::tests::import_candidates_relative_path_js ... ok [INFO] [stdout] test ops::tests::import_candidates_unknown_strategy_is_empty ... ok [INFO] [stdout] test ops::tests::is_generated_decl_flags_typescript_declaration_files ... ok [INFO] [stdout] test ops::tests::kind_matches_exact_and_struct_synonyms ... ok [INFO] [stdout] test engine::tests::resolve_local_returns_none_for_a_global_reference ... ok [INFO] [stdout] test engine::tests::extract_dedups_overlapping_matches ... ok [INFO] [stdout] test engine::tests::resolve_local_resolves_a_parameter ... ok [INFO] [stdout] test engine::tests::extract_imports_javascript_named_and_aliased ... ok [INFO] [stdout] test ops::tests::callers_excludes_definition_from_textual ... ok [INFO] [stdout] test ops::tests::normalize_resolves_dot_and_dotdot ... ok [INFO] [stdout] test ops::tests::id_line_selects_that_definition ... ok [INFO] [stdout] test ops::tests::parse_pos_keeps_colons_in_the_path ... ok [INFO] [stdout] test ops::tests::parse_pos_parses_file_line_col ... ok [INFO] [stdout] test ops::tests::parse_pos_rejects_bad_shapes ... ok [INFO] [stdout] test engine::tests::slice_returns_the_symbols_bytes ... ok [INFO] [stdout] test ops::tests::callers_finds_call_sites_via_profile ... ok [INFO] [stdout] test ops::tests::source_rejects_malformed_id ... ok [INFO] [stdout] test ops::tests::callers_includes_type_and_impl_references ... ok [INFO] [stdout] test ops::tests::map_returns_definitions_with_references ... ok [INFO] [stdout] test ops::tests::callers_parses_each_file_once ... ok [INFO] [stdout] test ops::tests::outline_filters_by_kind_and_skips_references ... ok [INFO] [stdout] test proxy::default_config_tests::builds_an_agent ... ok [INFO] [stdout] test proxy::tests::http_proxy_env_is_picked_up ... ok [INFO] [stdout] test ops::tests::by_name_returns_first_and_lists_other_candidate ... ok [INFO] [stdout] test proxy::tests::malformed_proxy_url_is_ignored_not_panicking ... ok [INFO] [stdout] test proxy::tests::no_proxy_excludes_matching_host ... ok [INFO] [stdout] test proxy::tests::no_proxy_env_yields_none ... ok [INFO] [stdout] test proxy::tests::request_is_actually_routed_through_configured_proxy ... ok [INFO] [stdout] test registry::tests::build_index_errors_on_missing_root ... ok [INFO] [stdout] test registry::tests::build_index_records_locals_scm_only_when_present ... ok [INFO] [stdout] test registry::tests::build_index_records_release_asset_when_release_base_set ... ok [INFO] [stdout] test registry::tests::call_kinds_drives_the_filter ... ok [INFO] [stdout] test registry::tests::empty_call_kinds_defaults_to_literal_call ... ok [INFO] [stdout] test registry::tests::available_and_extensions_are_sorted_and_include_the_dev_stub ... ok [INFO] [stdout] test registry::tests::is_source_follows_extension ... ok [INFO] [stdout] test registry::tests::lang_for_path_maps_known_extensions ... ok [INFO] [stdout] test registry::tests::for_path_errors_on_unregistered_extension ... ok [INFO] [stdout] test registry::tests::manifest_deserializes_call_kinds_from_profile ... ok [INFO] [stdout] test registry::tests::resolve_caches_and_loads_a_real_grammar ... ok [INFO] [stdout] test registry::tests::manifests_are_sorted_and_carry_versions ... ok [INFO] [stdout] test registry::tests::resolve_errors_on_unknown_language ... ok [INFO] [stdout] test registry::tests::search_path_is_ordered_and_root_exists ... ok [INFO] [stdout] test registry::tests::verify_lock_detects_missing_wasm ... ok [INFO] [stdout] test registry::tests::sha256_has_canonical_format ... ok [INFO] [stdout] test ops::tests::map_attributes_refs_to_innermost_definition ... ok [INFO] [stdout] test registry::tests::verify_lock_returns_none_when_file_absent ... ok [INFO] [stdout] test registry::tests::wasm_sha256_delegates_to_sha256 ... ok [INFO] [stdout] test registry::tests::write_index_defaults_output_to_dir_index_json ... ok [INFO] [stdout] test registry::tests::write_index_writes_catalog_and_returns_count ... ok [INFO] [stdout] test registry::tests::write_lock_for_pins_versions_and_hashes ... ok [INFO] [stdout] test render::tests::map_appends_references_arrow_only_when_present ... ok [INFO] [stdout] test render::tests::outline_and_symbols_have_one_line_per_symbol ... ok [INFO] [stdout] test ops::tests::definition_at_resolves_use_site_to_def ... ok [INFO] [stdout] test registry::tests::verify_lock_matches_after_write_lock_for ... ok [INFO] [stdout] test ops::tests::map_filters_by_kind_and_name ... ok [INFO] [stdout] test registry::tests::verify_lock_detects_tampered_hash ... ok [INFO] [stdout] test ops::tests::symbols_honors_name_kind_and_refs_filters ... ok [INFO] [stdout] test ops::tests::map_across_multiple_files ... ok [INFO] [stdout] test ops::tests::definition_finds_exact_name ... ok [INFO] [stdout] test ops::tests::callers_textual_fallback_finds_untagged_references ... ok [INFO] [stdout] test engine::tests::reported_line_matches_grep_n_per_grammar ... ok [INFO] [stdout] test ops::tests::project_tiers_control_field_density ... ok [INFO] [stdout] test ops::tests::source_errors_when_name_absent ... ok [INFO] [stdout] test ops::tests::map_excludes_self_references ... ok [INFO] [stdout] test ops::tests::symbols_name_exact_buries_substring_noise_issue_37 ... ok [INFO] [stdout] test ops::tests::symbols_skips_generated_declaration_files ... ok [INFO] [stdout] test ops::tests::unmatched_line_falls_back_to_first ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 146 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 21.60s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/grove-f8e122f177ea4fb4) [INFO] [stdout] [INFO] [stdout] running 65 tests [INFO] [stdout] test init::tests::claude_section_mcp_is_delimited_and_names_langs_and_prefix ... ok [INFO] [stdout] test init::tests::claude_section_skill_is_thin_and_defers_to_skill ... ok [INFO] [stdout] test init::tests::agents_section_standard_uses_bare_tool_names ... ok [INFO] [stdout] test init::tests::claude_section_mcp_routes_grove_and_shell ... ok [INFO] [stdout] test init::tests::harness_targets_flags_codex_global_and_lists_steering ... ok [INFO] [stdout] test init::tests::mcp_target_writes_mcp_json_and_steering ... ok [INFO] [stdout] test init::tests::reconcile_multi_harness_writes_each_registration ... ok [INFO] [stdout] test init::tests::reconcile_harness_mcp_llm_writes_mcp_json_explore_and_steering ... ok [INFO] [stdout] test init::tests::reconcile_without_claude_strips_claude_md_keeps_agents ... ok [INFO] [stdout] test init::tests::reconcile_harness_preserves_host_content ... ok [INFO] [stdout] test init::tests::claude_section_mcp_llm_routes_explore_not_individual_tools ... ok [INFO] [stdout] test init::tests::grammars_target_writes_no_harness_files ... ok [INFO] [stdout] test init::tests::both_target_writes_mcp_json_and_steering ... ok [INFO] [stdout] test init::tests::parse_agents_all_and_explicit_list_dedup ... ok [INFO] [stdout] test init::tests::skill_target_writes_steering_but_no_mcp_json ... ok [INFO] [stdout] test init::tests::mcp_llm_forward_migration_strips_structural_entry_for_explore_only ... ok [INFO] [stdout] test init::tests::parse_agents_rejects_unknown_and_empty ... ok [INFO] [stdout] test init::tests::harness_present_detects_project_marker ... ok [INFO] [stdout] test init::tests::agents_section_mcp_llm_routes_explore_not_individual_tools ... ok [INFO] [stdout] test init::tests::reconcile_deselecting_harness_strips_its_registration ... ok [INFO] [stdout] test init::tests::resolve_harness_set_prefers_spec_then_preserves_old ... ok [INFO] [stdout] test init::tests::strip_steering_block_noop_when_no_block ... ok [INFO] [stdout] test init::tests::strip_grove_entry_from_mcp_json_removes_grove_key ... ok [INFO] [stdout] test init::tests::reconcile_harness_then_save_config_active_mode ... ok [INFO] [stdout] test init::tests::target_default_is_mcp_and_flags_route_correctly ... ok [INFO] [stdout] test init::tests::strip_grove_entry_from_mcp_json_noop_when_no_grove_key ... ok [INFO] [stdout] test init::tests::strip_steering_block_noop_when_absent ... ok [INFO] [stdout] test init::tests::write_agents_md_appends_below_existing_content ... ok [INFO] [stdout] test init::tests::strip_steering_block_removes_block_leaves_host_content ... ok [INFO] [stdout] test init::tests::strip_steering_block_empties_file_when_block_only ... ok [INFO] [stdout] test init::tests::strip_grove_entry_from_mcp_json_noop_when_absent ... ok [INFO] [stdout] test init::tests::write_mcp_json_creates_file_when_absent ... ok [INFO] [stdout] test init::tests::strip_toml_mcp_removes_grove_keeps_others ... ok [INFO] [stdout] test init::tests::write_toml_mcp_creates_grove_table_and_preserves_others ... ok [INFO] [stdout] test init::tests::reconcile_codex_writes_global_toml_under_injected_home ... ok [INFO] [stdout] test init::tests::write_claude_md_appends_below_existing_content ... ok [INFO] [stdout] test init::tests::write_json_mcp_vscode_uses_servers_key_and_type_stdio ... ok [INFO] [stdout] test mcp::tests::definition_tool_requires_name_or_at ... ok [INFO] [stdout] test init::tests::write_agents_md_creates_then_updates_idempotently ... ok [INFO] [stdout] test mcp::tests::every_tool_schema_is_client_registerable ... ok [INFO] [stdout] test init::tests::write_mcp_json_errors_on_invalid_existing_json ... ok [INFO] [stdout] test init::tests::write_claude_md_creates_then_updates_idempotently ... ok [INFO] [stdout] test init::tests::write_explore_server_preserves_other_servers ... ok [INFO] [stdout] test init::tests::write_explore_server_registers_in_grove_key ... ok [INFO] [stdout] test init::tests::write_json_mcp_preserves_siblings_no_type_stdio_by_default ... ok [INFO] [stdout] test mcp::tests::outline_detail_validates_range ... ok [INFO] [stdout] test mcp::tests::ping_and_tools_list_and_notifications ... ok [INFO] [stdout] test mcp::tests::source_and_definition_still_enforce_their_arg_choice ... ok [INFO] [stdout] test mcp::tests::outline_tool_missing_file_is_error ... ok [INFO] [stdout] test mcp::tests::outline_out_of_range_is_tool_error ... ok [INFO] [stdout] test init::tests::write_mcp_json_registers_grove_and_preserves_other_servers ... ok [INFO] [stdout] test mcp::tests::initialize_echoes_supported_version_else_default ... ok [INFO] [stdout] test init::tests::strip_toml_mcp_noop_when_absent_or_no_grove ... ok [INFO] [stdout] test mcp::tests::tool_text_marks_errors_and_wraps_values ... ok [INFO] [stdout] test mcp::tests::unknown_tool_is_invalid_params ... ok [INFO] [stdout] test mcp::tests::unknown_method_is_method_not_found ... ok [INFO] [stdout] test init::tests::reconcile_harness_transition_matrix ... ok [INFO] [stdout] test mcp::tests::map_tool_returns_definitions_with_references ... ok [INFO] [stdout] test mcp::tests::source_tool_by_file_name_and_by_id_and_neither ... ok [INFO] [stdout] test mcp::tests::both_modes_return_resolved_and_definitions ... ok [INFO] [stdout] test mcp::tests::check_tool_reports_ok_and_missing_arg ... ok [INFO] [stdout] test mcp::tests::symbols_tool_lists_definitions ... ok [INFO] [stdout] test mcp::tests::symbols_tool_name_exact_unless_name_contains ... ok [INFO] [stdout] test mcp::tests::outline_tool_returns_definitions ... ok [INFO] [stdout] test mcp::tests::callers_tool_finds_sites_and_requires_name ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 65 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.99s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-dbd9a90e21c6764c) [INFO] [stdout] [INFO] [stdout] running 43 tests [INFO] [stdout] test doctor_help_documents_verb ... ok [INFO] [stdout] test doctor_fail_exits_nonzero ... ok [INFO] [stdout] test doctor_universal_clean_exits_zero ... ok [INFO] [stdout] test doctor_json_output_is_valid ... ok [INFO] [stdout] test bug1_serve_mcp_mode_ignores_stale_explore_json ... ok [INFO] [stdout] test grove_explore_startup_warns_but_serves_on_unhealthy_provider ... ok [INFO] [stdout] test grove_explore_single_tool_surface_and_identity ... ok [INFO] [stdout] test init_first_run_grove_explore_absent_degrades ... ok [INFO] [stdout] test languages_lists_the_dev_stub ... ok [INFO] [stdout] test lock_writes_grove_lock ... ok [INFO] [stdout] test index_writes_catalog ... ok [INFO] [stdout] test init_provisions_and_wires_harness_per_target ... ok [INFO] [stdout] test mcp_llm_dry_run_output_shape ... ok [INFO] [stdout] test mcp_llm_dry_run_twice_is_stable ... ok [INFO] [stdout] test init_first_run_grove_explore_present_non_tty_fails_fast ... ok [INFO] [stdout] test grove_explore_tap_enables_tracing_in_config_json ... ok [INFO] [stdout] test grove_explore_config_non_tty_fails_fast ... ok [INFO] [stdout] test grove_config_shim_prints_new_spelling ... ok [INFO] [stdout] test config_in_non_tty_fails_fast ... ok [INFO] [stdout] test grove_tap_shim_prints_new_spelling ... ok [INFO] [stdout] test registry_shows_resolved_root ... ok [INFO] [stdout] test naming_guard_no_fastcontext_in_source ... ok [INFO] [stdout] test serve_mcp_llm_config_returns_7_structural_tools ... ok [INFO] [stdout] test serve_always_serves_structural_surface ... ok [INFO] [stdout] test mcp_llm_agents_md_created_and_appended ... ok [INFO] [stdout] test tap_enables_tracing_in_config ... ok [INFO] [stdout] test mcp_llm_mcp_json_no_duplicate_grove_entry ... ok [INFO] [stdout] test mcp_llm_steering_block_idempotency ... ok [INFO] [stdout] test serve_removed_explore_flag_errors_with_hint ... ok [INFO] [stdout] test unknown_extension_errors ... ok [INFO] [stdout] test tap_no_enable_leaves_config_untouched ... ok [INFO] [stdout] test callers_finds_call_sites ... ok [INFO] [stdout] test invalid_locals_query_is_non_fatal ... ok [INFO] [stdout] test definition_at_resolves_across_files_python ... ok [INFO] [stdout] test definition_at_resolves_across_files_javascript_aliased ... ok [INFO] [stdout] test outline_kind_filter_narrows_results ... ok [INFO] [stdout] test check_ok_succeeds_and_broken_exits_nonzero ... ok [INFO] [stdout] test definition_at_is_scope_aware ... ok [INFO] [stdout] test source_prints_a_symbol_body ... ok [INFO] [stdout] test outline_lists_definitions_human_and_json ... ok [INFO] [stdout] test symbols_finds_across_dir ... ok [INFO] [stdout] test map_returns_definitions_with_references ... ok [INFO] [stdout] test definition_by_name_and_by_position ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.62s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/grove_explore-77d68c6b8a0e89af) [INFO] [stdout] [INFO] [stdout] running 42 tests [INFO] [stdout] test config_tui::model::tests::engine_index_matches_url_then_falls_back_to_provider ... ok [INFO] [stdout] test config_tui::model::tests::unprobed_engines_cover_the_candidate_table ... ok [INFO] [stdout] test config_tui::update::tests::model_dropdown_open_requests_fetch ... ok [INFO] [stdout] test config_tui::update::tests::quit_returns_action_without_mutation ... ok [INFO] [stdout] test config_tui::model::tests::set_engines_realigns_cursor_to_saved_nondefault_endpoint ... ok [INFO] [stdout] test config_tui::update::tests::model_fetch_error_falls_back_to_free_text ... ok [INFO] [stdout] test config_tui::update::tests::to_config_round_trip ... ok [INFO] [stdout] test config_tui::update::tests::tap_toggles ... ok [INFO] [stdout] test config_tui::update::tests::tab_closes_open_dropdown ... ok [INFO] [stdout] test config_tui::update::tests::engine_select_preloads_models ... ok [INFO] [stdout] test config_tui::update::tests::tool_toggle_flips_selected ... ok [INFO] [stdout] test config_tui::update::tests::from_config_pre_populates ... ok [INFO] [stdout] test config_tui::update::tests::model_list_fetch_populates_and_select_sets_model ... ok [INFO] [stdout] test config_tui::update::tests::engine_switch_fills_url_from_candidate ... ok [INFO] [stdout] test config_tui::update::tests::save_returns_action ... ok [INFO] [stdout] test config_tui::model::tests::provider_derived_from_endpoint_port ... ok [INFO] [stdout] test config_tui::update::tests::tab_and_quit_always_work ... ok [INFO] [stdout] test config_tui::update::tests::tab_navigation_backward_wraps ... ok [INFO] [stdout] test config_tui::update::tests::tab_navigation_forward_wraps ... ok [INFO] [stdout] test trace_tui::update::tests::enter_and_back_walk_the_levels ... ok [INFO] [stdout] test trace_tui::model::tests::in_progress_call_shows_live_answer_placeholder ... ok [INFO] [stdout] test trace_tui::update::tests::detail_cursor_clamps_to_node_count ... ok [INFO] [stdout] test trace_tui::model::tests::expanded_request_tiers_system_context_and_inline_prompt ... ok [INFO] [stdout] test trace_tui::model::tests::parse_recovers_calls_when_header_is_torn ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/grove_explore_core-c024fda3863d9c96) [INFO] [stdout] test trace_tui::model::tests::tree_collapsed_shows_turn_headers_and_answer ... ok [INFO] [stdout] test trace_tui::update::tests::left_collapses_then_walks_back_out ... ok [INFO] [stdout] test trace_tui::update::tests::enter_toggles_a_turn_and_reveals_request_response ... ok [INFO] [stdout] test trace_tui::view::tests::call_metrics_reports_status_and_totals ... ok [INFO] [stdout] test trace_tui::update::tests::navigation_clamps_to_bounds ... ok [INFO] [stdout] test config_tui::update::tests::custom_url_edit_survives_until_engine_reselected ... ok [INFO] [stdout] test trace_tui::model::tests::parse_folds_events_into_a_call_tree ... ok [INFO] [stdout] test trace_tui::update::tests::detail_starts_collapsed_with_turn_and_answer_nodes ... ok [INFO] [stdout] test trace_tui::update::tests::reload_preserves_selection_by_id ... ok [INFO] [stdout] test trace_tui::model::tests::expanding_a_turn_reveals_request_and_response_nodes ... ok [INFO] [stdout] test trace_tui::model::tests::parse_tolerates_torn_final_line_and_missing_end ... ok [INFO] [stdout] test config_tui::update::tests::config_round_trip_preserves_mode_and_harnesses ... ok [INFO] [stdout] test config_tui::update::tests::to_config_fails_on_blank_model ... ok [INFO] [stdout] test config_tui::update::tests::to_config_fails_on_blank_url ... ok [INFO] [stdout] test trace_tui::update::tests::enter_on_empty_session_does_not_descend ... ok [INFO] [stdout] test trace_tui::view::tests::tree_item_marks_collapsed_expanded_and_content ... ok [INFO] [stdout] test trace_tui::view::tests::truncate_is_char_safe ... ok [INFO] [stdout] test trace_tui::model::tests::hms_is_utc_time_of_day ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 54 tests [INFO] [stdout] test agent::tests::voluntary_location_line_answer_is_not_truncated ... ok [INFO] [stdout] test client::tests::truncate_does_not_panic_on_multibyte_boundary ... ok [INFO] [stdout] test agent::tests::provider_down_maps_to_provider_down_error ... ok [INFO] [stdout] test agent::tests::every_turn_offers_the_full_reference_toolset ... ok [INFO] [stdout] test agent::tests::leaked_tool_call_is_retried_not_taken_as_answer ... ok [INFO] [stdout] test config::tests::defaults_are_the_llamacpp_reference_rig ... ok [INFO] [stdout] test config::tests::legacy_mode_key_rejected ... ok [INFO] [stdout] test config::tests::serde_round_trip_defaults ... ok [INFO] [stdout] test config::tests::save_then_load_round_trips_atomically ... ok [INFO] [stdout] test config::tests::provider_serializes_lowercase ... ok [INFO] [stdout] test config::tests::strict_serializes_lowercase_and_aggressive_is_a_read_alias ... ok [INFO] [stdout] test discovery::tests::port_from_argv_reads_both_spellings_and_ignores_zero ... ok [INFO] [stdout] test config::tests::trace_retain_defaults_when_absent ... ok [INFO] [stdout] test discovery::tests::match_engine_identifies_servers_without_cross_matching ... ok [INFO] [stdout] test config::tests::fixed_fixture_deserializes ... ok [INFO] [stdout] test grounding::tests::optional_final_answer_wrapper_is_unwrapped ... ok [INFO] [stdout] test grounding::tests::salvages_answer_lines_from_trailing_tag_junk ... ok [INFO] [stdout] test grounding::tests::pure_leak_grounds_to_empty ... ok [INFO] [stdout] test toolset::tests::empty_obs_detection_matches_reference_markers ... ok [INFO] [stdout] test client::tests::chat_against_unreachable_url_is_connection_error ... ok [INFO] [stdout] test grounding::tests::drops_location_lines_whose_path_is_hallucinated ... ok [INFO] [stdout] test health::tests::model_matching_is_tolerant ... ok [INFO] [stdout] test grounding::tests::neutralize_breaks_tags_but_preserves_reading ... ok [INFO] [stdout] test steering::tests::convergence_messages_carry_a_concrete_example ... ok [INFO] [stdout] test grounding::tests::leak_lines_are_detected_both_ways ... ok [INFO] [stdout] test steering::tests::system_prompt_is_the_flat_v2_contract ... ok [INFO] [stdout] test trace::tests::retention_zero_keeps_all ... ok [INFO] [stdout] test config::tests::bad_enum_names_field_and_legal_values ... ok [INFO] [stdout] test trace::tests::truncate_is_char_safe ... ok [INFO] [stdout] test trace::tests::slug_is_filename_safe ... ok [INFO] [stdout] test toolset::tests::read_returns_numbered_slice_with_header ... ok [INFO] [stdout] test config::tests::missing_file_steers_to_init ... ok [INFO] [stdout] test trace::tests::request_parts_splits_system_context_and_trailing_prompt ... ok [INFO] [stdout] test config::tests::empty_required_fields_rejected ... ok [INFO] [stdout] test wire::tests::response_without_tool_calls_is_plain_text ... ok [INFO] [stdout] test wire::tests::request_with_tools_and_choice_serializes ... ok [INFO] [stdout] test wire::tests::tool_message_carries_call_id ... ok [INFO] [stdout] test wire::tests::chat_request_serializes_lean ... ok [INFO] [stdout] test wire::tests::empty_and_null_arguments_normalize_to_object ... ok [INFO] [stdout] test wire::tests::provider_dialects_normalize_to_identical_tool_calls ... ok [INFO] [stdout] test wire::tests::tool_call_round_trips_through_canonical_shape ... ok [INFO] [stdout] test wire::tests::usage_is_parsed_when_present_and_absent ... ok [INFO] [stdout] test toolset::tests::toolset_is_the_reference_vocabulary ... ok [INFO] [stdout] test wire::tests::unparseable_string_arguments_degrade_gracefully ... ok [INFO] [stdout] test trace::tests::formats_request_messages_and_tool_calls ... ok [INFO] [stdout] test trace::tests::formats_response_content_and_usage ... ok [INFO] [stdout] test trace::tests::request_parts_first_turn_has_no_context_and_prompts_the_question ... ok [INFO] [stdout] test trace::tests::retention_prunes_oldest_sessions ... ok [INFO] [stdout] test discovery::tests::discover_engines_starts_with_every_default_candidate_in_order ... ok [INFO] [stdout] test health::tests::health_probe_against_unreachable_url_is_unreachable ... ok [INFO] [stdout] test trace::tests::writer_emits_the_four_event_kinds ... ok [INFO] [stdout] test toolset::tests::grove_outline_returns_json ... ok [INFO] [stdout] test agent::tests::turn_cap_forces_an_answer_via_the_no_tools_turn ... ok [INFO] [stdout] test agent::tests::duplicate_calls_trip_the_thrash_backstop_early ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 54 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.04s [INFO] [stdout] [INFO] [stderr] Doc-tests grove_core [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test core/src/lib.rs - (line 28) - compile ... ok [INFO] [stderr] Doc-tests grove_explore_core [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [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" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927", kill_on_drop: false }` [INFO] [stdout] 88127da80176e81732e5618b1e5ac09eefe709dbd029164e44832477006ff927