[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] 80345e1c4ecf94863663833a422ed3f935b26f04
[INFO] testing WendellXY/nodus against 1.95.0 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWendellXY%2Fnodus" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-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-4-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 serde_yaml_ng v0.10.0
[INFO] [stderr]   Downloaded glob-match v0.2.1
[INFO] [stderr]   Downloaded rust-mcp-transport v0.9.0
[INFO] [stderr]   Downloaded mentra-provider v0.2.0
[INFO] [stderr]   Downloaded clap_complete v4.6.2
[INFO] [stderr]   Downloaded rust-mcp-macros v0.9.0
[INFO] [stderr]   Downloaded rust-mcp-sdk v0.9.0
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[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-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] e76916dfbed819384258a0dd92a1167e7cf7f103a8d69a496060f4afd2bc6c9b
[INFO] running `Command { std: "docker" "start" "-a" "e76916dfbed819384258a0dd92a1167e7cf7f103a8d69a496060f4afd2bc6c9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e76916dfbed819384258a0dd92a1167e7cf7f103a8d69a496060f4afd2bc6c9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e76916dfbed819384258a0dd92a1167e7cf7f103a8d69a496060f4afd2bc6c9b", kill_on_drop: false }`
[INFO] [stdout] e76916dfbed819384258a0dd92a1167e7cf7f103a8d69a496060f4afd2bc6c9b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] f736b0f046ae1e17ba518227a4edea81fa384644b7ede1e62b2b91b8f37a3c51
[INFO] running `Command { std: "docker" "start" "-a" "f736b0f046ae1e17ba518227a4edea81fa384644b7ede1e62b2b91b8f37a3c51", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[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 tokio v1.52.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling rust-mcp-schema v0.10.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling blake3 v1.8.4
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rust-mcp-macros v0.9.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling mentra-provider v0.2.0
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling uuid v1.23.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling constant_time_eq v0.4.2
[INFO] [stderr]    Compiling glob-match v0.2.1
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling clap_complete v4.6.2
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling dunce v1.0.5
[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.13.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 33s
[INFO] running `Command { std: "docker" "inspect" "f736b0f046ae1e17ba518227a4edea81fa384644b7ede1e62b2b91b8f37a3c51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f736b0f046ae1e17ba518227a4edea81fa384644b7ede1e62b2b91b8f37a3c51", kill_on_drop: false }`
[INFO] [stdout] f736b0f046ae1e17ba518227a4edea81fa384644b7ede1e62b2b91b8f37a3c51
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] c1ed4ec39c1c087af21971948074e26c272214fc4a66faeae95def800228b428
[INFO] running `Command { std: "docker" "start" "-a" "c1ed4ec39c1c087af21971948074e26c272214fc4a66faeae95def800228b428", kill_on_drop: false }`
[INFO] [stderr]    Compiling nodus v0.13.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 38.56s
[INFO] running `Command { std: "docker" "inspect" "c1ed4ec39c1c087af21971948074e26c272214fc4a66faeae95def800228b428", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c1ed4ec39c1c087af21971948074e26c272214fc4a66faeae95def800228b428", kill_on_drop: false }`
[INFO] [stdout] c1ed4ec39c1c087af21971948074e26c272214fc4a66faeae95def800228b428
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] d3b0e0429185aeb4da7d37080ce707b67c608d891c7a06af12ecc44387e37f5f
[INFO] running `Command { std: "docker" "start" "-a" "d3b0e0429185aeb4da7d37080ce707b67c608d891c7a06af12ecc44387e37f5f", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nodus-d3911ad02633971c)
[INFO] [stdout] 
[INFO] [stdout] running 592 tests
[INFO] [stdout] test adapters::codex::tests::synthetic_command_skill_requires_reserved_prefix ... ok
[INFO] [stdout] test adapters::copilot::tests::rewrites_skill_name_to_match_runtime_id ... ok
[INFO] [stdout] test adapters::codex::tests::synthetic_command_skill_round_trips_command_body ... ok
[INFO] [stdout] test adapters::copilot::tests::inserts_missing_skill_name_into_frontmatter ... ok
[INFO] [stdout] test adapters::opencode::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::opencode::tests::rewrites_skill_name_to_match_runtime_id ... ok
[INFO] [stdout] test adapters::output::tests::artifact_kind_support_matrix_matches_supported_adapters ... ok
[INFO] [stdout] test adapters::output::tests::codex_http_headers_promote_bearer_env_references ... ok
[INFO] [stdout] test adapters::copilot::tests::preserves_crlf_when_rewriting_skill_name ... ok
[INFO] [stdout] test adapters::output::tests::gitignore_files_merge_explicit_runtime_root_gitignore_with_generated_patterns ... ok
[INFO] [stdout] test adapters::output::tests::gitignore_files_preserve_explicit_runtime_root_gitignore_without_generated_patterns ... ok
[INFO] [stdout] test adapters::output::tests::managed_nodus_command_uses_plain_binary_name ... ok
[INFO] [stdout] test adapters::output::tests::gitignore_files_merge_existing_runtime_root_gitignore_from_disk ... ok
[INFO] [stdout] test adapters::output::tests::opencode_header_values_convert_env_references ... ok
[INFO] [stdout] test agent_format::tests::restores_source_name_when_runtime_name_was_only_a_collision_rewrite ... ok
[INFO] [stdout] test cache::tests::ignores_relative_xdg_state_home_values ... ok
[INFO] [stdout] test cache::tests::prefers_absolute_xdg_state_home_over_the_home_fallback ... ok
[INFO] [stdout] test cache::tests::resolves_relative_overrides_from_the_current_directory ... ok
[INFO] [stdout] test agent_format::tests::parses_and_serializes_codex_agent_toml ... ok
[INFO] [stdout] test cli::tests::add_help_leads_with_safe_example_and_next_step ... ok
[INFO] [stdout] test cli::tests::auto_update_checks_only_run_for_interactive_human_output_commands ... ok
[INFO] [stdout] test cli::tests::clean_all_preserves_non_cache_store_state ... ok
[INFO] [stdout] test cli::tests::clean_command_requires_lockfile_for_project_scope ... ok
[INFO] [stdout] test cli::tests::clean_help_describes_scope ... ok
[INFO] [stdout] test cli::tests::completion_help_describes_shell_argument ... ok
[INFO] [stdout] test cli::tests::doctor_command_emits_checking_and_finished_lines ... ok
[INFO] [stdout] test cli::tests::doctor_command_emits_json_without_status_lines ... ok
[INFO] [stdout] test cli::tests::doctor_command_maps_preview_apply_and_force_modes ... ok
[INFO] [stdout] test cli::tests::doctor_command_parses_apply_and_compatibility_flags ... ok
[INFO] [stdout] test cli::tests::doctor_command_rejects_invalid_flag_combinations ... ok
[INFO] [stdout] test cli::tests::doctor_help_describes_preview_and_apply_modes ... ok
[INFO] [stdout] test cli::tests::doctor_help_describes_when_to_run_it ... ok
[INFO] [stdout] test cli::tests::info_command_emits_json_without_status_lines ... ok
[INFO] [stdout] test cli::tests::info_command_emits_package_metadata_lines ... ok
[INFO] [stdout] test cli::tests::clean_command_removes_project_scoped_cache_entries_only ... ok
[INFO] [stdout] test cli::tests::info_command_writes_metadata_to_stdout ... 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::init_dry_run_previews_without_writing ... ok
[INFO] [stdout] test cli::tests::add_dry_run_previews_dependency_members_and_config ... ok
[INFO] [stdout] test cli::tests::list_command_emits_human_readable_dependencies ... ok
[INFO] [stdout] test cli::tests::clean_command_dry_run_previews_cache_removals_without_deleting ... ok
[INFO] [stdout] test cli::tests::list_command_labels_dev_dependencies ... ok
[INFO] [stdout] test cli::tests::list_command_marks_disabled_dependencies ... ok
[INFO] [stdout] test cli::tests::list_command_writes_empty_state_note_to_stderr ... 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::mcp_status_command_parses_json_flag ... 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::add_does_not_persist_launch_hook_by_default ... ok
[INFO] [stdout] test cli::tests::members_command_parses_subcommands_and_flags ... ok
[INFO] [stdout] test cli::tests::add_dry_run_warns_and_disables_invalid_workspace_members ... ok
[INFO] [stdout] test cli::tests::add_dry_run_previews_without_writing_project_files ... ok
[INFO] [stdout] test cli::tests::members_help_describes_child_package_selection ... ok
[INFO] [stdout] test cli::tests::info_command_renders_version_requirement_for_semver_dependencies ... ok
[INFO] [stdout] test cli::tests::add_command_emits_resolving_and_adding_lines ... 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::list_command_emits_version_requested_ref_for_semver_dependencies ... 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::parses_upgrade_subcommand ... ok
[INFO] [stdout] test cli::tests::read_only_help_mentions_json ... 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::list_command_emits_json_with_locked_metadata ... ok
[INFO] [stdout] test cli::tests::members_command_rejects_unknown_workspace_member_before_mutating_manifest ... ok
[INFO] [stdout] test cli::tests::relay_rejects_repo_path_for_multiple_dependencies ... ok
[INFO] [stdout] test cli::tests::outdated_command_emits_json_without_status_lines ... ok
[INFO] [stdout] test cli::tests::members_list_and_enable_update_workspace_dependency_selection ... 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::relay_dry_run_previews_state_only_local_config_changes ... ok
[INFO] [stdout] test cli::tests::sync_auto_registers_nodus_mcp_server_in_mcp_json ... 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::members_set_empty_clears_workspace_dependency_selection ... ok
[INFO] [stdout] test cli::tests::sync_help_explains_when_to_use_sync_and_what_to_run_next ... ok
[INFO] [stdout] test cli::tests::sync_help_describes_force ... ok
[INFO] [stdout] test cli::tests::relay_dry_run_does_not_persist_local_config_or_repo_edits ... ok
[INFO] [stdout] test cli::tests::members_enable_dry_run_previews_workspace_selection_without_writing ... ok
[INFO] [stdout] test cli::tests::update_help_distinguishes_itself_from_sync ... 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_checkout_path_from_the_normalized_url_and_revision ... ok
[INFO] [stdout] test git::tests::computes_shared_repository_path_from_the_normalized_url ... ok
[INFO] [stdout] test git::tests::expands_github_shortcuts ... ok
[INFO] [stdout] test git::tests::extracts_github_slugs_from_https_urls ... ok
[INFO] [stdout] test git::tests::matches_equivalent_local_git_paths ... ok
[INFO] [stdout] test git::tests::normalizes_repo_names_into_aliases ... ok
[INFO] [stdout] test git::tests::picks_latest_compatible_semver_tag ... ok
[INFO] [stdout] test cli::tests::members_enable_and_disable_manage_wrapper_child_packages ... ok
[INFO] [stdout] test cli::tests::remove_dry_run_keeps_manifest_and_lockfile_unchanged ... 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 cli::tests::sync_recreates_cache_after_clean_command ... ok
[INFO] [stdout] test cli::tests::update_command_emits_updating_and_finished_lines ... ok
[INFO] [stdout] test cli::tests::update_dry_run_keeps_manifest_and_lockfile_unchanged ... ok
[INFO] [stdout] test git::tests::resolves_dependency_alias_from_exact_name ... ok
[INFO] [stdout] test cli::tests::sync_dry_run_locked_and_frozen_modes_leave_state_unchanged ... 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 git::tests::short_hash_produces_eight_hex_chars ... ok
[INFO] [stdout] test info::tests::info_lists_managed_exports_for_export_only_package ... ok
[INFO] [stdout] test info::tests::info_lists_managed_exports ... ok
[INFO] [stdout] test info::tests::info_marks_disabled_direct_dependencies ... ok
[INFO] [stdout] test info::tests::info_reads_a_direct_dependency_alias_from_the_root_manifest ... ok
[INFO] [stdout] test info::tests::info_lists_mcp_servers ... 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 git::tests::recovers_symlinked_directories_when_core_symlinks_is_disabled ... ok
[INFO] [stdout] test info::tests::info_shows_disabled_workspace_members_when_dependency_members_are_omitted ... 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 info::tests::info_shows_workspace_members_for_workspace_root ... 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_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 lockfile::tests::expands_codex_skill_roots_to_include_synthetic_command_skills ... ok
[INFO] [stdout] test manifest::tests::accepts_all_supported_codex_workspace_policy_literals ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_codex_marketplace_wrapper ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_claude_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_manifest_declared_opencode_plugin_hooks ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_hooks ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_managed_exports ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_default_claude_plugin_hooks ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_modern_claude_plugin_metadata_and_flat_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_only_nested_dependencies ... ok
[INFO] [stdout] test manifest::tests::accepts_dependency_repo_with_structured_claude_marketplace_sources ... ok
[INFO] [stdout] test manifest::tests::accepts_git_dependency_version_requirement_without_explicit_ref ... ok
[INFO] [stdout] test manifest::tests::accepts_hooks_in_dependency_manifest ... ok
[INFO] [stdout] test manifest::tests::accepts_marketplace_plugin_that_points_at_root_claude_plugin_metadata ... 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 manifest::tests::accepts_marketplace_with_hook_only_claude_plugin_source ... ok
[INFO] [stdout] test manifest::tests::accepts_skill_frontmatter_without_name_by_falling_back_to_folder_name ... ok
[INFO] [stdout] test manifest::tests::accepts_unquoted_description_with_colon ... ok
[INFO] [stdout] test manifest::tests::accepts_workspace_dependency_wrapper ... ok
[INFO] [stdout] test manifest::tests::accepts_workspace_root_without_discovered_root_assets ... ok
[INFO] [stdout] test manifest::tests::active_dependency_entries_skip_disabled_dependencies ... ok
[INFO] [stdout] test manifest::tests::allows_identical_mcp_servers_from_claude_and_codex_plugin_metadata ... ok
[INFO] [stdout] test manifest::tests::deduplicates_standard_roots_referenced_by_claude_plugin_metadata ... ok
[INFO] [stdout] test manifest::tests::discovers_agent_variants_with_future_qualifiers ... ok
[INFO] [stdout] test manifest::tests::discovers_agents_rules_and_commands ... ok
[INFO] [stdout] test manifest::tests::discovers_artifacts_from_configured_content_root ... ok
[INFO] [stdout] test manifest::tests::discovers_modern_claude_plugin_extra_component_paths_outside_standard_roots ... ok
[INFO] [stdout] test manifest::tests::discovers_nested_rules_with_stable_ids ... ok
[INFO] [stdout] test manifest::tests::discovers_object_mapped_modern_claude_plugin_commands_from_source_paths ... ok
[INFO] [stdout] test manifest::tests::discovers_placeholder_skill_directories_inside_package_root ... ok
[INFO] [stdout] test info::tests::info_reads_a_git_package_reference ... ok
[INFO] [stdout] test manifest::tests::does_not_warn_for_supported_content_root_config ... ok
[INFO] [stdout] test manifest::tests::discovers_nested_skills_under_category_directories ... ok
[INFO] [stdout] test manifest::tests::does_not_warn_for_supported_launch_hook_config ... ok
[INFO] [stdout] test git::tests::resolves_default_branch_when_repo_has_no_tags ... ok
[INFO] [stdout] test manifest::tests::ignores_codex_marketplace_plugin_source_that_points_at_package_root ... 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_directory ... ok
[INFO] [stdout] test manifest::tests::ignores_marketplace_plugin_source_that_is_not_a_nodus_package ... 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::ignores_marketplace_with_escaping_source_path ... ok
[INFO] [stdout] test manifest::tests::ignores_marketplace_plugins_with_duplicate_aliases ... ok
[INFO] [stdout] test manifest::tests::ignores_non_semver_modern_claude_plugin_version_in_metadata ... ok
[INFO] [stdout] test manifest::tests::ignores_non_semver_claude_plugin_version_from_json ... 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::imports_firebase_style_marketplace_url_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::init_scaffolds_a_minimal_manifest_and_example_skill ... 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::loads_root_manifest_claude_session_start_sources ... ok
[INFO] [stdout] test manifest::tests::loads_root_manifest_hooks ... ok
[INFO] [stdout] test manifest::tests::loads_root_manifest_without_required_metadata ... ok
[INFO] [stdout] test git::tests::recreates_missing_registered_shared_checkouts ... ok
[INFO] [stdout] test manifest::tests::managed_exports_do_not_emit_unsupported_field_warnings ... ok
[INFO] [stdout] test manifest::tests::normalizes_claude_plugin_root_arg_paths_in_mcp_config ... ok
[INFO] [stdout] test manifest::tests::marketplace_sources_are_resolved_from_repo_root ... ok
[INFO] [stdout] test manifest::tests::lowers_legacy_launch_hook_into_effective_hooks ... ok
[INFO] [stdout] test manifest::tests::parses_dev_dependency_tables ... ok
[INFO] [stdout] test manifest::tests::parses_dependency_components ... ok
[INFO] [stdout] test manifest::tests::overlays_modern_claude_plugin_manifest_mcp_servers_in_declaration_order ... ok
[INFO] [stdout] test manifest::tests::parses_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::prefers_standard_layout_over_marketplace_fallback ... ok
[INFO] [stdout] test manifest::tests::parses_managed_dependency_tables ... ok
[INFO] [stdout] test manifest::tests::parses_managed_export_tables ... ok
[INFO] [stdout] test manifest::tests::reads_claude_plugin_version_from_json ... 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_content_roots_with_parent_segments ... ok
[INFO] [stdout] test manifest::tests::rejects_conflicting_mcp_servers_from_claude_and_codex_plugin_metadata ... ok
[INFO] [stdout] test manifest::tests::rejects_dependencies_with_multiple_git_sources ... ok
[INFO] [stdout] test manifest::tests::rejects_dependency_managed_paths_with_parent_segments ... ok
[INFO] [stdout] test manifest::tests::rejects_dependency_repo_without_supported_directories ... 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_artifact_ids_across_content_roots ... ok
[INFO] [stdout] test manifest::tests::rejects_duplicate_content_roots_after_normalization ... ok
[INFO] [stdout] test manifest::tests::rejects_duplicate_dependency_components ... ok
[INFO] [stdout] test manifest::tests::rejects_duplicate_dependency_managed_pairs ... ok
[INFO] [stdout] test manifest::tests::rejects_empty_adapter_selection ... ok
[INFO] [stdout] test manifest::tests::rejects_duplicate_managed_exports ... ok
[INFO] [stdout] test manifest::tests::rejects_empty_mcp_server_command ... ok
[INFO] [stdout] test manifest::tests::rejects_empty_dependency_managed_paths ... ok
[INFO] [stdout] test manifest::tests::rejects_git_dependency_version_with_tag ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_git_dependency_without_tag ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_github_dependency_reference ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_skill_frontmatter ... ok
[INFO] [stdout] test manifest::tests::rejects_managed_exports_with_parent_segments ... ok
[INFO] [stdout] test manifest::tests::rejects_marketplace_with_invalid_json ... ok
[INFO] [stdout] test manifest::tests::marketplace_fallback_still_runs_with_only_dev_dependencies ... ok
[INFO] [stdout] test manifest::tests::rejects_marketplace_with_plugin_root_interpolation_in_mcp_server ... ok
[INFO] [stdout] test manifest::tests::parses_url_backed_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::rejects_marketplace_without_plugins ... ok
[INFO] [stdout] test manifest::tests::rejects_invalid_plain_toml_agent_missing_required_codex_fields ... ok
[INFO] [stdout] test manifest::tests::rejects_skills_using_reserved_codex_command_prefix ... ok
[INFO] [stdout] test manifest::tests::rejects_matcher_for_claude_native_lifecycle_hooks ... ok
[INFO] [stdout] test manifest::tests::rejects_missing_content_root_directory ... ok
[INFO] [stdout] test manifest::tests::rejects_mcp_server_with_both_command_and_url ... ok
[INFO] [stdout] test manifest::tests::rejects_empty_dependency_components ... ok
[INFO] [stdout] test manifest::tests::rejects_unknown_adapter_selection ... ok
[INFO] [stdout] test manifest::tests::rejects_workspace_member_with_invalid_codex_installation_policy ... ok
[INFO] [stdout] test manifest::tests::rejects_workspace_root_with_discovered_assets ... ok
[INFO] [stdout] test manifest::tests::rejects_unknown_dependency_component ... ok
[INFO] [stdout] test manifest::tests::rejects_url_backed_mcp_server_with_stdio_fields ... ok
[INFO] [stdout] test manifest::tests::rejects_workspace_member_with_invalid_codex_authentication_policy ... ok
[INFO] [stdout] test manifest::tests::serializes_claude_plugin_hooks ... ok
[INFO] [stdout] test manifest::tests::serializes_claude_session_start_sources ... ok
[INFO] [stdout] test manifest::tests::rejects_workspace_root_with_unmatched_member_path ... ok
[INFO] [stdout] test manifest::tests::serializes_dependencies_as_inline_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_launch_hooks ... ok
[INFO] [stdout] test manifest::tests::serializes_managed_dependencies_as_expanded_tables ... ok
[INFO] [stdout] test manifest::tests::serializes_managed_exports_as_expanded_tables ... ok
[INFO] [stdout] test manifest::tests::serializes_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::serializes_opencode_plugin_hooks ... ok
[INFO] [stdout] test manifest::tests::serializes_url_backed_disabled_mcp_servers ... ok
[INFO] [stdout] test manifest::tests::serializes_adapters_in_stable_sorted_order ... ok
[INFO] [stdout] test manifest::tests::serializes_content_roots_and_publish_root ... ok
[INFO] [stdout] test manifest::tests::skips_missing_claude_marketplace_local_plugin_sources_with_warning ... ok
[INFO] [stdout] test manifest::tests::serializes_dev_dependencies ... ok
[INFO] [stdout] test manifest::tests::serializes_claude_native_lifecycle_hooks ... ok
[INFO] [stdout] test manifest::tests::serializes_workspace_and_dependency_members ... ok
[INFO] [stdout] test manifest::tests::skips_marketplace_with_docs_only_local_plugin_source ... ok
[INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_command_uses_inline_content ... ok
[INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_manifest_mcp_servers_use_unsupported_paths ... 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 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::workspace_root_ignores_invalid_member_and_warns ... ok
[INFO] [stdout] test manifest::tests::warns_when_modern_claude_plugin_command_points_to_directory ... ok
[INFO] [stdout] test git::tests::refreshes_default_branch_when_the_remote_head_changes ... ok
[INFO] [stdout] test outdated::tests::ignores_disabled_dependencies ... ok
[INFO] [stdout] test outdated::tests::reports_when_all_tag_dependencies_are_current ... ok
[INFO] [stdout] test outdated::tests::json_reports_include_dev_dependency_kind ... ok
[INFO] [stdout] test cli::tests::relay_supports_multiple_dependencies_in_one_command ... ok
[INFO] [stdout] test outdated::tests::reports_newer_tags_for_direct_dependencies ... ok
[INFO] [stdout] test git::tests::recovers_missing_submodule_skill_targets ... ok
[INFO] [stdout] test outdated::tests::reports_semver_compatible_updates_and_major_availability ... ok
[INFO] [stdout] test outdated::tests::reports_revision_pins_as_current ... ok
[INFO] [stdout] test outdated::tests::reports_advanced_branch_heads_against_locked_state ... 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_for_dev_dependencies_block_sync ... ok
[INFO] [stdout] test relay::runtime::tests::adapter_expansion_does_not_block_sync_with_existing_relay ... ok
[INFO] [stdout] test relay::runtime::tests::pending_relay_edits_block_sync_update_and_remove ... ok
[INFO] [stdout] test relay::runtime::tests::relay_allows_successive_managed_edits_after_successful_relay ... ok
[INFO] [stdout] test relay::runtime::tests::missing_managed_variants_do_not_block_sync_with_relay ... ok
[INFO] [stdout] test relay::runtime::tests::relay_create_missing_copies_new_codex_command_skill_into_source ... ok
[INFO] [stdout] test relay::runtime::tests::relay_create_missing_copies_new_codex_agent_into_toml_source ... ok
[INFO] [stdout] test relay::runtime::tests::relay_batch_rejects_overlapping_write_sets ... ok
[INFO] [stdout] test relay::runtime::tests::relay_batch_persists_successful_job_state_before_later_failure ... ok
[INFO] [stdout] test relay::runtime::tests::relay_rejects_path_dependencies ... 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_batch_supports_same_repo_disjoint_write_sets ... ok
[INFO] [stdout] test relay::runtime::tests::relay_ignores_stale_file_state_after_dependency_digest_changes ... ok
[INFO] [stdout] test relay::runtime::tests::relay_rejects_direct_managed_double_edits ... ok
[INFO] [stdout] test relay::runtime::tests::relay_persists_via_hint ... ok
[INFO] [stdout] test relay::runtime::tests::relay_requires_a_persisted_or_explicit_repo_path ... 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_when_managed_variants_disagree ... ok
[INFO] [stdout] test relay::runtime::tests::relay_watch_syncs_follow_up_managed_edits ... ok
[INFO] [stdout] test relay::runtime::tests::relay_rejects_manual_linked_edits_after_successful_relay ... 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_writes_back_codex_command_skill_edits_to_source ... 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_new_files_inside_package_managed_export_directory ... 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_copilot_skill_and_agent_edits ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_all_workspace_members_when_requested ... 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_claude_marketplace_wrapper_with_docs_only_local_plugin_sources ... 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_writes_back_edits_for_all_adapters_and_preserves_opencode_name ... 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_claude_marketplace_wrapper_with_hook_only_plugin_sources ... 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_marketplace_plugin_that_points_at_root_claude_plugin_metadata ... 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_manifest_only_hook_package_and_syncs_claude_settings ... 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::add_dependency_accepts_manifest_only_wrapper_repo_and_syncs_transitive_git_plugins ... 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_auto_enables_single_workspace_member ... ok
[INFO] [stdout] test relay::runtime::tests::relay_watch_syncs_follow_up_managed_edits_for_multiple_dependencies ... 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_leaves_multi_marketplace_plugins_disabled_by_default ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_pins_an_explicit_revision ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_clones_repo_and_updates_manifest ... 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::add_dependency_leaves_multi_workspace_members_disabled_by_default ... 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::add_dependency_tracks_an_explicit_branch ... ok
[INFO] [stdout] test resolver::runtime::tests::consumed_packages_do_not_export_dev_dependencies ... 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_uses_latest_tag_when_not_provided ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_skips_invalid_workspace_members ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_accepts_legacy_detected_adapter_roots_without_manifest_config ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_accepts_claude_plugin_hook_compat_after_first_sync ... 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_uses_default_branch_when_repo_has_no_tags ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_writes_marketplace_version_alongside_default_branch ... 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_check_mode_keeps_missing_managed_file_as_unfixed_finding ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_detects_lockfile_drift_when_only_components_change ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_detects_missing_file_inside_managed_skill_directory ... 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::doctor_missing_lockfile_with_managed_file_under_symlinked_parent_blocks_repair ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_symlinked_managed_file_blocks_repair ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_check_mode_reports_risky_cleanup_without_deleting_anything ... ok
[INFO] [stdout] test resolver::runtime::tests::custom_cache_root_routes_shared_repositories_into_the_override_directory ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_unmanaged_collision_still_blocks_repair ... 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_missing_lockfile_with_partial_multi_file_managed_directory_blocks_repair ... ok
[INFO] [stdout] test resolver::runtime::tests::add_dependency_accepts_repo_with_symlinked_submodule_skills ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_rejects_invalid_managed_mcp_json ... 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_repairs_invalid_managed_codex_config_when_it_owns_the_file ... 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::add_dependency_writes_selected_components_to_manifest ... 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::doctor_repairs_invalid_managed_mcp_json_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_accepts_shared_mirror_backed_checkouts ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_repairs_missing_file_inside_managed_skill_directory ... ok
[INFO] [stdout] test resolver::runtime::tests::prune_empty_parent_dirs_stops_at_github_root ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_recovers_exact_match_workspace_marketplace_after_lockfile_loss ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_force_mode_applies_risky_cleanup_without_prompt ... 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_extra_empty_subdirectories ... 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_rejects_symlinked_candidates ... 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_accepts_exact_single_file_outputs ... 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::remove_dependency_rejects_unknown_package ... ok
[INFO] [stdout] test resolver::runtime::tests::doctor_missing_lockfile_with_workspace_marketplace_collision_blocks_repair ... ok
[INFO] [stdout] test resolver::runtime::tests::resolves_local_path_dependencies_with_configured_content_roots ... ok
[INFO] [stdout] test resolver::runtime::tests::resolves_local_path_dependencies_with_discovery ... 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_manifest_can_be_missing ... 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::sync_adopts_exact_unmanaged_runtime_skill_output ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_can_adopt_unmanaged_collision_on_direct_managed_target ... ok
[INFO] [stdout] test resolver::runtime::tests::global_add_rejects_sync_on_launch ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_can_cancel_after_unmanaged_collision_prompt ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_can_adopt_unmanaged_runtime_command_output ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_can_remove_managed_mapping_after_unmanaged_collision ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_can_cancel_unmanaged_runtime_command_output_collision ... ok
[INFO] [stdout] test resolver::runtime::tests::remove_dependency_accepts_repository_reference ... 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_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_managed_codex_user_prompt_and_permission_request_hooks ... 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_detects_multiple_adapter_roots_and_persists_them ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_does_not_publish_root_assets_by_default ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_clear_and_compact_session_start_sources ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_dry_run_force_previews_without_overwriting_unmanaged_files ... 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_emits_claude_native_lifecycle_hooks_without_leaking_to_other_adapters ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_agent_toml_from_markdown_fallback ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_codex_config_toml_from_dependency_manifests ... 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_permission_request_hook ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_claude_plugin_command_hooks_from_dependency_packages ... ok
[INFO] [stdout] test resolver::runtime::tests::global_add_installs_to_all_detected_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_manifest_declared_hook_sources ... 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_emits_opencode_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_copilot_hooks_for_supported_events ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_startup_sync_files_for_supported_adapters ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_mcp_json_from_dependency_manifests ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_url_backed_mcp_servers ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_opencode_plugin_hook_import_wrappers ... ok
[INFO] [stdout] test resolver::runtime::tests::remove_dependency_updates_manifest_and_prunes_managed_files ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_filters_github_copilot_outputs_by_selected_components ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_filters_dependency_outputs_by_selected_components ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_force_does_not_bypass_locked_stale_lockfile_checks ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_transitive_package_managed_exports ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_emits_dependency_outputs_without_mirroring_root_content ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_filters_tool_hook_matchers_by_adapter_support ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_frozen_requires_existing_lockfile ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_force_overwrites_unmanaged_runtime_skill_output ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_force_overwrites_unmanaged_collision_on_direct_managed_target ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_gracefully_preserves_user_claude_local_settings_when_hooks_are_enabled_later ... 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_locked_rejects_legacy_launch_hook_config_migration ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_keeps_transitive_dependencies_when_parent_components_are_narrowed ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_merges_codex_startup_hook_into_existing_hooks_without_duplicates ... ok
[INFO] [stdout] test resolver::runtime::tests::global_remove_prunes_home_scoped_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_merges_existing_unmanaged_runtime_root_gitignore ... 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_direct_managed_runtime_root_gitignore_with_generated_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_merges_unmanaged_mcp_entries_with_managed_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_migrates_legacy_launch_hook_config_to_hooks ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_migrates_subset_legacy_managed_paths_to_package_exports ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_omits_disabled_mcp_servers ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_namespaces_duplicate_file_ids_across_packages ... 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_persists_launch_hook_configuration ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_namespaces_duplicate_opencode_skill_ids_across_packages ... 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_prefers_native_claude_hooks_over_plugin_hook_compat ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prefers_manifest_selection_over_detected_roots ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_preserves_user_owned_root_instruction_files ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prunes_disabled_dependencies_from_outputs_and_lockfile ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prunes_direct_managed_targets_when_mapping_is_removed ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_generates_workspace_marketplace_files ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prunes_old_skill_directories_when_digest_changes ... 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::sync_publishes_root_assets_when_enabled ... 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_records_selected_components_without_supported_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prunes_outputs_when_dependency_components_are_narrowed ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_rejects_claude_only_declaration_of_codex_permission_request ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_prunes_stale_managed_files ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_recreates_missing_lockfile_for_existing_runtime_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_rejects_nested_dependency_managed_paths ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_rejects_overlapping_direct_managed_targets ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_records_stable_skill_roots_in_lockfile ... 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_launch_hook_persistence_with_locked_flag ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_requires_explicit_adapter_when_repo_has_no_signals ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_rewrites_github_copilot_skill_name_to_managed_id ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_skips_invalid_workspace_members_in_marketplace_files ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_requires_opt_in_for_high_sensitivity_capabilities ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_rejects_unmanaged_collision_on_direct_managed_target ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_frozen_keeps_direct_managed_files_at_locked_git_revision ... 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_unions_component_selection_for_duplicate_package_references ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_keeps_unique_dependency_skill_ids_unsuffixed ... 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_writes_package_managed_exports_from_export_only_dependency ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_writes_package_managed_exports_under_nodus_packages ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_writes_project_scoped_package_managed_exports ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_writes_and_prunes_direct_managed_directory_targets ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_writes_direct_managed_file_targets ... ok
[INFO] [stdout] test resolver::runtime::tests::workspace_dependency_installs_only_selected_members ... ok
[INFO] [stdout] test review::runtime::tests::authorizer_blocks_mutating_file_operations ... ok
[INFO] [stdout] test resolver::runtime::tests::workspace_dependency_without_members_enables_no_member_packages ... ok
[INFO] [stdout] test review::runtime::tests::collects_nested_dependency_graph_for_review ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_frozen_installs_branch_dependencies_from_locked_revision ... ok
[INFO] [stdout] test review::runtime::tests::review_marks_root_dev_dependencies_in_the_prompt ... ok
[INFO] [stdout] test review::runtime::tests::review_prompt_includes_dependency_graph_and_roots ... ok
[INFO] [stdout] test selection::tests::adapter_prompt_items_follow_supported_adapter_order ... ok
[INFO] [stdout] test selection::tests::detects_codex_marketplace_root_without_codex_dir ... ok
[INFO] [stdout] test selection::tests::detects_github_copilot_project_assets ... ok
[INFO] [stdout] test selection::tests::detects_existing_repo_adapter_roots ... ok
[INFO] [stdout] test resolver::runtime::tests::shared_cache_is_reused_across_multiple_projects ... ok
[INFO] [stdout] test selection::tests::does_not_treat_agents_skills_root_as_codex_signal ... ok
[INFO] [stdout] test selection::tests::ignores_unrelated_github_configuration_when_detecting_adapters ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_upgrades_legacy_lockfile_and_prunes_legacy_runtime_outputs ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_writes_runtime_gitignores_for_managed_outputs ... ok
[INFO] [stdout] test selection::tests::rejects_noninteractive_repo_without_any_adapter_signal ... ok
[INFO] [stdout] test selection::tests::missing_adapter_notice_mentions_project_root_and_guidance ... ok
[INFO] [stdout] test selection::tests::resolve_global_selection_detects_all_supported_home_roots ... 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::digest_directory_name_accepts_legacy_sha256_prefix ... ok
[INFO] [stdout] test store::tests::digest_directory_name_accepts_blake3_prefix ... ok
[INFO] [stdout] test store::tests::digest_directory_name_rejects_unknown_prefix ... ok
[INFO] [stdout] test resolver::runtime::tests::sync_strict_fails_when_git_refresh_fails ... ok
[INFO] [stdout] test selection::tests::resolve_global_selection_rejects_unsupported_persisted_adapters ... ok
[INFO] [stdout] test store::tests::atomically_writes_files ... 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 store::tests::reuses_the_same_snapshot_for_duplicate_package_digests ... ok
[INFO] [stdout] test store::tests::recreates_incomplete_snapshots ... 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 update_checker::tests::does_not_repeat_a_notice_for_the_same_release_tag ... 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 resolver::runtime::tests::sync_warns_and_reuses_locked_cached_revision_when_git_refresh_fails ... ok
[INFO] [stdout] test update_checker::tests::install_script_handles_windows_arm64_release_assets_from_msys_shells ... ok
[INFO] [stdout] test update::tests::updates_tagged_direct_dependencies_to_the_latest_tag ... 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::tests::updates_dev_dependencies ... 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::tests::updates_semver_managed_dependencies_within_requirement ... 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 update_checker::tests::plans_release_updates_against_the_tagged_installer_script ... ok
[INFO] [stdout] test update_checker::tests::plans_windows_release_updates_against_the_powershell_installer ... ok
[INFO] [stdout] test update_checker::tests::rejects_cargo_path_installs_for_upgrade ... ok
[INFO] [stdout] test update_checker::tests::round_trips_update_check_state ... 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::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 update_checker::tests::powershell_install_script_handles_windows_release_assets_from_flat_zip_root ... ok
[INFO] [stdout] test review::runtime::tests::execute_review_uses_only_files_tool ... ok
[INFO] [stdout] test update::tests::keeps_revision_pinned_dependencies_at_the_requested_commit ... ok
[INFO] [stdout] test update_checker::tests::release_urls_are_derived_from_the_repo_slug ... ok
[INFO] [stdout] test update_checker::tests::install_script_handles_windows_release_assets_from_msys_shells ... ok
[INFO] [stdout] test update::tests::updates_branch_direct_dependencies_to_the_latest_revision ... ok
[INFO] [stdout] test update_checker::tests::install_script_writes_and_removes_the_release_install_marker ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 592 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 11.31s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/nodus-bb46a3078ef5e93e)
[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-93c0b235fdfc1dfa)
[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] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests nodus
[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" "d3b0e0429185aeb4da7d37080ce707b67c608d891c7a06af12ecc44387e37f5f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d3b0e0429185aeb4da7d37080ce707b67c608d891c7a06af12ecc44387e37f5f", kill_on_drop: false }`
[INFO] [stdout] d3b0e0429185aeb4da7d37080ce707b67c608d891c7a06af12ecc44387e37f5f
