[INFO] fetching crate shipmates 0.14.3...
[INFO] testing shipmates-0.14.3 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate shipmates 0.14.3 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate shipmates 0.14.3
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate shipmates 0.14.3
[INFO] tweaked toml for crates.io crate shipmates 0.14.3 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate shipmates 0.14.3 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shipmates 0.14.3 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap v4.6.5
[INFO] [stderr]   Downloaded clap_builder v4.6.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39
[INFO] running `Command { std: "docker" "start" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", 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" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", 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" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling clap_builder v4.6.5
[INFO] [stderr]    Compiling shipmates v0.14.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling clap v4.6.5
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stdout] warning: constant `SENTINEL` is never used
[INFO] [stdout]   --> src/adapters/render.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const SENTINEL: &str = "\u{00A7}agents-instructions";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_role_body` is never used
[INFO] [stdout]    --> src/adapters/render.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub(crate) fn render_role_body(text: &str, d: &Dialect) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_target_file` is never used
[INFO] [stdout]   --> src/installer/manifest_db.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ReceiptFile {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 31 |     /// Build an entry from a file below `target_dir`, hashing its raw bytes.
[INFO] [stdout] 32 |     pub(crate) fn from_target_file(target_dir: &Path, path: &Path) -> Result<Self> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `target_dir`, `all`, `claims`, `path_claims`, and `is_claimed_by_other` are never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ReceiptRepository {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub(crate) fn target_dir(&self) -> &Path {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn all(&self) -> Result<Vec<InstallReceipt>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub(crate) fn claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn path_claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub(crate) fn is_claimed_by_other(&self, path: &Path, harness: &str) -> Result<bool> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestDb` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub(crate) type ManifestDb = ReceiptRepository;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Manifest` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub(crate) type Manifest = InstallReceipt;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestEntry` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub(crate) type ManifestEntry = ReceiptFile;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `receipt_path` is never used
[INFO] [stdout]   --> src/installer/plan.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) fn receipt_path(target_dir: &Path, harness: &str) -> Result<PathBuf> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/installer/uninstall.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LocatedReceipt {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub(crate) path: PathBuf,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocatedReceipt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uninstall` is never used
[INFO] [stdout]   --> src/installer/uninstall.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub(crate) fn uninstall(target_dir: &Path, selected: LocatedReceipt) -> Result<UninstallReport> {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_payload` is never used
[INFO] [stdout]    --> src/installer/uninstall.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn current_payload(harness: &str) -> Result<BTreeMap<String, String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.22s
[INFO] running `Command { std: "docker" "inspect" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", 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" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stdout] warning: constant `SENTINEL` is never used
[INFO] [stdout]   --> src/adapters/render.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const SENTINEL: &str = "\u{00A7}agents-instructions";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_role_body` is never used
[INFO] [stdout]    --> src/adapters/render.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub(crate) fn render_role_body(text: &str, d: &Dialect) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_target_file` is never used
[INFO] [stdout]   --> src/installer/manifest_db.rs:32:19
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ReceiptFile {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 31 |     /// Build an entry from a file below `target_dir`, hashing its raw bytes.
[INFO] [stdout] 32 |     pub(crate) fn from_target_file(target_dir: &Path, path: &Path) -> Result<Self> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `target_dir`, `all`, `claims`, `path_claims`, and `is_claimed_by_other` are never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ReceiptRepository {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub(crate) fn target_dir(&self) -> &Path {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn all(&self) -> Result<Vec<InstallReceipt>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub(crate) fn claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn path_claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub(crate) fn is_claimed_by_other(&self, path: &Path, harness: &str) -> Result<bool> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestDb` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub(crate) type ManifestDb = ReceiptRepository;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Manifest` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub(crate) type Manifest = InstallReceipt;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestEntry` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub(crate) type ManifestEntry = ReceiptFile;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `receipt_path` is never used
[INFO] [stdout]   --> src/installer/plan.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) fn receipt_path(target_dir: &Path, harness: &str) -> Result<PathBuf> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/installer/uninstall.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LocatedReceipt {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub(crate) path: PathBuf,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocatedReceipt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uninstall` is never used
[INFO] [stdout]   --> src/installer/uninstall.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub(crate) fn uninstall(target_dir: &Path, selected: LocatedReceipt) -> Result<UninstallReport> {
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_payload` is never used
[INFO] [stdout]    --> src/installer/uninstall.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn current_payload(harness: &str) -> Result<BTreeMap<String, String>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling shipmates v0.14.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: constant `SENTINEL` is never used
[INFO] [stdout]   --> src/adapters/render.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const SENTINEL: &str = "\u{00A7}agents-instructions";
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `target_dir`, `all`, `claims`, and `path_claims` are never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:175:19
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ReceiptRepository {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub(crate) fn target_dir(&self) -> &Path {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn all(&self) -> Result<Vec<InstallReceipt>> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub(crate) fn claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     pub(crate) fn path_claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestDb` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub(crate) type ManifestDb = ReceiptRepository;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Manifest` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub(crate) type Manifest = InstallReceipt;
[INFO] [stdout]     |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ManifestEntry` is never used
[INFO] [stdout]    --> src/installer/manifest_db.rs:313:17
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub(crate) type ManifestEntry = ReceiptFile;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `receipt_path` is never used
[INFO] [stdout]   --> src/installer/plan.rs:85:15
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub(crate) fn receipt_path(target_dir: &Path, harness: &str) -> Result<PathBuf> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `path` is never read
[INFO] [stdout]   --> src/installer/uninstall.rs:15:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct LocatedReceipt {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 15 |     pub(crate) path: PathBuf,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LocatedReceipt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.66s
[INFO] running `Command { std: "docker" "inspect" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", 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" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: constant `SENTINEL` is never used
[INFO] [stderr]   --> src/adapters/render.rs:27:7
[INFO] [stderr]    |
[INFO] [stderr] 27 | const SENTINEL: &str = "\u{00A7}agents-instructions";
[INFO] [stderr]    |       ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_role_body` is never used
[INFO] [stderr]    --> src/adapters/render.rs:134:15
[INFO] [stderr]     |
[INFO] [stderr] 134 | pub(crate) fn render_role_body(text: &str, d: &Dialect) -> String {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_target_file` is never used
[INFO] [stderr]   --> src/installer/manifest_db.rs:32:19
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl ReceiptFile {
[INFO] [stderr]    | ---------------- associated function in this implementation
[INFO] [stderr] 31 |     /// Build an entry from a file below `target_dir`, hashing its raw bytes.
[INFO] [stderr] 32 |     pub(crate) fn from_target_file(target_dir: &Path, path: &Path) -> Result<Self> {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `target_dir`, `all`, `claims`, `path_claims`, and `is_claimed_by_other` are never used
[INFO] [stderr]    --> src/installer/manifest_db.rs:175:19
[INFO] [stderr]     |
[INFO] [stderr] 168 | impl ReceiptRepository {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub(crate) fn target_dir(&self) -> &Path {
[INFO] [stderr]     |                   ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 275 |     pub(crate) fn all(&self) -> Result<Vec<InstallReceipt>> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 290 |     pub(crate) fn claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stderr]     |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     pub(crate) fn path_claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stderr]     |                   ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     pub(crate) fn is_claimed_by_other(&self, path: &Path, harness: &str) -> Result<bool> {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ManifestDb` is never used
[INFO] [stderr]    --> src/installer/manifest_db.rs:311:17
[INFO] [stderr]     |
[INFO] [stderr] 311 | pub(crate) type ManifestDb = ReceiptRepository;
[INFO] [stderr]     |                 ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Manifest` is never used
[INFO] [stderr]    --> src/installer/manifest_db.rs:312:17
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub(crate) type Manifest = InstallReceipt;
[INFO] [stderr]     |                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ManifestEntry` is never used
[INFO] [stderr]    --> src/installer/manifest_db.rs:313:17
[INFO] [stderr]     |
[INFO] [stderr] 313 | pub(crate) type ManifestEntry = ReceiptFile;
[INFO] [stderr]     |                 ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `receipt_path` is never used
[INFO] [stderr]   --> src/installer/plan.rs:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub(crate) fn receipt_path(target_dir: &Path, harness: &str) -> Result<PathBuf> {
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `path` is never read
[INFO] [stderr]   --> src/installer/uninstall.rs:15:16
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct LocatedReceipt {
[INFO] [stderr]    |            -------------- field in this struct
[INFO] [stderr] 15 |     pub(crate) path: PathBuf,
[INFO] [stderr]    |                ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `LocatedReceipt` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `uninstall` is never used
[INFO] [stderr]   --> src/installer/uninstall.rs:92:15
[INFO] [stderr]    |
[INFO] [stderr] 92 | pub(crate) fn uninstall(target_dir: &Path, selected: LocatedReceipt) -> Result<UninstallReport> {
[INFO] [stderr]    |               ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `current_payload` is never used
[INFO] [stderr]    --> src/installer/uninstall.rs:285:4
[INFO] [stderr]     |
[INFO] [stderr] 285 | fn current_payload(harness: &str) -> Result<BTreeMap<String, String>> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `shipmates` (lib) generated 11 warnings
[INFO] [stderr] warning: methods `target_dir`, `all`, `claims`, and `path_claims` are never used
[INFO] [stderr]    --> src/installer/manifest_db.rs:175:19
[INFO] [stderr]     |
[INFO] [stderr] 168 | impl ReceiptRepository {
[INFO] [stderr]     | ---------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 175 |     pub(crate) fn target_dir(&self) -> &Path {
[INFO] [stderr]     |                   ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 275 |     pub(crate) fn all(&self) -> Result<Vec<InstallReceipt>> {
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] ...
[INFO] [stderr] 290 |     pub(crate) fn claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stderr]     |                   ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     pub(crate) fn path_claims(&self, path: &Path) -> Result<Vec<String>> {
[INFO] [stderr]     |                   ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `shipmates` (lib test) generated 7 warnings (6 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shipmates-5bd3425bab5675da)
[INFO] [stdout] 
[INFO] [stdout] running 284 tests
[INFO] [stdout] test adapters::antigravity::tests::test_antigravity_preserves_tool_order_while_deduping ... ok
[INFO] [stdout] test adapters::codex::tests::test_crew_body_is_rendered_into_the_codex_dialect ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_scopes_and_tool_order_are_preserved ... ok
[INFO] [stdout] test adapters::codex::tests::test_crew_is_toml_not_markdown ... ok
[INFO] [stdout] test adapters::codex::tests::test_effort_is_emitted_as_model_reasoning_effort ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_multiple_command_arguments_fail_closed ... ok
[INFO] [stdout] test adapters::codex::tests::test_literal_terminator_in_body_is_an_error ... ok
[INFO] [stdout] test adapters::codex::tests::test_no_bare_model_line_is_emitted ... ok
[INFO] [stdout] test adapters::devin::tests::test_devin_crew_tools_stay_inside_the_documented_vocabulary ... ok
[INFO] [stdout] test adapters::antigravity::tests::test_antigravity_adapter_build ... ok
[INFO] [stdout] test adapters::devin::tests::test_devin_emits_crew_and_native_command_skills ... ok
[INFO] [stdout] test adapters::antigravity::tests::test_antigravity_skill_emits_standard_pair ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_no_model_line_is_emitted ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_tool_names_are_mapped ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_tool_is_agent_only_skill_with_bundled_assets ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_effort_is_emitted_as_the_effort_key ... ok
[INFO] [stdout] test adapters::devin::tests::test_devin_omits_the_allowlist_rather_than_dropping_a_capability ... ok
[INFO] [stdout] test adapters::claude_code::tests::test_command_body_is_rendered ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_capabilities_map_to_copilot_tool_names ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_duplicate_capabilities_do_not_repeat_tools ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_copilot_adapter_emits_skills_and_crew ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_description_is_yaml_quoted ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_quotes_in_description_are_escaped ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_least_privilege_is_preserved_per_role ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_role_with_no_mappable_tools_fails_rather_than_granting_everything ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_oversized_agent_is_an_error_not_a_truncation ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_unmapped_capability_fails_rather_than_narrowing ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_command_without_the_guard_omits_it ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_crew_body_is_rendered_into_the_grok_dialect ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_effort_is_omitted_when_the_role_declares_none ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_read_only_seat_gets_no_write_tools_and_no_model_line ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_command_keeps_the_guard_and_argument_hint ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_every_emitted_tool_name_is_alias_legal ... ok
[INFO] [stdout] test adapters::codex::tests::test_codex_adapter_emits_skills_and_crew ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_steering_lands_in_the_project_rules_tree ... ok
[INFO] [stdout] test adapters::opencode::tests::test_edit_capability_reaches_opencode_write_as_well_as_edit ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_tool_files_ship_with_their_bundled_assets ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_agent_uses_the_double_extension ... ok
[INFO] [stdout] test adapters::opencode::tests::test_tool_emits_native_ts_plus_bundled_script ... ok
[INFO] [stdout] test adapters::opencode::tests::test_effort_is_emitted_as_reasoning_effort ... ok
[INFO] [stdout] test adapters::cursor::tests::test_cursor_adapter_emits_skills_only ... ok
[INFO] [stdout] test adapters::cursor::tests::test_cursor_adapter_emits_tools_into_its_own_tree_only ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_crew_lands_in_the_grok_agents_tree ... ok
[INFO] [stdout] test adapters::codex::tests::test_quotes_and_backslashes_survive ... ok
[INFO] [stdout] test adapters::opencode::tests::test_opencode_adapter_frontmatter ... ok
[INFO] [stdout] test adapters::devin::tests::test_devin_commands_are_user_invoked_only ... ok
[INFO] [stdout] test adapters::grok_build::tests::test_writing_seat_gets_write_edit_and_bash ... ok
[INFO] [stdout] test adapters::opencode::tests::test_opencode_command_body_renders_dialect ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_command_tools_mapping_covers_all_catalogue_tools ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_never_emits_an_empty_tool_list ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_agent_name_stays_bare_for_receipt_matching ... ok
[INFO] [stdout] test adapters::opencode::tests::test_no_model_line_is_emitted ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_steering_target_is_shared_plain_markdown ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_command_skills_land_in_native_tree_with_scoping ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_adapter_emits_crew_outside_the_shared_agent_tree ... ok
[INFO] [stdout] test adapters::github_copilot::tests::test_body_is_rendered_into_the_copilot_dialect ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_empty_description_fails_closed ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_frontmatter_is_never_empty_valued ... ok
[INFO] [stdout] test adapters::render::tests::test_emit_steering_claude_rules_path ... ok
[INFO] [stdout] test adapters::render::tests::test_emit_steering_copilot_apply_to_stays_quoted ... ok
[INFO] [stdout] test adapters::render::tests::test_emit_steering_cursor_mdc_wrapper ... ok
[INFO] [stdout] test adapters::render::tests::test_render_body_opencode ... ok
[INFO] [stdout] test adapters::render::tests::test_render_preserves_literal_harness_names ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_tools_are_a_comma_scalar_that_pi_can_resolve ... ok
[INFO] [stdout] test adapters::render::tests::test_render_body_claude ... ok
[INFO] [stdout] test adapters::render::tests::test_model_routing_block_is_canonical_and_self_contained ... ok
[INFO] [stdout] test adapters::render::tests::test_render_instructions_claude ... ok
[INFO] [stdout] test adapters::render::tests::test_render_instructions_opencode ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_quotes_colon_space ... ok
[INFO] [stdout] test adapters::render::tests::test_unquote_inverts_yaml_scalar_quotes_backslashes_and_c0 ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_escapes_backslash ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_escapes_control_characters ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_escapes_embedded_quote ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_escapes_newline ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_tools_preserve_tool_order_while_deduping ... ok
[INFO] [stdout] test adapters::pi::tests::test_pi_effort_is_emitted_as_thinking_only_when_set ... ok
[INFO] [stdout] test adapters::render::tests::test_yaml_scalar_quotes_leading_bracket ... ok
[INFO] [stdout] test catalog::tests::test_effort_valid_is_parsed_and_absent_is_none ... ok
[INFO] [stdout] test catalog::tests::test_parse_frontmatter_valid ... ok
[INFO] [stdout] test catalog::tests::test_reject_positional ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_from_cwd_walks_up_to_catalog_root ... ok
[INFO] [stdout] test catalog::tests::test_parse_frontmatter_invalid ... ok
[INFO] [stdout] test catalog::tests::test_loader_preserves_scope_metadata ... ok
[INFO] [stdout] test catalog::tests::test_loader_rejects_invalid_effort ... ok
[INFO] [stdout] test adapters::render::tests::test_shared_preambles_expand_and_leave_no_markers ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_explicit_missing_catalog_is_an_error_not_a_fallback ... ok
[INFO] [stdout] test adapters::render::tests::test_pi_cmd_prefix_rewrites_command_invocations ... ok
[INFO] [stdout] test adapters::render::tests::test_render_args_rejects_multiple_placeholders ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_uses_embed_from_a_stale_checkout ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_rejects_both_from_cwd_and_shipmates_src ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_prefers_explicit_disk_source ... ok
[INFO] [stdout] test detector::tests::agents_agents_tree_detects_antigravity ... ok
[INFO] [stdout] test catalog::tests::test_resolve_source_uses_disk_in_the_contributor_dev_loop ... ok
[INFO] [stdout] test catalog::tests::test_steering_for_target_only_on_contributor_tree ... ok
[INFO] [stdout] test detector::tests::bare_agents_skills_does_not_detect_antigravity ... ok
[INFO] [stdout] test catalog::tests::test_tool_owns_path_matches_skill_dir_and_native_file_forms ... ok
[INFO] [stdout] test catalog::tests::test_loader_rejects_path_traversal_role_name ... ok
[INFO] [stdout] test detector::tests::bare_github_workflows_does_not_detect_copilot ... ok
[INFO] [stdout] test detector::tests::github_agents_tree_detects_copilot ... ok
[INFO] [stdout] test adapters::tests::cursor_owns_its_tree_alone_and_shared_harnesses_keep_theirs ... ok
[INFO] [stdout] test detector::tests::grok_tree_detects_grok_build ... ok
[INFO] [stdout] test detector::tests::test_detect_receipts ... ok
[INFO] [stdout] test digest::tests::hash_bytes_hashes_binary_content ... ok
[INFO] [stdout] test digest::tests::compute_sha256_uses_raw_file_bytes ... ok
[INFO] [stdout] test detector::tests::test_detect_project_dirs ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_does_not_write ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_missing_install_reports_problem ... ok
[INFO] [stdout] test doctor::tests::test_doctor_detects_foreign_agents_in_shared_tree_for_pi ... ok
[INFO] [stdout] test doctor::tests::test_doctor_detects_opencode_missing_deny_first ... ok
[INFO] [stdout] test doctor::tests::test_doctor_warns_when_pi_skill_name_is_in_two_trees ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_rejects_symlinked_legacy_migration_component ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_clean_install_is_healthy ... ok
[INFO] [stdout] test doctor::tests::test_doctor_detects_unresolvable_agent_tool_vocabulary ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_detects_missing_agent ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_detects_content_drift ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_claimed_missing_tool_is_a_problem ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_reports_unowned_tool_drift_as_unrepairable ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_opencode_tool_by_file_stem ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_reports_husks_left_in_a_migrated_tree_and_fix_prunes_them ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_reports_bak_only_husk_and_fix_prunes_it ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_orphaned_tool_not_marked_ok ... ok
[INFO] [stdout] test doctor::tests::test_install_backup_name_shape_is_the_ownership_signal ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_warns_when_removed_tool_backups_remain ... ok
[INFO] [stdout] test doctor::tests::test_parse_install_backup_name ... ok
[INFO] [stdout] test doctor::tests::test_install_identity_and_pre_prefix_aliases ... ok
[INFO] [stdout] test installer::adopt::tests::artifact_name_reads_the_skill_directory_not_the_file_stem ... ok
[INFO] [stdout] test doctor::tests::test_fix_leaves_unowned_missing_without_matching_backup ... ok
[INFO] [stdout] test installer::adopt::tests::matching_frontmatter_name_is_adoptable ... ok
[INFO] [stdout] test installer::adopt::tests::payload_companion_assets_fail_closed ... ok
[INFO] [stdout] test installer::adopt::tests::foreign_unreadable_and_unrecognised_files_fail_closed ... ok
[INFO] [stdout] test installer::adopt::tests::artifact_name_covers_every_adapter_shape ... ok
[INFO] [stdout] test doctor::tests::test_fix_adopts_missing_unowned_payload_path_from_the_payload ... ok
[INFO] [stdout] test doctor::tests::test_fix_corrupted_receipt_does_not_bail ... ok
[INFO] [stdout] test doctor::tests::test_fix_leaves_unreadable_file_untouched_and_skips_it ... ok
[INFO] [stdout] test doctor::tests::test_diagnose_reports_unreadable_crew_skill_and_tool ... ok
[INFO] [stdout] test doctor::tests::test_fix_no_migrate_keeps_legacy_but_restores_missing ... ok
[INFO] [stdout] test doctor::tests::test_fix_restores_missing_but_leaves_unowned_legacy ... ok
[INFO] [stdout] test installer::manifest_db::tests::antigravity_crew_is_a_directory_per_agent_and_the_flat_shape_still_loads ... ok
[INFO] [stdout] test installer::manifest_db::tests::classify_separates_a_symlinked_path_from_an_unsafe_one ... ok
[INFO] [stdout] test installer::manifest_db::tests::cursor_receipt_owns_its_own_skill_tree_and_still_loads_legacy_agents_paths ... ok
[INFO] [stdout] test installer::apply::tests::identical_shared_bytes_stay_managed_without_backup ... ok
[INFO] [stdout] test installer::manifest_db::tests::devin_receipt_owns_the_devin_tree_and_still_loads_the_windsurf_era_one ... ok
[INFO] [stdout] test installer::manifest_db::tests::global_receipt_paths_are_claimable_narrowly ... ok
[INFO] [stdout] test installer::manifest_db::tests::global_relocation_moves_only_resource_subtrees_into_the_harness_global_root ... ok
[INFO] [stdout] test installer::manifest_db::tests::grok_build_receipt_owns_the_grok_tree_and_rejects_arbitrary_paths ... ok
[INFO] [stdout] test doctor::tests::test_fix_restores_missing_skill_from_sibling_install_backup ... ok
[INFO] [stdout] test installer::manifest_db::tests::load_rejects_filename_harness_mismatch_and_unknown_schema ... ok
[INFO] [stdout] test installer::manifest_db::tests::pi_receipt_owns_its_crew_tree_and_still_loads_legacy_skill_paths ... ok
[INFO] [stdout] test installer::manifest_db::tests::receipt_file_hashes_raw_bytes_and_requires_target_descendant ... ok
[INFO] [stdout] test installer::manifest_db::tests::cursor_receipt_round_trips_a_native_skill_path ... ok
[INFO] [stdout] test installer::apply::tests::changed_receipt_owned_file_is_backed_up ... ok
[INFO] [stdout] test installer::manifest_db::tests::validation_rejects_unsafe_paths_duplicates_and_uppercase_hashes ... ok
[INFO] [stdout] test installer::apply::tests::unchanged_reinstall_writes_no_backup ... ok
[INFO] [stdout] test installer::manifest_db::tests::save_loads_atomic_receipt_and_preserves_schema ... ok
[INFO] [stdout] test installer::apply::tests::force_written_file_is_not_reported_unmanaged ... ok
[INFO] [stdout] test installer::migrate::tests::symlinked_legacy_component_is_rejected_before_read_or_delete ... ok
[INFO] [stdout] test installer::manifest_db::tests::load_all_and_claims_cover_shared_agent_skills ... ok
[INFO] [stdout] test installer::migrate::tests::symlinked_backup_root_is_rejected_before_migration ... ok
[INFO] [stdout] test doctor::tests::test_hygiene_leaves_third_party_and_occupied_husk_alone ... ok
[INFO] [stdout] test installer::migrate::tests::test_absent_frontmatter_is_not_owned ... ok
[INFO] [stdout] test installer::apply::tests::preserved_path_is_not_deleted_when_dropped_from_payload ... ok
[INFO] [stdout] test installer::apply::tests::genuinely_unmanaged_file_is_still_reported ... ok
[INFO] [stdout] test installer::plan::tests::receipt_rejects_traversal ... ok
[INFO] [stdout] test installer::migrate::tests::test_no_legacy_yields_empty_plan ... ok
[INFO] [stdout] test doctor::tests::test_fix_adopts_stale_unowned_shipmates_file_but_not_a_foreign_one ... ok
[INFO] [stdout] test installer::migrate::tests::test_payload_shipping_both_skill_and_command_keeps_the_command ... ok
[INFO] [stdout] test installer::apply::tests::shared_bytes_attributable_to_a_receipt_are_advanced ... ok
[INFO] [stdout] test installer::migrate::tests::rollback_restores_migrated_bytes_and_removes_backup ... ok
[INFO] [stdout] test installer::apply::tests::shared_bytes_attributable_to_no_receipt_are_preserved_even_under_force ... ok
[INFO] [stdout] test doctor::tests::test_hygiene_leaves_hand_named_and_interrupted_backups_alone ... ok
[INFO] [stdout] test installer::migrate::tests::test_unmanaged_name_match_is_left_intact ... ok
[INFO] [stdout] test installer::migrate::tests::test_second_run_is_idempotent ... ok
[INFO] [stdout] test installer::plan::tests::symlinked_entries_are_skipped_not_fatal ... ok
[INFO] [stdout] test doctor::tests::test_fix_repairs_owned_tool_drift_and_missing_file ... ok
[INFO] [stdout] test installer::migrate::tests::test_owned_legacy_is_backed_up_and_removed ... ok
[INFO] [stdout] test installer::rename::tests::plan_expands_opencode_command_stem ... ok
[INFO] [stdout] test doctor::tests::test_hygiene_prunes_current_global_steering_bak_and_leaves_the_rest ... ok
[INFO] [stdout] test installer::rename::tests::table_maps_ship_generation_and_pre_prefix_generation_including_flagships ... ok
[INFO] [stdout] test installer::rename::tests::plan_accepts_container_prefixed_keys ... ok
[INFO] [stdout] test installer::plan::tests::install_backups_are_not_reported_but_user_bak_files_are ... ok
[INFO] [stdout] test installer::rename::tests::third_party_skill_at_a_table_name_is_still_left ... ok
[INFO] [stdout] test installer::rename::tests::foreign_file_at_the_new_path_leaves_old_and_backs_up_nothing ... ok
[INFO] [stdout] test installer::rename::tests::with_tools_matches_old_and_new_names ... ok
[INFO] [stdout] test installer::rename::tests::plan_migrates_the_previous_ship_generation ... ok
[INFO] [stdout] test installer::retired::tests::a_target_without_a_retired_ancestor_adopts_nothing ... ok
[INFO] [stdout] test installer::rename::tests::plan_migrates_a_released_command_that_was_renamed ... ok
[INFO] [stdout] test installer::manifest_db::tests::registry_global_roots_match_the_installer ... ok
[INFO] [stdout] test doctor::tests::registry_tool_names_resolve_in_the_checked_vocabulary ... ok
[INFO] [stdout] test installer::plan::tests::scan_is_bounded_to_payload_subtrees ... ok
[INFO] [stdout] test installer::rename::tests::plan_expands_skill_folder_and_leftover_command ... ok
[INFO] [stdout] test installer::rename::tests::unowned_old_is_left_in_place ... ok
[INFO] [stdout] test installer::rename::tests::no_migrate_preserve_keeps_old_when_apply_writes_new ... ok
[INFO] [stdout] test installer::tests::test_atomic_write ... ok
[INFO] [stdout] test installer::retired::tests::keeps_a_retired_file_the_captain_edited ... ok
[INFO] [stdout] test steering::tests::detects_legacy_claude_steering_file ... ok
[INFO] [stdout] test installer::uninstall::tests::failed_later_removal_restores_earlier_bytes ... ok
[INFO] [stdout] test installer::tests::test_atomic_write_does_not_clobber_sibling_tmp ... ok
[INFO] [stdout] test steering::tests::strip_leaves_base_intact ... ok
[INFO] [stdout] test steering::tests::grok_build_global_steering_is_the_user_instructions_file ... ok
[INFO] [stdout] test steering::tests::plan_removes_orphan_claude_and_strips_agents ... ok
[INFO] [stdout] test installer::retired::tests::adopts_an_untouched_retired_install_and_is_idempotent ... ok
[INFO] [stdout] test upgrade::audit::tests::corrupt_receipt_is_reported_not_panicked ... ok
[INFO] [stdout] test upgrade::audit::tests::missing_receipt_is_clean_missing_state ... ok
[INFO] [stdout] test installer::rename::tests::owned_rename_writes_payload_deletes_old_and_rewrites_receipt ... ok
[INFO] [stdout] test upgrade::audit::tests::unknown_harness_is_unrepairable_drift_not_error ... ok
[INFO] [stdout] test installer::rename::tests::unowned_but_self_declaring_old_skill_is_reclaimed ... ok
[INFO] [stdout] test installer::uninstall::tests::current_payload_entry_is_removed_only_when_hash_matches ... ok
[INFO] [stdout] test upgrade::classify::tests::corrupt_receipt_is_a_finding ... ok
[INFO] [stdout] test upgrade::classify::tests::fingerprint_is_stable_and_independent ... ok
[INFO] [stdout] test installer::uninstall::tests::old_receipt_entry_is_preserved_when_not_in_current_payload ... ok
[INFO] [stdout] test upgrade::classify::tests::correct_third_party_refusal_is_not_a_finding ... ok
[INFO] [stdout] test upgrade::classify::tests::post_upgrade_mismatch_is_a_finding ... ok
[INFO] [stdout] test upgrade::classify::tests::refresh_failure_and_audit_problems_are_both_reported ... ok
[INFO] [stdout] test upgrade::classify::tests::refresh_failed_is_a_finding_with_detail ... ok
[INFO] [stdout] test upgrade::classify::tests::repairable_drift_is_not_a_finding ... ok
[INFO] [stdout] test upgrade::classify::tests::refresh_failed_without_detail_is_suppressed ... ok
[INFO] [stdout] test steering::tests::test_global_steering_tier_a_install_and_idempotency ... ok
[INFO] [stdout] test upgrade::classify::tests::repaired_partial_install_is_not_a_finding ... ok
[INFO] [stdout] test upgrade::classify::tests::unrepairable_drift_is_a_finding ... ok
[INFO] [stdout] test installer::rename::tests::write_fail_does_not_delete_old ... ok
[INFO] [stdout] test upgrade::classify::tests::tool_failure_is_a_finding ... ok
[INFO] [stdout] test steering::tests::test_pi_global_steering_routes_to_skill_prefix ... ok
[INFO] [stdout] test upgrade::audit::tests::version_mismatch_is_post_upgrade_mismatch ... ok
[INFO] [stdout] test installer::rename::tests::second_run_is_idempotent ... ok
[INFO] [stdout] test upgrade::file::tests::home_paths_are_sanitised_to_tilde ... ok
[INFO] [stdout] test upgrade::index::tests::index_path_errors_without_home ... ok
[INFO] [stdout] test upgrade::index::tests::index_path_ignores_empty_override ... ok
[INFO] [stdout] test upgrade::index::tests::index_path_defaults_under_home ... ok
[INFO] [stdout] test upgrade::index::tests::index_path_prefers_shipmates_index_override ... ok
[INFO] [stdout] test upgrade::index::tests::load_future_schema_falls_back_to_empty_index ... ok
[INFO] [stdout] test upgrade::index::tests::load_missing_file_returns_empty_index ... ok
[INFO] [stdout] test installer::rename::tests::reclaim_rolls_back_on_later_write_failure ... ok
[INFO] [stdout] test upgrade::index::tests::load_garbage_falls_back_to_empty_index ... ok
[INFO] [stdout] test upgrade::file::tests::match_comments_instead_of_creating ... ok
[INFO] [stdout] test installer::rename::tests::two_receipts_sharing_agents_skill_update_together ... ok
[INFO] [stdout] test installer::rename::tests::rollback_restores_old_and_receipt ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::aggregate_exit_precedence ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::check_exit_mapping ... ok
[INFO] [stdout] test upgrade::index::tests::register_keeps_distinct_harnesses_for_same_root ... ok
[INFO] [stdout] test upgrade::index::tests::register_upserts_same_root_and_harness ... ok
[INFO] [stdout] test upgrade::file::tests::detail_never_leaks_a_project_root_outside_home ... ok
[INFO] [stdout] test steering::tests::test_global_steering_tier_b_inject_update_idempotent ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::missing_root_is_never_fatal ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::refresh_root_with_no_receipts_spawns_nothing ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::fresh_lock_is_not_stale ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::reexec_forwards_flags_but_never_self_or_dry_run ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::resume_skips_the_self_upgrade_branch ... ok
[INFO] [stdout] test upgrade::index::tests::round_trip_register_save_load ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::resolve_self_binary_falls_back_to_shipmates_name ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::resume_skips_the_upgrade_lock ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::resolve_self_binary_keeps_a_still_existing_current_exe ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::stale_lock_is_taken_over ... ok
[INFO] [stdout] test upgrade::release::tests::can_exec_self_upgrade_only_brew_and_cargodist ... ok
[INFO] [stdout] test upgrade::release::tests::channel_detection_prefers_cargo_path_over_brew_present ... ok
[INFO] [stdout] test upgrade::release::tests::channel_detection_prefers_cellar_over_everything ... ok
[INFO] [stdout] test upgrade::index::tests::deregister_removes_only_matching_record ... ok
[INFO] [stdout] test upgrade::index::tests::prune_dead_removes_and_reports_missing_roots ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_cellar_is_brew ... ok
[INFO] [stdout] test upgrade::release::tests::channel_detection_brew_fallback_before_source ... ok
[INFO] [stdout] test upgrade::release::tests::channel_detection_receipt_before_brew_fallback ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_unknown_is_unknown ... ok
[INFO] [stdout] test upgrade::release::tests::channel_detection_source_is_last ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_cargo_bin_is_cargo ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_source_tree_is_source ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_ignores_unrelated_cargo_toml ... ok
[INFO] [stdout] test upgrade::release::tests::select_latest_is_not_array_order_dependent ... ok
[INFO] [stdout] test upgrade::release::tests::describe_channel_returns_human_names ... ok
[INFO] [stdout] test upgrade::release::tests::select_latest_picks_highest_stable ... ok
[INFO] [stdout] test upgrade::file::tests::cap_limits_filings_and_skips_the_rest ... ok
[INFO] [stdout] test upgrade::release::tests::select_latest_skips_drafts ... ok
[INFO] [stdout] test upgrade::release::tests::select_latest_rejects_garbage ... ok
[INFO] [stdout] test upgrade::release::tests::self_upgrade_command_matches_channel ... ok
[INFO] [stdout] test upgrade::release::tests::select_latest_skips_prereleases_unless_asked ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::dry_run_reports_dead_roots_without_persisting ... ok
[INFO] [stdout] test upgrade::release::tests::semver_prerelease_ranks_below_release ... ok
[INFO] [stdout] test upgrade::release::tests::classify_exe_path_target_release_is_source ... ok
[INFO] [stdout] test upgrade::index::tests::roots_canonicalizes_dedupes_and_preserves_order ... ok
[INFO] [stdout] test upgrade::file::tests::no_match_creates ... ok
[INFO] [stdout] test upgrade::file::tests::labels_are_filtered_to_existing ... ok
[INFO] [stdout] test installer::plan::tests::unmanaged_scan_stays_inside_directories_that_hold_managed_files ... ok
[INFO] [stdout] test installer::uninstall::tests::modified_file_is_preserved ... ok
[INFO] [stdout] test upgrade::audit::tests::status_depth_never_runs_tool_smoke ... ok
[INFO] [stdout] test upgrade::orchestrate::tests::collect_reports_over_roots_including_missing ... ok
[INFO] [stdout] test installer::uninstall::tests::shared_file_is_preserved ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 284 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.64s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/shipmates-f4f0df95d0652d1d)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test tests::cursor_blurb_names_first_party_skills_tree ... ok
[INFO] [stdout] test tests::test_harness_line_all_and_names ... ok
[INFO] [stdout] test tests::doctor_help_documents_fix ... ok
[INFO] [stdout] test tests::install_help_documents_flags_value_names_and_examples ... ok
[INFO] [stdout] test tests::pi_blurb_names_native_tree ... ok
[INFO] [stdout] test tests::test_install_force_hint_replays_cli_flags ... ok
[INFO] [stdout] test tests::test_pi_global_install_hint_only_for_home_pi ... ok
[INFO] [stdout] test tests::test_tools_from_receipt_maps_native_and_skill_install_forms ... ok
[INFO] [stdout] test tests::upgrade_help_documents_flags_conflicts_and_hides_resume ... ok
[INFO] [stdout] test tests::test_tool_change_renders_count_and_delta ... ok
[INFO] [stdout] test tests::update_help_documents_refresh_semantics ... ok
[INFO] [stdout] test tests::top_level_help_separates_user_and_contributor_commands ... ok
[INFO] [stdout] test tests::test_harness_line_empty_defaults_to_claude_code ... ok
[INFO] [stdout] test tests::status_help_documents_flags_and_examples ... ok
[INFO] [stdout] test tests::location_flags_share_where_heading_across_user_commands ... ok
[INFO] [stderr]      Running tests/command_invariants.rs (/opt/rustwide/target/debug/deps/command_invariants-ca9f6ebbf6203ce2)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test ci_verification_never_merges_to_the_default_branch_to_test ... ok
[INFO] [stdout] test consolidate_reconciles_dangling_issues_into_open_epics_before_bundling ... ok
[INFO] [stdout] test ship_issue_stage_4_5_names_empty_check_suite ... ok
[INFO] [stdout] test ship_epic_stage_0_5_sanity_checks_ci_trigger ... ok
[INFO] [stdout] test cost_discipline_verifies_third_party_platform_claims ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/digest_set.rs (/opt/rustwide/target/debug/deps/digest_set-0758fcabead8eae1)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test check_fails_on_digest_hash_mismatch ... ok
[INFO] [stdout] test check_fails_when_digest_entry_is_not_in_payload ... ok
[INFO] [stderr]      Running tests/install_doctor_lifecycle.rs (/opt/rustwide/target/debug/deps/install_doctor_lifecycle-64948bf32e1c9f24)
[INFO] [stdout] test check_fails_when_digest_omits_a_built_path ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 45 tests
[INFO] [stdout] test doctor_fix_still_repairs_drifted_installed_tool ... ok
[INFO] [stdout] test cursor_upgrade_from_a_shared_tree_receipt_leaves_no_orphans ... ok
[INFO] [stdout] test doctor_fix_invalid_receipt_fails_without_writing ... ok
[INFO] [stdout] test doctor_reports_problem_when_a_claimed_tool_is_missing ... ok
[INFO] [stdout] test doctor_fix_renames_owned_previous_generation_identity ... ok
[INFO] [stdout] test doctor_no_migrate_requires_fix_and_fix_leaves_legacy_file ... ok
[INFO] [stdout] test doctor_reports_removed_tools_instead_of_a_clean_no_tools_state ... ok
[INFO] [stdout] test doctor_fix_leaves_third_party_skills_in_the_payload_directory_alone ... ok
[INFO] [stdout] test doctor_fix_skipped_does_not_list_never_installed_tools ... ok
[INFO] [stdout] test install_preflight_failure_keeps_prior_tree_and_receipt_absent ... ok
[INFO] [stdout] test doctor_fix_leaves_unreadable_file_untouched_and_fails ... ok
[INFO] [stdout] test invalid_receipt_aborts_install_without_writes ... ok
[INFO] [stdout] test doctor_fix_adopts_an_unowned_shipmates_file_and_claims_it ... ok
[INFO] [stdout] test doctor_fix_leaves_third_party_drift_untouched_and_names_force ... ok
[INFO] [stdout] test doctor_reports_unreadable_managed_file_as_nonzero ... ok
[INFO] [stdout] test doctor_fix_refreshes_receipt_hash_after_owned_repair ... ok
[INFO] [stdout] test third_party_collision_refuses_install_and_leaves_bytes_untouched ... ok
[INFO] [stdout] test cursor_installs_into_its_own_skill_tree_and_doctor_owns_it ... ok
[INFO] [stdout] test symlinked_harness_root_cannot_write_outside_target ... ok
[INFO] [stdout] test third_party_toml_agent_refuses_install ... ok
[INFO] [stdout] test doctor_fix_without_receipt_reports_unknown_ownership_and_preserves_drift ... ok
[INFO] [stdout] test fresh_install_writes_receipt_with_harness_layout_and_hashes ... ok
[INFO] [stdout] test changed_managed_file_gets_only_changed_file_backup ... ok
[INFO] [stdout] test removed_receipt_files_are_removed_with_backup ... ok
[INFO] [stdout] test install_adopts_an_unowned_shipmates_file_at_a_payload_path ... ok
[INFO] [stdout] test install_leaves_unowned_previous_identity_and_writes_new ... ok
[INFO] [stdout] test install_renames_owned_previous_generation_identity ... ok
[INFO] [stdout] test invalid_sibling_receipt_aborts_other_harness_install ... ok
[INFO] [stdout] test update_without_receipt_fails_closed ... ok
[INFO] [stdout] test install_no_migrate_then_doctor_reports_identity ... ok
[INFO] [stdout] test uninstall_preserves_modified_managed_file ... ok
[INFO] [stdout] test update_does_not_warn_on_harness_runtime_junk ... ok
[INFO] [stdout] test uninstall_removes_empty_directories ... ok
[INFO] [stdout] test uninstall_removes_receipt_owned_files_but_preserves_unmanaged_files ... ok
[INFO] [stdout] test update_refreshes_drifted_payload_and_preserves_tools ... ok
[INFO] [stdout] test uninstall_warns_about_shipmates_backup ... ok
[INFO] [stdout] test install_ignores_package_manager_symlinks_inside_a_harness_root ... ok
[INFO] [stdout] test install_all_continues_past_a_failed_harness_and_exits_non_zero ... ok
[INFO] [stdout] test update_keeps_opencode_native_tools ... ok
[INFO] [stdout] test shared_path_uninstall_does_not_remove_files_owned_by_another_harness ... ok
[INFO] [stdout] test uninstall_refuses_missing_or_corrupt_receipt_without_deleting_files ... ok
[INFO] [stdout] test unchanged_reinstall_creates_no_backups ... ok
[INFO] [stdout] test unmanaged_file_survives_reinstall_with_warning ... ok
[INFO] [stdout] test upgrade_prints_version_and_file_summary ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-cd87d610464fed67)
[INFO] [stdout] test update_advances_shared_agents_skill_across_sibling_receipts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 23.84s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test test_claude_code_payload_digest ... ok
[INFO] [stdout] test test_codex_adapter_renders_dialect ... ok
[INFO] [stdout] test test_antigravity_adapter_integration ... ok
[INFO] [stdout] test test_no_adapter_emits_a_model_line ... ok
[INFO] [stdout] test test_acceptance_board_docs_acs_require_machine_pin_or_manual_only ... ok
[INFO] [stdout] test test_matrix_runtime_verified_is_complete ... ok
[INFO] [stdout] test test_cli_targets ... ok
[INFO] [stdout] test canonical_content_names_no_harness_specific_crew_path ... ok
[INFO] [stdout] test test_clamp_guard_rejects_an_overstated_clause ... ok
[INFO] [stdout] test test_matrix_model_surface_is_complete ... ok
[INFO] [stdout] test test_opencode_permissions_deny_first ... ok
[INFO] [stdout] test test_opencode_payload_digest ... ok
[INFO] [stdout] test test_positional_args_rejected ... ok
[INFO] [stdout] test test_every_command_carries_the_model_routing_ruleset ... ok
[INFO] [stdout] test test_pr_opening_commands_require_why_merge ... ok
[INFO] [stdout] test test_no_canonical_file_describes_the_removed_model_pool ... ok
[INFO] [stdout] test test_shipped_model_routing_table_matches_the_matrix ... ok
[INFO] [stdout] Built payload for target: claude-code
[INFO] [stdout] test test_pi_project_install_ships_native_skills_with_scoping ... ok
[INFO] [stdout] test test_opencode_embedded_install_fidelity ... ok
[INFO] [stdout] Built payload for target: antigravity
[INFO] [stdout] test test_github_copilot_build_matches_golden_payload ... ok
[INFO] [stdout] test test_prompt_cost_layout_is_shared_and_cache_friendly ... ok
[INFO] [stdout] test test_opencode_cli_build_matches_golden_payload ... ok
[INFO] [stdout] test test_emitted_frontmatter_strict_parses_and_names_stay_bare ... ok
[INFO] [stdout] test test_pi_contributor_install_writes_steering_and_receipt ... ok
[INFO] [stdout] Built payload for target: opencode
[INFO] [stdout] Built payload for target: claude-code
[INFO] [stdout] Built payload for target: antigravity
[INFO] [stdout] test test_project_pi_and_shared_tree_sibling_install_to_their_respective_trees ... ok
[INFO] [stdout] test test_pi_global_install_prints_project_local_guidance ... ok
[INFO] [stdout] test test_cli_build_and_install ... ok
[INFO] [stdout] Built payload for target: codex
[INFO] [stdout] Built payload for target: codex
[INFO] [stdout] Built payload for target: cursor
[INFO] [stdout] test test_pi_global_and_project_installs_ship_to_their_respective_roots ... ok
[INFO] [stdout] Built payload for target: cursor
[INFO] [stdout] Built payload for target: devin
[INFO] [stdout] test test_non_claude_targets_build_via_cli ... ok
[INFO] [stdout] Built payload for target: github-copilot
[INFO] [stdout] Built payload for target: github-copilot
[INFO] [stdout] Built payload for target: pi
[INFO] [stdout] Built payload for target: grok-build
[INFO] [stdout] Built payload for target: grok-build
[INFO] [stdout] Built payload for target: opencode
[INFO] [stdout] Built payload for target: devin
[INFO] [stdout] test test_matrix_effort_flag_matches_adapter_output ... ok
[INFO] [stdout] Built payload for target: pi
[INFO] [stdout] test test_matrix_agents_flag_matches_adapter_output ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.43s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shipmates
[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" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39", kill_on_drop: false }`
[INFO] [stdout] 65bd4cf959de7ae7a9d7fa435ab2039cdc5eeecee6df82bba8b745a284893a39
