[INFO] fetching crate obsidian-mcp 1.0.2...
[INFO] testing obsidian-mcp-1.0.2 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] extracting crate obsidian-mcp 1.0.2 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate obsidian-mcp 1.0.2
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate obsidian-mcp 1.0.2
[INFO] tweaked toml for crates.io crate obsidian-mcp 1.0.2 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate obsidian-mcp 1.0.2 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate obsidian-mcp 1.0.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5b950ff6d6e3d3f6e7621dc8a0dc6a7e37cd093b59118029b7d5a5787fc10ad8
[INFO] running `Command { std: "docker" "start" "-a" "5b950ff6d6e3d3f6e7621dc8a0dc6a7e37cd093b59118029b7d5a5787fc10ad8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5b950ff6d6e3d3f6e7621dc8a0dc6a7e37cd093b59118029b7d5a5787fc10ad8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b950ff6d6e3d3f6e7621dc8a0dc6a7e37cd093b59118029b7d5a5787fc10ad8", kill_on_drop: false }`
[INFO] [stdout] 5b950ff6d6e3d3f6e7621dc8a0dc6a7e37cd093b59118029b7d5a5787fc10ad8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bbb70563b2c634fde96a665d33d70b9ad1e85c273dce0fa927d13d2e09aad9fb
[INFO] running `Command { std: "docker" "start" "-a" "bbb70563b2c634fde96a665d33d70b9ad1e85c273dce0fa927d13d2e09aad9fb", kill_on_drop: false }`
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ownedbytes v0.9.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling bitpacking v0.9.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling utf8-ranges v1.0.5
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tantivy-bitpacker v0.9.0
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling tantivy-fst v0.5.0
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling murmurhash32 v0.3.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling downcast-rs v2.0.2
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling tantivy-common v0.10.0
[INFO] [stderr]    Compiling rmcp v1.2.0
[INFO] [stderr]    Compiling fastdivide v0.4.2
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling pulldown-cmark v0.13.1
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling tantivy-query-grammar v0.25.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling bon-macros v3.9.1
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling rmcp-macros v1.2.0
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling arc-swap v1.8.2
[INFO] [stderr]    Compiling rust-stemmers v1.2.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling sketches-ddsketch v0.3.1
[INFO] [stderr]    Compiling hyperloglogplus v0.4.1
[INFO] [stderr]    Compiling tantivy-tokenizer-api v0.6.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling fs4 v0.13.1
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling measure_time v0.9.0
[INFO] [stderr]    Compiling libyaml-rs v0.3.0
[INFO] [stderr]    Compiling oneshot v0.1.13
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling census v0.4.2
[INFO] [stderr]    Compiling levenshtein_automata v0.2.1
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling htmlescape v0.3.1
[INFO] [stderr]    Compiling lz4_flex v0.11.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tantivy-stacker v0.6.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling yaml_serde v0.10.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling bon v3.9.1
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling tantivy-sstable v0.6.0
[INFO] [stderr]    Compiling tantivy-columnar v0.6.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling tantivy v0.25.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling obsidian-mcp v1.0.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 49s
[INFO] running `Command { std: "docker" "inspect" "bbb70563b2c634fde96a665d33d70b9ad1e85c273dce0fa927d13d2e09aad9fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbb70563b2c634fde96a665d33d70b9ad1e85c273dce0fa927d13d2e09aad9fb", kill_on_drop: false }`
[INFO] [stdout] bbb70563b2c634fde96a665d33d70b9ad1e85c273dce0fa927d13d2e09aad9fb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d8e78c2608caeb5ba807acc994cdf680a527924c1e481c447edf2568e9be2c4b
[INFO] running `Command { std: "docker" "start" "-a" "d8e78c2608caeb5ba807acc994cdf680a527924c1e481c447edf2568e9be2c4b", kill_on_drop: false }`
[INFO] [stderr]    Compiling obsidian-mcp v1.0.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.85s
[INFO] running `Command { std: "docker" "inspect" "d8e78c2608caeb5ba807acc994cdf680a527924c1e481c447edf2568e9be2c4b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d8e78c2608caeb5ba807acc994cdf680a527924c1e481c447edf2568e9be2c4b", kill_on_drop: false }`
[INFO] [stdout] d8e78c2608caeb5ba807acc994cdf680a527924c1e481c447edf2568e9be2c4b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 14acbc36677819f0be85c6b40902940f046937b58c4313d8614e6e76c5118697
[INFO] running `Command { std: "docker" "start" "-a" "14acbc36677819f0be85c6b40902940f046937b58c4313d8614e6e76c5118697", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/obsidian_mcp-8b2374b78abe24c7)
[INFO] [stdout] 
[INFO] [stdout] running 400 tests
[INFO] [stdout] test config::tests::normalize_vault_path_handles_multiple_quote_layers ... ok
[INFO] [stdout] test config::tests::normalize_vault_path_keeps_plain_value ... ok
[INFO] [stdout] test config::tests::normalize_vault_path_strips_double_quotes ... ok
[INFO] [stdout] test config::tests::normalize_vault_path_strips_single_quotes_and_spaces ... ok
[INFO] [stdout] test config::tests::semantic_mode_as_str_roundtrip ... ok
[INFO] [stdout] test config::tests::semantic_runtime_config_defaults_model ... ok
[INFO] [stdout] test daemon::bootstrap::tests::endpoint_from_manifest_rejects_unknown_transport ... ok
[INFO] [stdout] test daemon::bootstrap::tests::resolve_download_url_uses_override ... ok
[INFO] [stdout] test config::tests::semantic_mode_parse_known_values ... ok
[INFO] [stdout] test config::tests::semantic_mode_parse_unknown_value ... ok
[INFO] [stdout] test daemon::bootstrap::tests::resolve_download_url_uses_versioned_semanticd_asset_name ... ok
[INFO] [stdout] test daemon::home::tests::resolve_semantic_home_with_explicit_override_wins ... ok
[INFO] [stdout] test daemon::home::tests::install_lock_prevents_double_acquire ... ok
[INFO] [stdout] test daemon::protocol::tests::request_defaults_params_to_object ... ok
[INFO] [stdout] test daemon::protocol::tests::response_error_has_expected_shape ... ok
[INFO] [stdout] test daemon::server::tests::route_health_rejects_incompatible_api ... ok
[INFO] [stdout] test daemon::server::tests::route_unrecognized_method_returns_method_not_found ... ok
[INFO] [stdout] test daemon::home::tests::compute_vault_id_is_stable ... ok
[INFO] [stdout] test daemon::server::tests::route_ensure_vault_rejects_relative_path ... ok
[INFO] [stdout] test daemon::manifest::tests::manifest_roundtrip ... ok
[INFO] [stdout] test daemon::server::tests::unix_socket_handles_parse_errors_and_health ... ok
[INFO] [stdout] test daemon::bootstrap::tests::ensure_daemon_reuses_healthy_manifest_endpoint ... ok
[INFO] [stdout] test tools::graph::tests::backlinks_note_with_none_returns_empty ... ok
[INFO] [stdout] test tools::graph::tests::outgoing_links_broken_shown_as_null ... ok
[INFO] [stdout] test tools::graph::tests::outgoing_links_include_heading_and_alias ... ok
[INFO] [stdout] test tools::graph::tests::broken_links_single_note_with_broken ... ok
[INFO] [stdout] test tools::graph::tests::broken_links_nonexistent_note_errors ... ok
[INFO] [stdout] test tools::metadata::tests::document_map_lists_targets ... ok
[INFO] [stdout] test tools::graph::tests::orphan_notes_detected ... ok
[INFO] [stdout] test tools::graph::tests::orphan_notes_exclude_notes_with_outgoing_links ... ok
[INFO] [stdout] test tools::graph::tests::broken_links_vault_wide ... ok
[INFO] [stdout] test tools::graph::tests::outgoing_links_with_resolved_paths ... ok
[INFO] [stdout] test tools::metadata::tests::frontmatter_roundtrip ... ok
[INFO] [stdout] test tools::graph::tests::backlinks_returns_correct_sources_and_refs ... ok
[INFO] [stdout] test tools::graph::tests::outgoing_links_nonexistent_note_errors ... ok
[INFO] [stdout] test tools::graph::tests::broken_links_single_note_without_broken ... ok
[INFO] [stdout] test tools::metadata::tests::note_metadata_not_found ... ok
[INFO] [stdout] test tools::navigation::tests::list_subdirectory ... ok
[INFO] [stdout] test tools::navigation::tests::list_nonexistent_dir_errors ... ok
[INFO] [stdout] test tools::metadata::tests::note_metadata_returns_all_fields ... ok
[INFO] [stdout] test tools::navigation::tests::list_recursive ... ok
[INFO] [stdout] test tools::navigation::tests::list_root_non_recursive ... ok
[INFO] [stdout] test tools::navigation::tests::structure_max_depth_1 ... ok
[INFO] [stdout] test tools::navigation::tests::list_with_glob ... ok
[INFO] [stdout] test tools::notes::tests::append_adds_to_end ... ok
[INFO] [stdout] test tools::navigation::tests::structure_subdirectory ... ok
[INFO] [stdout] test tools::notes::tests::delete_requires_confirm ... ok
[INFO] [stdout] test tools::navigation::tests::structure_nonexistent_dir_errors ... ok
[INFO] [stdout] test tools::navigation::tests::structure_full_tree ... ok
[INFO] [stdout] test tools::notes::tests::create_duplicate_note_errors ... ok
[INFO] [stdout] test tools::notes::tests::patch_heading_append ... ok
[INFO] [stdout] test tools::notes::tests::delete_with_confirm_succeeds ... ok
[INFO] [stdout] test tools::notes::tests::create_new_note ... ok
[INFO] [stdout] test tools::notes::tests::move_renames_note ... ok
[INFO] [stdout] test tools::notes::tests::read_existing_note ... ok
[INFO] [stdout] test tools::notes::tests::read_nonexistent_note_errors ... ok
[INFO] [stdout] test tools::notes::tests::write_overwrites_content ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_eq ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_contains_substring ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_eq_array_contains ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_exists ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_eq_without_value_errors ... ok
[INFO] [stdout] test tools::search::tests::search_tag_exact ... ok
[INFO] [stdout] test tools::search::tests::search_tag_include_nested ... ok
[INFO] [stdout] test tools::search::tests::search_tag_strips_hash_prefix ... ok
[INFO] [stdout] test tools::notes::tests::prepend_inserts_after_frontmatter ... ok
[INFO] [stdout] test tools::search::tests::search_text_empty_query_returns_empty ... ok
[INFO] [stdout] test tools::search::tests::search_frontmatter_exists_missing_field ... ok
[INFO] [stdout] test tools::search::tests::search_text_limits_results ... ok
[INFO] [stdout] test tools::search::tests::search_regex_limits_results ... ok
[INFO] [stdout] test tools::search::tests::semantic_params_defaults ... ok
[INFO] [stdout] test tools::search::tests::semantic_params_with_alpha ... ok
[INFO] [stdout] test tools::search::tests::search_text_finds_match ... ok
[INFO] [stdout] test tools::search::tests::search_regex_invalid_pattern_returns_error ... ok
[INFO] [stdout] test tools::search::tests::search_regex_valid_pattern ... ok
[INFO] [stdout] test tools::utility::tests::percent_encode_handles_unicode ... ok
[INFO] [stdout] test tools::utility::tests::open_in_obsidian_rejects_path_traversal ... ok
[INFO] [stdout] test tools::utility::tests::percent_encode_preserves_safe_chars ... ok
[INFO] [stdout] test vault::frontmatter::tests::aliases_from_array ... ok
[INFO] [stdout] test vault::frontmatter::tests::aliases_from_comma_string ... ok
[INFO] [stdout] test tools::utility::tests::percent_encode_encodes_special_chars ... ok
[INFO] [stdout] test vault::frontmatter::tests::aliases_missing ... ok
[INFO] [stdout] test tools::utility::tests::vault_info_returns_stats ... ok
[INFO] [stdout] test vault::frontmatter::tests::body_empty_after_frontmatter ... ok
[INFO] [stdout] test tools::graph::tests::backlinks_nonexistent_note_errors ... ok
[INFO] [stdout] test vault::frontmatter::tests::body_without_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_crlf_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_empty_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::body_with_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_empty_frontmatter_with_body ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_four_dashes_not_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_frontmatter_only_no_trailing_newline ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_standard_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_no_closing_delimiter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_no_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_malformed_yaml ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_no_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_non_mapping_yaml_array ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_non_mapping_yaml_scalar ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_standard_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_empty_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::parse_various_value_types ... ok
[INFO] [stdout] test vault::frontmatter::tests::rebuild_empty_frontmatter_returns_body ... ok
[INFO] [stdout] test vault::frontmatter::tests::rebuild_no_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::rebuild_with_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::remove_from_no_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::remove_nonexistent_field ... ok
[INFO] [stdout] test vault::frontmatter::tests::roundtrip_preserves_body_exactly ... ok
[INFO] [stdout] test vault::frontmatter::tests::remove_last_field_strips_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::remove_existing_field ... ok
[INFO] [stdout] test vault::frontmatter::tests::roundtrip_set_then_remove_restores_body ... ok
[INFO] [stdout] test vault::frontmatter::tests::set_field_creates_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_delimiter_with_trailing_space_not_matched ... ok
[INFO] [stdout] test vault::frontmatter::tests::set_field_overwrites_existing ... ok
[INFO] [stdout] test vault::frontmatter::tests::set_field_in_existing_frontmatter ... ok
[INFO] [stdout] test vault::frontmatter::tests::tags_from_array ... ok
[INFO] [stdout] test vault::frontmatter::tests::tags_from_comma_string ... ok
[INFO] [stdout] test vault::frontmatter::tests::tags_missing_key ... ok
[INFO] [stdout] test vault::frontmatter::tests::tags_with_non_string_elements ... ok
[INFO] [stdout] test vault::fs::tests::delete_empty_directory ... ok
[INFO] [stdout] test vault::fs::tests::delete_missing_file ... ok
[INFO] [stdout] test vault::fs::tests::delete_existing_file ... ok
[INFO] [stdout] test vault::fs::tests::append_adds_to_existing ... ok
[INFO] [stdout] test vault::fs::tests::exists_returns_false_for_directory ... ok
[INFO] [stdout] test vault::fs::tests::exists_returns_false_for_traversal ... ok
[INFO] [stdout] test vault::fs::tests::exists_returns_false_for_missing ... ok
[INFO] [stdout] test vault::fs::tests::append_creates_new_file ... ok
[INFO] [stdout] test vault::fs::tests::exists_returns_true_for_file ... ok
[INFO] [stdout] test vault::fs::tests::list_excludes_hidden_files ... ok
[INFO] [stdout] test vault::frontmatter::tests::extract_hr_in_body_not_confused ... ok
[INFO] [stdout] test vault::fs::tests::list_excludes_obsidian_dir ... ok
[INFO] [stdout] test vault::fs::tests::list_nonexistent_dir ... ok
[INFO] [stdout] test vault::fs::tests::list_recursive ... ok
[INFO] [stdout] test vault::fs::tests::list_subdirectory ... ok
[INFO] [stdout] test vault::fs::tests::move_rejects_missing_source ... ok
[INFO] [stdout] test vault::fs::tests::move_creates_parent_dirs ... ok
[INFO] [stdout] test vault::fs::tests::list_root_non_recursive ... ok
[INFO] [stdout] test vault::fs::tests::move_renames_file ... ok
[INFO] [stdout] test vault::fs::tests::read_existing_file ... ok
[INFO] [stdout] test vault::fs::tests::read_missing_file ... ok
[INFO] [stdout] test vault::fs::tests::resolve_allows_valid_parent_dir ... ok
[INFO] [stdout] test vault::fs::tests::resolve_normalizes_dot ... ok
[INFO] [stdout] test vault::fs::tests::resolve_rejects_absolute_path ... ok
[INFO] [stdout] test vault::fs::tests::resolve_rejects_nested_parent_escape ... ok
[INFO] [stdout] test vault::fs::tests::resolve_rejects_parent_escape ... ok
[INFO] [stdout] test vault::fs::tests::stat_returns_correct_size ... ok
[INFO] [stdout] test vault::fs::tests::stat_not_found ... ok
[INFO] [stdout] test vault::fs::tests::write_and_read_round_trip ... ok
[INFO] [stdout] test vault::fs::tests::write_overwrites_existing ... ok
[INFO] [stdout] test vault::fs::tests::list_with_glob ... ok
[INFO] [stdout] test vault::index::tests::build_computes_correct_backlinks ... ok
[INFO] [stdout] test vault::fs::tests::resolve_simple_relative_path ... ok
[INFO] [stdout] test vault::fs::tests::write_creates_parent_dirs ... ok
[INFO] [stdout] test client::semantic_daemon::tests::response_missing_jsonrpc_is_rejected ... ok
[INFO] [stdout] test vault::index::tests::build_computes_stats ... ok
[INFO] [stdout] test vault::index::tests::build_detects_orphan_notes ... ok
[INFO] [stdout] test vault::index::tests::block_refs_indexed ... ok
[INFO] [stdout] test vault::index::tests::build_indexes_both_frontmatter_and_inline_tags ... ok
[INFO] [stdout] test vault::index::tests::note_title_is_file_stem ... ok
[INFO] [stdout] test vault::index::tests::build_indexes_all_notes ... ok
[INFO] [stdout] test vault::index::tests::notes_with_tag_prefix_deduplicates ... ok
[INFO] [stdout] test vault::index::tests::build_skips_hidden_and_obsidian ... ok
[INFO] [stdout] test vault::index::tests::notes_with_tag_prefix_no_false_prefix_match ... ok
[INFO] [stdout] test vault::index::tests::notes_with_nonexistent_tag_returns_empty ... ok
[INFO] [stdout] test vault::index::tests::reindex_file_handles_new_file ... ok
[INFO] [stdout] test vault::index::tests::outgoing_links_correct ... ok
[INFO] [stdout] test vault::index::tests::get_note_missing_returns_none ... ok
[INFO] [stdout] test vault::index::tests::reindex_file_updates_tags_and_links ... ok
[INFO] [stdout] test vault::index::tests::build_detects_broken_links ... ok
[INFO] [stdout] test tools::search::tests::daemon_prefetch_uses_runtime_value_without_forcing_min_50 ... ok
[INFO] [stdout] test vault::index::tests::rename_file_updates_index ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_contains_array_element ... ok
[INFO] [stdout] test vault::index::tests::reindex_removes_old_tag_contributions ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_array_contains ... ok
[INFO] [stdout] test client::semantic_daemon::tests::health_call_decodes_success_response ... ok
[INFO] [stdout] test vault::index::tests::remove_file_updates_stats ... ok
[INFO] [stdout] test client::semantic_daemon::tests::rpc_errors_are_reported_with_code_and_message ... ok
[INFO] [stdout] test client::semantic_daemon::tests::response_with_mismatched_id_is_rejected ... ok
[INFO] [stdout] test vault::index::tests::remove_file_cleans_up_everything ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_exists_finds_field ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_exact_match ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_contains_string_substring ... ok
[INFO] [stdout] test vault::fs::tests::move_rejects_existing_destination ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_exists_missing_field_empty ... ok
[INFO] [stdout] test vault::index::tests::notes_with_tag_prefix_includes_nested ... ok
[INFO] [stdout] test vault::index::tests::search_regex_invalid_pattern_returns_error ... ok
[INFO] [stdout] test vault::index::tests::search_regex_works ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_no_match ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_basic ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_empty_content ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_skip_code_block ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_standalone ... ok
[INFO] [stdout] test vault::index::tests::search_frontmatter_missing_field ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_with_dashes ... ok
[INFO] [stdout] test vault::parser::tests::block_refs_with_trailing_whitespace ... ok
[INFO] [stdout] test vault::parser::tests::code_block_only_content ... ok
[INFO] [stdout] test vault::parser::tests::document_map_empty ... ok
[INFO] [stdout] test tools::search::tests::search_text_tantivy_returns_scores ... ok
[INFO] [stdout] test vault::parser::tests::document_map_full ... ok
[INFO] [stdout] test vault::parser::tests::block_ref_range_found ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_custom_delimiter ... ok
[INFO] [stdout] test vault::parser::tests::empty_content_all_extractors ... ok
[INFO] [stdout] test vault::index::tests::search_text_empty_query_returns_empty ... ok
[INFO] [stdout] test vault::parser::tests::block_ref_range_standalone ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_nested ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_not_found ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_simple ... ok
[INFO] [stdout] test vault::parser::tests::headings_empty_content ... ok
[INFO] [stdout] test vault::parser::tests::headings_with_frontmatter ... ok
[INFO] [stdout] test vault::parser::tests::tags_at_line_start ... ok
[INFO] [stdout] test vault::parser::tests::tags_basic ... ok
[INFO] [stdout] test vault::parser::tests::tags_deduplicated ... ok
[INFO] [stdout] test vault::parser::tests::tags_nested ... ok
[INFO] [stdout] test vault::parser::tests::tags_not_from_heading_markers ... ok
[INFO] [stdout] test vault::parser::tests::tags_numeric_rejected ... ok
[INFO] [stdout] test vault::parser::tests::headings_with_inline_code ... ok
[INFO] [stdout] test vault::parser::tests::tags_skip_code_block ... ok
[INFO] [stdout] test vault::parser::tests::tags_skip_frontmatter ... ok
[INFO] [stdout] test vault::parser::tests::tags_skip_inline_code ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_heading_and_alias ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_to_eof ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_in_inline_code_excluded ... ok
[INFO] [stdout] test vault::parser::tests::headings_basic ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_self_reference ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_simple ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_with_block_ref ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_with_heading ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_with_path ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_with_alias ... ok
[INFO] [stdout] test vault::parser::tests::wikilink_in_code_block_excluded ... ok
[INFO] [stdout] test vault::patch::tests::block_inside_code_block_ignored ... ok
[INFO] [stdout] test vault::patch::tests::block_missing ... ok
[INFO] [stdout] test vault::patch::tests::block_append ... ok
[INFO] [stdout] test vault::patch::tests::block_prepend ... ok
[INFO] [stdout] test vault::patch::tests::block_ref_standalone_replace ... ok
[INFO] [stdout] test vault::patch::tests::block_replace ... ok
[INFO] [stdout] test vault::parser::tests::wikilinks_line_numbers ... ok
[INFO] [stdout] test vault::patch::tests::content_preservation ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_append_string ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_append_list ... ok
[INFO] [stdout] test tools::search::tests::search_text_tantivy_fuzzy ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_body_preserved_exactly ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_missing_block ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_prepend_list ... ok
[INFO] [stdout] test vault::patch::tests::block_with_caret_prefix ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_new_field ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_yaml_comment_not_heading ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_prepend_string ... ok
[INFO] [stdout] test vault::patch::tests::heading_append ... ok
[INFO] [stdout] test vault::patch::tests::heading_case_insensitive ... ok
[INFO] [stdout] test vault::patch::tests::heading_deeply_nested ... ok
[INFO] [stdout] test vault::patch::tests::heading_at_end_of_file ... ok
[INFO] [stdout] test vault::patch::tests::frontmatter_replace ... ok
[INFO] [stdout] test vault::patch::tests::heading_inside_code_block_ignored ... ok
[INFO] [stdout] test vault::patch::tests::heading_nested_path ... ok
[INFO] [stdout] test vault::patch::tests::heading_prepend ... ok
[INFO] [stdout] test vault::patch::tests::heading_replace ... ok
[INFO] [stdout] test vault::periodic::tests::config_defaults_monthly ... ok
[INFO] [stdout] test vault::periodic::tests::config_defaults_weekly ... ok
[INFO] [stdout] test vault::periodic::tests::config_defaults_when_no_files ... ok
[INFO] [stdout] test vault::periodic::tests::config_defaults_yearly ... ok
[INFO] [stdout] test vault::periodic::tests::config_plugin_disabled_falls_to_default ... ok
[INFO] [stdout] test vault::parser::tests::heading_range_case_insensitive ... ok
[INFO] [stdout] test vault::periodic::tests::config_plugin_calendar_sets ... ok
[INFO] [stdout] test vault::patch::tests::heading_missing ... ok
[INFO] [stdout] test vault::periodic::tests::config_core_daily_empty_format_uses_default ... ok
[INFO] [stdout] test vault::parser::tests::document_map_no_frontmatter ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_daily ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_full_text ... ok
[INFO] [stdout] test vault::periodic::tests::config_defaults_quarterly ... ok
[INFO] [stdout] test vault::periodic::tests::config_core_daily ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_quarter_q1 ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_quarter_q3 ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_yearly ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_quarter_q2 ... ok
[INFO] [stdout] test vault::periodic::tests::list_monthly ... ok
[INFO] [stdout] test vault::periodic::tests::list_daily_sorted_and_limited ... ok
[INFO] [stdout] test vault::periodic::tests::config_plugin_legacy_overrides_core ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_monthly ... ok
[INFO] [stdout] test vault::parser::tests::block_ref_range_not_found ... ok
[INFO] [stdout] test tools::search::tests::search_text_tantivy_ranked_descending ... ok
[INFO] [stdout] test vault::periodic::tests::list_no_folder_scans_vault_root ... ok
[INFO] [stdout] test vault::periodic::tests::list_nonexistent_folder_returns_empty ... ok
[INFO] [stdout] test vault::periodic::tests::format_date_quarter_q4 ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_bracket_escaping ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_12hour_format ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_full_month_and_weekday ... ok
[INFO] [stdout] test vault::periodic::tests::list_yearly ... ok
[INFO] [stdout] test vault::index::tests::search_text_finds_matches ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_quarter_format ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_multiple_brackets ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_two_digit_year ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_time_tokens ... ok
[INFO] [stdout] test vault::periodic::tests::path_quarterly ... ok
[INFO] [stdout] test vault::periodic::tests::path_without_folder ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_monthly ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_short_month ... ok
[INFO] [stdout] test vault::periodic::tests::path_with_folder ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_daily_format ... ok
[INFO] [stdout] test vault::periodic::tests::path_empty_folder_treated_as_none ... ok
[INFO] [stdout] test vault::periodic::tests::template_missing_file_returns_error ... ok
[INFO] [stdout] test vault::tantivy_index::tests::body_field_is_not_stored ... ok
[INFO] [stdout] test vault::index::tests::search_text_case_insensitive ... ok
[INFO] [stdout] test vault::periodic::tests::list_quarterly ... ok
[INFO] [stdout] test vault::index::tests::search_text_context_offsets_are_correct ... ok
[INFO] [stdout] test vault::tantivy_index::tests::headings_field_is_not_stored ... ok
[INFO] [stdout] test vault::tantivy_index::tests::path_field_is_stored_and_string_indexed ... ok
[INFO] [stdout] test vault::periodic::tests::parse_quarter_date_standard ... ok
[INFO] [stdout] test vault::tantivy_index::tests::schema_field_count ... ok
[INFO] [stdout] test vault::tantivy_index::tests::schema_has_expected_fields ... ok
[INFO] [stdout] test vault::periodic::tests::template_file_read ... ok
[INFO] [stdout] test vault::periodic::tests::template_date_replacement ... ok
[INFO] [stdout] test vault::periodic::tests::template_combined_variables ... ok
[INFO] [stdout] test vault::periodic::tests::template_date_with_custom_format ... ok
[INFO] [stdout] test vault::periodic::tests::template_time_has_hh_mm_pattern ... ok
[INFO] [stdout] test vault::periodic::tests::template_title_replacement ... ok
[INFO] [stdout] test client::semantic_daemon::tests::call_retries_when_endpoint_is_temporarily_missing ... ok
[INFO] [stdout] test vault::periodic::tests::parse_quarter_date_invalid ... ok
[INFO] [stdout] test vault::tantivy_index::tests::facet_term_query_roundtrip ... ok
[INFO] [stdout] test vault::tantivy_index::tests::build_indexes_notes ... ok
[INFO] [stdout] test vault::periodic::tests::momentjs_yearly ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_scores_title_higher_than_body ... ok
[INFO] [stdout] test vault::tantivy_index::tests::stringify_frontmatter_extracts_text ... ok
[INFO] [stdout] test vault::tantivy_index::tests::tags_field_is_facet_and_stored ... ok
[INFO] [stdout] test vault::tantivy_index::tests::title_field_is_stored_and_stemmed ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_fuzzy_tolerates_typo ... ok
[INFO] [stdout] test vault::tests::vault_create_note_basic ... ok
[INFO] [stdout] test vault::tests::vault_create_note_fails_if_exists ... ok
[INFO] [stdout] test vault::tests::vault_create_note_with_frontmatter ... ok
[INFO] [stdout] test vault::tantivy_index::tests::reindex_file_updates_results ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_with_field_filter_tags ... ok
[INFO] [stdout] test vault::tests::vault_append_note ... ok
[INFO] [stdout] test vault::tests::vault_delete_removes_from_index ... ok
[INFO] [stdout] test vault::tests::vault_document_map ... ok
[INFO] [stdout] test vault::tests::vault_open_nonexistent_path ... ok
[INFO] [stdout] test vault::tests::vault_open_succeeds ... ok
[INFO] [stdout] test vault::tests::vault_move_updates_index ... ok
[INFO] [stdout] test vault::tests::vault_open_without_obsidian_dir ... ok
[INFO] [stdout] test vault::tests::vault_frontmatter_operations ... ok
[INFO] [stdout] test vault::tests::vault_prepend_after_frontmatter ... ok
[INFO] [stdout] test vault::tests::vault_prepend_no_frontmatter ... ok
[INFO] [stdout] test vault::tests::vault_read_write_roundtrip ... ok
[INFO] [stdout] test vault::tests::vault_search_text ... ok
[INFO] [stdout] test vault::tests::vault_is_send_sync_clone ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_with_field_filter_body_only ... ok
[INFO] [stdout] test vault::tests::vault_patch_note ... ok
[INFO] [stdout] test tools::search::tests::search_text_tantivy_context_snippets ... ok
[INFO] [stdout] test vault::tantivy_index::tests::remove_file_removes_from_results ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_stemming_works ... ok
[INFO] [stdout] test tools::search::tests::search_text_tantivy_field_filter ... ok
[INFO] [stdout] test vault::tests::vault_search_text_with_options_fallback_without_tantivy ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_fuzzy_and_field_combined ... ok
[INFO] [stdout] test vault::tests::vault_stats ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_with_field_filter_title_only ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_finds_by_body ... ok
[INFO] [stdout] test vault::tests::vault_tags_and_backlinks ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_finds_by_title ... ok
[INFO] [stdout] test vault::watcher::tests::accepts_markdown_files ... ok
[INFO] [stdout] test vault::watcher::tests::filters_non_markdown_files ... ok
[INFO] [stdout] test vault::watcher::tests::filters_paths_outside_vault ... ok
[INFO] [stdout] test vault::watcher::tests::filters_obsidian_directory ... ok
[INFO] [stdout] test vault::wikilink::tests::add_path_makes_resolvable ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_with_options_empty_query ... ok
[INFO] [stdout] test vault::watcher::tests::obsidian_dir_detection ... ok
[INFO] [stdout] test vault::wikilink::tests::ambiguous_stem_returns_none ... ok
[INFO] [stdout] test vault::wikilink::tests::backslash_normalized_in_target ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_empty_query_returns_empty ... ok
[INFO] [stdout] test vault::wikilink::tests::ambiguous_stem_lists_all_candidates ... ok
[INFO] [stdout] test vault::wikilink::tests::deeply_nested_note ... ok
[INFO] [stdout] test vault::wikilink::tests::empty_target_returns_none ... ok
[INFO] [stdout] test vault::wikilink::tests::empty_resolver ... ok
[INFO] [stdout] test vault::wikilink::tests::is_resolved_delegates_to_resolve ... ok
[INFO] [stdout] test vault::wikilink::tests::md_extension_stripped_from_target ... ok
[INFO] [stdout] test vault::tantivy_index::tests::search_with_options_delegates_to_search_when_no_options ... ok
[INFO] [stdout] test vault::tests::vault_search_text_with_options_field_filter ... ok
[INFO] [stdout] test vault::wikilink::tests::non_md_requires_extension_in_stem_lookup ... ok
[INFO] [stdout] test vault::wikilink::tests::nonexistent_stem_returns_none ... ok
[INFO] [stdout] test vault::wikilink::tests::path_miss_returns_none ... ok
[INFO] [stdout] test vault::wikilink::tests::non_md_path_lookup ... ok
[INFO] [stdout] test vault::wikilink::tests::path_resolves_with_md ... ok
[INFO] [stdout] test vault::wikilink::tests::path_resolves_without_md ... ok
[INFO] [stdout] test vault::wikilink::tests::remove_nonexistent_is_harmless ... ok
[INFO] [stdout] test vault::wikilink::tests::remove_from_ambiguous_restores_unique ... ok
[INFO] [stdout] test vault::wikilink::tests::remove_path_clears_both_maps ... ok
[INFO] [stdout] test vault::wikilink::tests::rename_into_ambiguous ... ok
[INFO] [stdout] test vault::wikilink::tests::path_case_insensitive ... ok
[INFO] [stdout] test vault::wikilink::tests::rename_updates_both_lookups ... ok
[INFO] [stdout] test vault::wikilink::tests::unique_stem_resolves ... ok
[INFO] [stdout] test vault::wikilink::tests::root_level_note ... ok
[INFO] [stdout] test vault::wikilink::tests::stem_case_insensitive ... ok
[INFO] [stdout] test vault::tests::vault_tantivy_syncs_on_create ... ok
[INFO] [stdout] test vault::tests::vault_open_with_tantivy ... ok
[INFO] [stdout] test vault::tests::vault_tantivy_syncs_on_write ... ok
[INFO] [stdout] test vault::watcher::tests::watcher_starts_and_stops ... ok
[INFO] [stdout] test vault::tests::vault_search_text_tantivy_returns_scores ... ok
[INFO] [stdout] test vault::tests::vault_search_text_tantivy_zero_context ... ok
[INFO] [stdout] test vault::tests::vault_tantivy_syncs_on_delete ... ok
[INFO] [stdout] test vault::tests::vault_search_text_with_options_fuzzy ... ok
[INFO] [stdout] test vault::tests::vault_tantivy_syncs_on_move ... ok
[INFO] [stdout] test vault::watcher::tests::watcher_survives_mixed_file_events ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 400 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.49s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/obsidian_mcp-080b914da68df313)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::watch_disabled_skips_daemon_initialization ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/obsidian-semanticd.rs (/opt/rustwide/target/debug/deps/obsidian_semanticd-d4a656066976ba73)
[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] [stderr]      Running tests/daemon_integration_tests.rs (/opt/rustwide/target/debug/deps/daemon_integration_tests-e4704af1c8f534c5)
[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] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-62daba998e32ac6a)
[INFO] [stdout] 
[INFO] [stdout] running 41 tests
[INFO] [stdout] test vault_periodic::create_periodic_note ... ok
[INFO] [stdout] test vault_graph::link_resolution ... ok
[INFO] [stdout] test vault_graph::outgoing_links ... ok
[INFO] [stdout] test vault_graph::orphan_notes ... ok
[INFO] [stdout] test vault_read::vault_stats ... ok
[INFO] [stdout] test vault_read::read_nested_note ... ok
[INFO] [stdout] test vault_read::read_note_content ... ok
[INFO] [stdout] test vault_read::list_files_subdirectory ... ok
[INFO] [stdout] test vault_graph::broken_links ... ok
[INFO] [stdout] test vault_search::search_frontmatter_contains ... ok
[INFO] [stdout] test vault_graph::backlinks ... ok
[INFO] [stdout] test vault_search::search_by_tag_exact ... ok
[INFO] [stdout] test vault_search::search_frontmatter_exists ... ok
[INFO] [stdout] test vault_search::search_frontmatter_exact ... ok
[INFO] [stdout] test vault_search::search_by_tag_prefix ... ok
[INFO] [stdout] test vault_read::note_metadata ... ok
[INFO] [stdout] test vault_read::document_map ... ok
[INFO] [stdout] test vault_read::list_files_root ... ok
[INFO] [stdout] test vault_read::list_files_glob ... ok
[INFO] [stdout] test vault_periodic::list_recent_daily_notes ... ok
[INFO] [stdout] test vault_search::search_regex ... ok
[INFO] [stdout] test vault_search::search_text_no_match ... ok
[INFO] [stdout] test vault_search::search_text_case_insensitive ... ok
[INFO] [stdout] test vault_search::search_text_finds_match ... ok
[INFO] [stdout] test vault_write::delete_note ... ok
[INFO] [stdout] test vault_write::patch_heading_append ... ok
[INFO] [stdout] test vault_write::frontmatter_set_and_remove ... ok
[INFO] [stdout] test vault_write::create_fails_if_exists ... ok
[INFO] [stdout] test vault_write::move_note ... ok
[INFO] [stdout] test vault_write::create_with_frontmatter ... ok
[INFO] [stdout] test vault_write::create_and_read ... ok
[INFO] [stdout] test vault_write::append ... ok
[INFO] [stdout] test vault_write::write_overwrites ... ok
[INFO] [stdout] test vault_write::prepend_after_frontmatter ... ok
[INFO] [stdout] test vault_write::write_then_search ... ok
[INFO] [stdout] test vault_write::frontmatter_get_existing ... ok
[INFO] [stdout] test vault_tantivy_search::search_text_stemming_finds_related_terms ... ok
[INFO] [stdout] test vault_tantivy_search::search_text_context_snippets_from_tantivy ... ok
[INFO] [stdout] test vault_tantivy_search::search_text_returns_ranked_results ... ok
[INFO] [stdout] test vault_tantivy_search::search_text_with_options_field_filter ... ok
[INFO] [stdout] test vault_tantivy_search::search_text_with_options_fuzzy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 41 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.77s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests obsidian_mcp
[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" "14acbc36677819f0be85c6b40902940f046937b58c4313d8614e6e76c5118697", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14acbc36677819f0be85c6b40902940f046937b58c4313d8614e6e76c5118697", kill_on_drop: false }`
[INFO] [stdout] 14acbc36677819f0be85c6b40902940f046937b58c4313d8614e6e76c5118697
