[INFO] cloning repository https://github.com/yuzai-code/SkillSync
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yuzai-code/SkillSync" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyuzai-code%2FSkillSync", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyuzai-code%2FSkillSync'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 473495bddba733b557a6c7d6d29f817c318ca9bc
[INFO] testing yuzai-code/SkillSync against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyuzai-code%2FSkillSync" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yuzai-code/SkillSync
[INFO] finished tweaking git repo https://github.com/yuzai-code/SkillSync
[INFO] tweaked toml for git repo https://github.com/yuzai-code/SkillSync written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yuzai-code/SkillSync on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yuzai-code/SkillSync already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 77780a40b7834ca6f4888ececdc695e730cedcbe8defe404f92fffcc520a14f0
[INFO] running `Command { std: "docker" "start" "-a" "77780a40b7834ca6f4888ececdc695e730cedcbe8defe404f92fffcc520a14f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "77780a40b7834ca6f4888ececdc695e730cedcbe8defe404f92fffcc520a14f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "77780a40b7834ca6f4888ececdc695e730cedcbe8defe404f92fffcc520a14f0", kill_on_drop: false }`
[INFO] [stdout] 77780a40b7834ca6f4888ececdc695e730cedcbe8defe404f92fffcc520a14f0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cdd05c73d0131bb4c886690b5f619a09f0512d702eb97b67202d6d2dd368d77b
[INFO] running `Command { std: "docker" "start" "-a" "cdd05c73d0131bb4c886690b5f619a09f0512d702eb97b67202d6d2dd368d77b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling newline-converter v0.3.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling crossterm v0.25.0
[INFO] [stderr]    Compiling notify-debouncer-mini v0.5.0
[INFO] [stderr]    Compiling openssl-src v300.6.0+3.6.2
[INFO] [stderr]    Compiling inquire v0.7.5
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling libz-sys v1.1.25
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling skillsync v1.0.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 45s
[INFO] running `Command { std: "docker" "inspect" "cdd05c73d0131bb4c886690b5f619a09f0512d702eb97b67202d6d2dd368d77b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cdd05c73d0131bb4c886690b5f619a09f0512d702eb97b67202d6d2dd368d77b", kill_on_drop: false }`
[INFO] [stdout] cdd05c73d0131bb4c886690b5f619a09f0512d702eb97b67202d6d2dd368d77b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb337c18d185757e9490f0f102087b1f188758d4cd9ee1faa1900ff992691c23
[INFO] running `Command { std: "docker" "start" "-a" "fb337c18d185757e9490f0f102087b1f188758d4cd9ee1faa1900ff992691c23", kill_on_drop: false }`
[INFO] [stderr]    Compiling skillsync v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/state/db.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl ProjectStatus {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 62 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 4.98s
[INFO] running `Command { std: "docker" "inspect" "fb337c18d185757e9490f0f102087b1f188758d4cd9ee1faa1900ff992691c23", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb337c18d185757e9490f0f102087b1f188758d4cd9ee1faa1900ff992691c23", kill_on_drop: false }`
[INFO] [stdout] fb337c18d185757e9490f0f102087b1f188758d4cd9ee1faa1900ff992691c23
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 672dce32a99907ad24dbf92a1280d8a9b666dffca0bd36f3fa7379854ab2c48f
[INFO] running `Command { std: "docker" "start" "-a" "672dce32a99907ad24dbf92a1280d8a9b666dffca0bd36f3fa7379854ab2c48f", kill_on_drop: false }`
[INFO] [stderr] warning: method `as_str` is never used
[INFO] [stderr]   --> src/state/db.rs:62:12
[INFO] [stderr]    |
[INFO] [stderr] 61 | impl ProjectStatus {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] 62 |     pub fn as_str(&self) -> &'static str {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `skillsync` (bin "skillsync" test) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/skillsync-65037b4c4ba65fb9)
[INFO] [stdout] 
[INFO] [stdout] running 131 tests
[INFO] [stdout] test claude::hooks::tests::test_has_hook_matches_substring ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_idempotent ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_preserves_existing ... ok
[INFO] [stdout] test claude::hooks::tests::test_has_hook_no_hooks_key ... ok
[INFO] [stdout] test claude::paths::tests::test_global_paths_structure ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_empty_settings ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook_empty_settings ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_creates_array ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_dedup_multiple_calls ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_no_duplicates ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_creates_array ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_paths_with_root ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_paths_resolve ... ok
[INFO] [stdout] test claude::paths::tests::test_global_ensure_dirs ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_ensure_registry_dirs ... ok
[INFO] [stdout] test claude::paths::tests::test_project_has_config ... ok
[INFO] [stdout] test claude::paths::tests::test_project_ensure_dirs ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook_not_present ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_dedup_multiple_calls ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_no_duplicates ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_preserves_existing ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_preserves_other_settings ... ok
[INFO] [stdout] test cli::release::tests::test_bump_major ... ok
[INFO] [stdout] test claude::paths::tests::test_project_paths_structure ... ok
[INFO] [stdout] test cli::release::tests::test_bump_invalid_version ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_empty_file_returns_error ... ok
[INFO] [stdout] test claude::settings::tests::test_load_save_roundtrip ... ok
[INFO] [stdout] test claude::settings::tests::test_save_settings_creates_parent_dirs ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_multiple_conflicts ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_no_markers ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_with_markers ... ok
[INFO] [stdout] test cli::self_update::tests::test_parse_checksum ... ok
[INFO] [stdout] test cli::update::tests::test_bump_patch_non_semver ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_missing_file ... ok
[INFO] [stdout] test cli::self_update::tests::test_compute_sha256 ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_preserves_unknown_keys ... ok
[INFO] [stdout] test cli::update::tests::test_update_not_found ... ok
[INFO] [stdout] test cli::update::tests::test_bump_patch_semver ... ok
[INFO] [stdout] test cli::release::tests::test_bump_minor ... ok
[INFO] [stdout] test cli::release::tests::test_bump_patch ... ok
[INFO] [stdout] test i18n::tests::test_msg_get_uses_lang_directly ... ok
[INFO] [stdout] test i18n::tests::test_msg_translations_differ ... ok
[INFO] [stdout] test cli::release::tests::test_read_cargo_version ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_multiple_servers_at_once ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_empty_servers_preserves_file ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_creates_new_file ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_registry_exists ... ok
[INFO] [stdout] test cli::update::tests::test_update_plugin_in_manifest ... ok
[INFO] [stdout] test claude::settings::tests::test_save_load_roundtrip_complex_settings ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_creates_parent_directories ... ok
[INFO] [stdout] test cli::update::tests::test_update_skill_in_manifest ... ok
[INFO] [stdout] test i18n::tests::test_lang_system_fallback ... ok
[INFO] [stdout] test cli::release::tests::test_update_cargo_version ... ok
[INFO] [stdout] test i18n::tests::test_lang_zh_override ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_simple ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_with_named_marketplace ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_with_url_marketplace ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_server_with_no_args ... ok
[INFO] [stdout] test cli::self_update::tests::test_platform_has_binary_name ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_read_lock_file_nonexistent ... ok
[INFO] [stdout] test cli::update::tests::test_update_skill_with_new_path ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_skillsync_config_empty ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_result_display ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_preserves_existing_entries ... ok
[INFO] [stdout] test registry::config::tests::test_default_config ... ok
[INFO] [stdout] test registry::config::tests::test_save_and_load ... ok
[INFO] [stdout] test registry::discover::tests::test_scan_no_projects_dir ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_with_url_marketplace ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_to_file_without_mcp_servers_key ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_lock_file_roundtrip_empty ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_nonexistent_source ... ok
[INFO] [stdout] test registry::config::tests::test_load_nonexistent ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_and_read_lock_file ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_updates_existing_server ... ok
[INFO] [stdout] test registry::manifest::tests::test_default_empty_manifest ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_fresh ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_empty_file_fails ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_updated_when_changed ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_invalid_yaml_fails ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_skipped_when_identical ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_and_read_skillsync_config ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_preserves_extra_top_level_keys ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_basic ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_nonexistent_file ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_missing_version_field ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_multiple_validation_errors ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_already_enabled ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_empty_profile_path ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_errors ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_wrong_version ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_config_load_empty_yaml_fails ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_community_skill_with_source_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_roundtrip ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_config_minimal ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_custom_skill_without_source_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_empty_fields ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_partial_fields ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_roundtrip ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_save_creates_parent_dirs ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_empty_mcp_command ... ok
[INFO] [stdout] test registry::resource::tests::test_resource_type_display ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_roundtrip ... ok
[INFO] [stdout] test registry::resource::tests::test_compute_hash_deterministic ... ok
[INFO] [stdout] test registry::resource::tests::test_compute_hash_changes_on_content_change ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_dir ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_replaces_existing ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_single_file ... ok
[INFO] [stdout] test registry::git_ops::tests::test_open_repo_nonexistent ... ok
[INFO] [stdout] test state::db::tests::test_open_creates_tables ... ok
[INFO] [stdout] test state::db::tests::test_record_and_get_installed_global ... ok
[INFO] [stdout] test state::db::tests::test_recent_syncs_empty ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_disjoint ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_empty ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_identical ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_partial ... ok
[INFO] [stdout] test state::db::tests::test_record_and_get_installed_project ... ok
[INFO] [stdout] test state::db::tests::test_open_idempotent ... ok
[INFO] [stdout] test state::db::tests::test_record_install_upsert ... ok
[INFO] [stdout] test state::db::tests::test_list_installed ... ok
[INFO] [stdout] test state::db::tests::test_record_and_recent_syncs ... ok
[INFO] [stdout] test state::db::tests::test_remove_installed ... ok
[INFO] [stdout] test state::db::tests::test_remove_installed_project_scoped ... ok
[INFO] [stdout] test registry::git_ops::tests::test_open_repo ... ok
[INFO] [stdout] test registry::discover::tests::test_is_git_repo ... ok
[INFO] [stdout] test registry::git_ops::tests::test_repo_status_clean ... ok
[INFO] [stdout] test registry::git_ops::tests::test_fetch_origin_no_remote ... ok
[INFO] [stdout] test registry::git_ops::tests::test_repo_status_with_changes ... ok
[INFO] [stdout] test registry::git_ops::tests::test_stage_all_picks_up_deletions ... ok
[INFO] [stdout] test registry::git_ops::tests::test_stage_all_and_commit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 131 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/skillsync-5b785b8df7144c49)
[INFO] [stdout] 
[INFO] [stdout] running 131 tests
[INFO] [stdout] test claude::hooks::tests::test_has_hook_no_hooks_key ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_empty_settings ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_idempotent ... ok
[INFO] [stdout] test claude::hooks::tests::test_install_hook_preserves_existing ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook_empty_settings ... ok
[INFO] [stdout] test claude::hooks::tests::test_has_hook_matches_substring ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook_not_present ... ok
[INFO] [stdout] test claude::hooks::tests::test_remove_hook ... ok
[INFO] [stdout] test claude::paths::tests::test_global_paths_structure ... ok
[INFO] [stdout] test claude::paths::tests::test_global_ensure_dirs ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_paths_resolve ... ok
[INFO] [stdout] test claude::paths::tests::test_project_paths_structure ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_no_duplicates ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_creates_array ... ok
[INFO] [stdout] test claude::paths::tests::test_project_has_config ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_paths_with_root ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_no_duplicates ... ok
[INFO] [stdout] test claude::paths::tests::test_project_ensure_dirs ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_creates_array ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_preserves_existing ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_preserves_other_settings ... ok
[INFO] [stdout] test claude::settings::tests::test_enable_plugin_dedup_multiple_calls ... ok
[INFO] [stdout] test claude::settings::tests::test_add_marketplace_dedup_multiple_calls ... ok
[INFO] [stdout] test cli::release::tests::test_bump_major ... ok
[INFO] [stdout] test cli::release::tests::test_bump_minor ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_missing_file ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_empty_file_returns_error ... ok
[INFO] [stdout] test claude::settings::tests::test_load_save_roundtrip ... ok
[INFO] [stdout] test cli::release::tests::test_bump_patch ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_multiple_conflicts ... ok
[INFO] [stdout] test cli::release::tests::test_read_cargo_version ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_with_markers ... ok
[INFO] [stdout] test cli::self_update::tests::test_parse_checksum ... ok
[INFO] [stdout] test cli::self_update::tests::test_compute_sha256 ... ok
[INFO] [stdout] test cli::update::tests::test_bump_patch_semver ... ok
[INFO] [stdout] test claude::settings::tests::test_save_settings_creates_parent_dirs ... ok
[INFO] [stdout] test cli::self_update::tests::test_platform_has_binary_name ... ok
[INFO] [stdout] test claude::settings::tests::test_save_load_roundtrip_complex_settings ... ok
[INFO] [stdout] test cli::resolve::tests::test_extract_conflict_sides_no_markers ... ok
[INFO] [stdout] test cli::update::tests::test_update_not_found ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_registry_exists ... ok
[INFO] [stdout] test cli::update::tests::test_update_plugin_in_manifest ... ok
[INFO] [stdout] test cli::release::tests::test_bump_invalid_version ... ok
[INFO] [stdout] test cli::update::tests::test_bump_patch_non_semver ... ok
[INFO] [stdout] test claude::settings::tests::test_load_settings_preserves_unknown_keys ... ok
[INFO] [stdout] test i18n::tests::test_lang_system_fallback ... ok
[INFO] [stdout] test cli::update::tests::test_update_skill_in_manifest ... ok
[INFO] [stdout] test claude::paths::tests::test_skillsync_ensure_registry_dirs ... ok
[INFO] [stdout] test i18n::tests::test_lang_zh_override ... ok
[INFO] [stdout] test i18n::tests::test_msg_get_uses_lang_directly ... ok
[INFO] [stdout] test cli::release::tests::test_update_cargo_version ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_multiple_servers_at_once ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_creates_new_file ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_preserves_existing_entries ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_creates_parent_directories ... ok
[INFO] [stdout] test i18n::tests::test_msg_translations_differ ... ok
[INFO] [stdout] test cli::update::tests::test_update_skill_with_new_path ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_with_url_marketplace ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_simple ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_with_named_marketplace ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_server_with_no_args ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_basic ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_parse_plugin_name_with_url_marketplace ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_preserves_extra_top_level_keys ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_empty_servers_preserves_file ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_to_file_without_mcp_servers_key ... ok
[INFO] [stdout] test installer::plugin_installer::tests::test_enable_plugins_already_enabled ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_lock_file_roundtrip_empty ... ok
[INFO] [stdout] test installer::mcp_installer::tests::test_merge_updates_existing_server ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_read_lock_file_nonexistent ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_and_read_lock_file ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_result_display ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_skillsync_config_empty ... ok
[INFO] [stdout] test installer::settings_merger::tests::test_write_and_read_skillsync_config ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_nonexistent_source ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_fresh ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_skipped_when_identical ... ok
[INFO] [stdout] test registry::config::tests::test_default_config ... ok
[INFO] [stdout] test registry::config::tests::test_load_nonexistent ... ok
[INFO] [stdout] test registry::config::tests::test_save_and_load ... ok
[INFO] [stdout] test registry::discover::tests::test_scan_no_projects_dir ... ok
[INFO] [stdout] test installer::skill_installer::tests::test_install_skill_updated_when_changed ... ok
[INFO] [stdout] test registry::manifest::tests::test_default_empty_manifest ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_empty_file_fails ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_invalid_yaml_fails ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_nonexistent_file ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_multiple_validation_errors ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_load_missing_version_field ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_community_skill_with_source_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_save_creates_parent_dirs ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_custom_skill_without_source_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_empty_mcp_command ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_empty_profile_path ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_roundtrip ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_errors ... ok
[INFO] [stdout] test registry::git_ops::tests::test_open_repo_nonexistent ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_ok ... ok
[INFO] [stdout] test registry::manifest::tests::test_manifest_validate_wrong_version ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_config_minimal ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_config_load_empty_yaml_fails ... ok
[INFO] [stdout] test registry::manifest::tests::test_profile_roundtrip ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_single_file ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_replaces_existing ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_partial_fields ... ok
[INFO] [stdout] test registry::resource::tests::test_compute_hash_changes_on_content_change ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_empty_fields ... ok
[INFO] [stdout] test registry::resource::tests::test_resource_type_display ... ok
[INFO] [stdout] test registry::manifest::tests::test_skillsync_config_roundtrip ... ok
[INFO] [stdout] test registry::resource::tests::test_compute_hash_deterministic ... ok
[INFO] [stdout] test registry::resource::tests::test_copy_resource_dir ... ok
[INFO] [stdout] test registry::git_ops::tests::test_open_repo ... ok
[INFO] [stdout] test registry::discover::tests::test_is_git_repo ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_disjoint ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_empty ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_identical ... ok
[INFO] [stdout] test tui::diff_viewer::tests::test_compute_lcs_partial ... ok
[INFO] [stdout] test registry::git_ops::tests::test_repo_status_with_changes ... ok
[INFO] [stdout] test state::db::tests::test_open_creates_tables ... ok
[INFO] [stdout] test registry::git_ops::tests::test_fetch_origin_no_remote ... ok
[INFO] [stdout] test registry::git_ops::tests::test_repo_status_clean ... ok
[INFO] [stdout] test state::db::tests::test_recent_syncs_empty ... ok
[INFO] [stdout] test registry::git_ops::tests::test_stage_all_picks_up_deletions ... ok
[INFO] [stdout] test state::db::tests::test_record_and_get_installed_global ... ok
[INFO] [stdout] test registry::git_ops::tests::test_stage_all_and_commit ... ok
[INFO] [stdout] test state::db::tests::test_record_and_get_installed_project ... ok
[INFO] [stdout] test state::db::tests::test_open_idempotent ... ok
[INFO] [stdout] test state::db::tests::test_record_and_recent_syncs ... ok
[INFO] [stdout] test state::db::tests::test_record_install_upsert ... ok
[INFO] [stdout] test state::db::tests::test_remove_installed ... ok
[INFO] [stdout] test state::db::tests::test_list_installed ... ok
[INFO] [stdout] test state::db::tests::test_remove_installed_project_scoped ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 131 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-71ab2cf567bcb30b)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_install_project_skills_missing_name_errors ... ok
[INFO] [stdout] test test_lock_file_full_roundtrip ... ok
[INFO] [stdout] test test_manifest_save_load_validate_cycle ... ok
[INFO] [stdout] test test_skillsync_config_write_load_roundtrip ... ok
[INFO] [stdout] test test_hash_consistent_after_copy ... ok
[INFO] [stdout] test test_skillsync_paths_registry_lifecycle ... ok
[INFO] [stdout] test test_profile_create_and_apply_workflow ... ok
[INFO] [stdout] test test_settings_and_hooks_integration ... ok
[INFO] [stdout] test test_mcp_merge_preserves_all_existing_entries ... ok
[INFO] [stdout] test test_skill_install_detects_update ... ok
[INFO] [stdout] test test_full_workflow_init_add_list_install ... ok
[INFO] [stdout] test test_state_db_integration_with_install_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests skillsync
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test src/i18n/mod.rs - i18n::t (line 1243) ... ignored
[INFO] [stdout] test src/i18n/mod.rs - i18n::t (line 1248) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "672dce32a99907ad24dbf92a1280d8a9b666dffca0bd36f3fa7379854ab2c48f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "672dce32a99907ad24dbf92a1280d8a9b666dffca0bd36f3fa7379854ab2c48f", kill_on_drop: false }`
[INFO] [stdout] 672dce32a99907ad24dbf92a1280d8a9b666dffca0bd36f3fa7379854ab2c48f
