[INFO] cloning repository https://github.com/jordan-gibbs/knack-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jordan-gibbs/knack-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-gibbs%2Fknack-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-gibbs%2Fknack-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a88f1e63dd65201025654e0aa426ed972d49382f
[INFO] testing jordan-gibbs/knack-cli against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjordan-gibbs%2Fknack-cli" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jordan-gibbs/knack-cli
[INFO] finished tweaking git repo https://github.com/jordan-gibbs/knack-cli
[INFO] tweaked toml for git repo https://github.com/jordan-gibbs/knack-cli written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jordan-gibbs/knack-cli on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jordan-gibbs/knack-cli 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded linux-keyutils v0.2.5
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782
[INFO] running `Command { std: "docker" "start" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling linux-keyutils v0.2.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling tar v0.4.46
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libz-sys v1.1.28
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[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 knack-types v0.1.0 (/opt/rustwide/workdir/crates/knack-types)
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling webbrowser v1.2.1
[INFO] [stderr]    Compiling hyper v1.10.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling knack-backend-github v0.7.21 (/opt/rustwide/workdir/crates/knack-backend-github)
[INFO] [stderr]    Compiling knack v0.7.21 (/opt/rustwide/workdir/crates/knack)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 51s
[INFO] running `Command { std: "docker" "inspect" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling knack-types v0.1.0 (/opt/rustwide/workdir/crates/knack-types)
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hyper v1.10.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling knack-backend-github v0.7.21 (/opt/rustwide/workdir/crates/knack-backend-github)
[INFO] [stderr]    Compiling knack v0.7.21 (/opt/rustwide/workdir/crates/knack)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.56s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knack_cli-611c1ea660a3af79)
[INFO] [stdout] 
[INFO] [stdout] running 160 tests
[INFO] [stdout] test api::tests::maps_403_plan_limit_to_plan_variant ... ok
[INFO] [stdout] test api::tests::maps_404_to_not_found ... ok
[INFO] [stdout] test api::tests::maps_5xx_to_server ... ok
[INFO] [stdout] test api::tests::maps_401_to_auth_failed ... ok
[INFO] [stdout] test api::tests::maps_409_to_conflict ... ok
[INFO] [stdout] test auth_store::tests::stored_credential_is_pat_detection ... ok
[INFO] [stdout] test commands::auth::tests::human_duration_zero ... ok
[INFO] [stdout] test auth_store::tests::file_store_missing_file_returns_none ... ok
[INFO] [stdout] test commands::auth::tests::base64url_decode_basic ... ok
[INFO] [stdout] test commands::auth::tests::human_duration_days_hours ... ok
[INFO] [stdout] test commands::auth::tests::human_duration_hours_mins ... ok
[INFO] [stdout] test auth_store::tests::memory_store_isolates_accounts ... ok
[INFO] [stdout] test auth_store::tests::memory_store_round_trips ... ok
[INFO] [stdout] test commands::auth::tests::jwt_exp_decode_with_far_future_exp ... ok
[INFO] [stdout] test commands::create::tests::scaffold_rejects_non_empty_target ... ok
[INFO] [stdout] test commands::create::tests::scope_team_requires_id ... ok
[INFO] [stdout] test commands::create::tests::scope_personal_no_team ... ok
[INFO] [stdout] test commands::create::tests::scaffold_writes_three_required_files ... ok
[INFO] [stdout] test commands::create::tests::scope_public_no_team ... ok
[INFO] [stdout] test commands::create::tests::scope_rejects_unknown ... ok
[INFO] [stdout] test commands::create::tests::slug_rejects_empty ... ok
[INFO] [stdout] test commands::create::tests::slug_rejects_leading_hyphen ... ok
[INFO] [stdout] test commands::create::tests::slug_rejects_underscore ... ok
[INFO] [stdout] test commands::create::tests::slug_rejects_uppercase ... ok
[INFO] [stdout] test commands::debug::tests::host_of_strips_scheme_and_path ... ok
[INFO] [stdout] test commands::diff::tests::split_parses_slug_at_version ... ok
[INFO] [stdout] test commands::diff::tests::split_rejects_missing_at ... ok
[INFO] [stdout] test commands::create::tests::slug_accepts_canonical ... ok
[INFO] [stdout] test auth_store::tests::file_store_accepts_legacy_access_token_field ... ok
[INFO] [stdout] test auth_store::tests::auth_file_path_ignores_codex_home_with_nonstandard_basename ... ok
[INFO] [stdout] test commands::info_chunks::tests::toc_lists_every_slug ... ok
[INFO] [stdout] test commands::info_chunks::tests::unknown_slug_is_none ... ok
[INFO] [stdout] test commands::diff::tests::unified_diff_marks_changes ... ok
[INFO] [stdout] test commands::diff::tests::unified_diff_empty_when_identical ... ok
[INFO] [stdout] test auth_store::tests::file_store_isolates_accounts ... ok
[INFO] [stdout] test commands::install::block::tests::remove_deletes_file_when_empty_after ... ok
[INFO] [stdout] test auth_store::tests::auth_file_path_uses_codex_sandbox_fallback_when_codex_home_ends_in_dot_codex ... ok
[INFO] [stdout] test commands::init::tests::parses_owner_repo ... ok
[INFO] [stdout] test commands::info_chunks::tests::running_keeps_nested_markers_and_does_not_bleed_into_sharing ... ok
[INFO] [stdout] test auth_store::tests::file_store_atomic_write_leaves_no_tempfiles ... ok
[INFO] [stdout] test commands::info_chunks::tests::overview_is_the_intro_only ... ok
[INFO] [stdout] test auth_store::tests::file_store_rejects_unknown_schema_version ... ok
[INFO] [stdout] test commands::install::block::tests::remove_on_missing_file_is_noop ... ok
[INFO] [stdout] test auth_store::tests::file_store_writes_with_0600_perms ... ok
[INFO] [stdout] test auth_store::tests::auth_file_path_env_override_beats_codex_fallback ... ok
[INFO] [stdout] test commands::install::block::tests::upsert_creates_missing_file ... ok
[INFO] [stdout] test commands::info_chunks::tests::distinct_sections_do_not_collide ... ok
[INFO] [stdout] test auth_store::tests::file_store_round_trips ... ok
[INFO] [stdout] test commands::install::block::tests::upsert_replaces_old_block ... ok
[INFO] [stdout] test commands::install::block::tests::upsert_is_idempotent ... ok
[INFO] [stdout] test commands::install::block::tests::remove_strips_block_only ... ok
[INFO] [stdout] test commands::install::block::tests::upsert_preserves_existing_content ... ok
[INFO] [stdout] test commands::init::tests::init_creates_workspace_at_explicit_path ... ok
[INFO] [stdout] test commands::install::installed::tests::add_dedupes_same_slug_same_scope ... ok
[INFO] [stdout] test commands::install::shim::tests::file_carries_sigil_matches_body_sigil_not_only_line_one ... ok
[INFO] [stdout] test commands::install::shim::tests::remove_linked_skill_refuses_user_authored_folder ... ok
[INFO] [stdout] test commands::install::shim::tests::remove_native_skill_refuses_without_sigil ... ok
[INFO] [stdout] test commands::install::shim::tests::render_linked_skill_keeps_frontmatter_first_and_wraps_body ... ok
[INFO] [stdout] test commands::install::installed::tests::add_keeps_same_slug_different_scope ... ok
[INFO] [stdout] test commands::init::tests::init_is_idempotent ... ok
[INFO] [stdout] test commands::install::linked::tests::add_dedupes_same_slug_same_scope_keeps_both_scopes ... ok
[INFO] [stdout] test commands::install::shim::tests::render_linked_skill_without_frontmatter_puts_sigil_first ... ok
[INFO] [stdout] test commands::install::shim::tests::remove_native_skill_deletes_with_sigil ... ok
[INFO] [stdout] test commands::install::shim::tests::foreign_skill_present_guards_user_authored_slug ... ok
[INFO] [stdout] test commands::install::shim::tests::render_native_rule_emits_mdc_with_alwaysapply_false ... ok
[INFO] [stdout] test commands::install::shim::tests::remove_skill_block_only_removes_matching_slug ... ok
[INFO] [stdout] test commands::install::shim::tests::render_native_skill_uses_frontmatter_description ... ok
[INFO] [stdout] test commands::install::shim::tests::render_text_block_includes_slug_and_description ... ok
[INFO] [stdout] test commands::install::shim::tests::split_frontmatter_handles_both_shapes ... ok
[INFO] [stdout] test commands::install::tests::apply_dry_run_single_outcome_for_textblock_target ... ok
[INFO] [stdout] test commands::install::shim::tests::upsert_skill_block_is_idempotent ... ok
[INFO] [stdout] test commands::install::shim::tests::upsert_skill_block_appends_when_no_install_block_exists ... ok
[INFO] [stdout] test commands::install::shim::tests::write_native_skill_is_idempotent ... ok
[INFO] [stdout] test commands::install::tests::install_path_native_rule_lands_at_bare_knack_mdc ... ok
[INFO] [stdout] test commands::install::tests::install_path_native_skill_lands_in_skills_subdir ... ok
[INFO] [stdout] test commands::install::shim::tests::upsert_skill_block_inserts_after_install_block_when_present ... ok
[INFO] [stdout] test commands::install::tests::render_body_native_skill_emits_skill_md_with_sigil_and_frontmatter ... ok
[INFO] [stdout] test commands::install::tests::target_names_includes_every_planned_agent ... ok
[INFO] [stdout] test commands::install::installed::tests::add_then_remove_round_trips ... ok
[INFO] [stdout] test commands::install::tests::render_body_native_rule_emits_mdc_with_alwaysapply_false ... ok
[INFO] [stdout] test commands::install::tests::render_body_textblock_is_plain_markdown_no_frontmatter ... ok
[INFO] [stdout] test commands::install::linked::tests::add_then_remove_round_trips ... ok
[INFO] [stdout] test commands::link::tests::safe_slug_accepts_real_slugs_rejects_traversal ... ok
[INFO] [stdout] test commands::install::installed::tests::load_missing_file_returns_empty ... ok
[INFO] [stdout] test commands::install::tests::targets_find_returns_none_for_unknown ... ok
[INFO] [stdout] test commands::install::linked::tests::load_missing_returns_empty ... ok
[INFO] [stdout] test commands::install::shim::tests::write_and_remove_linked_skill_round_trip ... ok
[INFO] [stdout] test commands::install::shim::tests::upsert_skill_block_replaces_existing_same_slug ... ok
[INFO] [stdout] test commands::install::installed::tests::save_is_atomic_via_tempfile_rename ... ok
[INFO] [stdout] test commands::mark::tests::mark_failed_envelope_includes_hint_when_present ... ok
[INFO] [stdout] test commands::publish::tests::bump_minor ... ok
[INFO] [stdout] test commands::publish::tests::bump_patch_basic ... ok
[INFO] [stdout] test commands::publish::tests::bump_rejects_garbage ... ok
[INFO] [stdout] test commands::publish::tests::bump_patch_rejects_garbage ... ok
[INFO] [stdout] test commands::uninstall::tests::guess_binary_path_returns_platform_default ... ok
[INFO] [stdout] test commands::uninstall::tests::script_oneliner_matches_platform ... ok
[INFO] [stdout] test commands::pull::tests::write_if_changed_creates_new_file ... ok
[INFO] [stdout] test commands::upgrade::tests::print_flag_short_circuits_run ... ok
[INFO] [stdout] test commands::upgrade::tests::platform_oneliner_matches_target ... ok
[INFO] [stdout] test commands::publish::tests::bump_major ... ok
[INFO] [stdout] test commands::pull::tests::write_if_changed_writes_on_diff ... ok
[INFO] [stdout] test commands::pull::tests::write_if_changed_skips_when_identical ... ok
[INFO] [stdout] test commands::install::tests::apply_dry_run_returns_two_outcomes_per_native_skill_target ... ok
[INFO] [stdout] test commands::install::tests::apply_dry_run_single_outcome_for_cursor ... ok
[INFO] [stdout] test commands::introspect::tests::exit_codes_table_complete ... ok
[INFO] [stdout] test errors::tests::auth_required_has_hint ... ok
[INFO] [stdout] test docs::tests::find_known_topic ... ok
[INFO] [stdout] test errors::tests::exit_codes_are_stable ... ok
[INFO] [stdout] test errors::tests::error_kind_to_exit_code ... ok
[INFO] [stdout] test config::tests::config_strips_trailing_slash ... ok
[INFO] [stdout] test config::tests::link_scope_default_is_home ... ok
[INFO] [stdout] test docs::tests::every_topic_loaded_and_nonempty ... ok
[INFO] [stdout] test docs::tests::toc_lists_every_topic ... ok
[INFO] [stdout] test commands::upgrade::tests::windows_never_auto_runs ... ok
[INFO] [stdout] test config::tests::link_scope_parses_documented_and_synonym_values ... ok
[INFO] [stdout] test output::tests::schema_pins_v1 ... ok
[INFO] [stdout] test output::tests::err_envelope_omits_hint_when_none ... ok
[INFO] [stdout] test skill_pack::tests::check_safe_name_rejects_traversal_and_absolute ... ok
[INFO] [stdout] test output::tests::ok_envelope_has_schema_marker ... ok
[INFO] [stdout] test output::tests::err_envelope_carries_code_and_hint ... ok
[INFO] [stdout] test skill_pack::tests::packed_s3_key_canonical ... ok
[INFO] [stdout] test skill_pack::tests::parse_frontmatter_ignores_extra_fields ... ok
[INFO] [stdout] test commands::introspect::tests::auth_subcommand_has_login_logout_status ... ok
[INFO] [stdout] test skill_pack::tests::parse_frontmatter_lifts_name_and_description ... ok
[INFO] [stdout] test config::tests::skills_dir_falls_back_when_no_home ... ok
[INFO] [stdout] test commands::introspect::tests::root_command_has_all_subcommands ... ok
[INFO] [stdout] test skill_pack::tests::pack_rejects_missing_required ... ok
[INFO] [stdout] test slug::tests::handle_slug_with_version ... ok
[INFO] [stdout] test docs::tests::find_unknown_topic_is_none ... ok
[INFO] [stdout] test slug::tests::v_prefix_left_intact ... ok
[INFO] [stdout] test skill_validators::tests::ok_when_both_files_present_and_nonempty ... ok
[INFO] [stdout] test slug::tests::with_version ... ok
[INFO] [stdout] test skill_pack::tests::parse_frontmatter_tolerates_bom_and_blank_lines ... ok
[INFO] [stdout] test skill_pack::tests::parse_frontmatter_returns_none_when_no_fence ... ok
[INFO] [stdout] test slug::tests::without_version ... ok
[INFO] [stdout] test skill_validators::tests::flags_missing_skill_md ... ok
[INFO] [stdout] test skill_pack::tests::parse_frontmatter_no_close_fence_returns_none ... ok
[INFO] [stdout] test skill_validators::tests::flags_empty_meta_yaml ... ok
[INFO] [stdout] test skill_validators::tests::flags_missing_dir ... ok
[INFO] [stdout] test skill_validators::tests::details_envelope_carries_issue_array ... ok
[INFO] [stdout] test workspace::tests::discover_stops_at_home_even_when_home_knack_exists ... ok
[INFO] [stdout] test workspace::tests::init_workspace_preserves_existing_root_gitignore ... ok
[INFO] [stdout] test workspace::tests::discover_finds_nearest_dot_knack ... ok
[INFO] [stdout] test workspace::tests::discover_returns_none_when_no_workspace_exists ... ok
[INFO] [stdout] test workspace::tests::init_workspace_adds_dot_knack_to_root_gitignore_inside_git_repo ... ok
[INFO] [stdout] test commands::info_chunks::tests::every_slug_resolves_to_a_nonempty_section ... ok
[INFO] [stdout] test workspace::tests::discover_finds_workspace_above_start_below_home ... ok
[INFO] [stdout] test slug::tests::handle_slug_no_version ... ok
[INFO] [stdout] test workspace::tests::resolve_skills_root_global_falls_back_to_home ... ok
[INFO] [stdout] test workspace::tests::resolve_skills_root_prefers_explicit_target ... ok
[INFO] [stdout] test workspace::tests::init_workspace_skips_root_gitignore_when_not_a_git_repo ... ok
[INFO] [stdout] test skill_pack::tests::pack_includes_full_anthropic_layout ... ok
[INFO] [stdout] test workspace::tests::init_workspace_is_idempotent ... ok
[INFO] [stdout] test workspace::tests::resolve_existing_skill_dir_prefers_drafts ... ok
[INFO] [stdout] test skill_pack::tests::pack_unpack_round_trip_minimal ... ok
[INFO] [stdout] test workspace::tests::resolve_skills_root_falls_back_to_cwd_dot_knack ... ok
[INFO] [stdout] test workspace::tests::resolve_skills_root_uses_discovered_workspace ... ok
[INFO] [stdout] test skill_pack::tests::unpack_rejects_newer_manifest_version ... ok
[INFO] [stdout] test workspace::tests::init_workspace_root_gitignore_is_idempotent ... ok
[INFO] [stdout] test commands::completions::tests::root_command_renders_for_every_shell ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/knack-f7d5c45e1767b70b)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 160 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.28s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth.rs (/opt/rustwide/target/debug/deps/auth-31be20b2bc8bf2b1)
[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] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test me_endpoint_returns_user_info ... ok
[INFO] [stdout] test device_poll_pending_then_approved ... ok
[INFO] [stdout] test revoke_cli_token_calls_delete ... ok
[INFO] [stdout] test pat_401_does_not_attempt_refresh ... ok
[INFO] [stdout] test create_cli_token_returns_plaintext ... ok
[INFO] [stdout] test refresh_on_401_retries_and_persists_new_tokens ... ok
[INFO] [stdout] test device_start_returns_codes_and_uri ... ok
[INFO] [stdout] test refresh_failure_clears_store_and_surfaces_auth_required ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/link.rs (/opt/rustwide/target/debug/deps/link-8b9dd3ef28c7c9b1)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test link_writes_wrapped_skill_then_unlink_removes_it ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/runs.rs (/opt/rustwide/target/debug/deps/runs-802ad2c4348ad92c)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test skill_stats_untagged_enum_round_trips ... ok
[INFO] [stdout] test finish_run_includes_status_and_outputs ... ok
[INFO] [stdout] test get_stats_cross_tab_version_and_agent ... ok
[INFO] [stdout] test get_stats_group_by_version_returns_buckets_with_p50 ... ok
[INFO] [stdout] test mark_404_when_run_unknown ... ok
[INFO] [stdout] test get_stats_default_returns_flat_shape ... ok
[INFO] [stdout] test get_overview_returns_summary_with_regressions ... ok
[INFO] [stdout] test mark_run_posts_status_and_note ... ok
[INFO] [stdout] test start_run_posts_skill_version_id ... ok
[INFO] [stdout] test list_for_skill_threads_filters_into_query ... ok
[INFO] [stdout] test get_trend_daily_returns_series ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/runs_aggregate.rs (/opt/rustwide/target/debug/deps/runs_aggregate-56dc71463b0a6943)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test cross_tab_version_and_agent_isolates_per_agent_regression ... ok
[INFO] [stdout] test trend_weekly_buckets_align_to_monday ... ok
[INFO] [stdout] test overview_no_regression_when_only_one_version ... ok
[INFO] [stdout] test overview_stale_when_no_runs ... ok
[INFO] [stdout] test detect_regression_returns_none_when_current_better ... ok
[INFO] [stdout] test trend_daily_emits_gap_free_series ... ok
[INFO] [stdout] test scan_then_group_by_version_matches_smoke_test_expectations ... ok
[INFO] [stdout] test overview_detects_regression ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/skills.rs (/opt/rustwide/target/debug/deps/skills-faa6bd0ff6dbc217)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test list_returns_paged_skills ... ok
[INFO] [stdout] test get_version_404_maps_to_not_found ... ok
[INFO] [stdout] test server_5xx_maps_to_server_error ... ok
[INFO] [stdout] test find_by_slug_paginates_and_matches ... ok
[INFO] [stdout] test create_409_maps_to_conflict ... ok
[INFO] [stdout] test create_version_posts_full_body ... ok
[INFO] [stdout] test list_filters_by_scope ... ok
[INFO] [stdout] test create_posts_full_body_and_returns_skill ... ok
[INFO] [stdout] test create_propagates_description_on_wire ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/smoke.rs (/opt/rustwide/target/debug/deps/smoke-2d85bd04c6097105)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test exit_codes_pin_v0_7_x_table ... ok
[INFO] [stdout] test json_envelopes_carry_schema_marker_v1 ... ok
[INFO] [stdout] test user_error_inner_code_wins_over_generic ... ok
[INFO] [stdout] test every_error_variant_maps_to_documented_exit_code ... ok
[INFO] [stdout] test partial_preserves_counts_in_envelope ... ok
[INFO] [stdout] test auth_required_carries_actionable_hint ... ok
[INFO] [stdout] test server_500_maps_to_internal_exit ... ok
[INFO] [stdout] test plan_limit_403_maps_to_plan_exit ... ok
[INFO] [stdout] test network_error_maps_to_network_exit ... ok
[INFO] [stdout] test pat_credential_does_not_attempt_refresh_on_401 ... ok
[INFO] [stdout] test overview_response_parses_regression_and_stale_blocks ... ok
[INFO] [stdout] test cli_token_create_then_revoke_round_trip ... ok
[INFO] [stdout] test runs_by_skill_404_maps_to_not_found_user_exit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knack_backend_github-37f659535a663965)
[INFO] [stdout] 
[INFO] [stdout] running 39 tests
[INFO] [stdout] test aggregate::tests::legacy_aborted_status_rolls_into_failed ... ok
[INFO] [stdout] test aggregate::tests::group_buckets_no_dimensions_returns_one_overall_bucket ... ok
[INFO] [stdout] test aggregate::tests::top_notes_collapses_cosmetic_variants ... ok
[INFO] [stdout] test aggregate::tests::top_notes_orders_by_count_then_text ... ok
[INFO] [stdout] test aggregate::tests::group_buckets_by_version_splits_cohorts ... ok
[INFO] [stdout] test aggregate::tests::bucket_no_marked_runs_returns_no_rate ... ok
[INFO] [stdout] test aggregate::tests::group_buckets_cross_tab_version_and_agent ... ok
[INFO] [stdout] test aggregate::tests::bucket_counts_and_rate ... ok
[INFO] [stdout] test git::tests::fallback_is_origin_main ... ok
[INFO] [stdout] test external::tests::parse_with_version ... ok
[INFO] [stdout] test git::tests::parse_https_url ... ok
[INFO] [stdout] test external::tests::parse_default_repo ... ok
[INFO] [stdout] test git::tests::parse_non_github_returns_none ... ok
[INFO] [stdout] test runs::tests::is_valid_day_file_name_validates ... ok
[INFO] [stdout] test runs::tests::is_valid_month_dir_name_validates ... ok
[INFO] [stdout] test workspace::tests::missing_file_returns_none ... ok
[INFO] [stdout] test runs::tests::find_run_recovers_run_outside_lookback_window ... ok
[INFO] [stdout] test workspace::tests::policy_cli_no_push_beats_workspace_true ... ok
[INFO] [stdout] test workspace::tests::policy_cli_beats_env ... ok
[INFO] [stdout] test workspace::tests::policy_default_is_push ... ok
[INFO] [stdout] test runs::tests::find_run_skips_non_ymd_dirs_and_files ... ok
[INFO] [stdout] test workspace::tests::policy_env_accepts_false_and_no ... ok
[INFO] [stdout] test workspace::tests::yaml_with_auto_push_true_returns_true ... ok
[INFO] [stdout] test workspace::tests::policy_workspace_false_disables_push ... ok
[INFO] [stdout] test workspace::tests::yaml_with_auto_push_false_returns_false ... ok
[INFO] [stdout] test backend::tests::search_tolerates_missing_skill_md ... ok
[INFO] [stdout] test workspace::tests::yaml_without_auto_push_returns_none ... ok
[INFO] [stdout] test backend::tests::search_still_matches_description ... ok
[INFO] [stdout] test external::tests::rejects_no_at_prefix ... ok
[INFO] [stdout] test workspace::tests::policy_malformed_yaml_propagates_error ... ok
[INFO] [stdout] test workspace::tests::policy_env_kill_beats_workspace_true ... ok
[INFO] [stdout] test workspace::tests::policy_workspace_true_keeps_push ... ok
[INFO] [stdout] test backend::tests::search_still_matches_slug ... ok
[INFO] [stdout] test git::tests::parse_ssh_url ... ok
[INFO] [stdout] test backend::tests::search_matches_skill_md_body_when_slug_and_description_miss ... ok
[INFO] [stdout] test external::tests::parse_custom_repo ... ok
[INFO] [stdout] test backend::tests::dirty_check_ignores_gitignored_knack_workspace ... ok
[INFO] [stdout] test backend::tests::dirty_check_flags_real_unrelated_changes ... ok
[INFO] [stdout] test backend::tests::dirty_check_allows_changes_inside_current_skill_prefix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 39 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/knack_types-1dc0a51b0236348d)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tls::tests::flags_override_env ... ok
[INFO] [stdout] test tls::tests::truthy_accepts_common_forms ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests knack_cli
[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]    Doc-tests knack_backend_github
[INFO] [stderr]    Doc-tests knack_types
[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] [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" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782", kill_on_drop: false }`
[INFO] [stdout] 4a2b1dbc295b565bc55cf9505acecd1881c6518edc8bb6576b4d5685905f5782
