[INFO] fetching crate semnav 0.0.4...
[INFO] testing semnav-0.0.4 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate semnav 0.0.4 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate semnav 0.0.4
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate semnav 0.0.4
[INFO] tweaked toml for crates.io crate semnav 0.0.4 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate semnav 0.0.4 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate semnav 0.0.4 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2
[INFO] running `Command { std: "docker" "start" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", 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" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", 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" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling rmcp v2.0.0
[INFO] [stderr]    Compiling inotify v0.11.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling hashlink v0.11.1
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling ignore v0.4.27
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling rmcp-macros v2.0.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling refinery-core v0.9.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling refinery-macros v0.9.2
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling refinery v0.9.2
[INFO] [stderr]    Compiling semnav v0.0.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.09s
[INFO] running `Command { std: "docker" "inspect" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", 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" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling rmcp v2.0.0
[INFO] [stderr]    Compiling semnav v0.0.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.40s
[INFO] running `Command { std: "docker" "inspect" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", 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" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/semnav/bbde022088aae43c/out/semnav-bbde022088aae43c)
[INFO] [stdout] 
[INFO] [stdout] running 280 tests
[INFO] [stdout] test adapters::custom::tests::empty_spec_yields_no_adapters ... ok
[INFO] [stdout] test adapters::custom::tests::blank_and_whitespace_only_tags_are_ignored ... ok
[INFO] [stdout] test adapters::custom::tests::tag_missing_extensions_is_dropped_others_kept ... ok
[INFO] [stdout] test adapters::custom::tests::external_markers_default_to_empty_when_unset ... ok
[INFO] [stdout] test adapters::custom::tests::one_fully_configured_tag_yields_one_adapter ... ok
[INFO] [stdout] test adapters::custom::tests::server_command_uses_a_placeholder_naming_the_tag ... ok
[INFO] [stdout] test adapters::go::tests::is_external_for_vendor_and_module_cache ... ok
[INFO] [stdout] test adapters::go::tests::matches_go_uris_only ... ok
[INFO] [stdout] test adapters::go::tests::server_package_is_none_not_npm_distributed ... ok
[INFO] [stdout] test adapters::kind::tests::construct_from_hover_extracts_type_keyword_from_fenced_code_block ... ok
[INFO] [stdout] test adapters::kind::tests::from_u32_roundtrips_standard_values ... ok
[INFO] [stdout] test adapters::kind::tests::construct_from_hover_ignores_self_at_classname_notation ... ok
[INFO] [stdout] test adapters::kind::tests::from_u32_rejects_unknown ... ok
[INFO] [stdout] test adapters::provision::tests::build_command_applies_args ... ok
[INFO] [stdout] test adapters::kind::tests::node_kind_label_serializes ... ok
[INFO] [stdout] test adapters::provision::tests::command_override_from_env_reads_uppercased_lang_var ... ok
[INFO] [stdout] test adapters::provision::tests::extra_args_from_env_splits_on_whitespace ... ok
[INFO] [stdout] test adapters::python::tests::is_external_for_dependency_paths ... ok
[INFO] [stdout] test adapters::python::tests::matches_python_uris_only ... ok
[INFO] [stdout] test adapters::rust::tests::is_external_for_target_and_registry ... ok
[INFO] [stdout] test adapters::provision::tests::resolve_binary_prefers_path ... ok
[INFO] [stdout] test adapters::provision::tests::resolve_binary_needs_install_when_absent ... ok
[INFO] [stdout] test adapters::rust::tests::matches_rust_uris_only ... ok
[INFO] [stdout] test adapters::rust::tests::server_package_is_none_not_npm_distributed ... ok
[INFO] [stdout] test adapters::tests::adapter_for_language_round_trips ... ok
[INFO] [stdout] test adapters::tests::builtin_adapters_cover_python_typescript_rust_and_go ... ok
[INFO] [stdout] test adapters::tests::map_symbol_kind_custom_for_unknown ... ok
[INFO] [stdout] test adapters::tests::map_symbol_kind_passes_through_standard ... ok
[INFO] [stdout] test adapters::tests::select_for_uri_routes_by_extension ... ok
[INFO] [stdout] test adapters::tests::server_command_specs_match_design ... ok
[INFO] [stdout] test adapters::tests::server_package_pins_versions ... ok
[INFO] [stdout] test adapters::provision::tests::resolve_binary_reuses_isolated_install ... ok
[INFO] [stdout] test adapters::typescript::tests::is_external_for_node_modules ... ok
[INFO] [stdout] test adapters::typescript::tests::matches_typescript_uris_only ... ok
[INFO] [stdout] test daemon::discovery::tests::path_helpers_are_named_consistently_under_cache_dir ... ok
[INFO] [stdout] test daemon::client::tests::call_round_trips_through_a_fake_daemon ... ok
[INFO] [stdout] test daemon::discovery::tests::no_socket_file_is_not_running ... ok
[INFO] [stdout] test daemon::client::tests::concurrent_calls_on_one_connection_get_matched_replies ... ok
[INFO] [stdout] test daemon::discovery::tests::stale_socket_file_is_removed_and_reported_not_running ... ok
[INFO] [stdout] test daemon::client::tests::pending_calls_fail_when_the_connection_closes ... ok
[INFO] [stdout] test daemon::lock::tests::second_acquire_on_the_same_path_fails_while_the_first_is_held ... ok
[INFO] [stdout] test daemon::lock::tests::acquire_creates_the_lock_file_if_absent ... ok
[INFO] [stdout] test daemon::server::tests::connecting_disarms_the_idle_timer ... ok
[INFO] [stdout] test daemon::server::tests::daemon_stays_warm_across_two_sequential_connections ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test daemon::lock::tests::dropping_the_guard_releases_the_lock_for_the_next_acquirer ... ok
[INFO] [stdout] test daemon::server::tests::disconnecting_to_zero_restarts_the_idle_clock_from_now ... ok
[INFO] [stdout] test daemon::protocol::tests::envelope_round_trips_over_a_stream_for_every_op ... ok
[INFO] [stdout] test daemon::discovery::tests::live_listener_is_reported_live ... ok
[INFO] [stdout] test daemon::server::tests::fresh_tracker_with_zero_connections_is_idle_from_construction ... ok
[INFO] [stdout] test daemon::server::tests::multiple_connections_only_go_idle_once_all_disconnect ... ok
[INFO] [stdout] test daemon::server::tests::idle_timeout_from_env_defaults_when_unset_and_parses_override ... ok
[INFO] [stdout] test daemon::protocol::tests::read_line_returns_none_on_clean_eof ... ok
[INFO] [stdout] test graph::db::tests::apply_pragmas_sets_busy_timeout ... ok
[INFO] [stdout] test daemon::protocol::tests::response_round_trips_ok_and_err ... ok
[INFO] [stdout] test daemon::reconnect::tests::reconnects_after_the_daemon_dies_once_a_replacement_is_listening ... ok
[INFO] [stdout] test graph::db::tests::meta_set_get_roundtrip ... ok
[INFO] [stdout] test graph::db::tests::callees_cache_hash_roundtrip_and_overwrite ... ok
[INFO] [stdout] test graph::db::tests::list_nodes_returns_valid_nodes_ordered_by_sort_key ... ok
[INFO] [stdout] test graph::db::tests::get_missing_fqn_returns_none ... ok
[INFO] [stdout] test graph::db::tests::meta_get_missing_is_none ... ok
[INFO] [stdout] test graph::db::tests::get_neighbors_empty_for_unrelated_edge_type ... ok
[INFO] [stdout] test graph::db::tests::meta_set_overwrites ... ok
[INFO] [stdout] test graph::db::tests::list_nodes_narrows_by_language ... ok
[INFO] [stdout] test graph::db::tests::materialized_marker_roundtrip_is_per_edge_type ... ok
[INFO] [stdout] test graph::db::tests::count_real_nodes_excludes_module_root_but_counts_orphans ... ok
[INFO] [stdout] test graph::db::tests::known_uris_excludes_orphans_and_dedupes_per_file ... ok
[INFO] [stdout] test graph::db::tests::get_node_round_trips_by_id_and_none_for_missing ... ok
[INFO] [stdout] test graph::db::tests::find_node_by_position_none_when_outside ... ok
[INFO] [stdout] test graph::db::tests::find_node_by_position_picks_innermost_span ... ok
[INFO] [stdout] test graph::db::tests::get_neighbors_traverses_incoming_and_outgoing ... ok
[INFO] [stdout] test graph::db::tests::reconcile_content_change_drops_callees_cache ... ok
[INFO] [stdout] test graph::db::tests::reconcile_content_changed_invalidates_edges ... ok
[INFO] [stdout] test graph::db::tests::reconcile_missing_symbol_first_strike_is_grace_period ... ok
[INFO] [stdout] test indexer::discovery::tests::discover_files_skips_hidden_and_non_source ... ok
[INFO] [stdout] test indexer::discovery::tests::path_uri_roundtrip ... ok
[INFO] [stdout] test graph::db::tests::update_node_signature_by_fqn_persists ... ok
[INFO] [stdout] test graph::db::tests::reconcile_orphan_revives_when_symbol_reappears ... ok
[INFO] [stdout] test indexer::reconcile::tests::drift_candidates_dedupes_and_unions ... ok
[INFO] [stdout] test graph::db::tests::update_node_signature_persists_by_id ... ok
[INFO] [stdout] test indexer::runner::tests::index_language_real_gopls ... ignored, requires gopls on PATH (go install golang.org/x/tools/gopls@latest)
[INFO] [stdout] test indexer::runner::tests::index_language_real_pyright ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test indexer::runner::tests::index_language_real_tsserver ... ignored, requires node/npm; provisions tsserver from npm on first run
[INFO] [stdout] test indexer::symbol::tests::deserializes_pyright_null_detail_and_tags ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_builds_fqns_and_parent_links ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_handles_deeply_nested_symbols ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_includes_pyright_self_attribute_as_a_child ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_keeps_gopls_receiver_method_as_a_top_level_sibling ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_keeps_tsserver_overload_duplicates_as_separate_entries ... ok
[INFO] [stdout] test indexer::symbol::tests::flatten_maps_ranges ... ok
[INFO] [stdout] test indexer::symbol::tests::module_path_handles_trailing_and_no_slash ... ok
[INFO] [stdout] test graph::db::tests::reconcile_survives_a_same_name_position_swap ... ok
[INFO] [stdout] test graph::db::tests::upsert_is_idempotent_on_fqn ... ok
[INFO] [stdout] test indexer::symbol::tests::module_root_spans_whole_file_and_has_no_parent ... ok
[INFO] [stdout] test lsp::client::tests::error_response_propagates ... ok
[INFO] [stdout] test lsp::client::tests::multiple_requests_pair_by_id ... ok
[INFO] [stdout] test lsp::client::tests::notification_needs_no_response ... ok
[INFO] [stdout] test lsp::client::tests::request_response_roundtrip ... ok
[INFO] [stdout] test lsp::client::tests::stream_close_fails_pending_request ... ok
[INFO] [stdout] test lsp::handshake::tests::initialize_params_declare_workspace_and_capabilities ... ok
[INFO] [stdout] test lsp::client::tests::unhandled_method_error_surfaces_pyrights_exact_envelope ... ok
[INFO] [stdout] test lsp::handshake::tests::timeout_from_env_defaults_when_unset_and_parses_override ... ok
[INFO] [stdout] test lsp::handshake::tests::timeouts_match_design_doc ... ok
[INFO] [stdout] test graph::db::tests::reconcile_unchanged_content_still_drops_callees_cache ... ok
[INFO] [stdout] test graph::db::tests::reconcile_unchanged_content_is_noop ... ok
[INFO] [stdout] test lsp::server::tests::exit_watcher_publishes_after_spawn ... ok
[INFO] [stdout] test lsp::server::tests::shutdown_skips_escalation_when_already_exited ... ok
[INFO] [stdout] test graph::db::tests::reconcile_missing_symbol_second_strike_deletes_and_cascades_edges ... ok
[INFO] [stdout] test graph::db::tests::reconcile_new_symbol_inserts_with_contains_edge ... ok
[INFO] [stdout] test graph::db::tests::reconcile_rename_preserves_id_and_edge_row ... ok
[INFO] [stdout] test lsp::supervisor::tests::acquire_after_success_returns_live_client ... ok
[INFO] [stdout] test lsp::server::tests::spawn_immediate_exit_observed_as_success ... ok
[INFO] [stdout] test graph::db::tests::upsert_is_idempotent_on_physical_position ... ok
[INFO] [stdout] test graph::db::tests::upsert_contains_edge_is_idempotent ... ok
[INFO] [stdout] test lsp::supervisor::tests::child_exit_while_healthy_triggers_restart ... ok
[INFO] [stdout] test lsp::supervisor::tests::down_retries_in_background_and_recovers ... ok
[INFO] [stdout] test graph::db::tests::upsert_edge_distinguishes_by_site ... ok
[INFO] [stdout] test graph::db::tests::upsert_then_read_roundtrip ... ok
[INFO] [stdout] test lsp::supervisor::tests::drop_last_handle_runs_graceful_path ... ok
[INFO] [stdout] test lsp::supervisor::tests::explicit_shutdown_closes_actor ... ok
[INFO] [stdout] test graph::db::tests::upsert_edge_after_rename_reactivates_the_invalidated_row ... ok
[INFO] [stdout] test lsp::supervisor::tests::failure_kind_classifies_timeout_and_transport ... ok
[INFO] [stdout] test lsp::supervisor::tests::happy_path_starts_healthy_and_writes_meta ... ok
[INFO] [stdout] test lsp::supervisor::tests::five_spawn_fails_reach_down ... ok
[INFO] [stdout] test lsp::supervisor::tests::provision_fail_goes_down_with_no_background_retry ... ok
[INFO] [stdout] test lsp::transport::tests::notification_roundtrips_without_id ... ok
[INFO] [stdout] test lsp::transport::tests::oversized_content_length_is_rejected_without_allocating ... ok
[INFO] [stdout] test lsp::transport::tests::clean_eof_returns_none ... ok
[INFO] [stdout] test lsp::supervisor::tests::spawn_fail_3_then_ok_recovers_with_reset_counter ... ok
[INFO] [stdout] test lsp::supervisor::tests::report_failure_transport_triggers_restart ... ok
[INFO] [stdout] test mcp::dto::tests::degrade_info_omitted_when_none_serializes_without_fields ... ok
[INFO] [stdout] test lsp::transport::tests::two_messages_back_to_back ... ok
[INFO] [stdout] test lsp::transport::tests::response_and_error_distinguish ... ok
[INFO] [stdout] test lsp::supervisor::tests::restart_policy_clamps_last_backoff_slot ... ok
[INFO] [stdout] test lsp::transport::tests::request_roundtrips ... ok
[INFO] [stdout] test mcp::dto::tests::degrade_info_present_serializes_true_never_false ... ok
[INFO] [stdout] test mcp::dto::tests::degrade_info_serializes_lsp_timeout_reason ... ok
[INFO] [stdout] test mcp::dto::tests::find_call_path_input_defaults_depth_and_budget_when_omitted ... ok
[INFO] [stdout] test mcp::dto::tests::find_callers_output_renames_items_to_callers ... ok
[INFO] [stdout] test mcp::dto::tests::find_call_path_input_rejects_missing_endpoint ... ok
[INFO] [stdout] test mcp::dto::tests::page_input_clamps_zero_limit_to_one ... ok
[INFO] [stdout] test mcp::dto::tests::page_input_defaults_limit_to_100 ... ok
[INFO] [stdout] test mcp::dto::tests::read_range_input_defaults_to_whole_file ... ok
[INFO] [stdout] test mcp::dto::tests::page_input_rejects_garbage_cursor ... ok
[INFO] [stdout] test mcp::dto::tests::read_range_input_passes_through_explicit_range ... ok
[INFO] [stdout] test mcp::dto::tests::symbol_ref_input_accepts_at ... ok
[INFO] [stdout] test mcp::dto::tests::symbol_ref_input_accepts_fqn ... ok
[INFO] [stdout] test mcp::dto::tests::symbol_ref_input_rejects_both_fqn_and_at ... ok
[INFO] [stdout] test mcp::dto::tests::page_input_clamps_limit_above_max_page_limit ... ok
[INFO] [stdout] test mcp::dto::tests::symbol_ref_input_rejects_neither ... ok
[INFO] [stdout] test mcp::dto::tests::find_call_path_input_clamps_out_of_range_depth_and_budget ... ok
[INFO] [stdout] test indexer::pipeline::tests::index_repository_counts_fetch_errors_and_continues ... ok
[INFO] [stdout] test mcp::server::tests::find_symbol_schema_declares_pattern_as_string ... ok
[INFO] [stdout] test mcp::proxy::tests::find_symbol_forwards_and_deserializes_the_typed_result ... ok
[INFO] [stdout] test mcp::proxy::tests::get_info_advertises_instructions_for_deferred_tool_discovery ... ok
[INFO] [stdout] test query::dto::tests::from_node_maps_all_fields_and_normalizes_kind ... ok
[INFO] [stdout] test mcp::proxy::tests::restart_lsp_forwards_and_deserializes_the_typed_result ... ok
[INFO] [stdout] test mcp::proxy::tests::daemon_error_surfaces_as_internal_error ... ok
[INFO] [stdout] test query::dto::tests::from_node_promotes_type_alias ... ok
[INFO] [stdout] test query::dto::tests::kind_label_leaves_variable_without_type_construct ... ok
[INFO] [stdout] test query::dto::tests::kind_label_passes_standard_through ... ok
[INFO] [stdout] test query::dto::tests::kind_label_preserves_custom_labels ... ok
[INFO] [stdout] test query::dto::tests::range_dto_clamps_above_u32_max ... ok
[INFO] [stdout] test query::dto::tests::kind_label_promotes_variable_with_type_construct ... ok
[INFO] [stdout] test query::dto::tests::range_dto_clamps_negative_to_zero ... ok
[INFO] [stdout] test query::dto::tests::range_dto_widens_graph_columns ... ok
[INFO] [stdout] test query::filter::tests::cursor_decode_rejects_garbage ... ok
[INFO] [stdout] test query::filter::tests::cursor_roundtrips_sort_key ... ok
[INFO] [stdout] test query::filter::tests::filter_excludes_external_by_default ... ok
[INFO] [stdout] test query::filter::tests::filter_include_external_keeps_them ... ok
[INFO] [stdout] test query::filter::tests::filter_kind_uses_normalized_label ... ok
[INFO] [stdout] test query::filter::tests::filter_narrows_by_language_and_kind_label ... ok
[INFO] [stdout] test query::filter::tests::match_mode_contains_is_substring ... ok
[INFO] [stdout] test query::filter::tests::match_mode_exact_is_whole_fqn ... ok
[INFO] [stdout] test query::filter::tests::match_mode_fuzzy_ignore_case_folds_ascii ... ok
[INFO] [stdout] test query::filter::tests::match_mode_fuzzy_rejects_unrelated_names ... ok
[INFO] [stdout] test query::filter::tests::match_mode_fuzzy_tolerates_a_single_typo ... ok
[INFO] [stdout] test query::filter::tests::match_mode_ignore_case_folds_ascii ... ok
[INFO] [stdout] test query::filter::tests::match_mode_segment_matches_any_dot_segment ... ok
[INFO] [stdout] test query::filter::tests::sort_key_orders_by_fqn_first ... ok
[INFO] [stdout] test query::lsp_query::tests::is_timeout_false_for_other_errors ... ok
[INFO] [stdout] test query::lsp_query::tests::item_key_uses_selection_range_start ... ok
[INFO] [stdout] test query::lsp_query::tests::mock_returns_canned_definition_or_empty ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_hover_flattens_markup_and_string_contents ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_hover_null_is_none ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_incoming_attaches_from_ranges ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_items_round_trips_data_via_raw ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_handles_plain_locations ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_collapses_location_links ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_matches_captured_gopls_definition ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_matches_captured_gopls_implementation ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_matches_captured_pyright_definition ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_matches_captured_tsserver_implementation ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_matches_captured_tsserver_locationlink ... ok
[INFO] [stdout] test query::lsp_query::tests::parse_locations_null_is_empty ... ok
[INFO] [stdout] test indexer::pipeline::tests::index_repository_persists_nodes_and_contains_edges ... ok
[INFO] [stdout] test query::lsp_query::tests::timed_reports_query_timed_out_on_deadline ... ok
[INFO] [stdout] test mcp::server::tests::find_references_with_bad_cursor_is_invalid_params ... ok
[INFO] [stdout] test mcp::server::tests::find_call_path_for_unresolvable_endpoints_is_not_degraded ... ok
[INFO] [stdout] test mcp::server::tests::get_info_advertises_instructions_for_deferred_tool_discovery ... ok
[INFO] [stdout] test mcp::server::tests::find_symbol_on_empty_graph_returns_empty_page ... ok
[INFO] [stdout] test mcp::server::tests::read_range_on_missing_file_is_an_internal_error ... ok
[INFO] [stdout] test mcp::server::tests::find_references_for_unknown_fqn_is_not_degraded ... ok
[INFO] [stdout] test lsp::server::tests::request_fails_once_process_has_exited ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_depth_cap_marks_search_inconclusive ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_lsp_budget_exhausted_marks_search_inconclusive ... ok
[INFO] [stdout] test indexer::reconcile::tests::reconcile_uri_for_startup_drift_lsp_unavailable_and_content_hash_gating ... ok
[INFO] [stdout] test lsp::handshake::tests::initialize_times_out_when_server_is_silent ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_finds_multi_hop_shortest_path ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_finds_direct_one_hop_path ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_same_node_is_trivially_reachable_at_zero_cost ... ok
[INFO] [stdout] test query::ops::tests::find_callees_materializes_outgoing_calls ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_unresolvable_endpoints_hint_independently ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_without_a_client_is_inconclusive_when_nothing_is_cached ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_unresolvable_endpoint_is_not_a_search_limit ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_without_a_client_still_uses_precached_edges ... ok
[INFO] [stdout] test query::ops::tests::find_callees_unknown_fqn_has_no_hint ... ok
[INFO] [stdout] test query::ops::tests::find_call_path_unreachable_within_budget_is_an_exhaustive_negative ... ok
[INFO] [stdout] test query::ops::tests::find_callees_precise_cache_skips_lsp_when_file_unchanged ... ok
[INFO] [stdout] test query::ops::tests::find_callees_precise_cache_remateralizes_on_same_line_count_body_edit ... ok
[INFO] [stdout] test query::ops::tests::find_callees_unresolvable_fqn_hints_similarly_named_symbol ... ok
[INFO] [stdout] test query::ops::tests::find_callers_materializes_incoming_calls ... ok
[INFO] [stdout] test query::ops::tests::find_callers_falls_back_to_module_node_for_top_level_call_site ... ok
[INFO] [stdout] test query::ops::tests::find_callers_module_scope_sentinel_wins_even_when_a_real_symbol_starts_at_the_same_position ... ok
[INFO] [stdout] test query::ops::tests::find_callers_reports_timeout_from_anchor_resolution ... ok
[INFO] [stdout] test query::ops::tests::find_callees_zero_callees_is_served_from_cache_without_lsp ... ok
[INFO] [stdout] test query::ops::tests::find_definition_at_persists_signature_to_the_db ... ok
[INFO] [stdout] test query::ops::tests::find_definition_at_promotes_construct_via_hover ... ok
[INFO] [stdout] test query::pool::tests::callees_handles_pyright_null_outgoing_calls_as_empty ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::ops::tests::find_definition_at_without_client_is_empty ... ok
[INFO] [stdout] test query::ops::tests::find_definition_at_uses_lsp_then_resolves_target ... ok
[INFO] [stdout] test query::ops::tests::find_definition_fqn_returns_node ... ok
[INFO] [stdout] test query::ops::tests::find_references_cache_only_reads_preseeded_edge ... ok
[INFO] [stdout] test query::pool::tests::callhierarchy_incoming_from_module_scope_synthesizes_module_caller ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::pool::tests::degradation_from_down_is_down_status ... ok
[INFO] [stdout] test query::pool::tests::degradation_from_restarting_or_start_failed_is_degraded_status ... ok
[INFO] [stdout] test query::pool::tests::find_callees_corrects_interface_dispatch_to_the_implementing_class ... ignored, requires node/npm; provisions tsserver from npm on first run
[INFO] [stdout] test query::pool::tests::find_callees_corrects_interface_dispatch_to_the_implementing_class_for_go ... ignored, requires gopls on PATH (go install golang.org/x/tools/gopls@latest)
[INFO] [stdout] test query::pool::tests::find_callers_cache_first_then_background_refresh_picks_up_new_caller ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::pool::tests::find_definition_backfills_signature_across_files ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::pool::tests::query_runtime_real_pyright_resolves_definition_at_usage ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::ops::tests::find_references_reports_timeout_from_materialize ... ok
[INFO] [stdout] test query::ops::tests::find_references_materializes_and_groups ... ok
[INFO] [stdout] test query::pool::tests::references_resolve_cross_file_without_preemptive_didopen ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::ops::tests::find_symbol_fuzzy_tolerates_a_typo ... ok
[INFO] [stdout] test query::pool::tests::restart_language_removes_and_respawns_supervisor ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::ops::tests::read_range_slices_file_and_clamps ... ok
[INFO] [stdout] test query::pool::tests::timeout_degradation_false_is_none ... ok
[INFO] [stdout] test query::pool::tests::timeout_degradation_true_yields_lsp_timeout_degraded ... ok
[INFO] [stdout] test query::ops::tests::find_symbol_brief_returns_fqns_not_nodes ... ok
[INFO] [stdout] test query::ops::tests::find_symbol_paginates_with_cursor ... ok
[INFO] [stdout] test query::ops::tests::hint_fqns_falls_back_to_fuzzy_for_a_typo_d_bare_name ... ok
[INFO] [stdout] test query::pool::tests::with_signature_backfills_hover_derived_signature ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::pool::tests::workspace_name_uses_last_root_segment ... ok
[INFO] [stdout] test query::pool::tests::workspace_symbol_returns_empty_array_for_pyright ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] test query::pool::tests::callers_for_unresolvable_at_position_has_no_hint ... ok
[INFO] [stdout] test query::resolver::tests::group_by_node_collapses_repeats_and_sorts_sites ... ok
[INFO] [stdout] test query::ops::tests::find_symbol_segments_and_filters ... ok
[INFO] [stdout] test query::pool::tests::callers_for_truly_unknown_name_has_no_hint ... ok
[INFO] [stdout] test query::pool::tests::references_for_bare_name_hints_the_full_fqn ... ok
[INFO] [stdout] test query::pool::tests::callers_for_unknown_fqn_degrades_to_empty_without_spawning ... ok
[INFO] [stdout] test query::pool::tests::callers_for_bare_name_hints_the_full_fqn ... ok
[INFO] [stdout] test query::pool::tests::restart_language_on_empty_runtime_is_noop ... ok
[INFO] [stdout] test query::pool::tests::references_for_unknown_fqn_degrades_to_empty_without_spawning ... ok
[INFO] [stdout] test query::ops::tests::references_excludes_external_by_default_filter ... ok
[INFO] [stdout] test query::tests::paginate_clamps_limit_to_max_page_limit ... ok
[INFO] [stdout] test query::pool::tests::spawn_refresh_is_a_noop_when_already_in_flight ... ok
[INFO] [stdout] test query::pool::tests::wait_until_query_idle_returns_immediately_when_no_guard_held ... ok
[INFO] [stdout] test query::resolver::tests::materialize_call_edges_reports_timeout_when_prepare_times_out ... ok
[INFO] [stdout] test query::resolver::tests::definition_anchor_falls_back_to_position_and_reports_timeout ... ok
[INFO] [stdout] test query::tests::confine_allows_in_root_path ... ok
[INFO] [stdout] test query::resolver::tests::materialize_references_reports_timeout_without_edges ... ok
[INFO] [stdout] test query::tests::confine_rejects_path_escaping_root ... ok
[INFO] [stdout] test query::resolver::tests::outgoing_call_to_interface_method_is_corrected_for_go ... ok
[INFO] [stdout] test query::resolver::tests::outgoing_call_to_interface_method_falls_back_when_implementation_is_empty ... ok
[INFO] [stdout] test query::resolver::tests::outgoing_call_to_interface_method_is_corrected_to_the_implementing_class ... ok
[INFO] [stdout] test query::resolver::tests::outgoing_call_to_interface_method_is_not_corrected_for_python ... ok
[INFO] [stdout] test query::pool::tests::wait_until_query_idle_blocks_while_a_guard_is_held_and_completes_after_drop ... ok
[INFO] [stdout] test query::pool::tests::wait_until_query_idle_waits_for_every_concurrent_guard ... ok
[INFO] [stdout] test lsp::server::tests::shutdown_sigterm_terminates_unresponsive ... ok
[INFO] [stdout] test lsp::server::tests::shutdown_sigkill_when_sigterm_ignored ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 265 passed; 0 failed; 15 ignored; 0 measured; 0 filtered out; finished in 1.64s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/semnav/e7a312743f6d6b3a/out/semnav-e7a312743f6d6b3a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test tests::resolve_root_canonicalizes_relative_dot_component ... ok
[INFO] [stdout] test tests::resolve_root_rejects_nonexistent_path ... ok
[INFO] [stdout] test tests::resolve_root_rejects_a_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/custom_adapter_e2e.rs (/opt/rustwide/target/debug/build/semnav/87f706b6fcefde57/out/custom_adapter_e2e-87f706b6fcefde57)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test index_language_real_custom_adapter_via_pyright ... ignored, requires node/npm; provisions pyright from npm on first run
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests semnav
[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" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2", kill_on_drop: false }`
[INFO] [stdout] 64f273f60e097648f55a623162d269dc792fbdd426b36589f0d87744ad9918f2
