[INFO] cloning repository https://github.com/WendellXY/nodus [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/WendellXY/nodus" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWendellXY%2Fnodus", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWendellXY%2Fnodus'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fdc8f4de805c64502e5c1ccee77ddef88d4bc33e [INFO] testing WendellXY/nodus against 1.95.0 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWendellXY%2Fnodus" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-0-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/WendellXY/nodus [INFO] finished tweaking git repo https://github.com/WendellXY/nodus [INFO] tweaked toml for git repo https://github.com/WendellXY/nodus written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/WendellXY/nodus on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/WendellXY/nodus 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rust-mcp-macros v0.9.0 [INFO] [stderr] Downloaded toml v1.1.2+spec-1.1.0 [INFO] [stderr] Downloaded glob-match v0.2.1 [INFO] [stderr] Downloaded directories v6.0.0 [INFO] [stderr] Downloaded dialoguer v0.12.0 [INFO] [stderr] Downloaded console v0.16.3 [INFO] [stderr] Downloaded clap_complete v4.6.2 [INFO] [stderr] Downloaded mentra-provider v0.2.0 [INFO] [stderr] Downloaded rustls-webpki v0.103.12 [INFO] [stderr] Downloaded rust-mcp-transport v0.9.0 [INFO] [stderr] Downloaded rust-mcp-sdk v0.9.0 [INFO] [stderr] Downloaded serde_yaml_ng v0.10.0 [INFO] [stderr] Downloaded blake3 v1.8.4 [INFO] [stderr] Downloaded mentra v0.6.0 [INFO] [stderr] Downloaded rust-mcp-schema v0.10.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2101503fc8cd34846a24441349f635068706f1ae68403be33014a2cf25ad0a72 [INFO] running `Command { std: "docker" "start" "-a" "2101503fc8cd34846a24441349f635068706f1ae68403be33014a2cf25ad0a72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2101503fc8cd34846a24441349f635068706f1ae68403be33014a2cf25ad0a72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2101503fc8cd34846a24441349f635068706f1ae68403be33014a2cf25ad0a72", kill_on_drop: false }` [INFO] [stdout] 2101503fc8cd34846a24441349f635068706f1ae68403be33014a2cf25ad0a72 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 896a6897e27aeb4a8dafea86226052968f7de561c03bfb16a00c25ccae65fdd3 [INFO] running `Command { std: "docker" "start" "-a" "896a6897e27aeb4a8dafea86226052968f7de561c03bfb16a00c25ccae65fdd3", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling directories v6.0.0 [INFO] [stderr] Compiling inotify v0.11.1 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling notify-types v2.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling glob-match v0.2.1 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling constant_time_eq v0.4.2 [INFO] [stderr] Compiling rayon v1.12.0 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling notify v8.2.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling path-slash v0.2.1 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling blake3 v1.8.4 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling dialoguer v0.12.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio v1.52.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling rustls-webpki v0.103.12 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling clap_complete v4.6.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling rust-mcp-macros v0.9.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling rust-mcp-schema v0.10.0 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-tungstenite v0.28.0 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling hyper-rustls v0.27.9 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling mentra-provider v0.2.0 [INFO] [stderr] Compiling rust-mcp-transport v0.9.0 [INFO] [stderr] Compiling rust-mcp-sdk v0.9.0 [INFO] [stderr] Compiling mentra v0.6.0 [INFO] [stderr] Compiling nodus v0.12.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 13s [INFO] running `Command { std: "docker" "inspect" "896a6897e27aeb4a8dafea86226052968f7de561c03bfb16a00c25ccae65fdd3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "896a6897e27aeb4a8dafea86226052968f7de561c03bfb16a00c25ccae65fdd3", kill_on_drop: false }` [INFO] [stdout] 896a6897e27aeb4a8dafea86226052968f7de561c03bfb16a00c25ccae65fdd3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 890bb7b036c04f8150e7e846caa61ada031fb9f724f6c9c19c4445df701696fb [INFO] running `Command { std: "docker" "start" "-a" "890bb7b036c04f8150e7e846caa61ada031fb9f724f6c9c19c4445df701696fb", kill_on_drop: false }` [INFO] [stderr] Compiling nodus v0.12.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 30.48s [INFO] running `Command { std: "docker" "inspect" "890bb7b036c04f8150e7e846caa61ada031fb9f724f6c9c19c4445df701696fb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "890bb7b036c04f8150e7e846caa61ada031fb9f724f6c9c19c4445df701696fb", kill_on_drop: false }` [INFO] [stdout] 890bb7b036c04f8150e7e846caa61ada031fb9f724f6c9c19c4445df701696fb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 980a723f7a615ab54c37daa654d9065a835901127cea6f0a0e6cbc45e4eb118f [INFO] running `Command { std: "docker" "start" "-a" "980a723f7a615ab54c37daa654d9065a835901127cea6f0a0e6cbc45e4eb118f", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.43s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nodus-ad6dee633147a4fe) [INFO] [stdout] [INFO] [stdout] running 586 tests [INFO] [stdout] test adapters::codex::tests::synthetic_command_skill_round_trips_command_body ... ok [INFO] [stdout] test adapters::opencode::tests::inserts_missing_skill_name_into_frontmatter ... ok [INFO] [stdout] test adapters::copilot::tests::inserts_missing_skill_name_into_frontmatter ... ok [INFO] [stdout] test adapters::opencode::tests::preserves_crlf_when_rewriting_skill_name ... ok [INFO] [stdout] test adapters::output::tests::artifact_kind_support_matrix_matches_supported_adapters ... ok [INFO] [stdout] test adapters::copilot::tests::rewrites_skill_name_to_match_runtime_id ... ok [INFO] [stdout] test adapters::opencode::tests::rewrites_skill_name_to_match_runtime_id ... ok [INFO] [stdout] test adapters::copilot::tests::preserves_crlf_when_rewriting_skill_name ... ok [INFO] [stdout] test adapters::codex::tests::synthetic_command_skill_requires_reserved_prefix ... ok [INFO] [stdout] test adapters::output::tests::codex_http_headers_promote_bearer_env_references ... ok [INFO] [stdout] test adapters::output::tests::gitignore_files_preserve_explicit_runtime_root_gitignore_without_generated_patterns ... ok [INFO] [stdout] test adapters::output::tests::opencode_header_values_convert_env_references ... ok [INFO] [stdout] test adapters::output::tests::gitignore_files_merge_explicit_runtime_root_gitignore_with_generated_patterns ... ok [INFO] [stdout] test adapters::output::tests::managed_nodus_command_uses_plain_binary_name ... ok [INFO] [stdout] test agent_format::tests::restores_source_name_when_runtime_name_was_only_a_collision_rewrite ... ok [INFO] [stdout] test cli::tests::auto_update_checks_only_run_for_interactive_human_output_commands ... ok [INFO] [stdout] test cache::tests::prefers_absolute_xdg_state_home_over_the_home_fallback ... ok [INFO] [stdout] test adapters::output::tests::gitignore_files_merge_existing_runtime_root_gitignore_from_disk ... ok [INFO] [stdout] test cli::tests::completion_help_describes_shell_argument ... ok [INFO] [stdout] test cli::tests::clean_all_preserves_non_cache_store_state ... ok [INFO] [stdout] test cli::tests::clean_help_describes_scope ... ok [INFO] [stdout] test cli::tests::doctor_command_parses_apply_and_compatibility_flags ... ok [INFO] [stdout] test cli::tests::clean_command_requires_lockfile_for_project_scope ... ok [INFO] [stdout] test cli::tests::add_help_leads_with_safe_example_and_next_step ... ok [INFO] [stdout] test cache::tests::ignores_relative_xdg_state_home_values ... ok [INFO] [stdout] test cache::tests::resolves_relative_overrides_from_the_current_directory ... ok [INFO] [stdout] test cli::tests::doctor_command_rejects_invalid_flag_combinations ... ok [INFO] [stdout] test agent_format::tests::parses_and_serializes_codex_agent_toml ... ok [INFO] [stdout] test cli::tests::doctor_help_describes_preview_and_apply_modes ... ok [INFO] [stdout] test cli::tests::info_help_describes_read_only_inspection_flow ... ok [INFO] [stdout] test cli::tests::init_command_emits_creating_and_finished_lines ... ok [INFO] [stdout] test cli::tests::init_command_writes_progress_to_stderr_and_finish_to_stdout ... ok [INFO] [stdout] test cli::tests::doctor_help_describes_when_to_run_it ... ok [INFO] [stdout] test cli::tests::init_dry_run_previews_without_writing ... ok [INFO] [stdout] test cli::tests::info_command_writes_metadata_to_stdout ... ok [INFO] [stdout] test cli::tests::info_command_emits_package_metadata_lines ... ok [INFO] [stdout] test cli::tests::info_command_emits_json_without_status_lines ... ok [INFO] [stdout] test cli::tests::list_command_labels_dev_dependencies ... ok [INFO] [stdout] test cli::tests::list_command_writes_empty_state_note_to_stderr ... ok [INFO] [stdout] test cli::tests::list_command_emits_human_readable_dependencies ... ok [INFO] [stdout] test cli::tests::list_command_marks_disabled_dependencies ... ok [INFO] [stdout] test cli::tests::list_command_writes_results_to_stdout ... ok [INFO] [stdout] test cli::tests::list_json_command_writes_only_json_to_stdout ... ok [INFO] [stdout] test cli::tests::mcp_serve_help_describes_stdio_transport ... ok [INFO] [stdout] test cli::tests::doctor_command_emits_json_without_status_lines ... ok [INFO] [stdout] test cli::tests::mcp_status_command_parses_json_flag ... ok [INFO] [stdout] test cli::tests::doctor_command_emits_checking_and_finished_lines ... ok [INFO] [stdout] test cli::tests::doctor_command_maps_preview_apply_and_force_modes ... ok [INFO] [stdout] test cli::tests::members_command_parses_subcommands_and_flags ... ok [INFO] [stdout] test cli::tests::members_help_describes_child_package_selection ... ok [INFO] [stdout] test cli::tests::mcp_status_emits_json_summary ... ok [INFO] [stdout] test cli::tests::mcp_status_reports_missing_and_misconfigured_configs ... ok [INFO] [stdout] test cli::tests::members_mutating_subcommand_help_mentions_dry_run_and_clearing_selection ... ok [INFO] [stdout] test cli::tests::mutating_subcommand_help_mentions_dry_run ... ok [INFO] [stdout] test cli::tests::clean_command_removes_project_scoped_cache_entries_only ... ok [INFO] [stdout] test cli::tests::parses_accept_all_dependencies_flag ... ok [INFO] [stdout] test cli::tests::parses_add_branch_and_revision_flags ... ok [INFO] [stdout] test cli::tests::parses_add_dev_flag ... ok [INFO] [stdout] test cli::tests::parses_add_version_selector ... ok [INFO] [stdout] test cli::tests::parses_clean_subcommand_and_flags ... ok [INFO] [stdout] test cli::tests::parses_completion_shell_argument ... ok [INFO] [stdout] test cli::tests::parses_dry_run_flags_for_mutating_commands ... ok [INFO] [stdout] test cli::tests::parses_global_add_and_remove_flags ... ok [INFO] [stdout] test cli::tests::parses_info_subcommand ... ok [INFO] [stdout] test cli::tests::parses_json_flags_for_read_only_commands ... ok [INFO] [stdout] test cli::tests::parses_list_subcommand ... ok [INFO] [stdout] test cli::tests::parses_multiple_relay_targets ... ok [INFO] [stdout] test cli::tests::parses_outdated_subcommand ... ok [INFO] [stdout] test cli::tests::parses_relay_create_missing_flag ... ok [INFO] [stdout] test cli::tests::parses_relay_subcommand ... ok [INFO] [stdout] test cli::tests::parses_relay_via_aliases ... ok [INFO] [stdout] test cli::tests::parses_remove_subcommand ... ok [INFO] [stdout] test cli::tests::parses_repeatable_add_adapter_flags ... ok [INFO] [stdout] test cli::tests::parses_repeatable_add_component_flags ... ok [INFO] [stdout] test cli::tests::parses_review_subcommand ... ok [INFO] [stdout] test cli::tests::parses_sync_force_flag ... ok [INFO] [stdout] test cli::tests::parses_sync_frozen_flag ... ok [INFO] [stdout] test cli::tests::parses_sync_on_launch_flags ... ok [INFO] [stdout] test cli::tests::parses_sync_strict_flag ... ok [INFO] [stdout] test cli::tests::parses_update_subcommand ... ok [INFO] [stdout] test cli::tests::parses_upgrade_check_flag_and_self_update_alias ... ok [INFO] [stdout] test cli::tests::list_command_emits_json_with_locked_metadata ... ok [INFO] [stdout] test cli::tests::clean_command_dry_run_previews_cache_removals_without_deleting ... ok [INFO] [stdout] test cli::tests::rejects_relay_watch_with_dry_run ... ok [INFO] [stdout] test cli::tests::rejects_sync_locked_with_frozen ... ok [INFO] [stdout] test cli::tests::rejects_uninstall_subcommand ... ok [INFO] [stdout] test cli::tests::parses_upgrade_subcommand ... ok [INFO] [stdout] test cli::tests::read_only_help_mentions_json ... ok [INFO] [stdout] test cli::tests::add_dry_run_previews_without_writing_project_files ... ok [INFO] [stdout] test cli::tests::add_command_emits_resolving_and_adding_lines ... ok [INFO] [stdout] test cli::tests::relay_rejects_repo_path_for_multiple_dependencies ... ok [INFO] [stdout] test cli::tests::remove_help_describes_scope_and_next_step ... ok [INFO] [stdout] test cli::tests::review_help_describes_arguments ... ok [INFO] [stdout] test cli::tests::root_help_leads_with_guided_workflows ... ok [INFO] [stdout] test cli::tests::sync_auto_registers_nodus_mcp_server_in_mcp_json ... ok [INFO] [stdout] test cli::tests::add_dry_run_previews_dependency_members_and_config ... ok [INFO] [stdout] test cli::tests::sync_command_emits_statuses_and_notes ... ok [INFO] [stdout] test cli::tests::sync_does_not_persist_launch_hook_by_default ... ok [INFO] [stdout] test cli::tests::sync_dry_run_previews_without_writing_project_files ... ok [INFO] [stdout] test cli::tests::sync_help_describes_force ... ok [INFO] [stdout] test cli::tests::sync_help_explains_when_to_use_sync_and_what_to_run_next ... ok [INFO] [stdout] test cli::tests::info_command_renders_version_requirement_for_semver_dependencies ... ok [INFO] [stdout] test cli::tests::add_does_not_persist_launch_hook_by_default ... ok [INFO] [stdout] test cli::tests::list_command_emits_version_requested_ref_for_semver_dependencies ... ok [INFO] [stdout] test cli::tests::add_dry_run_warns_and_disables_invalid_workspace_members ... ok [INFO] [stdout] test cli::tests::update_help_distinguishes_itself_from_sync ... ok [INFO] [stdout] test cli::tests::members_command_rejects_unknown_workspace_member_before_mutating_manifest ... ok [INFO] [stdout] test cli::tests::update_help_explains_when_to_use_update_and_what_to_run_next ... ok [INFO] [stdout] test git::tests::computes_shared_repository_path_from_the_normalized_url ... ok [INFO] [stdout] test cli::tests::members_enable_dry_run_previews_workspace_selection_without_writing ... ok [INFO] [stdout] test git::tests::computes_shared_checkout_path_from_the_normalized_url_and_revision ... ok [INFO] [stdout] test git::tests::extracts_github_slugs_from_https_urls ... ok [INFO] [stdout] test git::tests::normalizes_repo_names_into_aliases ... ok [INFO] [stdout] test git::tests::matches_equivalent_local_git_paths ... ok [INFO] [stdout] test cli::tests::outdated_command_emits_json_without_status_lines ... ok [INFO] [stdout] test git::tests::expands_github_shortcuts ... ok [INFO] [stdout] test git::tests::picks_latest_compatible_semver_tag ... ok [INFO] [stdout] test cli::tests::relay_dry_run_does_not_persist_local_config_or_repo_edits ... ok [INFO] [stdout] test git::tests::picks_latest_tag_by_version_sort ... ok [INFO] [stdout] test git::tests::recreates_invalid_shared_repository_mirrors ... ok [INFO] [stdout] test git::tests::resolves_dependency_alias_from_exact_name ... ok [INFO] [stdout] test git::tests::resolves_dependency_alias_from_repository_reference ... ok [INFO] [stdout] test git::tests::short_hash_is_deterministic ... ok [INFO] [stdout] test cli::tests::members_list_and_enable_update_workspace_dependency_selection ... ok [INFO] [stdout] test cli::tests::relay_dry_run_previews_state_only_local_config_changes ... ok [INFO] [stdout] test info::tests::info_lists_managed_exports ... ok [INFO] [stdout] test info::tests::info_lists_managed_exports_for_export_only_package ... ok [INFO] [stdout] test git::tests::short_hash_produces_eight_hex_chars ... ok [INFO] [stdout] test info::tests::info_marks_disabled_direct_dependencies ... ok [INFO] [stdout] test info::tests::info_lists_mcp_servers ... ok [INFO] [stdout] test info::tests::info_reads_a_direct_dependency_alias_from_the_root_manifest ... ok [INFO] [stdout] test cli::tests::remove_dry_run_keeps_manifest_and_lockfile_unchanged ... ok [INFO] [stdout] test info::tests::info_reads_a_local_package_directory ... ok [INFO] [stdout] test info::tests::info_reports_hook_adapter_support_matrix ... ok [INFO] [stdout] test info::tests::info_shows_dev_dependencies_for_local_package_inspection ... ok [INFO] [stdout] test info::tests::info_uses_color_when_forced ... ok [INFO] [stdout] test install_paths::tests::global_scope_uses_store_root_for_config_and_home_for_runtime ... ok [INFO] [stdout] test install_paths::tests::project_scope_reuses_the_same_root_for_all_paths ... ok [INFO] [stdout] test local_config::tests::relayed_file_state_accepts_legacy_source_sha256_field ... ok [INFO] [stdout] test local_config::tests::relayed_file_state_uses_source_hash_field ... ok [INFO] [stdout] test local_config::tests::round_trips_local_config_and_gitignore ... ok [INFO] [stdout] test local_config::tests::serializes_relay_repo_paths_with_forward_slashes ... ok [INFO] [stdout] test lockfile::tests::expands_codex_skill_roots_to_include_synthetic_command_skills ... ok [INFO] [stdout] test lockfile::tests::expands_compressed_runtime_artifact_roots ... ok [INFO] [stdout] test lockfile::tests::expands_logical_file_outputs_to_runtime_files ... ok [INFO] [stdout] test lockfile::tests::expands_logical_skill_roots_to_runtime_directories ... ok [INFO] [stdout] test lockfile::tests::keeps_direct_github_agent_files_exact_in_current_lockfiles ... ok [INFO] [stdout] test lockfile::tests::managed_mcp_server_names_include_alias_prefixes ... ok [INFO] [stdout] test lockfile::tests::managed_paths_for_sync_expand_legacy_github_agent_roots ... ok [INFO] [stdout] test lockfile::tests::managed_paths_for_sync_include_legacy_direct_paths ... ok [INFO] [stdout] test lockfile::tests::read_for_sync_accepts_legacy_lockfile_versions ... ok [INFO] [stdout] test lockfile::tests::rejects_unsupported_lockfile_versions ... ok [INFO] [stdout] test lockfile::tests::round_trips_lockfile_as_toml ... ok [INFO] [stdout] test info::tests::info_shows_disabled_workspace_members_when_dependency_members_are_omitted ... ok [INFO] [stdout] test manifest::tests::accepts_all_supported_codex_workspace_policy_literals ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_claude_marketplace_wrapper ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_codex_marketplace_wrapper ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_manifest_declared_claude_plugin_hooks ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_default_claude_plugin_hooks ... ok [INFO] [stdout] test info::tests::info_shows_workspace_members_for_workspace_root ... ok [INFO] [stdout] test cli::tests::members_enable_and_disable_manage_wrapper_child_packages ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_mcp_servers ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_modern_claude_plugin_metadata_and_flat_mcp_servers ... ok [INFO] [stdout] test cli::tests::sync_recreates_cache_after_clean_command ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_nested_dependencies ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_managed_exports ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_hooks ... ok [INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_structured_claude_marketplace_sources ... ok [INFO] [stdout] test manifest::tests::accepts_hooks_in_dependency_manifest ... ok [INFO] [stdout] test manifest::tests::accepts_git_dependency_version_requirement_without_explicit_ref ... ok [INFO] [stdout] test manifest::tests::accepts_root_project_with_only_dependencies ... ok [INFO] [stdout] test manifest::tests::accepts_root_project_with_only_dev_dependencies ... ok [INFO] [stdout] test cli::tests::members_set_empty_clears_workspace_dependency_selection ... ok [INFO] [stdout] test manifest::tests::accepts_skill_frontmatter_without_name_by_falling_back_to_folder_name ... ok [INFO] [stdout] test manifest::tests::accepts_marketplace_plugin_that_points_at_root_claude_plugin_metadata ... ok [INFO] [stdout] test manifest::tests::active_dependency_entries_skip_disabled_dependencies ... ok [INFO] [stdout] test manifest::tests::accepts_unquoted_description_with_colon ... ok [INFO] [stdout] test manifest::tests::accepts_marketplace_with_hook_only_claude_plugin_source ... ok [INFO] [stdout] test manifest::tests::accepts_workspace_dependency_wrapper ... ok [INFO] [stdout] test manifest::tests::allows_identical_mcp_servers_from_claude_and_codex_plugin_metadata ... ok [INFO] [stdout] test manifest::tests::accepts_workspace_root_without_discovered_root_assets ... ok [INFO] [stdout] test manifest::tests::discovers_agents_rules_and_commands ... ok [INFO] [stdout] test manifest::tests::discovers_agent_variants_with_future_qualifiers ... ok [INFO] [stdout] test manifest::tests::discovers_modern_claude_plugin_extra_component_paths_outside_standard_roots ... ok [INFO] [stdout] test manifest::tests::discovers_object_mapped_modern_claude_plugin_commands_from_source_paths ... ok [INFO] [stdout] test manifest::tests::discovers_nested_rules_with_stable_ids ... ok [INFO] [stdout] test manifest::tests::discovers_nested_skills_under_category_directories ... ok [INFO] [stdout] test manifest::tests::discovers_artifacts_from_configured_content_root ... ok [INFO] [stdout] test manifest::tests::deduplicates_standard_roots_referenced_by_claude_plugin_metadata ... ok [INFO] [stdout] test manifest::tests::discovers_placeholder_skill_directories_inside_package_root ... ok [INFO] [stdout] test manifest::tests::does_not_warn_for_supported_content_root_config ... ok [INFO] [stdout] test manifest::tests::does_not_warn_for_supported_launch_hook_config ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_plugin_source_that_is_not_a_directory ... ok [INFO] [stdout] test manifest::tests::discovers_symlinked_skill_directories_inside_package_root ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_plugin_source_that_is_not_a_nodus_package ... ok [INFO] [stdout] test manifest::tests::ignores_codex_marketplace_plugin_source_that_points_at_package_root ... ok [INFO] [stdout] test manifest::tests::ignores_non_semver_claude_plugin_version_from_json ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_plugins_with_duplicate_aliases ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_with_escaping_source_path ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_with_mcp_server_path_indirection ... ok [INFO] [stdout] test manifest::tests::ignores_marketplace_with_missing_source_directory ... ok [INFO] [stdout] test manifest::tests::imports_firebase_style_marketplace_url_mcp_servers ... ok [INFO] [stdout] test manifest::tests::ignores_non_semver_codex_plugin_version_in_metadata ... ok [INFO] [stdout] test manifest::tests::ignores_readme_and_dotfiles_in_discovery_directories ... ok [INFO] [stdout] test manifest::tests::imports_modern_claude_plugin_manifest_inline_mcp_servers ... ok [INFO] [stdout] test manifest::tests::imports_firebase_style_marketplace_mcp_servers ... ok [INFO] [stdout] test manifest::tests::imports_modern_claude_plugin_manifest_mcp_servers_from_relative_json_path ... ok [INFO] [stdout] test manifest::tests::imports_modern_claude_plugin_wrapped_mcp_servers_and_normalizes_plugin_root_cwd ... ok [INFO] [stdout] test manifest::tests::loads_root_manifest_claude_session_start_sources ... ok [INFO] [stdout] test manifest::tests::ignores_non_semver_modern_claude_plugin_version_in_metadata ... ok [INFO] [stdout] test manifest::tests::loads_root_manifest_hooks ... ok [INFO] [stdout] test manifest::tests::loads_root_manifest_claude_native_lifecycle_hooks ... ok [INFO] [stdout] test manifest::tests::imports_all_marketplace_plugins_in_sorted_alias_order ... ok [INFO] [stdout] test manifest::tests::managed_exports_do_not_emit_unsupported_field_warnings ... ok [INFO] [stdout] test manifest::tests::lowers_legacy_launch_hook_into_effective_hooks ... ok [INFO] [stdout] test manifest::tests::loads_root_manifest_without_required_metadata ... ok [INFO] [stdout] test manifest::tests::init_scaffolds_a_minimal_manifest_and_example_skill ... ok [INFO] [stdout] test manifest::tests::parses_dev_dependency_tables ... ok [INFO] [stdout] test manifest::tests::parses_managed_dependency_tables ... ok [INFO] [stdout] test manifest::tests::normalizes_claude_plugin_root_arg_paths_in_mcp_config ... ok [INFO] [stdout] test manifest::tests::parses_managed_export_tables ... ok [INFO] [stdout] test manifest::tests::parses_mcp_servers ... ok [INFO] [stdout] test manifest::tests::parses_url_backed_mcp_servers ... ok [INFO] [stdout] test manifest::tests::prefers_standard_layout_over_marketplace_fallback ... ok [INFO] [stdout] test manifest::tests::reads_codex_plugin_version_and_mcp_servers_from_json ... ok [INFO] [stdout] test manifest::tests::recognizes_canonical_sync_on_launch_hook ... ok [INFO] [stdout] test manifest::tests::rejects_conflicting_mcp_servers_from_claude_and_codex_plugin_metadata ... ok [INFO] [stdout] test git::tests::resolves_default_branch_when_repo_has_no_tags ... ok [INFO] [stdout] test manifest::tests::reads_claude_plugin_version_from_json ... ok [INFO] [stdout] test cli::tests::update_command_emits_updating_and_finished_lines ... ok [INFO] [stdout] test manifest::tests::rejects_dependencies_with_multiple_git_sources ... ok [INFO] [stdout] test manifest::tests::rejects_content_roots_with_parent_segments ... ok [INFO] [stdout] test manifest::tests::rejects_dependency_managed_paths_with_parent_segments ... ok [INFO] [stdout] test manifest::tests::rejects_disabled_launch_hook_config ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_adapter_selection ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_aliases_across_dependency_sections ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_dependency_components ... ok [INFO] [stdout] test git::tests::recovers_symlinked_directories_when_core_symlinks_is_disabled ... ok [INFO] [stdout] test manifest::tests::rejects_dependency_repo_without_supported_directories ... ok [INFO] [stdout] test manifest::tests::rejects_empty_adapter_selection ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_dependency_managed_pairs ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_managed_exports ... ok [INFO] [stdout] test manifest::tests::rejects_empty_dependency_managed_paths ... ok [INFO] [stdout] test manifest::tests::rejects_empty_mcp_server_command ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_content_roots_after_normalization ... ok [INFO] [stdout] test cli::tests::sync_dry_run_locked_and_frozen_modes_leave_state_unchanged ... ok [INFO] [stdout] test manifest::tests::rejects_invalid_git_dependency_without_tag ... ok [INFO] [stdout] test manifest::tests::rejects_duplicate_artifact_ids_across_content_roots ... ok [INFO] [stdout] test manifest::tests::rejects_empty_dependency_components ... ok [INFO] [stdout] test manifest::tests::rejects_invalid_github_dependency_reference ... ok [INFO] [stdout] test manifest::tests::rejects_git_dependency_version_with_tag ... ok [INFO] [stdout] test manifest::tests::rejects_marketplace_with_invalid_json ... ok [INFO] [stdout] test manifest::tests::rejects_invalid_skill_frontmatter ... ok [INFO] [stdout] test manifest::tests::rejects_invalid_plain_toml_agent_missing_required_codex_fields ... ok [INFO] [stdout] test manifest::tests::rejects_managed_exports_with_parent_segments ... ok [INFO] [stdout] test manifest::tests::rejects_missing_content_root_directory ... ok [INFO] [stdout] test manifest::tests::rejects_marketplace_with_plugin_root_interpolation_in_mcp_server ... ok [INFO] [stdout] test manifest::tests::rejects_marketplace_without_plugins ... ok [INFO] [stdout] test manifest::tests::rejects_unknown_adapter_selection ... ok [INFO] [stdout] test manifest::tests::overlays_modern_claude_plugin_manifest_mcp_servers_in_declaration_order ... ok [INFO] [stdout] test manifest::tests::marketplace_sources_are_resolved_from_repo_root ... ok [INFO] [stdout] test manifest::tests::rejects_skills_using_reserved_codex_command_prefix ... ok [INFO] [stdout] test manifest::tests::rejects_workspace_member_with_invalid_codex_authentication_policy ... ok [INFO] [stdout] test manifest::tests::rejects_url_backed_mcp_server_with_stdio_fields ... ok [INFO] [stdout] test manifest::tests::rejects_unknown_dependency_component ... ok [INFO] [stdout] test manifest::tests::rejects_mcp_server_with_both_command_and_url ... ok [INFO] [stdout] test manifest::tests::marketplace_fallback_still_runs_with_only_dev_dependencies ... ok [INFO] [stdout] test manifest::tests::rejects_matcher_for_claude_native_lifecycle_hooks ... ok [INFO] [stdout] test manifest::tests::parses_dependency_components ... ok [INFO] [stdout] test manifest::tests::rejects_workspace_member_with_invalid_codex_installation_policy ... ok [INFO] [stdout] test manifest::tests::rejects_workspace_root_with_unmatched_member_path ... ok [INFO] [stdout] test manifest::tests::serializes_claude_plugin_hooks ... ok [INFO] [stdout] test manifest::tests::serializes_content_roots_and_publish_root ... ok [INFO] [stdout] test manifest::tests::serializes_claude_session_start_sources ... ok [INFO] [stdout] test manifest::tests::serializes_launch_hooks ... ok [INFO] [stdout] test manifest::tests::serializes_adapters_in_stable_sorted_order ... ok [INFO] [stdout] test manifest::tests::serializes_managed_dependencies_as_expanded_tables ... ok [INFO] [stdout] test manifest::tests::serializes_claude_native_lifecycle_hooks ... ok [INFO] [stdout] test manifest::tests::serializes_dev_dependencies ... ok [INFO] [stdout] test manifest::tests::serializes_managed_exports_as_expanded_tables ... ok [INFO] [stdout] test manifest::tests::serializes_disabled_dependencies ... ok [INFO] [stdout] test manifest::tests::serializes_hooks ... ok [INFO] [stdout] test manifest::tests::serializes_mcp_servers ... ok [INFO] [stdout] test manifest::tests::serializes_url_backed_disabled_mcp_servers ... ok [INFO] [stdout] test manifest::tests::serializes_workspace_and_dependency_members ... ok [INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_command_points_to_directory ... ok [INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_manifest_mcp_servers_use_unsupported_paths ... ok [INFO] [stdout] test manifest::tests::serializes_dependencies_as_inline_tables ... ok [INFO] [stdout] test mcp::status::tests::reports_plain_nodus_project_json_entry_as_configured ... ok [INFO] [stdout] test outdated::tests::notes_when_no_direct_dependencies_are_configured ... ok [INFO] [stdout] test manifest::tests::rejects_workspace_root_with_discovered_assets ... ok [INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_command_uses_inline_content ... ok [INFO] [stdout] test mcp::status::tests::reports_configured_project_json_entry ... ok [INFO] [stdout] test mcp::status::tests::reports_misconfigured_opencode_entry ... ok [INFO] [stdout] test manifest::tests::skips_missing_claude_marketplace_local_plugin_sources_with_warning ... ok [INFO] [stdout] test manifest::tests::skips_marketplace_with_docs_only_local_plugin_source ... ok [INFO] [stdout] test manifest::tests::workspace_root_ignores_invalid_member_and_warns ... ok [INFO] [stdout] test outdated::tests::ignores_disabled_dependencies ... ok [INFO] [stdout] test info::tests::info_reads_a_git_package_reference ... ok [INFO] [stdout] test git::tests::recreates_missing_registered_shared_checkouts ... ok [INFO] [stdout] test cli::tests::update_dry_run_keeps_manifest_and_lockfile_unchanged ... ok [INFO] [stdout] test git::tests::refreshes_default_branch_when_the_remote_head_changes ... ok [INFO] [stdout] test outdated::tests::reports_revision_pins_as_current ... ok [INFO] [stdout] test outdated::tests::reports_semver_compatible_updates_and_major_availability ... ok [INFO] [stdout] test outdated::tests::json_reports_include_dev_dependency_kind ... ok [INFO] [stdout] test outdated::tests::reports_newer_tags_for_direct_dependencies ... ok [INFO] [stdout] test outdated::tests::reports_when_all_tag_dependencies_are_current ... ok [INFO] [stdout] test cli::tests::relay_supports_multiple_dependencies_in_one_command ... ok [INFO] [stdout] test relay::runtime::tests::missing_lockfile_does_not_block_sync_with_relay_links ... ok [INFO] [stdout] test relay::runtime::tests::pending_relay_edits_block_sync_update_and_remove ... ok [INFO] [stdout] test relay::runtime::tests::pending_relay_edits_for_dev_dependencies_block_sync ... ok [INFO] [stdout] test outdated::tests::reports_advanced_branch_heads_against_locked_state ... ok [INFO] [stdout] test relay::runtime::tests::missing_managed_variants_do_not_block_sync_with_relay ... ok [INFO] [stdout] test relay::runtime::tests::relay_rejects_path_dependencies ... ok [INFO] [stdout] test relay::runtime::tests::relay_create_missing_copies_new_codex_command_skill_into_source ... ok [INFO] [stdout] test relay::runtime::tests::adapter_expansion_does_not_block_sync_with_existing_relay ... ok [INFO] [stdout] test relay::runtime::tests::relay_allows_successive_managed_edits_after_successful_relay ... ok [INFO] [stdout] test relay::runtime::tests::relay_create_missing_copies_new_codex_agent_into_toml_source ... ok [INFO] [stdout] test git::tests::recovers_missing_submodule_skill_targets ... ok [INFO] [stdout] test relay::runtime::tests::relay_create_missing_copies_new_copilot_skill_and_agent_into_source ... ok [INFO] [stdout] test relay::runtime::tests::relay_create_missing_is_opt_in ... ok [INFO] [stdout] test relay::runtime::tests::relay_rejects_direct_managed_double_edits ... ok [INFO] [stdout] test relay::runtime::tests::relay_requires_a_persisted_or_explicit_repo_path ... ok [INFO] [stdout] test relay::runtime::tests::relay_persists_via_hint ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_codex_agent_edits_to_toml_source ... ok [INFO] [stdout] test relay::runtime::tests::restore_opencode_skill_name_preserves_crlf ... ok [INFO] [stdout] test relay::runtime::tests::restore_skill_name_falls_back_to_artifact_id_when_baseline_omits_name ... ok [INFO] [stdout] test relay::runtime::tests::relay_rejects_when_managed_variants_disagree ... ok [INFO] [stdout] test relay::runtime::watch::tests::caps_poll_interval_to_leave_time_before_deadline ... ok [INFO] [stdout] test relay::runtime::watch::tests::keeps_configured_poll_interval_without_deadline ... ok [INFO] [stdout] test relay::runtime::watch::tests::keeps_shorter_poll_interval_when_it_already_fits_before_deadline ... ok [INFO] [stdout] test report::tests::renders_colored_output_when_color_is_forced ... ok [INFO] [stdout] test report::tests::renders_error_chains ... ok [INFO] [stdout] test report::tests::renders_finish_and_note_output ... ok [INFO] [stdout] test report::tests::renders_plain_lines_without_prefixes ... ok [INFO] [stdout] test report::tests::renders_plain_status_output_when_color_is_disabled ... ok [INFO] [stdout] test report::tests::routes_results_and_diagnostics_to_different_writers ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_direct_managed_file_and_directory_edits ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_codex_agent_edits_to_markdown_source ... ok [INFO] [stdout] test relay::runtime::tests::relay_rejects_manual_linked_edits_after_successful_relay ... ok [INFO] [stdout] test relay::runtime::tests::relay_batch_persists_successful_job_state_before_later_failure ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_codex_command_skill_edits_to_source ... ok [INFO] [stdout] test relay::runtime::tests::relay_ignores_stale_file_state_after_dependency_digest_changes ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_copilot_skill_and_agent_edits ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_new_files_inside_package_managed_export_directory ... ok [INFO] [stdout] test relay::runtime::tests::relay_batch_supports_same_repo_disjoint_write_sets ... ok [INFO] [stdout] test relay::runtime::tests::relay_writes_back_edits_for_all_adapters_and_preserves_opencode_name ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_claude_marketplace_wrapper_with_hook_only_plugin_sources ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_all_workspace_members_when_requested ... ok [INFO] [stdout] test relay::runtime::tests::relay_batch_rejects_overlapping_write_sets ... ok [INFO] [stdout] test relay::runtime::tests::relay_watch_syncs_multiple_follow_up_edits_to_same_file ... ok [INFO] [stdout] test relay::runtime::tests::relay_watch_syncs_follow_up_managed_edits ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_claude_marketplace_wrapper_with_missing_local_plugin_sources ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_claude_marketplace_wrapper_with_docs_only_local_plugin_sources ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_codex_marketplace_wrapper_and_syncs_plugin_contents ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_claude_marketplace_wrapper_and_syncs_plugin_contents ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_manifest_only_hook_package_and_syncs_claude_settings ... ok [INFO] [stdout] test relay::runtime::tests::stale_lockfile_does_not_block_sync_relay_preflight_without_pending_edits ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_modern_claude_plugin_extra_component_paths_and_syncs_contents ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_marketplace_plugin_that_points_at_root_claude_plugin_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_leaves_multi_marketplace_plugins_disabled_by_default ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_leaves_multi_workspace_members_disabled_by_default ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_modern_claude_mcp_only_package_and_syncs_mcp_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_repo_with_nested_skill_directories ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_rejects_repo_without_supported_directories ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_auto_enables_single_workspace_member ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_clones_repo_and_updates_manifest ... ok [INFO] [stdout] test resolver::runtime::tests::consumed_packages_do_not_export_dev_dependencies ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_normalizes_claude_plugin_root_arg_paths_in_mcp_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_accepts_claude_plugin_hook_compat_after_first_sync ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_pins_an_explicit_revision ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_accepts_legacy_detected_adapter_roots_without_manifest_config ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_blocks_invalid_mcp_json_without_lockfile_when_ownership_is_ambiguous ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_syncs_path_dependencies_inside_manifest_only_wrapper_repo ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_manifest_only_wrapper_repo_and_syncs_transitive_git_plugins ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_check_mode_keeps_missing_managed_file_as_unfixed_finding ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_check_mode_reports_read_only_status ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_detects_lockfile_drift ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_detects_lockfile_drift_when_only_components_change ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_all_claude_marketplace_remote_sources_and_syncs_contents ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_managed_file_under_symlinked_parent_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_detects_missing_file_inside_managed_skill_directory ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_overlays_modern_claude_plugin_manifest_mcp_servers_and_syncs_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_extra_empty_subdir_in_managed_directory_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_tracks_an_explicit_branch ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_symlinked_managed_file_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_unmanaged_collision_still_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_partial_multi_file_managed_directory_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_recovers_exact_match_package_export_directory_after_lockfile_loss ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_rejects_invalid_managed_mcp_json ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_repairs_invalid_managed_claude_settings_when_it_owns_the_file ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_recovers_exact_match_package_export_file_after_lockfile_loss ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_check_mode_reports_risky_cleanup_without_deleting_anything ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_repairs_invalid_managed_mcp_json_when_it_owns_the_file ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_repairs_invalid_managed_codex_config_when_it_owns_the_file ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_skips_invalid_workspace_members ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_repairs_invalid_managed_opencode_config_when_it_owns_the_file ... ok [INFO] [stdout] test resolver::runtime::tests::existing_lockfile_resolution_accepts_lockfile_drift_for_baseline_checks ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_force_mode_applies_risky_cleanup_without_prompt ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_uses_latest_tag_when_not_provided ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_writes_marketplace_version_alongside_default_branch ... ok [INFO] [stdout] test resolver::runtime::tests::prune_empty_parent_dirs_stops_at_github_root ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_accepts_exact_file_in_mixed_runtime_directory ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_accepts_exact_package_export_directories ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_rejects_candidates_under_symlinked_parents ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_accepts_exact_single_file_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_rejects_partial_directory_matches ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_requires_existing_matching_path_state ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_rejects_extra_empty_subdirectories ... ok [INFO] [stdout] test resolver::runtime::tests::recover_runtime_owned_paths_from_disk_rejects_symlinked_candidates ... ok [INFO] [stdout] test resolver::runtime::tests::remove_dependency_rejects_unknown_package ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_uses_default_branch_when_repo_has_no_tags ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_repairs_missing_file_inside_managed_skill_directory ... ok [INFO] [stdout] test resolver::runtime::tests::resolves_local_path_dependencies_with_discovery ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_writes_selected_components_to_manifest ... ok [INFO] [stdout] test resolver::runtime::tests::root_manifest_can_be_missing ... ok [INFO] [stdout] test resolver::runtime::tests::resync_does_not_remove_and_recreate_unchanged_managed_skill_directories ... ok [INFO] [stdout] test resolver::runtime::tests::root_resolution_includes_dev_dependencies ... ok [INFO] [stdout] test resolver::runtime::tests::resolve_workspace_root_includes_all_members ... ok [INFO] [stdout] test resolver::runtime::tests::resolves_local_path_dependencies_with_configured_content_roots ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_recovers_exact_match_workspace_marketplace_after_lockfile_loss ... ok [INFO] [stdout] test resolver::runtime::tests::sync_can_adopt_unmanaged_collision_on_direct_managed_target ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_workspace_marketplace_collision_blocks_repair ... ok [INFO] [stdout] test resolver::runtime::tests::sync_can_cancel_after_unmanaged_collision_prompt ... ok [INFO] [stdout] test resolver::runtime::tests::custom_cache_root_routes_shared_repositories_into_the_override_directory ... ok [INFO] [stdout] test resolver::runtime::tests::sync_adopts_exact_unmanaged_runtime_skill_output ... ok [INFO] [stdout] test resolver::runtime::tests::sync_deduplicates_named_hook_declared_by_both_root_and_dependency ... ok [INFO] [stdout] test resolver::runtime::tests::sync_detects_existing_codex_root_and_persists_only_codex ... ok [INFO] [stdout] test resolver::runtime::tests::sync_deduplicates_startup_sync_hook_across_root_and_dependency_packages ... ok [INFO] [stdout] test resolver::runtime::tests::sync_detects_multiple_adapter_roots_and_persists_them ... ok [INFO] [stdout] test resolver::runtime::tests::sync_does_not_emit_claude_plugin_hook_compat_for_non_claude_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::sync_dry_run_force_previews_without_overwriting_unmanaged_files ... ok [INFO] [stdout] test resolver::runtime::tests::sync_does_not_publish_root_assets_by_default ... ok [INFO] [stdout] test resolver::runtime::tests::sync_can_remove_managed_mapping_after_unmanaged_collision ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_native_lifecycle_hooks_without_leaking_to_other_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::global_add_rejects_sync_on_launch ... ok [INFO] [stdout] test resolver::runtime::tests::sync_can_cancel_unmanaged_runtime_command_output_collision ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_clear_and_compact_session_start_sources ... ok [INFO] [stdout] test resolver::runtime::tests::global_add_requires_supported_detected_adapters_when_none_are_explicit ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_command_compatibility_skills_for_command_components ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_agent_toml_from_markdown_fallback ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_plugin_command_hooks_from_manifest_declared_hook_sources ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_config_toml_from_dependency_manifests ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_mcp_json_from_dependency_manifests ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_explicit_pre_tool_hooks_for_supported_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_user_prompt_submit_hook ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_plugin_command_hooks_from_dependency_packages ... ok [INFO] [stdout] test resolver::runtime::tests::sync_can_adopt_unmanaged_runtime_command_output ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_opencode_json_from_dependency_manifests ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_permission_request_hook ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_url_backed_mcp_servers ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_startup_sync_files_for_supported_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::sync_filters_dependency_outputs_by_selected_components ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_marketplace_for_only_workspace_members_with_codex_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::sync_force_does_not_bypass_locked_stale_lockfile_checks ... ok [INFO] [stdout] test resolver::runtime::tests::sync_frozen_requires_existing_lockfile ... ok [INFO] [stdout] test resolver::runtime::tests::sync_force_overwrites_unmanaged_collision_on_direct_managed_target ... ok [INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_repo_with_symlinked_submodule_skills ... ok [INFO] [stdout] test resolver::runtime::tests::sync_filters_github_copilot_outputs_by_selected_components ... ok [INFO] [stdout] test resolver::runtime::tests::sync_force_overwrites_unmanaged_runtime_skill_output ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_dependency_outputs_without_mirroring_root_content ... ok [INFO] [stdout] test resolver::runtime::tests::sync_emits_transitive_package_managed_exports ... ok [INFO] [stdout] test resolver::runtime::tests::doctor_accepts_shared_mirror_backed_checkouts ... ok [INFO] [stdout] test resolver::runtime::tests::sync_gracefully_preserves_user_claude_local_settings_when_hooks_are_enabled_later ... ok [INFO] [stdout] test relay::runtime::tests::relay_watch_syncs_follow_up_managed_edits_for_multiple_dependencies ... ok [INFO] [stdout] test resolver::runtime::tests::global_add_installs_to_all_detected_supported_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::sync_merges_claude_startup_hook_into_existing_settings_without_duplicates ... ok [INFO] [stdout] test resolver::runtime::tests::sync_merges_unmanaged_mcp_entries_with_managed_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_locked_rejects_legacy_launch_hook_config_migration ... ok [INFO] [stdout] test resolver::runtime::tests::sync_merges_codex_startup_hook_into_existing_hooks_without_duplicates ... ok [INFO] [stdout] test resolver::runtime::tests::sync_migrates_legacy_launch_hook_config_to_hooks ... ok [INFO] [stdout] test resolver::runtime::tests::sync_merges_existing_unmanaged_runtime_root_gitignore ... ok [INFO] [stdout] test resolver::runtime::tests::sync_keeps_claude_plugin_hook_compat_disabled_for_codex_startup_hooks ... ok [INFO] [stdout] test resolver::runtime::tests::sync_omits_disabled_mcp_servers ... ok [INFO] [stdout] test resolver::runtime::tests::sync_merges_direct_managed_runtime_root_gitignore_with_generated_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_persists_launch_hook_configuration ... ok [INFO] [stdout] test resolver::runtime::tests::sync_persists_explicit_adapter_selection_when_repo_has_no_roots ... ok [INFO] [stdout] test resolver::runtime::tests::sync_keeps_transitive_dependencies_when_parent_components_are_narrowed ... ok [INFO] [stdout] test resolver::runtime::tests::sync_migrates_subset_legacy_managed_paths_to_package_exports ... ok [INFO] [stdout] test resolver::runtime::tests::global_remove_prunes_home_scoped_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_generates_workspace_marketplace_files ... ok [INFO] [stdout] test resolver::runtime::tests::sync_namespaces_duplicate_opencode_skill_ids_across_packages ... ok [INFO] [stdout] test resolver::runtime::tests::sync_namespaces_duplicate_file_ids_across_packages ... ok [INFO] [stdout] test resolver::runtime::tests::remove_dependency_accepts_repository_reference ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prefers_native_claude_hooks_over_plugin_hook_compat ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prefers_codex_specific_toml_agents_for_codex_and_markdown_for_claude ... ok [INFO] [stdout] test resolver::runtime::tests::sync_preserves_user_owned_root_instruction_files ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prefers_manifest_selection_over_detected_roots ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_outputs_when_adapter_selection_is_narrowed ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_stale_managed_mcp_entries_without_touching_unmanaged_ones ... ok [INFO] [stdout] test resolver::runtime::tests::remove_dependency_updates_manifest_and_prunes_managed_files ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_claude_only_declaration_of_codex_permission_request ... ok [INFO] [stdout] test resolver::runtime::tests::sync_publishes_root_assets_when_enabled ... ok [INFO] [stdout] test resolver::runtime::tests::sync_records_stable_skill_roots_in_lockfile ... ok [INFO] [stdout] test resolver::runtime::tests::sync_records_selected_components_without_supported_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_non_subset_legacy_managed_paths_when_package_exports_exist ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_nested_dependency_managed_paths ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_launch_hook_persistence_with_locked_flag ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_disabled_dependencies_from_outputs_and_lockfile ... ok [INFO] [stdout] test resolver::runtime::tests::sync_requires_explicit_adapter_when_repo_has_no_signals ... ok [INFO] [stdout] test resolver::runtime::tests::sync_recreates_missing_lockfile_for_existing_runtime_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_overlapping_direct_managed_targets ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rejects_unmanaged_collision_on_direct_managed_target ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_stale_files_inside_project_scoped_managed_export_root ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_old_skill_directories_when_digest_changes ... ok [INFO] [stdout] test resolver::runtime::tests::sync_rewrites_github_copilot_skill_name_to_managed_id ... ok [INFO] [stdout] test resolver::runtime::tests::sync_warns_when_launch_hooks_are_unsupported_for_selected_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::sync_unions_component_selection_for_duplicate_package_references ... ok [INFO] [stdout] test resolver::runtime::tests::sync_requires_opt_in_for_high_sensitivity_capabilities ... ok [INFO] [stdout] test resolver::runtime::tests::sync_upgrades_legacy_lockfile_and_prunes_legacy_runtime_outputs ... ok [INFO] [stdout] test resolver::runtime::tests::sync_skips_invalid_workspace_members_in_marketplace_files ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_direct_managed_file_targets ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_direct_managed_targets_when_mapping_is_removed ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_outputs_when_dependency_components_are_narrowed ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_package_managed_exports_from_export_only_dependency ... ok [INFO] [stdout] test resolver::runtime::tests::sync_uses_root_manifest_name_for_claude_workspace_marketplace_metadata ... ok [INFO] [stdout] test resolver::runtime::tests::sync_prunes_stale_managed_files ... ok [INFO] [stdout] test review::runtime::tests::authorizer_blocks_mutating_file_operations ... ok [INFO] [stdout] test review::runtime::tests::review_marks_root_dev_dependencies_in_the_prompt ... ok [INFO] [stdout] test selection::tests::adapter_prompt_items_follow_supported_adapter_order ... ok [INFO] [stdout] test review::runtime::tests::collects_nested_dependency_graph_for_review ... ok [INFO] [stdout] test selection::tests::detects_codex_marketplace_root_without_codex_dir ... ok [INFO] [stdout] test selection::tests::detects_existing_repo_adapter_roots ... ok [INFO] [stdout] test selection::tests::detects_github_copilot_project_assets ... ok [INFO] [stdout] test review::runtime::tests::review_prompt_includes_dependency_graph_and_roots ... ok [INFO] [stdout] test selection::tests::does_not_treat_agents_skills_root_as_codex_signal ... ok [INFO] [stdout] test selection::tests::missing_adapter_notice_mentions_project_root_and_guidance ... ok [INFO] [stdout] test selection::tests::rejects_noninteractive_repo_without_any_adapter_signal ... ok [INFO] [stdout] test selection::tests::ignores_unrelated_github_configuration_when_detecting_adapters ... ok [INFO] [stdout] test selection::tests::resolve_global_selection_rejects_unsupported_explicit_adapters ... ok [INFO] [stdout] test selection::tests::resolves_detected_adapters_when_manifest_is_unset ... ok [INFO] [stdout] test store::tests::atomically_writes_files ... ok [INFO] [stdout] test store::tests::digest_directory_name_accepts_blake3_prefix ... ok [INFO] [stdout] test store::tests::digest_directory_name_accepts_legacy_sha256_prefix ... ok [INFO] [stdout] test store::tests::digest_directory_name_rejects_unknown_prefix ... ok [INFO] [stdout] test selection::tests::resolve_global_selection_detects_all_supported_home_roots ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_package_managed_exports_under_nodus_packages ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_and_prunes_direct_managed_directory_targets ... ok [INFO] [stdout] test selection::tests::resolve_global_selection_rejects_unsupported_persisted_adapters ... ok [INFO] [stdout] test resolver::runtime::tests::workspace_dependency_without_members_enables_no_member_packages ... ok [INFO] [stdout] test update::tests::reports_when_no_direct_dependencies_are_configured ... ok [INFO] [stdout] test store::tests::snapshots_package_contents_into_the_local_store ... ok [INFO] [stdout] test resolver::runtime::tests::workspace_dependency_installs_only_selected_members ... ok [INFO] [stdout] test store::tests::reuses_the_same_snapshot_for_duplicate_package_digests ... ok [INFO] [stdout] test update_checker::tests::builds_a_powershell_manual_update_command_on_windows ... ok [INFO] [stdout] test update_checker::tests::detects_registry_cargo_installs_from_crates2_json ... ok [INFO] [stdout] test update_checker::tests::detects_release_installs_from_a_marker_file ... ok [INFO] [stdout] test update_checker::tests::does_not_notify_when_current_version_is_up_to_date ... ok [INFO] [stdout] test update_checker::tests::does_not_notify_when_the_probe_returns_no_release ... ok [INFO] [stdout] test store::tests::recreates_incomplete_snapshots ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_runtime_gitignores_for_managed_outputs ... ok [INFO] [stdout] test update_checker::tests::extracts_the_latest_release_from_redirect_headers ... ok [INFO] [stdout] test update_checker::tests::falls_back_to_manual_guidance_for_ambiguous_installs ... ok [INFO] [stdout] test update_checker::tests::does_not_repeat_a_notice_for_the_same_release_tag ... ok [INFO] [stdout] test resolver::runtime::tests::sync_writes_project_scoped_package_managed_exports ... ok [INFO] [stdout] test update_checker::tests::notices_fall_back_to_install_docs_for_unsupported_installs ... ok [INFO] [stdout] test update_checker::tests::notices_suggest_upgrade_for_supported_installs ... ok [INFO] [stdout] test update_checker::tests::notifies_again_when_a_newer_release_than_the_last_notice_appears ... ok [INFO] [stdout] test update_checker::tests::notifies_once_for_a_newer_release_and_persists_state ... ok [INFO] [stdout] test update_checker::tests::parses_release_tags_with_or_without_a_v_prefix ... ok [INFO] [stdout] test update_checker::tests::plans_cargo_registry_updates_with_an_exact_version ... ok [INFO] [stdout] test resolver::runtime::tests::shared_cache_is_reused_across_multiple_projects ... ok [INFO] [stdout] test update_checker::tests::plans_windows_release_updates_against_the_powershell_installer ... ok [INFO] [stdout] test update_checker::tests::plans_release_updates_against_the_tagged_installer_script ... ok [INFO] [stdout] test resolver::runtime::tests::sync_frozen_keeps_direct_managed_files_at_locked_git_revision ... ok [INFO] [stdout] test update_checker::tests::powershell_install_script_handles_windows_release_assets_from_flat_zip_root ... ok [INFO] [stdout] test update_checker::tests::rejects_cargo_path_installs_for_upgrade ... ok [INFO] [stdout] test update_checker::tests::skips_remote_probe_when_the_last_attempt_is_recent ... ok [INFO] [stdout] test update_checker::tests::updates_last_attempt_time_even_when_the_probe_fails ... ok [INFO] [stdout] test update_checker::tests::release_urls_are_derived_from_the_repo_slug ... ok [INFO] [stdout] test update_checker::tests::round_trips_update_check_state ... ok [INFO] [stdout] test update_checker::tests::upgrade_check_reports_when_current_version_is_already_latest ... ok [INFO] [stdout] test update_checker::tests::uses_a_powershell_installer_invocation_on_windows ... ok [INFO] [stdout] test resolver::runtime::tests::sync_strict_fails_when_git_refresh_fails ... ok [INFO] [stdout] test resolver::runtime::tests::sync_frozen_installs_branch_dependencies_from_locked_revision ... ok [INFO] [stdout] test update::tests::updates_semver_managed_dependencies_within_requirement ... ok [INFO] [stdout] test update::tests::updates_tagged_direct_dependencies_to_the_latest_tag ... ok [INFO] [stdout] test update_checker::tests::install_script_writes_and_removes_the_release_install_marker ... ok [INFO] [stdout] test review::runtime::tests::execute_review_uses_only_files_tool ... ok [INFO] [stdout] test update_checker::tests::install_script_handles_windows_release_assets_from_msys_shells ... ok [INFO] [stdout] test resolver::runtime::tests::sync_keeps_unique_dependency_skill_ids_unsuffixed ... ok [INFO] [stdout] test update_checker::tests::install_script_handles_windows_arm64_release_assets_from_msys_shells ... ok [INFO] [stdout] test update::tests::updates_branch_direct_dependencies_to_the_latest_revision ... ok [INFO] [stdout] test update::tests::keeps_revision_pinned_dependencies_at_the_requested_commit ... ok [INFO] [stdout] test resolver::runtime::tests::sync_warns_and_reuses_locked_cached_revision_when_git_refresh_fails ... ok [INFO] [stdout] test update::tests::updates_dev_dependencies ... ok [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/nodus-5a8698b6ba5148e0) [INFO] [stdout] test result: ok. 586 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.16s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/mcp_serve.rs (/opt/rustwide/target/debug/deps/mcp_serve-10ad3aa20c97d6a4) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test mcp_serve_responds_to_initialize_request ... ok [INFO] [stdout] test mcp_serve_lists_tools_after_initialize ... ok [INFO] [stderr] Doc-tests nodus [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "980a723f7a615ab54c37daa654d9065a835901127cea6f0a0e6cbc45e4eb118f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "980a723f7a615ab54c37daa654d9065a835901127cea6f0a0e6cbc45e4eb118f", kill_on_drop: false }` [INFO] [stdout] 980a723f7a615ab54c37daa654d9065a835901127cea6f0a0e6cbc45e4eb118f