[INFO] fetching crate mcp-methods 0.4.12...
[INFO] testing mcp-methods-0.4.12 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate mcp-methods 0.4.12 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate mcp-methods 0.4.12
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate mcp-methods 0.4.12
[INFO] tweaked toml for crates.io crate mcp-methods 0.4.12 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mcp-methods 0.4.12 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 mcp-methods 0.4.12 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] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:109:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | homepage = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 | repository = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |              -----------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[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] 58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6
[INFO] running `Command { std: "docker" "start" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", 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" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6" "/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" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", 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" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:109:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | homepage = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 | repository = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |              -----------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr]    Compiling unicode-ident v1.0.26
[INFO] [stderr]    Compiling cfg-if v1.0.5
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling find-msvc-tools v0.1.12
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling smallvec v1.16.1
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling inotify-sys v0.1.8
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling ref-cast v1.0.27
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling cc v1.4.6
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling core_detect v1.0.0
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling multiversion_no_op v1.0.0
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling inotify v0.11.5
[INFO] [stderr]    Compiling mio v1.2.3
[INFO] [stderr]    Compiling encoding_rs v0.8.41
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling grep-matcher v0.1.9
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling clap_lex v1.1.1
[INFO] [stderr]    Compiling rmcp v3.4.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling uuid v1.26.1
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling memmap2 v0.9.11
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling notify-debouncer-mini v0.6.0
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling fancy-regex v0.17.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling globset v0.4.20
[INFO] [stderr]    Compiling grep-regex v0.1.14
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling synstructure v0.14.0
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.8
[INFO] [stderr]    Compiling yoke-derive v0.8.3
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling multiversion-macros v0.9.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling ref-cast-impl v1.0.27
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling clap_derive v4.6.7
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling multiversion v0.9.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling rmcp-macros v3.4.0
[INFO] [stderr]    Compiling encoding_rs_io v0.1.8
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling grep-searcher v0.1.17
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[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 ureq v2.12.1
[INFO] [stderr]    Compiling mcp-methods v0.4.12 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `clap`
[INFO] [stderr]  --> Cargo.toml:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | [dependencies.clap]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `clap`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s
[INFO] running `Command { std: "docker" "inspect" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", 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" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:109:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | homepage = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 | repository = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |              -----------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr]    Compiling mcp-methods v0.4.12 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `clap`
[INFO] [stderr]  --> Cargo.toml:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | [dependencies.clap]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `clap`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 33.81s
[INFO] running `Command { std: "docker" "inspect" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", 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" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:109:12
[INFO] [stderr]     |
[INFO] [stderr] 109 | homepage = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 114 | repository = "https://github.com/kkollsga/mcp-methods"
[INFO] [stderr]     |              -----------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `clap`
[INFO] [stderr]  --> Cargo.toml:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | [dependencies.clap]
[INFO] [stderr]   |               ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `clap`
[INFO] [stderr] warning: `mcp-methods` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/mcp-methods/dabd2650ab83416a/out/mcp_methods-dabd2650ab83416a)
[INFO] [stdout] 
[INFO] [stdout] running 434 tests
[INFO] [stdout] test github::tests::leading_slash_paths_normalise ... ok
[INFO] [stdout] test github::tests::forbidden_403_without_header_stays_plain ... ok
[INFO] [stdout] test git_refs::tests::test_validate_repo_invalid ... ok
[INFO] [stdout] test github::tests::empty_accepted_permissions_header_is_treated_as_absent ... ok
[INFO] [stdout] test github::tests::empty_string_token_is_treated_as_missing ... ok
[INFO] [stdout] test git_refs::tests::test_validate_repo_valid ... ok
[INFO] [stdout] test github::tests::forbidden_403_echoes_accepted_permissions_header ... ok
[INFO] [stdout] test github::tests::backoff_doubles_then_caps ... ok
[INFO] [stdout] test github::tests::transient_status_classification ... ok
[INFO] [stdout] test git_refs::tests::test_extract_refs ... ok
[INFO] [stdout] test html::tests::test_whitespace_collapsed ... ok
[INFO] [stdout] test html::tests::test_double_encoded_entities ... ok
[INFO] [stdout] test html::tests::test_entities ... ok
[INFO] [stdout] test screen::tests::consumer_detected ... ok
[INFO] [stdout] test screen::tests::dispatch_caches_then_drills_without_refetch ... ok
[INFO] [stdout] test screen::tests::drill_cohort ... ok
[INFO] [stdout] test screen::tests::drill_user_and_repo ... ok
[INFO] [stdout] test screen::tests::projection_drops_empty_desc ... ok
[INFO] [stdout] test screen::tests::prolific_builder_detected ... ok
[INFO] [stdout] test html::tests::test_images ... ok
[INFO] [stdout] test screen::tests::stargazer_forbidden_names_the_users_seed_and_the_permission ... ok
[INFO] [stdout] test screen::tests::single_project_dev_detected ... ok
[INFO] [stdout] test html::tests::test_headings ... ok
[INFO] [stdout] test screen::tests::stargazer_non_forbidden_errors_pass_through_untouched ... ok
[INFO] [stdout] test server::bundled_skills_index::tests::bundled_skill_names_are_unique ... ok
[INFO] [stdout] test html::tests::test_comments_removed ... ok
[INFO] [stdout] test server::bundled_skills_index::tests::bundled_skills_fit_under_size_limit ... ok
[INFO] [stdout] test server::bundled_skills_index::tests::each_framework_bundled_skill_parses ... ok
[INFO] [stdout] test server::cli::tests::format_skill_list_decidable_failure_wins_over_runtime_clause ... ok
[INFO] [stdout] test server::bundled_skills_index::tests::library_bundled_skills_returns_five_skills ... ok
[INFO] [stdout] test server::bundled_skills_index::tests::each_bundled_skill_frontmatter_name_matches_lookup_key ... ok
[INFO] [stdout] test server::cli::tests::owned_layer_provenance_labels_the_cli_column ... ok
[INFO] [stdout] test server::cli::tests::format_skill_list_keeps_decidable_failures_inactive ... ok
[INFO] [stdout] test server::cli::tests::inline_skill_provenance_labels_the_cli_column ... ok
[INFO] [stdout] test server::cli::tests::skills_lint_empty_dir_emits_friendly_line ... ok
[INFO] [stdout] test server::cli::tests::format_skill_list_ungated_skill_stays_active_without_clause_lines ... ok
[INFO] [stdout] test server::cli::tests::skills_lint_size_warning_at_4kb ... ok
[INFO] [stdout] test server::cli::tests::skills_list_no_skills_declared_is_empty ... ok
[INFO] [stdout] test server::cli::tests::skills_lint_reports_each_file ... ok
[INFO] [stdout] test server::cli::tests::skills_lint_invalid_dir_errors ... ok
[INFO] [stdout] test html::tests::test_strip_head ... ok
[INFO] [stdout] test server::cli::tests::skills_list_without_bundled ... ok
[INFO] [stdout] test server::cli::tests::skills_list_reports_runtime_gated_skills_as_conditional ... ok
[INFO] [stdout] test server::cli::tests::skills_new_rejects_empty_description ... ok
[INFO] [stdout] test server::cli::tests::skills_list_shows_the_delivery_tier_column ... ok
[INFO] [stdout] test server::cli::tests::skills_list_extension_gate_is_runtime_too ... ok
[INFO] [stdout] test server::cli::tests::skills_new_bubbles_write_errors ... ok
[INFO] [stdout] test server::cli::tests::skills_new_scaffolds_into_a_directory ... ok
[INFO] [stdout] test server::cli::tests::skills_new_rejects_empty_name ... ok
[INFO] [stdout] test server::cli::tests::skills_show_returns_body_with_header ... ok
[INFO] [stdout] test server::cli::tests::skills_show_missing_skill_errors ... ok
[INFO] [stdout] test server::env::tests::does_not_overwrite_existing_env ... ok
[INFO] [stdout] test server::env::tests::explicit_missing_path_errors ... ok
[INFO] [stdout] test server::env::tests::explicit_unreadable_path_errors ... ok
[INFO] [stdout] test server::env::tests::finds_env_in_start_dir ... ok
[INFO] [stdout] test server::env::tests::returns_none_when_no_env_anywhere ... ok
[INFO] [stdout] test server::env::tests::strips_quotes_skips_comments ... ok
[INFO] [stdout] test server::manifest::tests::applies_to_rejects_deep_path_at_parse_time ... ok
[INFO] [stdout] test server::cli::tests::skills_list_renders_table_for_resolved_set ... ok
[INFO] [stdout] test server::manifest::tests::applies_to_rejects_invalid_glob_at_parse_time ... ok
[INFO] [stdout] test server::env::tests::walks_up_to_parent_for_env ... ok
[INFO] [stdout] test server::manifest::tests::allow_embedder_trust_parses ... ok
[INFO] [stdout] test server::manifest::tests::bundled_override_alongside_cypher_tools_parses ... ok
[INFO] [stdout] test server::manifest::tests::bundled_override_to_json_shape ... ok
[INFO] [stdout] test server::manifest::tests::builtins_github_defaults_off_and_parses ... ok
[INFO] [stdout] test server::manifest::tests::bundled_override_with_hidden_parses ... ok
[INFO] [stdout] test server::manifest::tests::builtins_parses_temp_cleanup ... ok
[INFO] [stdout] test server::manifest::tests::bundled_override_with_description_parses ... ok
[INFO] [stdout] test server::manifest::tests::bundled_rename_alongside_description_parses ... ok
[INFO] [stdout] test server::manifest::tests::applies_to_rejects_parent_relative ... ok
[INFO] [stdout] test server::manifest::tests::bundled_rename_defaults_to_none ... ok
[INFO] [stdout] test server::manifest::tests::env_file_key_parses ... ok
[INFO] [stdout] test server::manifest::tests::bundled_rename_parses_when_valid_identifier ... ok
[INFO] [stdout] test server::manifest::tests::extensions_absent_defaults_to_empty ... ok
[INFO] [stdout] test server::manifest::tests::bundled_rename_serialises_to_json ... ok
[INFO] [stdout] test server::manifest::tests::extensions_inner_keys_unvalidated ... ok
[INFO] [stdout] test server::manifest::tests::env_file_unset_is_none ... ok
[INFO] [stdout] test server::manifest::tests::extensions_must_be_a_mapping ... ok
[INFO] [stdout] test server::manifest::tests::extensions_passthrough_parses ... ok
[INFO] [stdout] test server::manifest::tests::find_sibling_works ... ok
[INFO] [stdout] test server::manifest::tests::embedder_parses ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_applies_to_wildcard_matches_any_child ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_ignores_parent_with_mismatched_applies_to ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_ignores_parent_without_applies_to ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_returns_none_when_missing_everywhere ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_applies_to_glob_matches_prefix ... ok
[INFO] [stdout] test html::tests::test_list_items ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_primary_wins_over_parent_fallback ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_applies_to_list_matches_any_entry ... ok
[INFO] [stdout] test html::tests::test_br_tags ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_walks_one_level_up_with_applies_to ... ok
[INFO] [stdout] test html::tests::test_tables ... ok
[INFO] [stdout] test html::tests::test_bold ... ok
[INFO] [stdout] test server::manifest::tests::cypher_tool_parses ... ok
[INFO] [stdout] test server::manifest::tests::find_workspace_works ... ok
[INFO] [stdout] test server::manifest::tests::loads_minimal_empty_manifest ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_rename_with_non_string_value ... ok
[INFO] [stdout] test server::manifest::tests::python_tool_parses ... ok
[INFO] [stdout] test server::manifest::tests::rejects_both_source_root_and_source_roots ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_rename_with_invalid_identifier ... ok
[INFO] [stdout] test server::manifest::tests::loads_name_and_instructions ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_with_parameters_field ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_with_invalid_identifier ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_with_name_field ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_with_non_bool_hidden ... ok
[INFO] [stdout] test server::manifest::tests::rejects_duplicate_bundled_overrides ... ok
[INFO] [stdout] test server::manifest::tests::rejects_invalid_temp_cleanup ... ok
[INFO] [stdout] test server::manifest::tests::rejects_tool_with_no_kind ... ok
[INFO] [stdout] test server::manifest::tests::rejects_hidden_on_cypher_tool ... ok
[INFO] [stdout] test server::manifest::tests::retired_allow_query_preprocessor_is_rejected_as_unknown ... ok
[INFO] [stdout] test server::manifest::tests::rejects_bundled_with_cypher_kind ... ok
[INFO] [stdout] test server::manifest::tests::rejects_duplicate_tool_names ... ok
[INFO] [stdout] test server::manifest::tests::skills_empty_list_parses_as_opt_in_with_no_root_sources ... ok
[INFO] [stdout] test server::manifest::tests::skills_disabled_by_default ... ok
[INFO] [stdout] test server::manifest::tests::skills_empty_path_string_rejected ... ok
[INFO] [stdout] test server::manifest::tests::rejects_unknown_top_key ... ok
[INFO] [stdout] test server::manifest::tests::skills_bool_true_parses_to_single_bundled ... ok
[INFO] [stdout] test server::manifest::tests::skills_explicit_false_disabled ... ok
[INFO] [stdout] test server::manifest::tests::skills_false_in_list_rejected ... ok
[INFO] [stdout] test server::manifest::tests::skills_field_is_purely_additive_on_existing_manifests ... ok
[INFO] [stdout] test server::manifest::tests::rejects_non_bool_github ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_bad_delivery_rejected ... ok
[INFO] [stdout] test server::manifest::tests::rejects_tool_with_both_kinds ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_missing_required_fields_rejected ... ok
[INFO] [stdout] test server::manifest::tests::skills_list_polymorphic_parses ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_coexists_with_true_and_path_entries ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_optional_keys_default_and_still_round_trip ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_mapping_parses_every_field ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_unknown_key_rejected ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_unknown_applies_when_key_rejected ... ok
[INFO] [stdout] test server::manifest::tests::source_roots_list_preserved ... ok
[INFO] [stdout] test server::manifest::tests::to_json_reports_github_opt_in ... ok
[INFO] [stdout] test server::manifest::tests::skills_non_mapping_non_string_entry_still_rejected ... ok
[INFO] [stdout] test server::manifest::tests::skills_path_string_parses_to_single_path ... ok
[INFO] [stdout] test server::manifest::tests::source_root_string_normalises_to_list ... ok
[INFO] [stdout] test server::manifest::tests::skills_invalid_type_rejected ... ok
[INFO] [stdout] test server::manifest::tests::to_json_round_trips_tools_and_workspace ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_absent_by_default ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_coexists_with_an_explicit_root ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_invalid_for_github ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_must_be_a_bool ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_false_still_requires_root ... ok
[INFO] [stdout] test server::manifest::tests::workspace_adopt_client_roots_permits_omitting_root ... ok
[INFO] [stdout] test server::manifest::tests::workspace_local_without_root_errors ... ok
[INFO] [stdout] test server::manifest::tests::workspace_invalid_kind_rejected ... ok
[INFO] [stdout] test server::manifest::tests::workspace_sandbox_root_absent_by_default ... ok
[INFO] [stdout] test server::manifest::tests::workspace_local_parses ... ok
[INFO] [stdout] test server::manifest::tests::workspace_unknown_key_rejected ... ok
[INFO] [stdout] test server::manifest::tests::workspace_sandbox_root_invalid_for_github ... ok
[INFO] [stdout] test server::manifest::tests::to_json_shape_is_stable ... ok
[INFO] [stdout] test server::manifest::tests::workspace_config_builder_sets_each_field ... ok
[INFO] [stdout] test server::roots::tests::an_encoded_separator_cannot_forge_a_local_authority ... ok
[INFO] [stdout] test server::roots::tests::authority_less_form_is_accepted ... ok
[INFO] [stdout] test server::manifest::tests::workspace_github_default_kind ... ok
[INFO] [stdout] test server::manifest::tests::workspace_watch_with_a_root_is_fine ... ok
[INFO] [stdout] test server::roots::tests::empty_and_relative_paths_rejected ... ok
[INFO] [stdout] test server::manifest::tests::workspace_watch_invalid_for_github ... ok
[INFO] [stdout] test server::manifest::tests::workspace_sandbox_root_must_be_a_non_empty_string ... ok
[INFO] [stdout] test server::manifest::tests::workspace_watch_requires_a_root_even_with_adoption_enabled ... ok
[INFO] [stdout] test server::manifest::tests::workspace_sandbox_root_parses_for_local ... ok
[INFO] [stdout] test server::roots::tests::non_file_scheme_rejected ... ok
[INFO] [stdout] test server::roots::tests::percent_escapes_decode_after_splitting ... ok
[INFO] [stdout] test server::roots::tests::plain_absolute_file_uri ... ok
[INFO] [stdout] test server::roots::tests::malformed_percent_escape_rejected ... ok
[INFO] [stdout] test server::roots::tests::foreign_host_rejected ... ok
[INFO] [stdout] test server::runtime::tests::lenient_resolution_reports_no_failures_when_every_root_exists ... ok
[INFO] [stdout] test server::roots::tests::localhost_host_is_local ... ok
[INFO] [stdout] test server::runtime::tests::lenient_resolution_rejects_a_root_that_is_a_file ... ok
[INFO] [stdout] test server::manifest::tests::skills_inline_round_trips_through_to_json ... ok
[INFO] [stdout] test server::runtime::tests::explicit_missing_env_file_is_an_error_that_names_the_path ... ok
[INFO] [stdout] test server::runtime::tests::strict_resolution_still_fails_on_the_same_manifest ... ok
[INFO] [stdout] test html::tests::test_links_stripped ... ok
[INFO] [stdout] test server::server::tests::a_downstream_tool_named_skill_still_owns_the_name_after_a_re_resolve ... ok
[INFO] [stdout] test server::server::tests::a_reloader_outliving_its_server_reports_that_instead_of_panicking ... ok
[INFO] [stdout] test server::roots::tests::query_and_fragment_stripped ... ok
[INFO] [stdout] test server::server::tests::a_skill_named_after_the_loader_is_rejected ... ok
[INFO] [stdout] test server::server::tests::a_downstream_tool_owning_the_loader_name_forces_eager_delivery ... ok
[INFO] [stdout] test server::runtime::tests::lenient_resolution_serves_the_roots_that_exist ... ok
[INFO] [stdout] test server::server::tests::append_footer_ignores_empty_footers ... ok
[INFO] [stdout] test server::server::tests::builtins_exposed_via_server ... ok
[INFO] [stdout] test server::server::tests::fallible_err_sets_is_error_and_keeps_footer ... ok
[INFO] [stdout] test server::server::tests::eager_skill_injects_the_body_and_no_loader_pointer ... ok
[INFO] [stdout] test server::server::tests::both_registrations_reach_the_router ... ok
[INFO] [stdout] test server::server::tests::fallible_err_without_hook_is_error_text_verbatim ... ok
[INFO] [stdout] test server::server::tests::fallible_ok_reports_success_with_footer ... ok
[INFO] [stdout] test server::server::tests::get_info_advertises_list_changed_on_tools_always_and_on_prompts_with_them ... ok
[INFO] [stdout] test server::server::tests::dynamic_provider_swaps_at_call_time ... ok
[INFO] [stdout] test server::server::tests::get_info_advertises_prompts_when_present ... ok
[INFO] [stdout] test server::server::tests::delivery_defaults_to_lazy_in_the_injection_pass ... ok
[INFO] [stdout] test server::server::tests::get_info_no_prompts_capability_when_empty ... ok
[INFO] [stdout] test server::server::tests::github_tools_absent_by_default_even_with_a_token ... ok
[INFO] [stdout] test server::server::tests::github_tools_absent_on_opt_in_without_a_token ... ok
[INFO] [stdout] test server::server::tests::invalid_arguments_set_is_error_on_both_registrations ... ok
[INFO] [stdout] test server::server::tests::invalid_arguments_still_get_the_footer ... ok
[INFO] [stdout] test server::server::tests::github_tools_register_on_opt_in_with_a_token ... ok
[INFO] [stdout] test server::server::tests::missing_arguments_fall_back_to_default_args ... ok
[INFO] [stdout] test server::server::tests::lazy_skill_injects_routing_and_a_loader_pointer_but_no_body ... ok
[INFO] [stdout] test server::server::tests::no_provider_returns_empty_roots ... ok
[INFO] [stdout] test server::server::tests::active_skills_is_the_post_activation_set_with_tiers ... ok
[INFO] [stdout] test server::server::tests::local_workspace_drops_repo_management_and_keeps_set_root_dir ... ok
[INFO] [stdout] test server::server::tests::github_workspace_keeps_repo_management_and_has_no_set_root_dir ... ok
[INFO] [stdout] test server::server::tests::postprocess_ctx_reaches_both_arms ... ok
[INFO] [stdout] test server::server::tests::no_result_postprocess_leaves_body_unchanged ... ok
[INFO] [stdout] test server::server::tests::no_workspace_has_neither_workspace_tool ... ok
[INFO] [stdout] test server::server::tests::plain_handler_success_unchanged ... ok
[INFO] [stdout] test server::server::tests::no_root_message_names_a_declared_root_that_did_not_resolve ... ok
[INFO] [stdout] test server::server::tests::prompt_router_empty_by_default ... ok
[INFO] [stdout] test server::server::tests::bundled_repo_management_skill_suppressed_in_local_mode ... ok
[INFO] [stdout] test server::server::tests::re_resolve_keeps_a_downstream_prompt_route ... ok
[INFO] [stdout] test server::server::tests::no_root_message_without_declarations_is_the_configure_advice ... ok
[INFO] [stdout] test server::server::tests::options_from_manifest_uses_name_when_set ... ok
[INFO] [stdout] test server::server::tests::repo_management_present_when_workspace_bound ... ok
[INFO] [stdout] test server::server::tests::repo_management_gated_to_workspace_mode ... ok
[INFO] [stdout] test server::server::tests::re_resolve_removes_a_skill ... ok
[INFO] [stdout] test server::server::tests::re_resolve_adds_a_skill ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_auto_injects_full_body_into_matching_tool ... ok
[INFO] [stdout] test server::server::tests::re_resolve_is_byte_stable_when_the_registry_is_unchanged ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_empty_registry_is_noop ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_idempotent_across_repeated_passes ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_drops_skill_with_no_registered_target ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_honors_references_tools ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_keeps_skill_that_declares_no_targets ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_keeps_skill_with_one_registered_target_of_several ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_keeps_skill_with_satisfied_predicate ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_injects_description_under_when_to_use ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_idempotent_across_repeated_passes_on_the_lazy_tier ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_idempotent_when_skill_self_references ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_multiple_skills_stack_on_one_tool ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_evaluates_extension_enabled_from_manifest ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_skips_injection_when_disabled ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_suppresses_skill_with_unsatisfied_predicate ... ok
[INFO] [stdout] test server::server::tests::strip_handles_a_description_that_was_nothing_but_injection ... ok
[INFO] [stdout] test server::server::tests::static_source_roots_provider ... ok
[INFO] [stdout] test server::server::tests::server_constructs ... ok
[INFO] [stdout] test server::server::tests::strip_returns_a_two_skill_description_to_its_original_bytes ... ok
[INFO] [stdout] test server::server::tests::skill_loader_absent_on_the_zero_skills_boot_path ... ok
[INFO] [stdout] test server::skills::tests::always_registered_bundled_skills_stay_ungated ... ok
[INFO] [stdout] test server::skills::tests::applies_when_parses_map_shape ... ok
[INFO] [stdout] test server::skills::tests::applies_when_absent_means_always_active ... ok
[INFO] [stdout] test server::server::tests::the_skill_loader_survives_a_re_resolve_exactly_once ... ok
[INFO] [stdout] test server::server::tests::skill_loader_is_registered_whenever_skills_are_on ... ok
[INFO] [stdout] test html::tests::test_script_style_removed ... ok
[INFO] [stdout] test server::skills::tests::bad_delivery_on_a_bundled_skill_is_fatal ... ok
[INFO] [stdout] test server::skills::tests::bad_delivery_on_disk_is_a_parse_warning_not_a_failure ... ok
[INFO] [stdout] test server::skills::tests::delivery_parses_both_tiers_lowercase ... ok
[INFO] [stdout] test server::skills::tests::delivery_rejects_any_other_value ... ok
[INFO] [stdout] test server::skills::tests::graph_predicate_dispatches_via_evaluator ... ok
[INFO] [stdout] test server::skills::tests::from_manifest_surfaces_manifest_load_error ... ok
[INFO] [stdout] test server::skills::tests::inline_entry_rejected_by_parse_skill_warns_rather_than_failing ... ok
[INFO] [stdout] test server::skills::tests::graph_predicate_unknown_without_evaluator_means_inactive ... ok
[INFO] [stdout] test server::skills::tests::inline_layer_loses_to_declared_root_dir ... ok
[INFO] [stdout] test server::skills::tests::inline_layer_overrides_owned ... ok
[INFO] [stdout] test server::skills::tests::inline_entry_carries_its_optional_frontmatter_keys ... ok
[INFO] [stdout] test server::skills::tests::delivery_defaults_to_lazy_when_absent ... ok
[INFO] [stdout] test server::skills::tests::inline_layer_surfaces_without_the_bundled_marker ... ok
[INFO] [stdout] test server::skills::tests::inline_provenance_renders_as_inline ... ok
[INFO] [stdout] test server::skills::tests::load_skill_from_file_basic ... ok
[INFO] [stdout] test server::server::tests::a_rebuild_from_inside_a_result_postprocess_hook_is_refused_by_name ... ok
[INFO] [stdout] test server::skills::tests::load_skill_too_large_rejected ... ok
[INFO] [stdout] test server::skills::tests::inline_layer_oversized_entry_warns_and_rest_loads ... ok
[INFO] [stdout] test server::skills::tests::multiple_predicates_all_must_be_satisfied ... ok
[INFO] [stdout] test server::skills::tests::optional_bundled_skills_activate_only_with_their_tool ... ok
[INFO] [stdout] test server::skills::tests::load_skills_from_dir_missing_returns_empty ... ok
[INFO] [stdout] test server::skills::tests::load_skills_from_dir_surfaces_yaml_parse_failure_as_warning ... ok
[INFO] [stdout] test server::skills::tests::optional_bundled_skills_declare_their_tool_registered_gate ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_accepts_a_non_owned_provenance_verbatim ... ok
[INFO] [stdout] test server::skills::tests::load_skills_from_dir_walks_markdown_only ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_hidden_when_skills_disabled ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_later_call_overrides_earlier ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_loses_to_declared_root_dir ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_name_mismatch_warns ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_overrides_bundled ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_oversized_entry_warns ... ok
[INFO] [stdout] test server::skills::tests::owned_provenance_renders_with_its_label ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_all_optional_fields ... ok
[INFO] [stdout] test server::skills::tests::extension_enabled_predicate_dispatches_in_framework ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_missing_description_rejected ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_missing_name_rejected ... ok
[INFO] [stdout] test server::skills::tests::inline_layer_precedence_ignores_list_position ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_missing_delimiters_rejected ... ok
[INFO] [stdout] test server::skills::tests::from_manifest_resolves_full_stack ... ok
[INFO] [stdout] test server::skills::tests::project_skills_dir_naming ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_basic ... ok
[INFO] [stdout] test server::skills::tests::registry_bundled_name_mismatch_rejected_at_finalise ... ok
[INFO] [stdout] test server::skills::tests::registry_add_bundled_only_visible_when_opted_in ... ok
[INFO] [stdout] test server::skills::tests::parse_frontmatter_invalid_yaml_rejected ... ok
[INFO] [stdout] test server::skills::tests::hard_limit_counts_the_complete_file_and_accepts_exactly_16_kib ... ok
[INFO] [stdout] test server::server::tests::result_postprocess_appends_footer_and_sees_ctx ... ok
[INFO] [stdout] test server::server::tests::serve_prompts_registers_routes_with_metadata ... ok
[INFO] [stdout] test server::skills::tests::registry_library_bundled_skills_returns_vec ... ok
[INFO] [stdout] test server::skills::tests::registry_empty_list_opts_in_without_root_sources ... ok
[INFO] [stdout] test server::skills::tests::registry_disabled_resolves_empty ... ok
[INFO] [stdout] test server::skills::tests::registry_skill_names_sorted ... ok
[INFO] [stdout] test server::skills::tests::registry_layer_resolution_project_wins_over_bundled ... ok
[INFO] [stdout] test server::skills::tests::resolve_skill_path_absolute ... ok
[INFO] [stdout] test server::skills::tests::resolve_skill_path_home_relative ... ok
[INFO] [stdout] test server::skills::tests::registry_root_layer_first_declaration_wins ... ok
[INFO] [stdout] test server::skills::tests::resolved_registry_parse_warnings_propagated_from_project_layer ... ok
[INFO] [stdout] test server::skills::tests::resolve_skill_path_relative ... ok
[INFO] [stdout] test server::skills::tests::render_skill_template_is_parse_valid ... ok
[INFO] [stdout] test server::skills::tests::unknown_predicate_file_is_skipped_with_a_visible_diagnostic ... ok
[INFO] [stdout] test server::skills::tests::registry_root_layer_nonexistent_path_rejected ... ok
[INFO] [stdout] test server::skills::tests::write_skill_template_refuses_to_overwrite ... ok
[INFO] [stdout] test server::skills::tests::unrelated_registered_tool_does_not_activate_optional_bundled_skills ... ok
[INFO] [stdout] test server::skills::tests::write_skill_template_writes_into_directory ... ok
[INFO] [stdout] test server::skills::tests::write_skill_template_creates_missing_parents ... ok
[INFO] [stdout] test server::skills::tests::tool_registered_predicate_dispatches_in_framework ... ok
[INFO] [stdout] test server::skills::tests::unknown_applies_when_predicates_are_rejected_before_activation ... ok
[INFO] [stdout] test server::skills::tests::write_skill_template_round_trips_through_registry ... ok
[INFO] [stdout] test server::skills::tests::write_skill_template_writes_to_explicit_md_path ... ok
[INFO] [stdout] test server::skills::tests::rendered_inline_skill_round_trips_through_parse_skill ... ok
[INFO] [stdout] test server::source::tests::grep_finds_pattern ... ok
[INFO] [stdout] test server::source::tests::list_source_subdir ... ok
[INFO] [stdout] test server::source::tests::grep_glob_filter ... ok
[INFO] [stdout] test server::skills::tests::total_body_bytes_counts_lazy_bodies_too ... ok
[INFO] [stdout] test server::source::tests::read_source_blocks_traversal ... ok
[INFO] [stdout] test server::source::tests::glob_translation ... ok
[INFO] [stdout] test server::source::tests::list_source_root ... ok
[INFO] [stdout] test server::source::tests::read_source_full_file ... ok
[INFO] [stdout] test server::source::tests::read_source_grep_filter ... ok
[INFO] [stdout] test server::source::tests::read_source_line_range ... ok
[INFO] [stdout] test server::skills::tests::render_skill_template_substitutes_name_into_body_headings ... ok
[INFO] [stdout] test server::skills::tests::owned_layer_malformed_entry_warns_and_rest_loads ... ok
[INFO] [stdout] test server::source::tests::resolve_blocks_escape ... ok
[INFO] [stdout] test server::source::tests::is_safe_relative_path_guards ... ok
[INFO] [stdout] test server::source::tests::list_source_dirs_only ... ok
[INFO] [stdout] test server::source::tests::grep_no_matches ... ok
[INFO] [stdout] test server::watch::tests::custom_config_round_trip ... ok
[INFO] [stdout] test server::watch::tests::default_config_passes_source_files ... ok
[INFO] [stdout] test server::watch::tests::default_config_skips_editor_swap ... ok
[INFO] [stdout] test server::watch::tests::default_config_skips_git_dir ... ok
[INFO] [stdout] test server::watch::tests::default_config_skips_node_modules ... ok
[INFO] [stdout] test server::watch::tests::default_config_skips_python_bytecode ... ok
[INFO] [stdout] test server::watch::tests::default_config_skips_target_dir ... ok
[INFO] [stdout] test server::watch::tests::default_skip_substrings_are_anchored ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_non_git_root_errors ... ok
[INFO] [stdout] test server::watch::tests::mixed_batch_retains_only_non_noise ... ok
[INFO] [stdout] test server::watch::tests::noise_only_batch_retains_nothing ... ok
[INFO] [stdout] test server::watch::tests::access_storm_does_not_postpone_a_pending_mutation ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_blocks_traversal ... ok
[INFO] [stdout] test server::watch::tests::unfiltered_config_retains_everything ... ok
[INFO] [stdout] test server::watch::tests::unfiltered_config_skips_nothing ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_reads_historical_content ... ok
[INFO] [stdout] test server::watch::tests::watch_starts_and_drops_clean ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_bad_rev_errors ... ok
[INFO] [stdout] test server::watch::tests::raw_mutations_unknown_events_and_errors_survive_the_debouncer ... ok
[INFO] [stdout] test server::workspace::tests::a_failed_set_root_dir_does_not_claim_ownership ... ok
[INFO] [stdout] test server::workspace::tests::a_hook_re_entering_a_root_operation_is_refused_not_deadlocked ... ok
[INFO] [stdout] test server::workspace::tests::a_non_local_swap_names_the_caller_that_attempted_it ... ok
[INFO] [stdout] test server::workspace::tests::a_b_a_swap_rebuilds_intervening_root ... ok
[INFO] [stdout] test server::workspace::tests::a_refresh_cannot_revert_a_root_swap_that_already_reported_success ... ok
[INFO] [stdout] test server::workspace::tests::activation_summary_absent_when_not_configured ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_bad_path_errors ... ok
[INFO] [stdout] test server::source::tests::read_source_rev_pipeline_applies ... ok
[INFO] [stdout] test server::workspace::tests::activation_summary_appended_to_activate_message ... ok
[INFO] [stdout] test server::workspace::tests::adoption_goes_through_the_same_containment_check_as_set_root_dir ... ok
[INFO] [stdout] test server::workspace::tests::adoption_is_refused_once_the_operator_owns_the_root ... ok
[INFO] [stdout] test server::workspace::tests::adopt_client_root_activates_and_defers_the_inventory_dir ... ok
[INFO] [stdout] test server::workspace::tests::adoption_rejects_a_dotdot_escape_from_the_sandbox ... ok
[INFO] [stdout] test server::workspace::tests::a_refresh_cannot_cancel_an_in_flight_operator_root_swap ... ok
[INFO] [stdout] test server::workspace::tests::classify_tag_excludes_non_version_tags ... ok
[INFO] [stdout] test server::workspace::tests::an_operator_swap_wins_when_an_adoption_is_already_mid_activation ... ok
[INFO] [stdout] test server::workspace::tests::classify_tag_extracts_prefix_version_prerelease ... ok
[INFO] [stdout] test server::workspace::tests::auto_rebuild_gate_skips_when_sha_matches ... ok
[INFO] [stdout] test server::workspace::tests::delete_unknown ... ok
[INFO] [stdout] test server::workspace::tests::dedup_labels_is_order_preserving_first_wins ... ok
[INFO] [stdout] test server::workspace::tests::empty_list ... ok
[INFO] [stdout] test server::workspace::tests::inventory_loads_legacy_entries_without_revs_field ... ok
[INFO] [stdout] test server::workspace::tests::hook_fires_once_per_process_even_when_sha_matches ... ok
[INFO] [stdout] test server::workspace::tests::inventory_loads_legacy_entries_without_sha_field ... ok
[INFO] [stdout] test server::workspace::tests::iso_round_trip ... ok
[INFO] [stdout] test server::workspace::tests::last_built_sha_round_trip ... ok
[INFO] [stdout] test server::workspace::tests::last_built_revs_round_trips_and_clears_on_plain_build ... ok
[INFO] [stdout] test server::workspace::tests::legacy_callbacks_are_serialized_through_build_and_summary ... ok
[INFO] [stdout] test server::workspace::tests::local_default_github_repo_none_without_remote ... ok
[INFO] [stdout] test server::workspace::tests::local_workspace_binds_root_immediately ... ok
[INFO] [stdout] test server::workspace::tests::local_workspace_rejects_github_ops ... ok
[INFO] [stdout] test server::workspace::tests::local_workspace_update_rebuilds ... ok
[INFO] [stdout] test server::workspace::tests::no_sandbox_root_configured_keeps_swaps_unbounded ... ok
[INFO] [stdout] test server::workspace::tests::open_creates_layout ... ok
[INFO] [stdout] test server::workspace::tests::open_local_is_operator_owned_from_the_start ... ok
[INFO] [stdout] test server::workspace::tests::parses_github_remote_forms ... ok
[INFO] [stdout] test server::watch::tests::watch_rejects_non_directory ... ok
[INFO] [stdout] test server::workspace::tests::invalid_repo_name_rejected ... ok
[INFO] [stdout] test server::workspace::tests::a_failed_first_adoption_writes_nothing_into_the_clients_root ... ok
[INFO] [stdout] test server::workspace::tests::local_default_github_repo_uses_origin_remote ... ok
[INFO] [stdout] test server::watch::tests::bounded_cleanup_preserves_the_original_test_body_panic ... ok
[INFO] [stdout] test server::watch::tests::raw_access_events_never_enter_the_debouncer ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_count_errors_when_no_tags ... ok
[INFO] [stdout] test server::workspace::tests::plain_hook_used_and_no_revs_line_when_no_revs_requested ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_count_fewer_tags_than_requested_uses_all ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_list_dedups_duplicate_revspecs ... ok
[INFO] [stdout] test server::workspace::tests::an_adoption_cannot_displace_a_concurrent_operator_swap ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_list_validates_and_rejects_unknown ... ok
[INFO] [stdout] test server::workspace::tests::select_family_tags_fewer_stable_than_requested_uses_all_stable ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_count_falls_back_to_raw_when_no_version_tags ... ok
[INFO] [stdout] test server::workspace::tests::select_family_tags_picks_dominant_release_family_skipping_prereleases ... ok
[INFO] [stdout] test server::workspace::tests::select_family_tags_prerelease_only_family_falls_back_to_prereleases ... ok
[INFO] [stdout] test server::workspace::tests::select_family_tags_no_version_like_tags_returns_none ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_claims_ownership_permanently ... ok
[INFO] [stdout] test server::watch::tests::callback_fires_on_file_change ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_inside_sandbox_root_activates ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_dotdot_traversal_out_of_sandbox_rejected ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_only_in_local_mode ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_post_activate_fires_against_new_root ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_symlink_out_of_sandbox_rejected ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_updates_active_path ... ok
[INFO] [stdout] test server::workspace::tests::transaction_current_failure_preserves_committed_source_and_product ... ok
[INFO] [stdout] test server::workspace::tests::the_inventory_home_is_fixed_at_the_first_adoption ... ok
[INFO] [stdout] test server::workspace::tests::transaction_slow_a_fast_b_discards_stale_build_and_keeps_responses_coherent ... ok
[INFO] [stdout] test server::workspace::tests::transaction_stale_failure_reports_superseded_not_current_failure ... ok
[INFO] [stdout] test server::workspace::tests::unanchored_boot_binds_nothing_and_creates_nothing ... ok
[INFO] [stdout] test server::workspace::tests::unanchored_refresh_before_adoption_is_a_clean_error ... ok
[INFO] [stdout] test server::workspace::tests::set_root_dir_outside_sandbox_root_rejected_and_active_root_unchanged ... ok
[INFO] [stdout] test server::workspace::tests::update_with_no_active_repo ... ok
[INFO] [stdout] test response_budget::tests::non_text_content_blocks_bypass_the_budget_and_retention ... ok
[INFO] [stdout] test server::workspace::tests::validates_repo_names ... ok
[INFO] [stdout] test server::workspace::tests::with_sandbox_root_rejects_active_root_outside_the_boundary ... ok
[INFO] [stdout] test server::workspace::tests::with_sandbox_root_accepts_root_equal_to_the_boundary ... ok
[INFO] [stdout] test server::workspace::tests::with_sandbox_root_rejects_github_workspaces_and_missing_dirs ... ok
[INFO] [stdout] test server::workspace::tests::revs_activation_after_plain_build_always_rebuilds ... ok
[INFO] [stdout] test server::workspace::tests::plain_activation_after_revs_build_rebuilds_plain ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_count_picks_newest_n_oldest_first_head_last ... ok
[INFO] [stdout] test server::workspace::tests::revs_hook_receives_resolved_revs_and_plain_hook_untouched ... ok
[INFO] [stdout] test server::workspace::tests::revs_requested_without_revs_hook_falls_back_to_plain_no_revs_line ... ok
[INFO] [stdout] test server::workspace::tests::transaction_same_root_plain_vs_revisions_is_generation_ordered ... ok
[INFO] [stdout] test server::workspace::tests::update_after_revs_build_reapplies_stored_revs ... ok
[INFO] [stdout] test response_budget::tests::utf8_escaped_data_fits_measured_result_and_recovers_exactly ... ok
[INFO] [stdout] test server::workspace::tests::resolve_revs_count_skips_prereleases_of_dominant_family ... ok
[INFO] [stdout] test response_budget::tests::nested_values_are_labeled_and_json_pointer_expands_original ... ok
[INFO] [stdout] test server::watch::tests::linux_watcher_distinguishes_access_from_real_mutations ... ok
[INFO] [stdout] test server::server::tests::a_working_session_keeps_its_loaded_skills_and_an_idle_one_loses_them ... ok
[INFO] [stdout] test response_budget::tests::count_eviction_expiry_and_wrong_owner_do_not_rerun_or_leak ... ok
[INFO] [stdout] test response_budget::tests::byte_eviction_and_uncacheable_results_preserve_evidence ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 434 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bundled_skill_gating.rs (/opt/rustwide/target/debug/build/mcp-methods/e5219891a43c492d/out/bundled_skill_gating-e5219891a43c492d)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test optional_bundled_skills_absent_when_their_tools_are_unregistered ... ok
[INFO] [stdout] test suppressed_skill_is_not_injected_into_a_referenced_tool ... ok
[INFO] [stdout] test optional_bundled_skills_register_when_their_tools_are_present ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/client_roots.rs (/opt/rustwide/target/debug/build/mcp-methods/e7b28b0d0d8aa226/out/client_roots-e7b28b0d0d8aa226)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test advertised_root_inside_the_sandbox_is_adopted ... ok
[INFO] [stdout] test adoption_binds_the_first_valid_root_and_skips_the_rest ... ok
[INFO] [stdout] test roots_list_behavior_follows_the_negotiated_initialize_protocol ... ok
[INFO] [stdout] test unanchored_server_adopts_the_clients_root ... ok
[INFO] [stdout] test list_changed_re_adopts_while_the_root_is_adopted ... ok
[INFO] [stdout] test client_that_answers_with_no_roots_leaves_the_server_unanchored ... ok
[INFO] [stdout] test client_that_errors_the_request_leaves_the_server_functional ... ok
[INFO] [stdout] test advertised_root_outside_the_sandbox_is_rejected ... ok
[INFO] [stdout] test client_that_answers_with_a_non_file_uri_leaves_the_server_unanchored ... ok
[INFO] [stdout] test client_that_answers_with_a_nonexistent_path_leaves_the_server_unanchored ... ok
[INFO] [stdout] test adoption_disabled_means_no_roots_list_even_for_a_roots_client ... ok
[INFO] [stdout] test configured_root_is_kept_and_the_advertised_one_ignored ... ok
[INFO] [stdout] test client_without_roots_capability_is_never_sent_roots_list ... ok
[INFO] [stdout] test list_changed_from_a_client_that_did_not_advertise_it_is_ignored ... ok
[INFO] [stdout] test set_root_dir_after_adoption_takes_ownership_and_list_changed_is_ignored ... ok
[INFO] [stdout] test a_late_answer_after_the_timeout_is_not_adopted ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.96s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/deployed_manifests.rs (/opt/rustwide/target/debug/build/mcp-methods/b8dadc2946f3ef31/out/deployed_manifests-b8dadc2946f3ef31)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test loads_norwegian_law_shape ... ok
[INFO] [stdout] test loads_sodir_prospect_shape ... ok
[INFO] [stdout] test loads_open_source_workspace_shape ... ok
[INFO] [stdout] test allowed_top_keys_cover_deployed_manifests ... ok
[INFO] [stdout] test loads_kglite_codebase_shape ... ok
[INFO] [stderr]      Running tests/lazy_skills.rs (/opt/rustwide/target/debug/build/mcp-methods/536c959141591e39/out/lazy_skills-536c959141591e39)
[INFO] [stdout] test loads_petrel_help_shape ... ok
[INFO] [stdout] test new_keys_compose_with_existing_shapes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test footer_composes_with_a_downstream_result_postprocess_hook ... ok
[INFO] [stdout] test skill_tool_serves_active_bodies_and_refuses_the_rest ... ok
[INFO] [stdout] test a_long_tool_call_completes_while_a_rebuild_lands ... ok
[INFO] [stdout] test a_changed_body_re_nudges_the_session_and_an_unchanged_one_does_not ... ok
[INFO] [stdout] test a_tool_handler_rebuilds_the_skill_layer_and_the_next_tools_list_sees_it ... ok
[INFO] [stdout] test the_skill_loader_returns_a_near_limit_body_whole ... ok
[INFO] [stdout] test footer_nudges_once_per_session_and_stays_off_the_wrong_surfaces ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/response_budget.rs (/opt/rustwide/target/debug/build/mcp-methods/6a1b75d43a357ce9/out/response_budget-6a1b75d43a357ce9)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test image_content_bypasses_the_budget_while_text_is_still_previewed ... ok
[INFO] [stdout] test static_tools_errors_and_custom_routes_are_bounded ... ok
[INFO] [stdout] test domain_guidance_and_colliding_names_remain_usable ... ok
[INFO] [stdout] test defaults_overrides_followups_and_session_isolation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.65s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rmcp_public_boundary.rs (/opt/rustwide/target/debug/build/mcp-methods/7c6c5dbca485d8e4/out/rmcp_public_boundary-7c6c5dbca485d8e4)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]    Doc-tests mcp_methods
[INFO] [stdout] test downstream_rmcp_route_is_accepted_by_the_framework_router ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/server/cli.rs - server::cli (line 9) ... ignored
[INFO] [stdout] test src/server/server.rs - server::server::McpServer::reinject_skills (line 1933) ... ignored
[INFO] [stdout] test src/server/server.rs - server::server::McpServer::skill_reloader (line 1983) ... ignored
[INFO] [stdout] test src/server/skills.rs - server::skills (line 7) ... ignored
[INFO] [stdout] test src/server/skills.rs - server::skills::SkillPredicateEvaluator (line 351) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6", kill_on_drop: false }`
[INFO] [stdout] 58ba4e009180c2f553565a1f864c6aa3bb6e3c062a976dcf4e7a392087dc3ee6
