[INFO] cloning repository https://github.com/unioslo/osp-cli-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/unioslo/osp-cli-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funioslo%2Fosp-cli-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funioslo%2Fosp-cli-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 39f2cf8a0410600ca56ddf0a009b6862a554c109
[INFO] testing unioslo/osp-cli-rs against 1.94.0 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Funioslo%2Fosp-cli-rs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/unioslo/osp-cli-rs
[INFO] finished tweaking git repo https://github.com/unioslo/osp-cli-rs
[INFO] tweaked toml for git repo https://github.com/unioslo/osp-cli-rs written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/unioslo/osp-cli-rs on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/unioslo/osp-cli-rs 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.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serial v0.4.0
[INFO] [stderr]   Downloaded portable-pty v0.8.1
[INFO] [stderr]   Downloaded shell-words v1.1.1
[INFO] [stderr]   Downloaded strip-ansi-escapes v0.2.1
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded serial-windows v0.4.0
[INFO] [stderr]   Downloaded serial-core v0.4.0
[INFO] [stderr]   Downloaded rusty-fork v0.3.1
[INFO] [stderr]   Downloaded vte v0.14.1
[INFO] [stderr]   Downloaded ansitok v0.3.0
[INFO] [stderr]   Downloaded termios v0.2.2
[INFO] [stderr]   Downloaded ansi-str v0.9.0
[INFO] [stderr]   Downloaded dialoguer v0.11.0
[INFO] [stderr]   Downloaded miette-derive v7.6.0
[INFO] [stderr]   Downloaded comfy-table v7.2.2
[INFO] [stderr]   Downloaded miette v7.6.0
[INFO] [stderr]   Downloaded reedline v0.33.0
[INFO] [stderr]   Downloaded supports-hyperlinks v3.2.0
[INFO] [stderr]   Downloaded supports-unicode v3.0.0
[INFO] [stderr]   Downloaded ioctl-rs v0.1.6
[INFO] [stderr]   Downloaded serial-unix v0.4.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7d26bbb4a679e9cc913875deb6b0cd491e40a6ca1f4055582f755a5d0c80c498
[INFO] running `Command { std: "docker" "start" "-a" "7d26bbb4a679e9cc913875deb6b0cd491e40a6ca1f4055582f755a5d0c80c498", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7d26bbb4a679e9cc913875deb6b0cd491e40a6ca1f4055582f755a5d0c80c498", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7d26bbb4a679e9cc913875deb6b0cd491e40a6ca1f4055582f755a5d0c80c498", kill_on_drop: false }`
[INFO] [stdout] 7d26bbb4a679e9cc913875deb6b0cd491e40a6ca1f4055582f755a5d0c80c498
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] de81c811e9f9a35003e7f6f3a9450db47253062321fe255578118af5248f3474
[INFO] running `Command { std: "docker" "start" "-a" "de81c811e9f9a35003e7f6f3a9450db47253062321fe255578118af5248f3474", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling vte v0.14.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling ansitok v0.3.0
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling ansi-str v0.9.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling strip-ansi-escapes v0.2.1
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling supports-hyperlinks v3.2.0
[INFO] [stderr]    Compiling supports-unicode v3.0.0
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling comfy-table v7.2.2
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling reedline v0.33.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling osp-cli v1.4.8 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 52s
[INFO] running `Command { std: "docker" "inspect" "de81c811e9f9a35003e7f6f3a9450db47253062321fe255578118af5248f3474", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "de81c811e9f9a35003e7f6f3a9450db47253062321fe255578118af5248f3474", kill_on_drop: false }`
[INFO] [stdout] de81c811e9f9a35003e7f6f3a9450db47253062321fe255578118af5248f3474
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5db9d2da6fd98267e4de4d5344bc4a5d55a5cfe9c7e935415476d8c06bffb692
[INFO] running `Command { std: "docker" "start" "-a" "5db9d2da6fd98267e4de4d5344bc4a5d55a5cfe9c7e935415476d8c06bffb692", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling serial-core v0.4.0
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling serial-unix v0.4.0
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling reedline v0.33.0
[INFO] [stderr]    Compiling comfy-table v7.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling serial v0.4.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling nix v0.25.1
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling osp-cli v1.4.8 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling portable-pty v0.8.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "5db9d2da6fd98267e4de4d5344bc4a5d55a5cfe9c7e935415476d8c06bffb692", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5db9d2da6fd98267e4de4d5344bc4a5d55a5cfe9c7e935415476d8c06bffb692", kill_on_drop: false }`
[INFO] [stdout] 5db9d2da6fd98267e4de4d5344bc4a5d55a5cfe9c7e935415476d8c06bffb692
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1fd0185dd9ddc6ba9e8136b6eb728dfbf53bc235a430bf927870b854384b3c23
[INFO] running `Command { std: "docker" "start" "-a" "1fd0185dd9ddc6ba9e8136b6eb728dfbf53bc235a430bf927870b854384b3c23", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.35s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/osp_cli-80f70419cc837f17)
[INFO] [stdout] 
[INFO] [stdout] running 957 tests
[INFO] [stdout] test app::bootstrap::tests::parse_message_level_accepts_warn_alias_and_rejects_unknown_values_unit ... ok
[INFO] [stdout] test api::tests::exact_netgroup_queries_return_single_match ... ok
[INFO] [stdout] test api::tests::user_filter_uid_equals_returns_match ... ok
[INFO] [stdout] test app::bootstrap::tests::build_logging_config_ignores_blank_paths_even_when_file_logging_is_enabled_unit ... ok
[INFO] [stdout] test app::config_explain::tests::config_explain_helpers_cover_scope_policy_and_key_suggestions_unit ... ok
[INFO] [stdout] test app::bootstrap::tests::debug_verbosity_from_config_clamps_string_and_integer_inputs_unit ... ok
[INFO] [stdout] test app::config_explain::tests::config_explain_redacts_sensitive_values_in_text_and_json_unit ... ok
[INFO] [stdout] test app::dispatch::tests::dispatch_reason_rendering_covers_feature_profile_and_capability_denials_unit ... ok
[INFO] [stdout] test app::dispatch::tests::build_dispatch_plan_preserves_external_tokens_when_not_shorthand_unit ... ok
[INFO] [stdout] test app::dispatch::tests::build_dispatch_plan_supports_profile_prefixed_external_commands_unit ... ok
[INFO] [stdout] test app::dispatch::tests::dispatch_visibility_helpers_deny_visible_but_unrunnable_commands_unit ... ok
[INFO] [stdout] test app::dispatch::tests::dispatch_visibility_helpers_enforce_builtin_and_plugin_allowlists_unit ... ok
[INFO] [stdout] test app::dispatch::tests::normalize_profile_override_trims_and_rejects_blank_values_unit ... ok
[INFO] [stdout] test app::config_explain::tests::config_explain_text_surfaces_presentation_effect_unit ... ok
[INFO] [stdout] test app::config_explain::tests::config_explain_json_surfaces_presentation_effect_unit ... ok
[INFO] [stdout] test api::tests::missing_entries_return_empty_results ... ok
[INFO] [stdout] test app::external::tests::external_native_command_help_exit_and_response_paths_unit ... ok
[INFO] [stdout] test app::dispatch::tests::normalize_cli_profile_rewrites_cli_profile_in_place_unit ... ok
[INFO] [stdout] test app::external::tests::external_plugin_response_preserves_messages_unit ... ok
[INFO] [stdout] test app::external::tests::help_passthrough_detection_covers_flags_and_help_subcommand_unit ... ok
[INFO] [stdout] test app::help::tests::help_arg_parsers_accept_case_and_whitespace_unit ... ok
[INFO] [stdout] test app::help::tests::parse_help_render_overrides_supports_inline_assignment_forms_unit ... ok
[INFO] [stdout] test app::help::tests::render_settings_for_help_applies_explicit_overrides_after_preset_unit ... ok
[INFO] [stdout] test app::dispatch::tests::ensure_dispatch_visibility_and_terminal_kind_cover_all_action_families_unit ... ok
[INFO] [stdout] test app::help::tests::parse_help_render_overrides_ignores_invalid_values_without_eating_later_flags_unit ... ok
[INFO] [stdout] test app::logging::tests::bootstrap_logging_config_ignores_non_debug_short_flags ... ok
[INFO] [stdout] test app::dispatch::tests::build_dispatch_plan_covers_repl_subcommand_and_shorthand_parse_errors_unit ... ok
[INFO] [stdout] test app::logging::tests::bootstrap_logging_config_stops_scanning_after_double_dash ... ok
[INFO] [stdout] test app::logging::tests::debug_count_maps_to_expected_levels ... ok
[INFO] [stdout] test app::logging::tests::bootstrap_logging_config_counts_debug_flags ... ok
[INFO] [stdout] test app::logging::tests::dynamic_file_writer_without_file_reports_off_and_discards_bytes ... ok
[INFO] [stdout] test app::logging::tests::parse_level_filter_recognizes_error_debug_and_trace_aliases ... ok
[INFO] [stdout] test app::help::tests::render_settings_for_help_honors_austere_override_without_external_config_unit ... ok
[INFO] [stdout] test app::logging::tests::open_log_file_creates_parent_directories ... ok
[INFO] [stdout] test app::logging::tests::dynamic_file_writer_can_toggle_between_sink_and_file ... ok
[INFO] [stdout] test app::runtime::tests::auth_state_and_command_access_layer_policy_overrides_on_allowlists ... ok
[INFO] [stdout] test app::runtime::tests::command_access_for_uses_registry_when_present_and_public_default_otherwise ... ok
[INFO] [stdout] test app::runtime::tests::config_state_tracks_noops_changes_and_transaction_errors ... ok
[INFO] [stdout] test app::runtime::tests::runtime_context_and_allowlists_normalize_inputs ... ok
[INFO] [stdout] test app::logging::tests::parse_level_filter_recognizes_values ... ok
[INFO] [stdout] test app::logging::tests::split_file_path_defaults_to_current_directory_for_bare_name ... ok
[INFO] [stdout] test app::logging::tests::split_file_path_requires_file_name ... ok
[INFO] [stdout] test app::tests::bootstrap_message_verbosity_handles_non_utf8_short_flags_and_double_dash_unit ... ok
[INFO] [stdout] test app::logging::tests::split_file_path_preserves_nested_directory_and_name ... ok
[INFO] [stdout] test app::external::tests::external_builtin_help_passthrough_is_handled_unit ... ok
[INFO] [stdout] test api::tests::wildcard_queries_match_users_and_netgroups ... ok
[INFO] [stdout] test app::tests::app_help_includes_registered_native_commands_unit ... ok
[INFO] [stdout] test app::tests::app_state_seeds_plugin_command_policy_registry_unit ... ok
[INFO] [stdout] test app::tests::app_dispatches_top_level_native_commands_unit ... ok
[INFO] [stdout] test app::tests::cli_scan_extracts_invocation_flags_without_polluting_clap_unit ... ok
[INFO] [stdout] test app::tests::default_plugin_error_render_preserves_primary_detail_unit ... ok
[INFO] [stdout] test app::tests::direct_plugins_command_keeps_clap_action_unit ... ok
[INFO] [stdout] test app::tests::cli_runtime_load_options_follow_disable_flags_unit ... ok
[INFO] [stdout] test app::tests::explicit_profile_overrides_positional_unit ... ok
[INFO] [stdout] test app::tests::cli_presentation_flag_sets_session_override_unit ... ok
[INFO] [stdout] test app::tests::explicit_profile_is_normalized_unit ... ok
[INFO] [stdout] test app::tests::exit_code_classification_distinguishes_usage_config_and_plugin_unit ... ok
[INFO] [stdout] test app::tests::cli_cache_flag_is_rejected_outside_repl_unit ... ok
[INFO] [stdout] test app::tests::external_inline_builtin_reuses_repl_dsl_policy_unit ... ok
[INFO] [stdout] test app::tests::plugin_config_env_collects_shared_and_plugin_specific_entries_unit ... ok
[INFO] [stdout] test app::tests::plugin_config_env_serializes_lists_and_secrets_unit ... ok
[INFO] [stdout] test app::tests::plugin_path_discovery_defaults_off_and_respects_config_unit ... ok
[INFO] [stdout] test app::tests::plugin_config_env_name_normalizes_extension_keys_unit ... ok
[INFO] [stdout] test app::tests::positional_profile_only_routes_to_repl_unit ... ok
[INFO] [stdout] test app::tests::cli_gammel_og_bitter_flag_maps_to_austere_unit ... ok
[INFO] [stdout] test app::tests::plugin_process_timeout_reads_config_override_unit ... ok
[INFO] [stdout] test app::tests::positional_profile_with_command_routes_external_unit ... ok
[INFO] [stdout] test app::tests::positional_profile_external_matches_explicit_profile_unit ... ok
[INFO] [stdout] test app::tests::positional_profile_with_config_uses_clap_parser_unit ... ok
[INFO] [stdout] test app::tests::invocation_ui_overlays_runtime_defaults_per_command_unit ... ok
[INFO] [stdout] test app::tests::plugin_dispatch_context_refreshes_cached_plugin_env_after_config_change ... ok
[INFO] [stdout] test app::tests::positional_profile_plugins_matches_explicit_profile_unit ... ok
[INFO] [stdout] test app::tests::plugin_format_hint_parser_supports_known_values_unit ... ok
[INFO] [stdout] test app::tests::prepare_plugin_response_drops_format_hint_after_pipeline_unit ... ok
[INFO] [stdout] test app::tests::positional_profile_with_plugins_routes_builtin_unit ... ok
[INFO] [stdout] test app::tests::prepare_plugin_response_keeps_protocol_failures_in_messages_unit ... ok
[INFO] [stdout] test app::tests::presentation::compact_repl_intro_is_minimal_single_line_unit ... ok
[INFO] [stdout] test app::tests::presentation::austere_help_layout_collapses_footer_spacing_unit ... ok
[INFO] [stdout] test app::tests::presentation::help_chrome_uses_unicode_dividers_when_enabled_unit ... ok
[INFO] [stdout] test app::tests::presentation::help_render_overrides_parse_gammel_og_bitter_alias_unit ... ok
[INFO] [stdout] test app::tests::app_builder_and_runner_delegate_to_host_paths_unit ... ok
[INFO] [stdout] test app::tests::presentation::help_render_overrides_skips_next_flag_value_unit ... ok
[INFO] [stdout] test app::tests::presentation::austere_repl_intro_is_minimal_single_line_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_help_chrome_replaces_clap_headings_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_prompt_right_includes_timing_breakdown_at_debug_three_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_prompt_right_shows_ascii_incognito_marker_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_prompt_template_appends_indicator_when_missing_placeholder_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_prompt_template_substitutes_profile_and_indicator_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_simple_prompt_shows_shell_scope_indicator_unit ... ok
[INFO] [stdout] test app::tests::presentation::sensitive_key_detection_handles_common_variants_unit ... ok
[INFO] [stdout] test app::tests::presentation::theme_slug_is_rendered_as_title_case_display_name_unit ... ok
[INFO] [stdout] test app::tests::render_settings_with_hint_use_plugin_hint_only_when_auto_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_help_chrome_passthrough_without_known_sections_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::compact_repl_surface_omits_options_overview_and_prioritizes_builtins_unit ... ok
[INFO] [stdout] test app::tests::presentation::repl_intro_respects_builtin_visibility_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_placeholder_keeps_following_arg_slot_open_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_prefilled_context_filters_provider_scoped_values_unit ... ok
[INFO] [stdout] test app::tests::presentation::presentation_profiles_shape_message_output_snapshot_unit ... ok
[INFO] [stdout] test app::tests::presentation::presentation_profiles_shape_prompt_output_snapshot_unit ... ok
[INFO] [stdout] test app::tests::presentation::presentation_profiles_shape_help_output_snapshot_unit ... ok
[INFO] [stdout] test app::tests::presentation::presentation_profiles_shape_table_output_snapshot_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_partial_completion_does_not_trigger_shell_entry_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_with_invocation_flags_filters_provider_scoped_values_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::compact_root_completion_suggestions_prioritize_core_commands_unit ... ok
[INFO] [stdout] test app::tests::presentation::help_render_overrides_parse_long_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_completion_tree_respects_builtin_visibility_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_completion_tree_injects_config_set_schema_keys_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_completion_tree_contains_builtin_and_plugin_commands_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_alias_rewrites_to_command_help_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_alias_preserves_existing_help_flag_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_alias_skips_bare_help_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_with_prefilled_positional_args_inherits_target_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_with_invocation_flags_exposes_underlying_subcommands_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_alias_with_invocation_flags_inherits_target_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_alias_trailing_space_exposes_target_subcommands_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_alias_dash_prefix_exposes_target_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_help_root_does_not_suggest_help_or_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_dash_prefix_switches_from_subcommands_to_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_shell_enter_only_from_root_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_completion_tree_roots_to_active_shell_scope_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_shell_prefix_applies_once_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_shell_leave_message_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_shellable_commands_include_ldap_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_scoped_global_alias_falls_back_to_full_command_resolution_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_scoped_relative_alias_exposes_shell_subcommands_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_partial_root_completion_does_not_enter_shell_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_surface_drives_overview_and_completion_visibility_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_surface_exposes_selected_provider_for_conflicts_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_surface_includes_plugin_auth_hints_in_overview_and_tooltip_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_scoped_help_alias_uses_relative_target_completion_unit ... ok
[INFO] [stdout] test app::tests::repl_dsl_capability_is_declared_per_command_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_scoped_relative_alias_preserves_provider_scoped_values_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::rebuild_repl_state_preserves_last_failure_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.845200Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224838557641/plugins.json
[INFO] [stdout] test app::tests::repl_runtime::rebuild_repl_state_preserves_session_render_defaults_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.845712Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.846347Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.846846Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.846871Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.846883Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.846971Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.847137Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224846988547/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.847205Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.847230Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224847064067/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.847321Z DEBUG osp_cli::plugin::dispatch: running plugin describe executable=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697/osp-cache timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.846809Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.847466Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224838679370/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.847490Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stdout] test app::tests::repl_runtime::rebuild_repl_state_preserves_session_defaults_and_shell_context_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.848740Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.848838Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.848980Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.849154Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.849229Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.849441Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.851160Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224849523385/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.854404Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.854498Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224849635055/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.854578Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.855821Z DEBUG osp_cli::plugin::dispatch: plugin command completed plugin_id=hello executable=/tmp/osp-cli-plugin-pipeline-parity-1773181224781587117/osp-hello command=hello elapsed_ms=10 status=Some(0)
[INFO] [stdout] test app::tests::repl_runtime::repl_bang_contains_search_respects_shell_scope_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.857047Z DEBUG osp_cli::app::external: dispatching external command command=hello args=[]
[INFO] [stderr] 2026-03-10T22:20:24.857106Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224782011657/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.857140Z DEBUG osp_cli::plugin::state: resolved plugin provider command=hello active_providers=1 selected_provider=hello selection_mode=Unique
[INFO] [stderr] 2026-03-10T22:20:24.857172Z DEBUG osp_cli::plugin::dispatch: dispatching plugin command plugin_id=hello executable=/tmp/osp-cli-plugin-pipeline-parity-1773181224781587117/osp-hello command=hello arg_count=0 timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.858452Z DEBUG osp_cli::plugin::dispatch: plugin describe completed executable=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697/osp-cache elapsed_ms=11 status=Some(0)
[INFO] [stderr] 2026-03-10T22:20:24.858599Z DEBUG osp_cli::plugin::discovery: assembled discovered plugin plugin_id=cache source=explicit executable=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697/osp-cache healthy=true issue=None command_count=1
[INFO] [stderr] 2026-03-10T22:20:24.858921Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.860427Z DEBUG osp_cli::plugin::discovery: scanned plugin search root root=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697 source=explicit discovered_plugins=1 unhealthy_plugins=0
[INFO] [stderr] 2026-03-10T22:20:24.860463Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.860501Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.860521Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.860534Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.860613Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.860618Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=1 unhealthy_plugins=0 search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.860866Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224860637230/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.860950Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.860976Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224860720640/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.861073Z DEBUG osp_cli::plugin::dispatch: running plugin describe executable=/tmp/osp-cli-repl-bang-plugin-1773181224858717701/osp-cache timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.869553Z DEBUG osp_cli::app::external: dispatching external command command=cache args=["alpha"]
[INFO] [stderr] 2026-03-10T22:20:24.870507Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224846988547/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.871426Z DEBUG osp_cli::plugin::state: resolved plugin provider command=cache active_providers=1 selected_provider=cache selection_mode=Unique
[INFO] [stderr] 2026-03-10T22:20:24.871503Z DEBUG osp_cli::plugin::dispatch: dispatching plugin command plugin_id=cache executable=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697/osp-cache command=cache arg_count=1 timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.874595Z DEBUG osp_cli::plugin::dispatch: plugin command completed plugin_id=hello executable=/tmp/osp-cli-plugin-pipeline-parity-1773181224781587117/osp-hello command=hello elapsed_ms=17 status=Some(0)
[INFO] [stdout] test app::tests::repl_runtime::plugin_pipeline_rendering_matches_between_cli_and_repl_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_builtin_overrides_do_not_mutate_runtime_ui_state_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.875728Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.875784Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.875813Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.875829Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.875842Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.875914Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.876142Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224875938463/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.876213Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.876243Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224876044043/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.876261Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.877705Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.877743Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.877764Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.877781Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.877792Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.877844Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.878027Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224877863132/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.878105Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.878134Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224877936282/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.878226Z DEBUG osp_cli::plugin::dispatch: running plugin describe executable=/tmp/osp-cli-repl-cache-plugin-1773181224877511292/osp-slowcache timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.887444Z DEBUG osp_cli::plugin::dispatch: plugin describe completed executable=/tmp/osp-cli-repl-bang-plugin-1773181224858717701/osp-cache elapsed_ms=26 status=Some(0)
[INFO] [stderr] 2026-03-10T22:20:24.888503Z DEBUG osp_cli::plugin::discovery: assembled discovered plugin plugin_id=cache source=explicit executable=/tmp/osp-cli-repl-bang-plugin-1773181224858717701/osp-cache healthy=true issue=None command_count=1
[INFO] [stdout] test app::tests::repl_completion::repl_scoped_relative_alias_keeps_alias_name_in_root_suggestions_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_structural_alias_exposes_underlying_subcommands_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.892589Z DEBUG osp_cli::plugin::discovery: scanned plugin search root root=/tmp/osp-cli-repl-bang-plugin-1773181224858717701 source=explicit discovered_plugins=1 unhealthy_plugins=0
[INFO] [stderr] 2026-03-10T22:20:24.893235Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=1 unhealthy_plugins=0 search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.889762Z DEBUG osp_cli::plugin::dispatch: plugin command completed plugin_id=cache executable=/tmp/osp-cli-repl-bang-contains-plugin-1773181224845490697/osp-cache command=cache elapsed_ms=18 status=Some(0)
[INFO] [stderr] 2026-03-10T22:20:24.892467Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.895629Z DEBUG osp_cli::plugin::dispatch: plugin describe completed executable=/tmp/osp-cli-repl-cache-plugin-1773181224877511292/osp-slowcache elapsed_ms=17 status=Some(0)
[INFO] [stderr] 2026-03-10T22:20:24.895737Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.901714Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.895512Z DEBUG osp_cli::app::external: dispatching external command command=cache args=["beta"]
[INFO] [stderr] 2026-03-10T22:20:24.893444Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.902266Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.902369Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.902431Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.902480Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stdout] test app::tests::repl_completion::repl_shell_scoped_completion_and_dispatch_prefix_align_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.902600Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.902897Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224902665680/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.902980Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.903003Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224902810400/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.903018Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.903076Z DEBUG osp_cli::app::repl_lifecycle: rebuilding REPL state after config/theme change profile_override=None scoped=false
[INFO] [stderr] 2026-03-10T22:20:24.903106Z DEBUG osp_cli::app::bootstrap: resolving runtime config profile_override=None terminal=Some("repl") has_session_layer=true
[INFO] [stderr] 2026-03-10T22:20:24.903246Z DEBUG osp_cli::config::runtime: discovered runtime config paths config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml")
[INFO] [stderr] 2026-03-10T22:20:24.903275Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=false has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.903344Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.903384Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.903405Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.903415Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.903425Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.903438Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.903451Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.903462Z DEBUG osp_cli::config::loader: loaded chained config layer entries=0
[INFO] [stderr] 2026-03-10T22:20:24.903473Z DEBUG osp_cli::config::loader: loaded environment config layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.903485Z DEBUG osp_cli::config::loader: loaded config layers defaults=56 presentation=0 file=0 secrets=0 env=0 cli=0 session=3
[INFO] [stderr] 2026-03-10T22:20:24.903547Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.903649Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.903665Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.903680Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.903689Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.904336Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=58 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.904442Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=true has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.904516Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.904545Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.904561Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.904543Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.904575Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.904584Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.904588Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.904608Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.904613Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.902079Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.904665Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.904746Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.904977Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224904766069/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.905052Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.905079Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224904882729/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.905095Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.905153Z DEBUG osp_cli::app::repl_lifecycle: rebuilding REPL state after config/theme change profile_override=None scoped=false
[INFO] [stderr] 2026-03-10T22:20:24.905179Z DEBUG osp_cli::app::bootstrap: resolving runtime config profile_override=None terminal=Some("repl") has_session_layer=true
[INFO] [stderr] 2026-03-10T22:20:24.905309Z DEBUG osp_cli::config::runtime: discovered runtime config paths config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml")
[INFO] [stderr] 2026-03-10T22:20:24.905333Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=false has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.905411Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.905430Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.905448Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.905457Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.905467Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.905480Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.905493Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.905503Z DEBUG osp_cli::config::loader: loaded chained config layer entries=0
[INFO] [stderr] 2026-03-10T22:20:24.905515Z DEBUG osp_cli::config::loader: loaded environment config layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.905526Z DEBUG osp_cli::config::loader: loaded config layers defaults=56 presentation=0 file=0 secrets=0 env=0 cli=0 session=1
[INFO] [stderr] 2026-03-10T22:20:24.905586Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.905696Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.905711Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.905724Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.905734Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.906449Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.906471Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=0
[INFO] [stderr] 2026-03-10T22:20:24.906525Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=1 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.906698Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224906544918/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.906752Z DEBUG osp_cli::plugin::discovery: resolved plugin search roots search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.906774Z DEBUG osp_cli::plugin::discovery: describe cache missing; using empty cache path=/tmp/osp-cli-test-cache-1773181224906614708/describe-v1.json
[INFO] [stderr] 2026-03-10T22:20:24.906789Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=0 unhealthy_plugins=0 search_roots=0
[INFO] [stderr] 2026-03-10T22:20:24.906834Z DEBUG osp_cli::app::repl_lifecycle: rebuilding REPL state after config/theme change profile_override=None scoped=false
[INFO] [stderr] 2026-03-10T22:20:24.906859Z DEBUG osp_cli::app::bootstrap: resolving runtime config profile_override=None terminal=Some("repl") has_session_layer=true
[INFO] [stderr] 2026-03-10T22:20:24.906988Z DEBUG osp_cli::config::runtime: discovered runtime config paths config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml")
[INFO] [stderr] 2026-03-10T22:20:24.907024Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=false has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.907091Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.907114Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.907135Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.907145Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.907155Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.907168Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.907180Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.907190Z DEBUG osp_cli::config::loader: loaded chained config layer entries=0
[INFO] [stderr] 2026-03-10T22:20:24.907200Z DEBUG osp_cli::config::loader: loaded environment config layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.907212Z DEBUG osp_cli::config::loader: loaded config layers defaults=56 presentation=0 file=0 secrets=0 env=0 cli=0 session=1
[INFO] [stderr] 2026-03-10T22:20:24.907285Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.907423Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.907445Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.907458Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.907467Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.908042Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=57 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.908114Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=true has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.908174Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.908193Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.908208Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.908217Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.908225Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.908238Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.908249Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.908259Z DEBUG osp_cli::config::loader: loaded chained config layer entries=0
[INFO] [stderr] 2026-03-10T22:20:24.908269Z DEBUG osp_cli::config::loader: loaded environment config layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.908280Z DEBUG osp_cli::config::loader: loaded config layers defaults=56 presentation=6 file=0 secrets=0 env=0 cli=0 session=1
[INFO] [stderr] 2026-03-10T22:20:24.908340Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.908621Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.908692Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.908828Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.908852Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.909538Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=57 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.909619Z DEBUG osp_cli::app::bootstrap: resolved runtime config active_profile=default known_profiles=1 has_session_layer=true
[INFO] [stderr] 2026-03-10T22:20:24.895768Z DEBUG osp_cli::plugin::discovery: assembled discovered plugin plugin_id=slowcache source=explicit executable=/tmp/osp-cli-repl-cache-plugin-1773181224877511292/osp-slowcache healthy=true issue=None command_count=1
[INFO] [stderr] 2026-03-10T22:20:24.910418Z DEBUG osp_cli::plugin::discovery: scanned plugin search root root=/tmp/osp-cli-repl-cache-plugin-1773181224877511292 source=explicit discovered_plugins=1 unhealthy_plugins=0
[INFO] [stderr] 2026-03-10T22:20:24.906341Z DEBUG osp_cli::config::resolver: resolved config active_profile=default terminal=Some("repl") values=57 aliases=0
[INFO] [stderr] 2026-03-10T22:20:24.898047Z DEBUG osp_cli::app::external: dispatching external command command=cache args=["first"]
[INFO] [stderr] 2026-03-10T22:20:24.910603Z DEBUG osp_cli::plugin::state: plugin state file missing; using defaults path=/tmp/osp-cli-test-config-1773181224860637230/plugins.json
[INFO] [stderr] 2026-03-10T22:20:24.910635Z DEBUG osp_cli::plugin::state: resolved plugin provider command=cache active_providers=1 selected_provider=cache selection_mode=Unique
[INFO] [stderr] 2026-03-10T22:20:24.910661Z DEBUG osp_cli::plugin::dispatch: dispatching plugin command plugin_id=cache executable=/tmp/osp-cli-repl-bang-plugin-1773181224858717701/osp-cache command=cache arg_count=1 timeout_ms=10000
[INFO] [stderr] 2026-03-10T22:20:24.910659Z DEBUG osp_cli::plugin::discovery: completed plugin discovery discovered_plugins=1 unhealthy_plugins=0 search_roots=1
[INFO] [stderr] 2026-03-10T22:20:24.910868Z DEBUG osp_cli::config::runtime: building runtime loader pipeline include_env=true include_config_file=true config_file=Some("/root/.config/osp/config.toml") secrets_file=Some("/root/.config/osp/secrets.toml") has_presentation_layer=true has_cli_layer=false has_session_layer=true defaults_entries=56
[INFO] [stderr] 2026-03-10T22:20:24.910945Z DEBUG osp_cli::config::loader: loading config layers
[INFO] [stderr] 2026-03-10T22:20:24.910970Z DEBUG osp_cli::config::loader: loading TOML config layer path=/root/.config/osp/config.toml missing_ok=true
[INFO] [stderr] 2026-03-10T22:20:24.910988Z DEBUG osp_cli::config::loader: optional TOML config file missing path=/root/.config/osp/config.toml
[INFO] [stderr] 2026-03-10T22:20:24.911000Z DEBUG osp_cli::config::loader: loading chained config layer loader_count=2
[INFO] [stderr] 2026-03-10T22:20:24.911010Z DEBUG osp_cli::config::loader: loading TOML secrets layer path=/root/.config/osp/secrets.toml missing_ok=true strict_permissions=true
[INFO] [stderr] 2026-03-10T22:20:24.911024Z DEBUG osp_cli::config::loader: optional TOML secrets file missing path=/root/.config/osp/secrets.toml
[INFO] [stderr] 2026-03-10T22:20:24.911038Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.911050Z DEBUG osp_cli::config::loader: loaded chained config layer entries=0
[INFO] [stderr] 2026-03-10T22:20:24.911062Z DEBUG osp_cli::config::loader: loaded environment config layer input_vars=33 entries=0
[INFO] [stderr] 2026-03-10T22:20:24.911076Z DEBUG osp_cli::config::loader: loaded config layers defaults=56 presentation=6 file=0 secrets=0 env=0 cli=0 session=1
[INFO] [stderr] 2026-03-10T22:20:24.911146Z DEBUG osp_cli::config::resolver: resolving config profile_override=None terminal=Some("repl")
[INFO] [stderr] 2026-03-10T22:20:24.911288Z DEBUG osp_cli::config::bootstrap: resolving active profile explicit_profile=None terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.911313Z DEBUG osp_cli::config::bootstrap: resolved profile.default from loaded layers terminal=Some("repl") selected_profile=default
[INFO] [stderr] 2026-03-10T22:20:24.911329Z DEBUG osp_cli::config::bootstrap: resolved active profile active_profile=default active_profile_source=profile.default
[INFO] [stderr] 2026-03-10T22:20:24.911340Z DEBUG osp_cli::config::bootstrap: prepared config resolution frame active_profile=default active_profile_source=profile.default terminal=Some("repl") known_profiles=1
[INFO] [stderr] 2026-03-10T22:20:24.904620Z DEBUG osp_cli::config::loader: loaded environment secrets layer input_vars=33 entries=0
[INFO] [stdout] test app::tests::repl_completion::repl_trailing_space_prefers_subcommands_over_flags_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_config_unset_dry_run_preserves_session_state_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_config_unset_rebuilds_runtime_state_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_exit_is_host_owned_at_root_but_leaves_shell_in_scope_unit ... ok
[INFO] [stdout] test app::tests::repl_completion::repl_ui_projection_supports_flag_prefixed_help_and_completion_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_bang_expands_last_visible_command_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.949424Z  WARN osp_cli::plugin::state: no plugin provider found for command command=missing active_plugins=0
[INFO] [stdout] test app::tests::repl_runtime::repl_bang_contains_search_expands_matching_command_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_flag_prefixed_help_records_prompt_timing_badge_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_help_alias_keeps_colored_help_chrome_and_subcommands_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_help_alias_hides_common_invocation_options_without_verbose_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_failure_is_cached_for_doctor_last_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_config_prompt_color_change_rebuilds_deterministically_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_invalid_subcommand_renders_inline_help_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_help_alias_rejects_help_and_flag_targets_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_verbose_help_alias_dispatches_to_command_help_with_invocation_section_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_verbose_direct_help_shows_common_invocation_options_unit ... ok
[INFO] [stdout] test app::tests::run_cli_command_routes_messages_stdout_and_stderr_through_sink_unit ... ok
[INFO] [stdout] test app::tests::repl_surface_and_policy_include_registered_native_commands_unit ... ok
[INFO] [stdout] test app::tests::unknown_first_token_is_command_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_reload_intent_matches_command_scope_unit ... ok
[INFO] [stdout] test app::timing::tests::duration_and_style_helpers_cover_threshold_edges ... ok
[INFO] [stdout] test app::timing::tests::level_three_timing_includes_phase_breakdown ... ok
[INFO] [stdout] test app::timing::tests::debug_level_zero_and_empty_alignment_yield_no_output ... ok
[INFO] [stdout] test app::timing::tests::visible_width_and_right_alignment_ignore_ansi_sequences ... ok
[INFO] [stdout] test cli::commands::config::tests::config_diagnostics_rows_include_secrets_status_unit ... ok
[INFO] [stdout] test app::tests::run_from_with_sink_routes_help_to_stdout_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::config_get_rows_resolves_bootstrap_only_keys_through_runtime_explain_unit ... ok
[INFO] [stdout] test app::tests::verbose_plugin_error_render_includes_detail_chain_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_config_scopes_covers_known_profiles_and_active_profile_terminal_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_config_store_defaults_to_session_in_repl_and_config_in_cli ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_config_scopes_handles_profile_all_global_and_terminal_overrides ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_scope_and_store_targets_cover_precedence_rules_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_config_store_honors_explicit_targets_over_defaults_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_terminal_selector_handles_current_sentinel_and_blank_values ... ok
[INFO] [stdout] test cli::commands::config::tests::run_config_get_covers_alias_hit_and_missing_key_paths_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::run_config_set_and_unset_cover_session_paths_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::secrets_permissions_diagnostic_covers_unavailable_missing_ok_and_issue_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::secrets_permissions_diagnostic_warns_for_owner_only_non_600_modes_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:24.993256Z  WARN osp_cli::plugin::state: plugin command requires explicit provider selection command=hello providers="alpha-provider (explicit), beta-provider (explicit)"
[INFO] [stdout] test cli::commands::config::tests::validate_write_scopes_and_session_lookup_cover_invalid_and_present_paths_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::resolve_config_scopes_uses_explicit_profile_without_terminal_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_cache_reuses_external_result_across_pipelines_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_all_respects_builtin_visibility_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_all_json_includes_visible_sections_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::run_config_set_covers_session_explain_json_output_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_records_last_rows_and_bounded_cache_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_plugin_error_payload_is_handled_as_error_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_config_requires_builtin_visibility_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_last_json_shape_is_stable_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_last_text_includes_detail_when_debug_is_enabled_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_all_table_groups_sections_into_panels_unit ... ok
[INFO] [stdout] test app::tests::repl_runtime::repl_plugin_provider_override_dispatches_selected_provider_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_last_text_omits_detail_when_debug_is_disabled_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_last_without_failure_returns_plain_notice_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_theme_requires_builtin_visibility_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::doctor_theme_returns_output_rows_unit ... ok
[INFO] [stdout] test cli::commands::history::tests::extract_output_rows_returns_none_for_text_results_unit ... ok
[INFO] [stdout] test cli::commands::doctor::tests::theme_doctor_rows_report_issues_and_empty_state_unit ... ok
[INFO] [stdout] test cli::commands::history::tests::history_command_is_repl_only_unit ... ok
[INFO] [stdout] test cli::commands::history::tests::history_repl_command_wraps_repl_output_for_cli_unit ... ok
[INFO] [stdout] test cli::commands::plugins::tests::doctor_rows_include_summary_and_conflicts_unit ... ok
[INFO] [stdout] test cli::commands::plugins::tests::plugin_rows_render_real_metadata_and_scopes_unit ... ok
[INFO] [stdout] test cli::commands::theme::tests::extract_output_rows_returns_none_for_text_results_unit ... ok
[INFO] [stdout] test cli::commands::theme::tests::run_theme_command_list_emits_builtin_theme_rows_unit ... ok
[INFO] [stdout] test cli::commands::theme::tests::run_theme_command_show_uses_active_builtin_theme_when_name_is_omitted_unit ... ok
[INFO] [stdout] test cli::commands::theme::tests::theme_list_rows_marks_custom_theme_source_unit ... ok
[INFO] [stdout] test cli::commands::theme::tests::theme_show_rows_marks_custom_theme_source_unit ... ok
[INFO] [stdout] test cli::commands::config::tests::run_config_set_and_unset_cover_persistent_paths_and_warning_unit ... ok
[INFO] [stdout] test cli::invocation::tests::appends_invocation_help_once ... ok
[INFO] [stdout] test cli::commands::plugins::tests::plugin_rows_render_empty_states_unit ... ok
[INFO] [stdout] test cli::invocation::tests::duplicate_format_aliases_are_rejected_even_when_equivalent ... ok
[INFO] [stdout] test cli::invocation::tests::conflicting_mode_color_and_unicode_flags_are_rejected ... ok
[INFO] [stdout] test cli::invocation::tests::duplicate_plugin_provider_is_rejected ... ok
[INFO] [stdout] test cli::invocation::tests::hidden_completion_flags_follow_verbose_and_used_one_shots_unit ... ok
[INFO] [stdout] test cli::invocation::tests::invocation_help_requires_verbose_unit ... ok
[INFO] [stdout] test cli::invocation::tests::invalid_mode_and_empty_provider_value_are_rejected ... ok
[INFO] [stdout] test cli::invocation::tests::invocation_help_section_mentions_cache_scope ... ok
[INFO] [stdout] test cli::invocation::tests::missing_values_for_named_flags_are_rejected ... ok
[INFO] [stdout] test cli::invocation::tests::non_host_short_flags_are_left_in_command_tokens ... ok
[INFO] [stdout] test cli::invocation::tests::parses_repl_cache_flag_without_touching_command_tokens ... ok
[INFO] [stdout] test cli::invocation::tests::rejects_conflicting_format_flags ... ok
[INFO] [stdout] test cli::invocation::tests::scan_cli_argv_can_strip_only_invocation_flags ... ok
[INFO] [stdout] test cli::invocation::tests::scan_cli_argv_handles_empty_input ... ok
[INFO] [stdout] test cli::invocation::tests::scan_cli_argv_preserves_binary_and_strips_invocation_flags ... ok
[INFO] [stdout] test cli::invocation::tests::short_clusters_accumulate_verbose_quiet_and_debug_counts ... ok
[INFO] [stdout] test cli::invocation::tests::stops_host_scanning_after_double_dash ... ok
[INFO] [stdout] test cli::invocation::tests::strips_invocation_flags_and_preserves_command_tokens ... ok
[INFO] [stdout] test cli::invocation::tests::supports_explicit_render_and_ascii_aliases ... ok
[INFO] [stdout] test cli::invocation::tests::supports_inline_assignment_forms_for_render_settings ... ok
[INFO] [stdout] test cli::invocation::tests::trace_scanner_reports_kept_token_indices ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_can_expand_non_sensitive_config_values ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_expands_and_merges_following_stages ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_parsing_reports_expansion_and_placeholder_errors_unit ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_placeholder_syntax_errors_are_reported_cleanly ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_placeholders_support_positional_defaults_and_star_quoting ... ok
[INFO] [stdout] test cli::pipeline::tests::parse_command_text_reports_pipeline_and_shell_split_errors_unit ... ok
[INFO] [stdout] test cli::pipeline::tests::parse_command_text_with_aliases_splits_shell_words_and_dsl ... ok
[INFO] [stdout] test cli::pipeline::tests::alias_rejects_sensitive_config_placeholders ... ok
[INFO] [stdout] test cli::pipeline::tests::parse_command_tokens_with_aliases_handles_empty_input ... ok
[INFO] [stdout] test cli::pipeline::tests::truncate_display_respects_utf8_boundaries ... ok
[INFO] [stdout] test cli::pipeline::tests::validate_cli_dsl_stages_allows_help_stage ... ok
[INFO] [stdout] test cli::pipeline::tests::validate_cli_dsl_stages_rejects_unknown_verbs ... ok
[INFO] [stdout] test cli::rows::output::tests::grouped_output_flattens_group_headers_and_rows_unit ... ok
[INFO] [stdout] test cli::rows::output::tests::plugin_data_scalar_and_object_shapes_are_normalized_unit ... ok
[INFO] [stdout] test cli::rows::output::tests::plugin_meta_maps_all_alignment_variants_unit ... ok
[INFO] [stdout] test cli::rows::output::tests::plugin_meta_preserves_column_alignment_unit ... ok
[INFO] [stdout] test cli::rows::output::tests::rows_round_trip_through_output_result_unit ... ok
[INFO] [stdout] test cli::tests::app_style_alias_maps_to_presentation_unit ... ok
[INFO] [stdout] test cli::tests::cli_runtime_load_options_follow_disable_flags_unit ... ok
[INFO] [stdout] test cli::tests::explicit_low_level_overrides_beat_presentation_defaults_unit ... ok
[INFO] [stdout] test cli::tests::config_helpers_ignore_blank_strings_and_parse_integers_unit ... ok
[INFO] [stdout] test cli::tests::parse_inline_command_tokens_accepts_builtin_and_external_commands_unit ... ok
[INFO] [stdout] test cli::tests::render_settings_apply_low_level_ui_overrides_unit ... ok
[INFO] [stdout] test completion::engine::tests::analyze_exposes_merged_cursor_context ... ok
[INFO] [stdout] test cli::tests::presentation_seeds_runtime_chrome_and_table_defaults_unit ... ok
[INFO] [stdout] test completion::engine::tests::analyze_preserves_open_quote_context ... ok
[INFO] [stdout] test completion::engine::tests::equals_flag_without_value_still_requests_suggestions ... ok
[INFO] [stdout] test cli::tests::parse_mode_helpers_accept_aliases_and_trim_input_unit ... ok
[INFO] [stdout] test completion::engine::tests::hides_flags_already_present_later_in_line ... ok
[INFO] [stdout] test completion::engine::tests::matched_command_len_counts_value_keys_consistently ... ok
[INFO] [stdout] test completion::engine::tests::merges_context_flags_from_metadata_even_if_not_in_scope ... ok
[INFO] [stdout] test completion::engine::tests::merges_late_provider_flag_into_cursor_context ... ok
[INFO] [stdout] test completion::engine::tests::subtree_context_flags_do_not_leak_across_branches ... ok
[INFO] [stdout] test completion::engine::tests::terminal_command_without_flags_does_not_inherit_root_flags ... ok
[INFO] [stdout] test completion::engine::tests::supports_non_char_boundary_cursor_without_panicking ... ok
[INFO] [stdout] test completion::model::tests::command_line_tracks_head_tail_flags_and_pipes ... ok
[INFO] [stdout] test completion::model::tests::cursor_state_constructors_preserve_stub_and_range ... ok
[INFO] [stdout] test completion::model::tests::flag_and_completion_node_builders_attach_children_and_flags ... ok
[INFO] [stdout] test completion::model::tests::match_kind_and_suggestion_defaults_are_stable ... ok
[INFO] [stdout] test completion::model::tests::model_structs_keep_provider_maps_and_prefilled_values ... ok
[INFO] [stdout] test completion::model::tests::suggestion_and_arg_builders_capture_metadata ... ok
[INFO] [stdout] test completion::parse::tests::analyze_clamps_non_char_boundary_cursor_back_to_safe_boundary ... ok
[INFO] [stdout] test completion::parse::tests::analyze_falls_back_when_cursor_is_inside_unbalanced_quote ... ok
[INFO] [stdout] test completion::parse::tests::compute_stub_quote_tracks_unfinished_quotes ... ok
[INFO] [stdout] test completion::parse::tests::compute_stub_respects_equals_boundary ... ok
[INFO] [stdout] test completion::parse::tests::parse_handles_flags_and_pipes ... ok
[INFO] [stdout] test completion::parse::tests::analyze_preserves_cursor_quote_state_inside_balanced_line ... ok
[INFO] [stdout] test completion::parse::tests::cursor_state_tracks_replace_range_inside_open_quotes ... ok
[INFO] [stdout] test completion::parse::tests::analyze_reuses_one_cursor_snapshot_for_full_and_prefix_parse ... ok
[INFO] [stdout] test completion::parse::tests::parse_handles_end_of_options_and_negative_numbers ... ok
[INFO] [stdout] test completion::parse::tests::parse_keeps_inline_flag_values_and_repeated_empty_occurrences ... ok
[INFO] [stdout] test completion::parse::tests::parse_preserves_repeated_flag_occurrence_boundaries ... ok
[INFO] [stdout] test completion::parse::tests::parse_switches_to_tail_mode_after_first_flag_like_token ... ok
[INFO] [stdout] test completion::parse::tests::parse_treats_pipe_after_double_dash_as_dsl_boundary ... ok
[INFO] [stdout] test completion::parse::tests::tokenize_falls_back_for_unmatched_quotes ... ok
[INFO] [stdout] test completion::parse::tests::tokenize_handles_pipes_and_quotes ... ok
[INFO] [stdout] test completion::parse::tests::tokenize_with_spans_falls_back_for_unmatched_quotes ... ok
[INFO] [stdout] test completion::parse::tests::tokenize_with_spans_preserves_offsets_for_quotes_and_pipes ... ok
[INFO] [stdout] test completion::suggest::tests::arg_suggestions_honor_numeric_sort_after_match_score ... ok
[INFO] [stdout] test completion::suggest::tests::args_after_double_dash_advance_index ... ok
[INFO] [stdout] test completion::suggest::tests::filters_provider_values_by_os ... ok
[INFO] [stdout] test completion::suggest::tests::fuzzy_matches_long_pipe_verbs ... ok
[INFO] [stdout] test completion::suggest::tests::multi_value_flag_stays_in_value_mode_until_dash ... ok
[INFO] [stdout] test completion::suggest::tests::flag_hints_filter_provider_specific_flags_and_hide_selectors ... ok
[INFO] [stdout] test completion::suggest::tests::flag_suggestions_preserve_meta_and_display_fields ... ok
[INFO] [stdout] test completion::suggest::tests::fuzzy_matches_flag_names ... ok
[INFO] [stdout] test completion::suggest::tests::path_arg_emits_path_sentinel ... ok
[INFO] [stdout] test completion::suggest::tests::path_flag_emits_path_sentinel ... ok
[INFO] [stdout] test completion::suggest::tests::provider_alias_flag_enables_provider_specific_allowlist ... ok
[INFO] [stdout] test completion::suggest::tests::repeated_flag_partial_value_uses_last_occurrence_context ... ok
[INFO] [stdout] test completion::suggest::tests::single_value_flag_switches_to_other_flags_after_value ... ok
[INFO] [stdout] test completion::suggest::tests::suggests_pipe_verbs_after_pipe ... ok
[INFO] [stdout] test completion::tree::tests::builds_nested_tree_from_specs ... ok
[INFO] [stdout] test completion::suggest::tests::suggests_flag_values ... ok
[INFO] [stdout] test completion::suggest::tests::repeated_flag_without_value_stays_in_value_mode_for_last_occurrence ... ok
[INFO] [stdout] test completion::engine::tests::subcommand_meta_includes_tooltip_and_preview ... ok
[INFO] [stdout] test completion::suggest::tests::suggests_flags_in_scope ... ok
[INFO] [stdout] test completion::suggest::tests::subcommand_suggestions_honor_child_sort_after_match_score ... ok
[INFO] [stdout] test config::core::tests::bootstrap_key_registry_describes_profile_default ... ok
[INFO] [stdout] test config::core::tests::bootstrap_key_registry_rejects_profile_scopes ... ok
[INFO] [stdout] test config::core::tests::bootstrap_value_and_alias_helpers_match_runtime_rules ... ok
[INFO] [stdout] test config::core::tests::config_layer_from_env_iter_parses_scopes_and_bootstrap_profile_default ... ok
[INFO] [stdout] test completion::tree::tests::injects_config_key_nodes ... ok
[INFO] [stdout] test config::core::tests::adapt_value_for_schema_covers_float_and_secret_string_list_paths_unit ... ok
[INFO] [stdout] test config::core::tests::bootstrap_env_helpers_cover_terminal_scoped_default_profile_and_unknown_specs_unit ... ok
[INFO] [stdout] test config::core::tests::config_layer_from_toml_str_flattens_default_profile_and_terminal_scopes ... ok
[INFO] [stdout] test config::core::tests::config_layer_from_toml_str_reports_invalid_sections_and_unknown_roots_unit ... ok
[INFO] [stdout] test config::core::tests::config_layer_helpers_cover_insert_remove_and_profile_terminal_scope_unit ... ok
[INFO] [stdout] test config::core::tests::config_value_from_toml_rejects_tables_and_preserves_datetime_strings ... ok
[INFO] [stdout] test config::core::tests::config_values_handle_secrets_display_and_interpolation ... ok
[INFO] [stdout] test config::core::tests::parse_input_value_adapts_scalars_lists_and_enums ... ok
[INFO] [stdout] test config::core::tests::env_bootstrap_and_scope_normalization_cover_remaining_edge_cases_unit ... ok
[INFO] [stdout] test config::core::tests::normalize_scope_lowercases_profile_and_terminal_names ... ok
[INFO] [stdout] test config::core::tests::config_value_display_and_from_impls_cover_scalar_variants_unit ... ok
[INFO] [stdout] test config::core::tests::resolved_config_and_layer_helpers_cover_secret_lists_aliases_and_remove_scoped_unit ... ok
[INFO] [stdout] test config::core::tests::resolved_config_string_list_helpers_cover_secret_and_non_string_variants_unit ... ok
[INFO] [stdout] test config::core::tests::parse_input_value_covers_float_unknown_and_allowed_scope_paths_unit ... ok
[INFO] [stdout] test config::core::tests::schema_adaptation_helpers_cover_scalar_secret_list_and_env_paths_unit ... ok
[INFO] [stdout] test config::core::tests::schema_extension_runtime_and_scope_helpers_cover_aliases_unit ... ok
[INFO] [stdout] test config::core::tests::schema_marks_profile_default_bootstrap_only ... ok
[INFO] [stdout] test config::core::tests::validate_and_adapt_rejects_unknown_and_missing_required_keys ... ok
[INFO] [stdout] test config::core::tests::validate_and_adapt_converts_runtime_visible_string_values ... ok
[INFO] [stdout] test config::interpolate::tests::explain_interpolation_reports_recursive_steps_once_unit ... ok
[INFO] [stdout] test config::error::tests::config_error_display_covers_user_facing_variants ... ok
[INFO] [stdout] test config::core::tests::resolved_config_helpers_read_scalar_list_and_alias_views ... ok
[INFO] [stdout] test config::interpolate::tests::parse_template_rejects_empty_placeholders_and_trims_names_unit ... ok
[INFO] [stdout] test config::error::tests::with_path_context_wraps_source_error ... ok
[INFO] [stdout] test config::interpolate::tests::interpolate_all_expands_secret_placeholders_and_keeps_result_secret_unit ... ok
[INFO] [stdout] test config::loader::tests::pipeline_builder_covers_schema_and_collected_env_loaders ... ok
[INFO] [stdout] test config::core::tests::scalar_conversion_and_display_helpers_cover_remaining_variants_unit ... ok
[INFO] [stdout] test config::loader::tests::process_env_and_pipeline_builder_cover_remaining_loader_paths_unit ... ok
[INFO] [stdout] test config::resolver::tests::resolver_layer_mutators_and_setters_are_callable_unit ... ok
[INFO] [stdout] test config::loader::tests::file_and_secrets_loaders_report_read_errors_for_directories_unit ... ok
[INFO] [stdout] test config::loader::tests::chained_loader_and_pipeline_merge_and_resolve_layers ... ok
[INFO] [stdout] test config::loader::tests::secrets_and_env_loaders_mark_secret_entries_and_origins ... ok
[INFO] [stdout] test config::loader::tests::toml_file_loader_covers_existing_optional_and_missing_required_paths ... ok
[INFO] [stdout] test config::runtime::tests::runtime_defaults_history_path_keeps_placeholders ... ok
[INFO] [stdout] test config::resolver::tests::explain_bootstrap_key_rejects_non_bootstrap_keys_unit ... ok
[INFO] [stdout] test config::runtime::tests::runtime_environment_uses_home_when_xdg_is_missing ... ok
[INFO] [stdout] test config::runtime::tests::runtime_config_paths_fall_back_to_xdg_root ... ok
[INFO] [stdout] test config::runtime::tests::runtime_config_paths_prefer_explicit_file_overrides ... ok
[INFO] [stdout] test config::runtime::tests::runtime_defaults_seed_expected_keys ... ok
[INFO] [stdout] test config::runtime::tests::runtime_environment_state_artifacts_fall_back_to_temp_root ... ok
[INFO] [stdout] test config::store::tests::config_value_to_toml_preserves_scalar_and_secret_variants_unit ... ok
[INFO] [stdout] test config::store::tests::dry_run_set_does_not_create_file ... ok
[INFO] [stdout] test config::store::tests::empty_dotted_keys_are_rejected_for_set_and_unset ... ok
[INFO] [stdout] test config::store::tests::load_or_create_toml_root_reports_file_read_errors_unit ... ok
[INFO] [stdout] test config::store::tests::non_strict_secret_validation_allows_group_readable_files ... ok
[INFO] [stdout] test config::store::tests::invalid_toml_is_reported_with_path_context ... ok
[INFO] [stdout] test config::store::tests::read_dotted_value_returns_nested_scalars_and_none_for_missing_paths_unit ... ok
[INFO] [stdout] test config::store::tests::set_and_unset_reject_empty_key_paths ... ok
[INFO] [stdout] test config::store::tests::set_rejects_non_table_intermediate_section ... ok
[INFO] [stdout] test config::store::tests::strict_secret_validation_rejects_group_readable_files ... ok
[INFO] [stdout] test config::store::tests::strict_secret_validation_reports_missing_file_as_read_error ... ok
[INFO] [stdout] test config::store::tests::set_returns_previous_value_when_overwriting_existing_entry ... ok
[INFO] [stdout] test config::store::tests::set_and_unset_terminal_profile_scope_round_trip ... ok
[INFO] [stdout] test config::store::tests::set_list_values_round_trip_and_unset_returns_previous_list ... ok
[INFO] [stdout] test config::store::tests::strict_secret_write_sets_file_mode_to_600 ... ok
[INFO] [stdout] test config::store::tests::table_path_helpers_cover_missing_invalid_and_pruned_sections_unit ... ok
[INFO] [stdout] test config::store::tests::unset_rejects_non_table_intermediate_section ... ok
[INFO] [stdout] test config::store::tests::write_text_atomic_rejects_paths_without_file_name_unit ... ok
[INFO] [stdout] test config::store::tests::unset_prunes_empty_scope_tables_back_to_root ... ok
[INFO] [stdout] test config::store::tests::write_toml_root_persists_regular_payload_without_secret_mode_unit ... ok
[INFO] [stdout] test core::command_policy::tests::capability_gated_command_is_visible_but_denied_when_capability_missing ... ok
[INFO] [stdout] test core::command_policy::tests::command_path_and_policy_builders_normalize_inputs ... ok
[INFO] [stdout] test config::store::tests::unset_missing_value_keeps_existing_scope_content ... ok
[INFO] [stdout] test core::command_policy::tests::evaluate_policy_covers_disabled_hidden_feature_profile_and_auth_variants ... ok
[INFO] [stdout] test core::command_policy::tests::overrides_can_hide_commands ... ok
[INFO] [stdout] test core::command_policy::tests::policy_context_builders_normalize_inputs ... ok
[INFO] [stdout] test core::command_policy::tests::public_commands_can_remain_unauthenticated ... ok
[INFO] [stdout] test core::command_policy::tests::registry_resolution_applies_overrides_and_contains_lookup ... ok
[INFO] [stdout] test core::command_policy::tests::required_capabilities_are_simple_conjunction ... ok
[INFO] [stdout] test core::output::tests::output_format_round_trips_known_values_and_aliases ... ok
[INFO] [stdout] test core::output::tests::output_modes_cover_remaining_variants ... ok
[INFO] [stdout] test core::output::tests::render_color_and_unicode_modes_parse_case_insensitively ... ok
[INFO] [stdout] test core::output_model::tests::from_rows_keeps_first_seen_key_order ... ok
[INFO] [stdout] test core::output_model::tests::grouped_output_does_not_expose_rows_views ... ok
[INFO] [stdout] test core::output_model::tests::row_output_exposes_rows_views ... ok
[INFO] [stdout] test core::plugin::clap_tests::clap_command_conversion_skips_hidden_items ... ok
[INFO] [stdout] test core::plugin::clap_tests::clap_helper_captures_subcommands_flags_and_args ... ok
[INFO] [stdout] test core::plugin::tests::command_auth_converts_to_generic_command_policy_unit ... ok
[INFO] [stdout] test core::plugin::tests::command_auth_hint_stays_compact_and_stable_unit ... ok
[INFO] [stdout] test core::plugin::tests::command_auth_validation_rejects_blank_entries_unit ... ok
[INFO] [stdout] test core::runtime::tests::env_roundtrip_keeps_runtime_hints ... ok
[INFO] [stdout] test core::runtime::tests::from_env_defaults_when_vars_missing_or_invalid ... ok
[INFO] [stdout] test core::runtime::tests::terminal_kind_falls_back_to_terminal_env ... ok
[INFO] [stdout] test dsl::eval::context::tests::keeps_first_seen_key_order ... ok
[INFO] [stdout] test core::command_policy::tests::access_helpers_reflect_visibility_and_runnability ... ok
[INFO] [stdout] test dsl::eval::engine::tests::copy_stage_sets_meta_flag ... ok
[INFO] [stdout] test config::store::tests::non_strict_secret_validation_ignores_missing_files ... ok
[INFO] [stdout] test dsl::eval::engine::tests::bare_quick_stage_without_verb_still_works ... ok
[INFO] [stdout] test dsl::eval::engine::tests::grouped_output_meta_uses_group_headers ... ok
[INFO] [stdout] test config::store::tests::secret_file_mode_reports_missing_files_unit ... ok
[INFO] [stdout] test dsl::eval::engine::tests::grouped_output_pipeline_covers_flat_row_only_explicit_stage_aliases_unit ... ok
[INFO] [stdout] test dsl::eval::engine::tests::grouped_rows_ignore_flat_row_only_projection_and_copy_preserves_flag ... ok
[INFO] [stdout] test dsl::eval::engine::tests::grouped_output_pipeline_covers_group_limit_and_unroll_paths_unit ... ok
[INFO] [stdout] test dsl::eval::engine::tests::question_stage_with_spec_filters_existence ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_executor_matches_eager_for_quick_hot_path ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_executor_matches_eager_for_streamable_row_pipeline ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_executor_preserves_copy_flag_and_value_fanout ... ok
[INFO] [stdout] test completion::tree::tests::duplicate_root_specs_fail_fast - should panic ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_materializes_cleanly_at_sort_barrier ... ok
[INFO] [stdout] test dsl::eval::engine::tests::project_then_filter_pipeline_works ... ok
[INFO] [stdout] test completion::tree::tests::duplicate_config_keys_fail_fast - should panic ... ok
[INFO] [stdout] test dsl::eval::engine::tests::question_stage_cleans_empty_fields ... ok
[INFO] [stdout] test config::store::tests::unset_on_missing_file_keeps_empty_root_without_phantom_scopes ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_executor_preserves_single_row_quick_magic ... ok
[INFO] [stdout] test dsl::eval::engine::tests::apply_output_pipeline_covers_explicit_materializing_row_stages_unit ... ok
[INFO] [stdout] test dsl::eval::engine::tests::unknown_single_letter_verb_errors ... ok
[INFO] [stdout] test dsl::eval::flatten::tests::coalesce_skips_invalid_or_negative_index_paths ... ok
[INFO] [stdout] test dsl::eval::flatten::tests::flattens_nested_objects_and_lists ... ok
[INFO] [stdout] test dsl::eval::engine::tests::unroll_stage_expands_list_field ... ok
[INFO] [stdout] test dsl::eval::engine::tests::unroll_requires_field_name ... ok
[INFO] [stdout] test dsl::eval::engine::tests::streaming_pipeline_covers_stream_stage_variants_and_errors_unit ... ok
[INFO] [stdout] test dsl::eval::flatten::tests::coalesces_flattened_row_back_to_nested_structure ... ok
[INFO] [stdout] test dsl::eval::engine::tests::value_scope_alias_filters_by_value ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::absolute_paths_require_prefix_match ... ok
[INFO] [stdout] test dsl::eval::flatten::tests::flatten_rows_maps_each_row_independently ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::matches_subsequence_dotted_paths ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::detailed_matching_reports_partial_hits_when_exact_match_is_absent ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::matches_last_segment_case_insensitive ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::selector_paths_match_exact_index ... ok
[INFO] [stdout] test dsl::eval::matchers::tests::value_contains_handles_arrays_and_case_sensitivity ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::evaluate_path_handles_fanout_and_slice ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::resolve_first_value_unwraps_arrays_and_dedups_results ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::slice_indices_handles_forward_and_reverse_ranges_consistently ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::enumerate_paths_and_selectors_cover_negative_indexes ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::resolve_values_prefers_direct_path_then_fuzzy_fallback ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::resolve_pairs_handles_path_flat_fallback_and_full_materialization ... ok
[INFO] [stdout] test dsl::parse::key_spec::tests::does_not_treat_bang_equal_as_prefix ... ok
[INFO] [stdout] test dsl::parse::key_spec::tests::parses_case_insensitive_exact ... ok
[INFO] [stdout] test dsl::parse::key_spec::tests::parses_negated_existence ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::split_pipeline_reports_trailing_escape ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::split_pipeline_respects_quoted_pipes ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::tokenize_stage_keeps_operator_chars_inside_quoted_value ... ok
[INFO] [stdout] test dsl::parse::key_spec::tests::parses_case_sensitive_exact_with_strict ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::tokenize_stage_keeps_prefix_operators_in_single_token ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::tokenize_stage_splits_inline_operators ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::tokenize_stage_reports_trailing_escape ... ok
[INFO] [stdout] test dsl::parse::path::tests::detects_materialization_for_negative_index ... ok
[INFO] [stdout] test dsl::parse::path::tests::expression_to_flat_key_accepts_positive_index_only ... ok
[INFO] [stdout] test dsl::parse::path::tests::full_slice_does_not_require_materialization ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_pipeline_extracts_command_and_stages ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_pipeline_ignores_empty_segments_like_python ... ok
[INFO] [stdout] test dsl::parse::path::tests::non_full_slice_requires_materialization ... ok
[INFO] [stdout] test dsl::parse::path::tests::parses_dotted_path_with_selectors ... ok
[INFO] [stdout] test dsl::parse::path::tests::parse_path_reports_typed_errors_for_common_invalid_inputs_unit ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_stage_list_rejects_invalid_quoted_stage ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_pipeline_rejects_trailing_escape ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_stage_list_rejects_trailing_escape ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_stage_extracts_verb_and_spec ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_stage_marks_unknown_single_letter_verb_as_explicit ... ok
[INFO] [stdout] test dsl::parse::quick::tests::parses_key_scope ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::split_pipeline_reports_unterminated_quote ... ok
[INFO] [stdout] test dsl::parse::lexer::tests::tokenize_stage_handles_quotes_and_escapes ... ok
[INFO] [stdout] test dsl::parse::quick::tests::parses_key_not_equals_form ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_stage_with_only_term_becomes_quick_candidate ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_count_global ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_handles_empty_inputs_and_parenthesized_count_aliases ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_on_groups_adds_aggregates ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_parses_default_aliases_and_group_count_macro ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_space_separated_column_form_keeps_column_name_as_alias ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_rejects_invalid_forms ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_supports_alias_after_as_and_mixed_numeric_inputs ... ok
[INFO] [stdout] test dsl::parse::quick::tests::parses_value_scope ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::count_macro_returns_count_rows ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_supports_min_max_and_existence_count ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_sum_and_avg ... ok
[INFO] [stdout] test dsl::stages::collapse::tests::collapses_groups_into_summary_rows ... ok
[INFO] [stdout] test dsl::stages::common::tests::alias_parsers_cover_valid_and_invalid_as_forms ... ok
[INFO] [stdout] test dsl::stages::common::tests::parse_stage_words_handles_empty_and_quoted_input ... ok
[INFO] [stdout] test dsl::stages::collapse::tests::passes_through_rows_unchanged ... ok
[INFO] [stdout] test dsl::stages::common::tests::optional_alias_parser_returns_none_when_alias_is_absent_or_index_missing ... ok
[INFO] [stdout] test dsl::stages::common::tests::parse_stage_words_reports_lexer_errors ... ok
[INFO] [stdout] test dsl::stages::filter::tests::groups_keep_matching_rows_when_headers_do_not_match ... ok
[INFO] [stdout] test dsl::stages::filter::tests::invalid_regex_fails_at_parse_time ... ok
[INFO] [stdout] test dsl::stages::filter::tests::parses_timestamps_for_ordered_comparison ... ok
[INFO] [stdout] test dsl::stages::copy::tests::copy_stage_is_identity_for_rows_unit ... ok
[INFO] [stdout] test dsl::stages::filter::tests::supports_array_regex_and_boolean_matches ... ok
[INFO] [stdout] test dsl::stages::filter::tests::supports_negated_missing_keys ... ok
[INFO] [stdout] test dsl::stages::filter::tests::supports_existence_checks ... ok
[INFO] [stdout] test dsl::stages::filter::tests::supports_numeric_timestamp_and_missing_negated_comparisons ... ok
[INFO] [stdout] test dsl::stages::filter::tests::supports_spaced_contains_syntax ... ok
[INFO] [stdout] test dsl::stages::group::tests::ambiguous_fuzzy_key_errors ... ok
[INFO] [stdout] test dsl::stages::group::tests::group_existence_token ... ok
[INFO] [stdout] test dsl::stages::group::tests::group_by_scalar_key ... ok
[INFO] [stdout] test dsl::stages::group::tests::grouping_structured_container_requires_leaf_or_selector ... ok
[INFO] [stdout] test dsl::stages::group::tests::group_fanout_from_list ... ok
[INFO] [stdout] test dsl::stages::group::tests::group_with_alias ... ok
[INFO] [stdout] test dsl::stages::common::tests::parse_terms_splits_commas_and_whitespace ... ok
[INFO] [stdout] test dsl::stages::jq::tests::jq_helpers_cover_empty_rows_and_group_fallbacks_unit ... ok
[INFO] [stdout] test dsl::stages::jq::tests::json_helpers_round_trip_groups_and_scalar_rows ... ok
[INFO] [stdout] test dsl::stages::jq::tests::normalize_expression_accepts_double_quoted_filters_unit ... ok
[INFO] [stdout] test dsl::stages::jq::tests::normalize_expression_reports_typed_missing_expression_unit ... ok
[INFO] [stdout] test dsl::stages::jq::tests::normalize_expression_trims_quotes_and_leading_pipe ... ok
[INFO] [stdout] test dsl::stages::group::tests::regroup_preserves_aggregates ... ok
[INFO] [stdout] test dsl::parse::pipeline::tests::parse_pipeline_rejects_invalid_quotes ... ok
[INFO] [stdout] test dsl::stages::jq::tests::apply_dispatch_and_scalar_row_helpers_cover_remaining_paths_unit ... ok
[INFO] [stdout] test dsl::stages::limit::tests::handles_zero_limit ... ok
[INFO] [stdout] test dsl::stages::limit::tests::rejects_invalid_argument_count ... ok
[INFO] [stdout] test dsl::stages::jq::tests::apply_groups_handles_empty_and_row_style_jq_output_unit ... ok
[INFO] [stdout] test dsl::stages::limit::tests::supports_negative_count_for_tail ... ok
[INFO] [stdout] test dsl::stages::limit::tests::supports_negative_count_with_negative_offset ... ok
[INFO] [stdout] test dsl::stages::limit::tests::supports_positive_count_with_negative_offset ... ok
[INFO] [stdout] test dsl::stages::limit::tests::supports_positive_count_with_positive_offset ... ok
[INFO] [stdout] test dsl::stages::limit::tests::takes_head_for_positive_limit ... ok
[INFO] [stdout] test dsl::stages::project::tests::absolute_path_projection_keeps_only_exact_nested_key ... ok
[INFO] [stdout] test dsl::stages::project::tests::apply_groups_keeps_aggregate_only_groups_even_when_rows_drop_out ... ok
[INFO] [stdout] test dsl::stages::project::tests::dropping_dynamic_projection_label_removes_fanout_column ... ok
[INFO] [stdout] test dsl::stages::jq::tests::run_jq_reports_missing_binary_and_invalid_output ... ok
[INFO] [stdout] test dsl::stages::project::tests::drops_column_with_prefix ... ok
[INFO] [stdout] test dsl::stages::project::tests::empty_project_spec_is_rejected ... ok
[INFO] [stdout] test dsl::stages::jq::tests::run_jq_and_apply_cover_row_and_group_paths ... ok
[INFO] [stdout] test dsl::stages::project::tests::supports_selector_fanout ... ok
[INFO] [stdout] test dsl::stages::question::tests::empty_spec_cleans_group_rows_without_touching_group_metadata ... ok
[INFO] [stdout] test dsl::stages::project::tests::keeps_all_exact_nested_matches ... ok
[INFO] [stdout] test dsl::stages::project::tests::keeps_requested_columns ... ok
[INFO] [stdout] test dsl::stages::question::tests::empty_spec_cleans_rows_and_drops_empty_results ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_existence_and_negated_existence_filter_multi_rows ... ok
[INFO] [stdout] test dsl::stages::question::tests::non_empty_spec_reuses_quick_filter_for_rows_and_groups ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_exact_case_modes_respect_prefix_rules ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_filter_helpers_cover_array_pair_matches_and_empty_results_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_match_and_transform_helpers_cover_scalar_negated_and_filtered_paths_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_helper_functions_cover_sparse_arrays_and_segment_fallbacks_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_helper_edge_cases_cover_fallback_names_and_scalar_squeeze_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_key_scope_not_equals_works ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_matches_keys_and_values_by_default ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_negated_single_row_projection_removes_matching_field ... ok
[INFO] [stdout] test dsl::eval::resolve::tests::truthy_rules_match_dsl_expectations ... ok
[INFO] [stdout] test dsl::stages::aggregate::tests::aggregate_prefers_alias_token_for_two_word_count_form ... ok
[INFO] [stdout] test dsl::stages::filter::tests::filters_on_equals_predicate ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_multi_row_negated_value_scope_keeps_only_non_matching_rows ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_negated_value_scope_handles_nested_arrays_and_synthetic_matches_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_negated_value_scope_removes_matching_array_items_on_single_row ... ok
[INFO] [stdout] test dsl::stages::jq::tests::run_jq_with_program_surfaces_nonzero_exit_variants_unit ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_projects_exact_key_matches ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_single_row_value_projection_squeezes_single_object_array ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_single_row_key_scope_keeps_matching_key_without_projection_split ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_value_scope_works ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_value_scope_filters_matching_items_inside_arrays ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_requires_non_empty_search_token ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_projects_nested_path_matches_from_single_row ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_value_scope_projects_synthetic_rows_and_drops_empty_results_unit ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_auto_cast_orders_booleans_before_strings ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_numeric_strings_ascending ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_multiple_keys_with_direction ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_numeric_strings_descending ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_supports_explicit_ip_and_string_casts ... ok
[INFO] [stdout] test dsl::stages::values::tests::emits_requested_scalar_values_and_ignores_missing_keys ... ok
[INFO] [stdout] test dsl::stages::values::tests::empty_spec_emits_all_scalar_and_array_values_in_order ... ok
[INFO] [stdout] test dsl::stages::values::tests::explodes_array_values ... ok
[INFO] [stdout] test dsl::verbs::tests::explicit_verb_registration_is_derived_from_metadata_unit ... ok
[INFO] [stdout] test dsl::verbs::tests::stage_streamability_matches_real_barriers_unit ... ok
[INFO] [stdout] test dsl::verbs::tests::verb_metadata_exposes_streaming_annotations_unit ... ok
[INFO] [stdout] test native::tests::registry_catalog_exposes_completion_and_auth_metadata_unit ... ok
[INFO] [stdout] test native::tests::registry_normalizes_lookup_and_collects_recursive_policy_unit ... ok
[INFO] [stdout] test plugin::config::tests::collect_plugin_config_env_ignores_incomplete_plugin_keys ... ok
[INFO] [stdout] test plugin::config::tests::config_value_to_plugin_env_serializes_scalars_lists_and_nans ... ok
[INFO] [stdout] test plugin::config::tests::plugin_config_env_cache_reuses_revision_and_refreshes_after_replace ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_sparse_array_compaction_keeps_all_null_lists_intact_unit ... ok
[INFO] [stdout] test plugin::config::tests::plugin_config_env_name_normalizes_mixed_separators ... ok
[INFO] [stdout] test dsl::stages::quick::tests::quick_projection_and_negation_helpers_cover_empty_synthetic_and_array_removal_unit ... ok
[INFO] [stdout] test plugin::config::tests::plugin_entries_merge_shared_and_plugin_specific_values ... ok
[INFO] [stdout] test dsl::stages::sort::tests::explicit_ip_and_number_casts_fall_back_to_string_comparison ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_uses_first_list_element_when_value_is_list ... ok
[INFO] [stdout] test plugin::tests::clear_preferred_provider_rejects_empty_command_unit ... ok
[INFO] [stdout] test plugin::tests::cache_and_issue_helpers_cover_update_lookup_and_prune_unit ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_rejects_missing_keys_and_unknown_casts ... ok
[INFO] [stdout] test plugin::tests::compatible_min_osp_version_has_no_issue ... ok
[INFO] [stdout] test plugin::tests::completion_words_collect_flags_and_backbone_commands_unit ... ok
[INFO] [stdout] test plugin::tests::describe_command_helpers_preserve_nested_completion_metadata_unit ... ok
[INFO] [stdout] test plugin::tests::bundled_plugins_skip_describe_when_checksum_mismatches_unit ... ok
[INFO] [stdout] test dsl::stages::sort::tests::sort_places_missing_values_last_and_sorts_groups_using_merged_rows ... ok
[INFO] [stderr] 2026-03-10T22:20:25.225651Z  WARN osp_cli::plugin::dispatch: plugin describe execution failed executable=/tmp/osp-cli-plugin-manager-missing-describe-1773181225221963679/osp-missing error=No such file or directory (os error 2)
[INFO] [stdout] test plugin::tests::bundled_plugins_skip_describe_when_manifest_is_missing_unit ... ok
[INFO] [stdout] test plugin::tests::describe_plugin_reports_missing_executable_unit ... ok
[INFO] [stdout] test plugin::tests::enabling_one_plugin_does_not_disable_other_default_enabled_plugins ... ok
[INFO] [stdout] test plugin::tests::explicit_disable_overrides_default_enabled ... ok
[INFO] [stdout] test plugin::tests::explicit_enable_wins_if_state_file_contains_conflicting_entries ... ok
[INFO] [stdout] test plugin::tests::explicit_enable_overrides_default_disabled ... ok
[INFO] [stdout] test plugin::tests::incompatible_min_osp_version_marks_plugin_unhealthy ... ok
[INFO] [stdout] test plugin::tests::command_policy_registry_collects_recursive_plugin_auth_metadata_unit ... ok
[INFO] [stdout] test plugin::tests::invalid_min_osp_version_reports_issue ... ok
[INFO] [stdout] test plugin::tests::manifest_helpers_cover_not_bundled_missing_invalid_and_valid_paths_unit ... ok
[INFO] [stdout] test plugin::tests::plugin_dispatch_context_merges_shared_and_plugin_env_pairs_unit ... ok
[INFO] [stdout] test plugin::tests::plugin_dispatch_error_formats_cover_terminal_variants_unit ... ok
[INFO] [stdout] test plugin::tests::ambiguous_command_requires_explicit_selection ... ok
[INFO] [stdout] test plugin::tests::preferred_provider_rejects_empty_plugin_id_unit ... ok
[INFO] [stdout] test plugin::tests::clearing_preferred_provider_requires_selection_again ... ok
[INFO] [stderr] 2026-03-10T22:20:25.255683Z  WARN osp_cli::plugin::dispatch: plugin command execution failed plugin_id=missing executable=/tmp/osp-cli-plugin-manager-direct-dispatch-errors-1773181225221297249/osp-missing-run command=missing error=No such file or directory (os error 2)
[INFO] [stdout] test plugin::tests::describe_plugin_and_run_provider_cover_direct_error_paths_unit ... ok
[INFO] [stdout] test plugin::tests::preferred_provider_rejects_unknown_command_and_provider_unit ... ok
[INFO] [stdout] test plugin::tests::search_root_and_checksum_helpers_cover_real_filesystem_paths_unit ... ok
[INFO] [stdout] test plugin::tests::set_enabled_and_clear_missing_provider_preference_cover_state_round_trip_unit ... ok
[INFO] [stdout] test plugin::tests::preferred_provider_updates_catalog_and_resolves_command ... ok
[INFO] [stdout] test ports::tests::filter_matches_arrays_and_missing_fields_fail_cleanly ... ok
[INFO] [stdout] test ports::tests::filter_supports_case_insensitive_substring_and_wildcard_matching ... ok
[INFO] [stdout] test ports::tests::filter_supports_key_value_match ... ok
[INFO] [stdout] test plugin::tests::refresh_picks_up_filesystem_changes_and_prunes_stale_cache ... ok
[INFO] [stdout] test ports::tests::parse_attributes_trims_and_rejects_empty_lists ... ok
[INFO] [stdout] test ports::tests::projection_runs_after_filtering ... ok
[INFO] [stderr] 2026-03-10T22:20:25.291987Z  WARN osp_cli::plugin::dispatch: plugin command exited with non-zero status plugin_id=fail command=fail status_code=9 stderr=nope
[INFO] [stdout] test repl::completion::tests::alias_completion_command_captures_prefilled_invocation_flags_unit ... ok
[INFO] [stdout] test ports::tests::projection_keeps_selected_keys_only ... ok
[INFO] [stdout] test repl::completion::tests::alias_completion_command_handles_invocation_only_alias_unit ... ok
[INFO] [stdout] test repl::completion::tests::alias_completion_node_keeps_tooltip_when_target_is_missing_unit ... ok
[INFO] [stdout] test repl::completion::tests::alias_template_sanitizer_replaces_placeholders_and_preserves_suffixes ... ok
[INFO] [stdout] test repl::completion::tests::dsl_help_marks_materializing_verbs_in_listing_unit ... ok
[INFO] [stdout] test repl::completion::tests::inject_alias_nodes_skips_existing_root_children_unit ... ok
[INFO] [stdout] test repl::completion::tests::injects_invocation_flags_on_root_and_children ... ok
[INFO] [stdout] test repl::completion::tests::marks_context_only_flags_recursively ... ok
[INFO] [stderr] 2026-03-10T22:20:25.299913Z  WARN osp_cli::plugin::dispatch: plugin describe timed out executable=/tmp/osp-cli-plugin-manager-describe-timeout-1773181225227763846/plugins/osp-hang-describe timeout_ms=50 stderr=
[INFO] [stderr] 2026-03-10T22:20:25.302511Z  WARN osp_cli::plugin::dispatch: plugin command returned invalid JSON plugin_id=bad-json command=bad-json error=expected ident at line 1 column 2
[INFO] [stderr] 2026-03-10T22:20:25.304734Z  WARN osp_cli::plugin::dispatch: plugin command timed out plugin_id=hang executable=/tmp/osp-cli-plugin-manager-dispatch-timeout-1773181225223844968/plugins/osp-hang command=hang timeout_ms=50 stderr=
[INFO] [stdout] test repl::completion::tests::scope_completion_tree_falls_back_to_root_for_unknown_scope ... ok
[INFO] [stdout] test repl::completion::tests::scope_completion_tree_roots_to_current_shell ... ok
[INFO] [stdout] test plugin::tests::hung_describe_marks_plugin_unhealthy ... ok
[INFO] [stdout] test repl::dispatch::builtins::tests::maybe_execute_repl_builtin_covers_none_exit_and_help_unit ... ok
[INFO] [stdout] test repl::dispatch::builtins::tests::parse_repl_builtin_covers_none_help_exit_and_bang_unit ... ok
[INFO] [stdout] test repl::dispatch::shell::tests::native_shell_entry_and_scoped_help_render_unit ... ok
[INFO] [stdout] test repl::dispatch::shell::tests::shell_helpers_cover_prefix_exit_and_root_help_unit ... ok
[INFO] [stdout] test repl::dispatch::shell::tests::shortcut_handling_covers_help_none_and_shell_entry_error_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::bang_execution_and_scope_helpers_cover_help_matches_and_replace_unit ... ok
[INFO] [stdout] test plugin::tests::dispatch_times_out_hung_plugin ... ok
[INFO] [stdout] test repl::dispatch::tests::finalize_repl_command_uses_intro_reload_when_requested_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::clap_error_helpers_extract_summary_and_body_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::clap_error_helpers_handle_missing_summary_gracefully_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::intro_reload_keys_cover_theme_color_and_palette_mutations_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::leave_repl_shell_returns_none_at_root_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::render_repl_command_output_handles_text_none_and_stderr_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::repl_exit_behaves_differently_for_root_and_nested_shells_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::repl_builtin_and_bang_parsers_cover_shortcuts_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::repl_command_spec_covers_repl_variant_and_builtin_dsl_matrix_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::repl_inline_help_kinds_match_supported_clap_errors_unit ... ok
[INFO] [stdout] test repl::dispatch::tests::repl_restart_detection_covers_mutating_commands_unit ... ok
[INFO] [stdout] test repl::engine::tests::autocomplete_emacs_reopens_for_edits_but_not_movement_unit ... ok
[INFO] [stdout] test repl::completion::tests::dsl_help_shows_streaming_details_for_target_verb_unit ... ok
[INFO] [stdout] test repl::engine::tests::color_parser_extracts_hex_and_named_colors ... ok
[INFO] [stdout] test repl::dispatch::tests::root_help_rendering_and_shell_prefix_helpers_cover_root_paths_unit ... ok
[INFO] [stdout] test repl::engine::tests::completer_can_use_projected_line_for_host_flags_unit ... ok
[INFO] [stdout] test repl::engine::tests::completer_hides_suggestions_requested_by_projection_unit ... ok
[INFO] [stdout] test plugin::tests::repl_help_and_provider_listing_cover_selected_and_conflicted_commands_unit ... ok
[INFO] [stdout] test repl::engine::tests::autocomplete_policy_and_path_helpers_cover_non_happy_paths_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:25.313432Z  WARN osp_cli::plugin::dispatch: plugin command returned invalid payload plugin_id=bad-payload command=bad-payload reason=ok=true requires error=null
[INFO] [stdout] test repl::engine::tests::completer_suggests_pipe_verbs_after_pipe ... ok
[INFO] [stderr] 2026-03-10T22:20:25.324826Z  WARN osp_cli::plugin::state: no plugin provider found for command command=missing active_plugins=4
[INFO] [stdout] test repl::engine::tests::completer_supports_fuzzy_word_matching ... ok
[INFO] [stdout] test repl::engine::tests::completer_with_tree_does_not_fallback_to_word_list ... ok
[INFO] [stdout] test repl::engine::tests::completer_suggests_word_prefixes ... ok
[INFO] [stdout] test repl::engine::tests::completion_debug_options_builders_and_empty_steps_unit ... ok
[INFO] [stdout] test repl::engine::tests::completer_uses_engine_metadata_for_subcommands ... ok
[INFO] [stdout] test repl::engine::tests::cursor_position_errors_are_recognized_unit ... ok
[INFO] [stdout] test repl::engine::tests::cursor_position_report_parser_accepts_valid_sequences_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_completion_navigation_steps_cover_menu_branches_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_completion_options_and_empty_steps_cover_builder_paths_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_completion_navigation_variants_and_empty_matches_are_stable_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_completion_without_matches_reports_unmatched_cursor_state_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_step_parse_round_trips_known_values_unit ... ok
[INFO] [stdout] test repl::engine::tests::cursor_position_report_parser_rejects_invalid_sequences_unit ... ok
[INFO] [stdout] test repl::engine::tests::debug_completion_and_steps_surface_menu_state_unit ... ok
[INFO] [stdout] test repl::engine::tests::default_pipe_verbs_include_extended_dsl_surface ... ok
[INFO] [stdout] test repl::engine::tests::expand_home_and_prompt_renderers_behave_unit ... ok
[INFO] [stdout] test repl::engine::tests::expands_relative ... ok
[INFO] [stdout] test repl::engine::tests::expands_double_bang ... ok
[INFO] [stdout] test repl::engine::tests::expands_prefix ... ok
[INFO] [stdout] test repl::engine::tests::explicit_basic_input_mode_short_circuits_unit ... ok
[INFO] [stdout] test repl::engine::tests::highlighter_builder_requires_command_color_unit ... ok
[INFO] [stdout] test repl::engine::tests::submission_delegates_help_and_exit_to_host ... ok
[INFO] [stdout] test repl::engine::tests::path_suggestions_distinguish_files_and_directories_unit ... ok
[INFO] [stdout] test repl::engine::tests::process_submission_handles_restart_and_error_paths_unit ... ok
[INFO] [stdout] test repl::engine::tests::split_path_stub_without_slash_uses_current_directory_lookup ... ok
[INFO] [stdout] test plugin::tests::dispatch_surfaces_nonzero_invalid_json_invalid_payload_and_passthrough_unit ... ok
[INFO] [stdout] test repl::engine::tests::trace_completion_enabled_recognizes_falsey_values_unit ... ok
[INFO] [stdout] test repl::help::tests::help_chrome_preserves_preamble_before_known_sections_unit ... ok
[INFO] [stdout] test repl::help::tests::help_chrome_colors_help_body_keys_and_text_unit ... ok
[INFO] [stdout] test repl::engine::tests::trace_completion_writes_jsonl_when_enabled_unit ... ok
[INFO] [stdout] test repl::help::tests::help_chrome_preserves_custom_titled_sections_unit ... ok
[INFO] [stdout] test repl::help::tests::compact_help_layout_preserves_single_section_gap_unit ... ok
[INFO] [stdout] test repl::help::tests::help_chrome_splits_single_space_command_descriptions_unit ... ok
[INFO] [stdout] test repl::highlight::tests::colors_full_command_chain_only_unit ... ok
[INFO] [stdout] test repl::highlight::tests::colors_help_alias_keyword_and_target_unit ... ok
[INFO] [stdout] test repl::highlight::tests::highlights_hex_color_literals_unit ... ok
[INFO] [stdout] test repl::highlight::tests::debug_spans_preserve_help_alias_ranges_unit ... ok
[INFO] [stdout] test repl::highlight::tests::skips_partial_subcommand_and_flags_unit ... ok
[INFO] [stdout] test repl::highlight::tests::three_digit_hex_and_invalid_tokens_cover_debug_paths_unit ... ok
[INFO] [stdout] test repl::history::tests::history_command_spec_exposes_expected_subcommands_unit ... ok
[INFO] [stdout] test repl::help::tests::minimal_help_layout_preserves_custom_titled_sections_unit ... ok
[INFO] [stdout] test repl::help::tests::minimal_help_layout_matches_plain_snapshot_unit ... ok
[INFO] [stdout] test repl::history::tests::history_exclude_patterns_do_not_duplicate_defaults ... ok
[INFO] [stdout] test repl::history::tests::history_exclude_patterns_include_repl_defaults ... ok
[INFO] [stdout] test repl::history::tests::history_scope_label_tracks_current_shell_unit ... ok
[INFO] [stdout] test repl::history::tests::run_history_repl_command_lists_visible_rows_unit ... ok
[INFO] [stdout] test repl::history::tests::repl_history_enabled_obeys_toggle_and_capacity_unit ... ok
[INFO] [stdout] test repl::history_store::tests::explicit_scope_queries_override_live_shell_context ... ok
[INFO] [stdout] test repl::history::tests::run_history_repl_command_reports_disabled_history_unit ... ok
[INFO] [stdout] test repl::history_store::tests::list_entries_tracks_live_shell_context_updates ... ok
[INFO] [stdout] test repl::history_store::tests::disabled_history_returns_original_item_without_persisting_records ... ok
[INFO] [stdout] test repl::history_store::tests::excluded_commands_respect_prefixes_and_patterns ... ok
[INFO] [stdout] test repl::history_store::tests::list_entries_filters_shell_and_excludes ... ok
[INFO] [stdout] test repl::history_store::tests::load_missing_history_item_returns_not_found_error ... ok
[INFO] [stdout] test repl::history_store::tests::persisted_records_skip_invalid_lines_and_trim_to_capacity ... ok
[INFO] [stdout] test repl::history_store::tests::shell_prefix_helpers_normalize_and_round_trip_commands ... ok
[INFO] [stdout] test repl::history_store::tests::save_expands_history_and_dedupes_with_shell_scope ... ok
[INFO] [stdout] test repl::history_store::tests::unsupported_history_mutations_surface_feature_errors ... ok
[INFO] [stdout] test repl::history::tests::run_history_repl_command_prunes_and_clears_with_scope_unit ... ok
[INFO] [stdout] test repl::history_store::tests::wildcard_matching_handles_prefix_and_infix ... ok
[INFO] [stdout] test repl::history_store::tests::search_respects_filters_direction_bounds_and_skip_logic ... ok
[INFO] [stdout] test repl::host::tests::cycle_chrome_renders_intro_then_help_then_pending_output ... ok
[INFO] [stdout] test repl::host::tests::cycle_chrome_without_intro_keeps_pending_output_only ... ok
[INFO] [stdout] test repl::host::tests::quiet_verbosity_suppresses_repl_intro_unit ... ok
[INFO] [stdout] test repl::host::tests::repl_input_mode_mapping_covers_all_variants_unit ... ok
[INFO] [stdout] test repl::history_store::tests::shared_history_supports_save_load_prune_clear_and_sync ... ok
[INFO] [stdout] test repl::input::tests::help_projection_hides_help_and_non_verbose_flags_unit ... ok
[INFO] [stdout] test repl::host::tests::repl_ui_line_projector_falls_back_to_passthrough_on_parse_error_unit ... ok
[INFO] [stdout] test repl::input::tests::invalid_help_alias_targets_do_not_rewrite_unit ... ok
[INFO] [stdout] test repl::input::tests::parses_help_alias_into_dispatch_tokens ... ok
[INFO] [stdout] test repl::input::tests::projection_suppresses_used_one_shot_invocation_flags_unit ... ok
[INFO] [stdout] test repl::input::tests::projection_hides_invocation_completion_flags_until_verbose_unit ... ok
[INFO] [stdout] test repl::input::tests::projects_empty_repl_ui_line_without_tokenization_unit ... ok
[INFO] [stdout] test repl::input::tests::rewrites_help_alias_after_scope_prefix_unit ... ok
[INFO] [stdout] test repl::input::tests::shell_entry_checks_dispatch_tokens_and_scope ... ok
[INFO] [stdout] test repl::lifecycle::tests::apply_run_result_handles_exit_and_restart_modes ... ok
[INFO] [stdout] test repl::input::tests::projection_blanks_help_keyword_but_keeps_target_text_unit ... ok
[INFO] [stdout] test repl::lifecycle::tests::build_cycle_chrome_output_includes_intro_help_and_pending_output ... ok
[INFO] [stdout] test repl::lifecycle::tests::build_cycle_chrome_output_skips_intro_when_not_requested ... ok
[INFO] [stdout] test repl::input::tests::projects_repl_ui_line_hides_invocation_flags_and_help_keyword_unit ... ok
[INFO] [stdout] test repl::menu::tests::indicator_is_empty_until_menu_has_values ... ok
[INFO] [stdout] test repl::menu::tests::explicit_accept_applies_selected_completion ... ok
[INFO] [stdout] test repl::menu::tests::menu_debug_reports_styles_and_selection ... ok
[INFO] [stdout] test repl::menu::tests::menu_narrows_columns_on_small_width ... ok
[INFO] [stdout] test repl::menu::tests::menu_non_ansi_marks_selected_item ... ok
[INFO] [stdout] test repl::menu::tests::menu_respects_available_lines ... ok
[INFO] [stdout] test repl::menu::tests::menu_ansi_coloring_preserves_case_and_resets ... ok
[INFO] [stdout] test repl::menu::tests::menu_description_is_omitted_when_no_lines_available ... ok
[INFO] [stdout] test repl::menu::tests::menu_shows_description_for_selected_item ... ok
[INFO] [stdout] test repl::menu::tests::menu_truncates_description_on_narrow_width ... ok
[INFO] [stdout] test repl::menu::tests::menu_width_never_exceeds_screen_width_without_ansi ... ok
[INFO] [stdout] test repl::menu::tests::menu_uses_display_text_when_present ... ok
[INFO] [stdout] test repl::menu::tests::partial_complete_uses_buffer_prefix_when_requested ... ok
[INFO] [stdout] test repl::menu::tests::replace_in_buffer_accepts_selected_completion ... ok
[INFO] [stdout] test repl::menu::tests::tab_cycles_selection_replaces_buffer ... ok
[INFO] [stdout] test repl::menu_core::tests::move_left_wraps_to_rightmost_valid_col_on_short_last_row ... ok
[INFO] [stdout] test repl::presentation::tests::prompt_template_preserves_unknown_placeholders_and_appends_indicator ... ok
[INFO] [stdout] test plugin::tests::path_discovery_is_opt_in_unit ... ok
[INFO] [stdout] test repl::menu::tests::replace_in_buffer_inserts_missing_space_before_completion ... ok
[INFO] [stderr] 2026-03-10T22:20:25.346287Z  WARN osp_cli::plugin::dispatch: plugin command timed out plugin_id=hang executable=/tmp/osp-cli-plugin-manager-timeout-process-group-1773181225269535587/plugins/osp-hang command=hang timeout_ms=50 stderr=
[INFO] [stdout] test repl::presentation::tests::prompt_template_replaces_context_alias_and_indicator_placeholder ... ok
[INFO] [stdout] test repl::presentation::tests::repl_intro_minimal_without_help_visibility_uses_completion_hint ... ok
[INFO] [stdout] test repl::presentation::tests::repl_appearance_respects_color_toggle_and_overrides ... ok
[INFO] [stdout] test repl::presentation::tests::repl_prompt_custom_indicator_template_can_be_literal ... ok
[INFO] [stdout] test repl::presentation::tests::repl_prompt_renders_custom_template_with_prompt_style ... ok
[INFO] [stdout] test repl::presentation::tests::repl_overview_lists_invocation_options_for_expressive_surface ... ok
[INFO] [stdout] test repl::presentation::tests::repl_prompt_right_combines_incognito_and_timing_badge ... ok
[INFO] [stdout] test repl::presentation::tests::repl_intro_expressive_includes_sections_and_user_context ... ok
[INFO] [stdout] test repl::presentation::tests::theme_display_name_falls_back_when_slug_has_no_words ... ok
[INFO] [stdout] test services::tests::execute_command_requires_explicit_subject_when_defaults_are_missing ... ok
[INFO] [stdout] test repl::presentation::tests::repl_simple_prompt_includes_live_shell_indicator ... ok
[INFO] [stdout] test services::tests::execute_line_handles_blank_and_shell_parse_errors ... ok
[INFO] [stdout] test repl::presentation::tests::repl_prompt_right_shows_unicode_incognito_when_history_is_disabled ... ok
[INFO] [stdout] test repl::presentation::tests::repl_prompt_simple_mode_omits_blank_indicator_separator ... ok
[INFO] [stdout] test services::tests::ldap_user_defaults_to_global_user ... ok
[INFO] [stdout] test services::tests::parse_repl_command_rejects_empty_and_unknown_commands ... ok
[INFO] [stdout] test services::tests::parse_repl_command_rejects_unknown_options_and_extra_positionals ... ok
[INFO] [stdout] test services::tests::execute_line_supports_pipeline ... ok
[INFO] [stdout] test services::tests::parse_repl_command_supports_netgroup_and_short_attribute_flag ... ok
[INFO] [stdout] test services::tests::parses_repl_user_command_with_options ... ok
[INFO] [stdout] test tests::stable_top_level_surface_exposes_primary_entrypoints_and_types_unit ... ok
[INFO] [stdout] test ui::chrome::tests::section_divider_can_style_border_and_title_separately ... ok
[INFO] [stdout] test ui::chrome::tests::section_divider_ignores_columns_env_without_explicit_width ... ok
[INFO] [stdout] test ui::chrome::tests::section_frame_style_parses_expected_names_unit ... ok
[INFO] [stdout] test ui::chrome::tests::section_frame_styles_cover_none_bottom_and_round_unit ... ok
[INFO] [stdout] test ui::chrome::tests::square_section_frame_boxes_body_unit ... ok
[INFO] [stdout] test ui::chrome::tests::top_bottom_section_frame_wraps_body_with_rules_unit ... ok
[INFO] [stdout] test ui::clipboard::tests::base64_encoder_matches_known_values ... ok
[INFO] [stdout] test ui::clipboard::tests::base64_helpers_cover_empty_and_padded_inputs ... ok
[INFO] [stdout] test ui::clipboard::tests::base64_length_and_env_helpers_behave_predictably ... ok
[INFO] [stdout] test ui::clipboard::tests::clipboard_error_display_covers_backend_spawn_and_status_cases ... ok
[INFO] [stdout] test ui::clipboard::tests::clipboard_service_builders_toggle_osc52_preference ... ok
[INFO] [stdout] test ui::clipboard::tests::command_backend_reports_spawn_failure_for_missing_binary ... ok
[INFO] [stdout] test ui::clipboard::tests::command_failure_without_stderr_uses_short_display ... ok
[INFO] [stdout] test repl::dispatch::tests::shell_entry_help_and_repl_command_cache_paths_cover_external_flow_unit ... ok
[INFO] [stdout] test ui::clipboard::tests::command_backend_reports_success_and_failure ... ok
[INFO] [stdout] test ui::clipboard::tests::copy_document_uses_same_backend_path ... ok
[INFO] [stdout] test ui::clipboard::tests::osc52_helpers_respect_env_toggles_and_defaults ... ok
[INFO] [stdout] test ui::clipboard::tests::platform_backends_include_x11_fallbacks_without_wayland ... ok
[INFO] [stdout] test ui::clipboard::tests::platform_backends_prefers_wayland_when_present ... ok
[INFO] [stdout] test ui::display::tests::empty_objects_render_as_empty_braces ... ok
[INFO] [stdout] test ui::display::tests::object_preview_adds_ellipsis_when_keys_exceed_preview_limit ... ok
[INFO] [stdout] ]52;c;cGluZw==test ui::clipboard::tests::copy_without_osc52_reports_no_backend_when_path_is_empty ... ok
[INFO] [stdout] test ui::format::help::tests::builds_panel_sections_from_help_text ... ok
[INFO] [stdout] test ui::clipboard::tests::copy_via_osc52_writer_is_callable_unit ... ok
[INFO] [stdout] test ui::format::help::tests::keeps_fenced_code_as_code_block ... ok
[INFO] [stdout] test ui::format::message::tests::flat_message_preserves_json_code_and_document_blocks ... ok
[INFO] [stdout] test ui::format::message::tests::blank_text_normalizes_to_empty_document ... ok
[INFO] [stdout] test ui::format::message::tests::flat_text_trims_blank_lines_and_uses_uppercase_title_prefix ... ok
[INFO] [stdout] test ui::format::message::tests::message_kind_labels_and_rule_mapping_cover_all_variants ... ok
[INFO] [stdout] test ui::format::message::tests::message_rules_both_wrap_in_panel ... ok
[INFO] [stdout] test ui::format::message::tests::message_rules_none_yields_lines_without_panel ... ok
[INFO] [stdout] test ui::format::message::tests::panel_message_uses_kind_tokens_and_default_title ... ok
[INFO] [stdout] test ui::format::mreg::tests::backend_bias_can_stack_width_constrained_object_tables ... ok
[INFO] [stdout] test ui::format::mreg::tests::keeps_object_lists_as_tables_in_plain_mode ... ok
[INFO] [stdout] test ui::format::mreg::tests::empty_object_lists_fall_back_to_vertical_lists ... ok
[INFO] [stdout] test ui::format::mreg::tests::estimate_table_width_accounts_for_cell_content ... ok
[INFO] [stdout] test ui::format::mreg::tests::mixed_object_and_scalar_lists_keep_table_shape ... ok
[INFO] [stdout] test ui::format::mreg::tests::nested_object_values_become_group_entries ... ok
[INFO] [stdout] test ui::format::mreg::tests::models_list_thresholds_as_scalar_vertical_and_grid ... ok
[INFO] [stdout] test ui::format::mreg::tests::shrink_column_widths_handles_empty_tables ... ok
[INFO] [stdout] test ui::format::mreg::tests::preferred_key_order_is_respected_for_scalar_entries ... ok
[INFO] [stdout] test ui::format::mreg::tests::nested_structure_helper_detects_objects_and_nested_arrays ... ok
[INFO] [stdout] test ui::format::mreg::tests::stacked_object_lists_skip_non_object_items ... ok
[INFO] [stdout] test ui::format::mreg::tests::stacks_nested_object_lists_even_when_width_is_wide ... ok
[INFO] [stdout] test ui::format::mreg::tests::ordered_keys_deduplicates_preferred_entries ... ok
[INFO] [stdout] test ui::format::mreg::tests::shrink_column_widths_stops_at_minimum_width ... ok
[INFO] [stdout] test ui::format::mreg::tests::single_item_lists_become_scalar_entries ... ok
[INFO] [stdout] test ui::format::table::tests::collects_headers_in_sorted_order_without_preferred_keys ... ok
[INFO] [stdout] test ui::format::table::tests::respects_preferred_key_order_when_available ... ok
[INFO] [stdout] test ui::format::table::tests::missing_values_render_as_empty_cells_not_null ... ok
[INFO] [stdout] test ui::format::mreg::tests::stacks_wide_flat_object_lists_when_width_is_tight ... ok
[INFO] [stdout] test ui::format::table::tests::appends_remaining_headers_after_preferred_order ... ok
[INFO] [stdout] test ui::format::tests::auto_format_uses_table_for_grouped_output ... ok
[INFO] [stdout] test ui::format::tests::grouped_json_document_keeps_group_structure ... ok
[INFO] [stdout] test ui::format::tests::grouped_markdown_document_preserves_header_pairs_and_alignment ... ok
[INFO] [stdout] test ui::format::tests::build_document_wrapper_and_resolve_format_cover_value_and_explicit_modes ... ok
[INFO] [stdout] test ui::format::tests::mreg_and_value_documents_materialize_group_rows_consistently ... ok
[INFO] [stdout] test ui::format::tests::row_table_document_preserves_alignment_metadata ... ok
[INFO] [stdout] test ui::interactive::tests::default_interactive_matches_detected_runtime_shape ... ok
[INFO] [stdout] test ui::interactive::tests::confirm_fails_fast_without_interactive_terminal ... ok
[INFO] [stdout] test ui::interactive::tests::hidden_spinner_supports_full_lifecycle ... ok
[INFO] [stdout] test ui::interactive::tests::password_allow_empty_fails_fast_without_interactive_terminal ... ok
[INFO] [stdout] test ui::interactive::tests::password_fails_fast_without_interactive_terminal ... ok
[INFO] [stdout] test ui::interactive::tests::runtime_allows_live_output_when_term_is_missing_but_stderr_is_tty ... ok
[INFO] [stdout] test ui::interactive::tests::runtime_blocks_live_output_for_dumb_term ... ok
[INFO] [stdout] test ui::interactive::tests::runtime_blocks_live_output_without_stderr_tty ... ok
[INFO] [stdout] test ui::format::tests::grouped_table_document_populates_header_pairs ... ok
[INFO] [stdout] test ui::format::tests::grouped_table_document_preserves_alignment_metadata ... ok
[INFO] [stdout] test ui::interactive::tests::interactive_runtime_accessor_and_spinner_follow_runtime ... ok
[INFO] [stdout] test ui::format::tests::header_pairs_and_alignments_skip_defaults_and_deduplicate_keys ... ok
[INFO] [stdout] test ui::interactive::tests::runtime_blocks_prompting_without_ttys ... ok
[INFO] [stdout] test repl::lifecycle::tests::prepare_cycle_handles_reload_and_builds_surface_unit ... ok
[INFO] [stdout] test ui::interactive::tests::runtime_without_stdin_tty_can_still_allow_live_output ... ok
[INFO] [stdout] test ui::interactive::tests::spinner_new_and_detect_paths_are_callable ... ok
[INFO] [stdout] test ui::layout::tests::compute_raw_table_widths_expand_for_cell_content ... ok
[INFO] [stdout] test ui::interactive::tests::spinner_respects_runtime_policy_and_finish_alias ... ok
[INFO] [stdout] test ui::layout::tests::computes_per_entry_mreg_alignment_metrics ... ok
[INFO] [stdout] test ui::layout::tests::leaves_empty_header_tables_with_empty_widths ... ok
[INFO] [stdout] test ui::layout::tests::next_shrink_step_uses_second_widest_column_gap ... ok
[INFO] [stdout] test ui::layout::tests::shares_column_widths_by_header_name_across_tables ... ok
[INFO] [stdout] test ui::layout::tests::shrink_global_widths_updates_selected_header_width ... ok
[INFO] [stdout] test ui::layout::tests::rich_mode_shrinks_even_when_table_opted_out ... ok
[INFO] [stdout] test ui::layout::tests::skips_alignment_metrics_for_group_entries ... ok
[INFO] [stdout] test ui::layout::tests::shrinks_global_table_widths_when_terminal_is_narrow ... ok
[INFO] [stdout] test ui::layout::tests::stops_shrinking_when_columns_have_hit_minimum_width ... ok
[INFO] [stdout] test ui::layout::tests::strip_count_suffix_ignores_numeric_counts_only ... ok
[INFO] [stdout] test ui::messages::tests::grouped_render_matches_ascii_rule_snapshot_unit ... ok
[INFO] [stdout] test ui::messages::tests::default_success_hides_info_and_debug ... ok
[INFO] [stdout] test ui::messages::tests::minimal_render_flattens_messages_with_level_prefixes_unit ... ok
[INFO] [stdout] test ui::messages::tests::minimal_render_matches_plain_snapshot_unit ... ok
[INFO] [stdout] test ui::messages::tests::styled_render_color_toggle_controls_ansi ... ok
[INFO] [stdout] test ui::messages::tests::styled_render_uses_boxed_headers ... ok
[INFO] [stdout] test ui::messages::tests::verbosity_adjustment_clamps ... ok
[INFO] [stdout] test ui::presentation::tests::austere_presentation_hides_intro_overview_unit ... ok
[INFO] [stdout] test ui::presentation::tests::austere_presentation_keeps_intro_by_default_unit ... ok
[INFO] [stdout] test ui::presentation::tests::austere_presentation_prefers_minimal_messages_unit ... ok
[INFO] [stdout] test ui::presentation::tests::austere_presentation_prefers_minimal_help_layout_unit ... ok
[INFO] [stdout] test ui::presentation::tests::compact_presentation_prefers_compact_help_layout_unit ... ok
[INFO] [stdout] test ui::presentation::tests::austere_presentation_seeds_plain_render_defaults_unit ... ok
[INFO] [stdout] test ui::layout::tests::tie_widths_shrink_without_starving_one_column ... ok
[INFO] [stdout] test ui::presentation::tests::compact_presentation_prefers_simple_prompt_and_grouped_messages_unit ... ok
[INFO] [stdout] test ui::presentation::tests::config_value_name_stays_canonical_unit ... ok
[INFO] [stdout] test ui::messages::tests::message_layout_parser_and_buffer_helpers_cover_basic_paths_unit ... ok
[INFO] [stdout] test ui::presentation::tests::compact_presentation_prefers_minimal_intro_style_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explain_presentation_effect_reports_seeded_table_border_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explain_presentation_effect_reports_seeded_help_layout_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_help_layout_beats_presentation_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_intro_beats_austere_presentation_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_intro_style_none_disables_intro_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explain_presentation_effect_respects_explicit_key_override_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_render_mode_beats_austere_preset_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_prompt_and_message_settings_beat_presentation_unit ... ok
[INFO] [stdout] test ui::presentation::tests::explicit_repl_input_mode_is_resolved_unit ... ok
[INFO] [stdout] test ui::presentation::tests::expressive_presentation_prefers_stronger_chrome_by_default_unit ... ok
[INFO] [stdout] test ui::presentation::tests::parses_legacy_gammel_og_bitter_alias_unit ... ok
[INFO] [stdout] test ui::presentation::tests::intro_verbosity_adjustment_bumps_and_suppresses_levels_unit ... ok
[INFO] [stdout] test ui::renderer::tests::code_block_honors_color_code_override ... ok
[INFO] [stdout] test ui::renderer::tests::grid_table_string_cells_honor_value_override ... ok
[INFO] [stdout] test ui::renderer::tests::json_block_matches_python_plain_layout ... ok
[INFO] [stdout] test ui::renderer::tests::markdown_table_render_has_pipe_format ... ok
[INFO] [stdout] test ui::renderer::tests::markdown_table_render_respects_column_alignment ... ok
[INFO] [stdout] test ui::renderer::tests::mreg_alignment_accounts_for_nested_depth ... ok
[INFO] [stdout] test ui::renderer::tests::mreg_scalar_entries_render_inline ... ok
[INFO] [stdout] test ui::renderer::tests::mreg_vertical_list_matches_python_plain_layout ... ok
[INFO] [stdout] test ui::renderer::tests::ldap_user_sample_renders_as_python_style_mreg ... ok
[INFO] [stdout] test ui::renderer::tests::mreg_large_lists_use_grid_layout ... ok
[INFO] [stdout] test ui::renderer::tests::nested_object_lists_stack_when_table_would_hide_content ... ok
[INFO] [stdout] test ui::renderer::tests::panel_rules_match_python_plain_layout ... ok
[INFO] [stdout] test ui::renderer::tests::plain_ascii_table_uses_dash_header_separator ... ok
[INFO] [stdout] test ui::renderer::tests::plain_theme_does_not_style_hex_cells ... ok
[INFO] [stdout] test ui::renderer::tests::render_json_block_is_pretty ... ok
[INFO] [stdout] test ui::renderer::tests::render_value_block_appends_trailing_newline ... ok
[INFO] [stdout] test ui::renderer::tests::render_mreg_respects_color_toggle ... ok
[INFO] [stdout] test ui::renderer::tests::rich_json_block_uses_color_tokens ... ok
[INFO] [stdout] test ui::renderer::tests::table_color_never_has_no_ansi_escape_codes ... ok
[INFO] [stdout] test ui::renderer::tests::render_table_toggles_border_style ... ok
[INFO] [stdout] test ui::renderer::tests::table_overflow_ellipsis_truncates_with_suffix ... ok
[INFO] [stdout] test ui::renderer::tests::table_overflow_wrap_preserves_tail ... ok
[INFO] [stdout] test ui::renderer::tests::table_overflow_none_keeps_full_content ... ok
[INFO] [stdout] test ui::renderer::tests::table_renders_header_pairs_before_table ... ok
[INFO] [stdout] test ui::renderer::tests::table_unicode_off_has_no_box_drawing_characters ... ok
[INFO] [stdout] test ui::renderer::tests::theme_hex_values_render_with_truecolor_when_enabled ... ok
[INFO] [stdout] test ui::style::tests::color_toggle_off_returns_plain_text ... ok
[INFO] [stdout] test ui::style::tests::explicit_override_takes_precedence_over_theme_token ... ok
[INFO] [stdout] test ui::renderer::tests::value_block_honors_generic_text_override ... ok
[INFO] [stdout] test ui::renderer::tests::width_limit_truncates_wide_cells ... ok
[INFO] [stdout] test ui::style::tests::dracula_error_uses_bold_truecolor_escape ... ok
[INFO] [stdout] test ui::style::tests::dracula_number_uses_theme_override_color ... ok
[INFO] [stdout] test ui::style::tests::generic_key_override_reaches_key_like_tokens_unit ... ok
[INFO] [stdout] test ui::style::tests::message_override_reaches_message_tokens_unit ... ok
[INFO] [stdout] test ui::style::tests::plain_theme_disables_styling_even_with_color_enabled ... ok
[INFO] [stdout] test ui::style::tests::generic_text_override_reaches_value_and_code_tokens_unit ... ok
[INFO] [stdout] test ui::style::tests::none_token_and_invalid_specs_fall_back_to_plain_text_unit ... ok
[INFO] [stdout] test ui::style::tests::nord_and_dracula_produce_different_info_colors ... ok
[INFO] [stdout] test ui::style::tests::prompt_text_and_trace_tokens_cover_theme_defaults_unit ... ok
[INFO] [stdout] test ui::style::tests::theme_and_override_helpers_cover_prompt_panel_and_ip_tokens_unit ... ok
[INFO] [stdout] test ui::tests::auto_modes_respect_runtime_terminal_and_locale_unit ... ok
[INFO] [stdout] test ui::tests::auto_mode_forced_color_promotes_rich_backend_unit ... ok
[INFO] [stdout] test ui::tests::auto_mode_forced_unicode_promotes_rich_backend_unit ... ok
[INFO] [stdout] test ui::tests::auto_selects_mreg_for_single_non_value_row ... ok
[INFO] [stdout] test ui::tests::copy_helpers_force_plain_copy_settings_for_rows_unit ... ok
[INFO] [stdout] test ui::tests::auto_selects_table_for_multi_row_result ... ok
[INFO] [stdout] test ui::tests::json_output_snapshot_and_copy_contracts_are_stable_unit ... ok
[INFO] [stdout] test ui::tests::auto_selects_value_for_value_rows ... ok
[INFO] [stdout] test ui::tests::copy_render_forces_plain_without_ansi_or_unicode_borders ... ok
[INFO] [stdout] test ui::tests::plain_mode_disables_color_and_unicode_even_when_forced ... ok
[INFO] [stdout] test ui::tests::rich_mode_keeps_forced_color_and_unicode ... ok
[INFO] [stdout] test ui::tests::render_document_helpers_force_plain_copy_mode_unit ... ok
[INFO] [stdout] test ui::tests::markdown_format_builds_markdown_table_block ... ok
[INFO] [stdout] test ui::tests::table_overflow_parser_accepts_aliases_unit ... ok
[INFO] [stdout] test ui::tests::mreg_block_models_scalar_and_vertical_list_values ... ok
[INFO] [stdout] test ui::tests::table_border_style_parser_accepts_supported_names ... ok
[INFO] [stdout] test ui::theme::tests::display_name_and_lookup_helpers_cover_normalization_edges ... ok
[INFO] [stdout] test ui::theme::tests::dracula_number_override_matches_python_theme_preset ... ok
[INFO] [stdout] test ui::theme::tests::display_name_from_id_formats_title_case ... ok
[INFO] [stdout] test ui::theme::tests::repl_completion_defaults_follow_python_late_defaults ... ok
[INFO] [stdout] test ui::theme_loader::tests::color_spec_validation_rejects_unknown_tokens ... ok
[INFO] [stdout] test ui::theme::tests::theme_catalog_helpers_expose_defaults_and_fallbacks ... ok
[INFO] [stdout] test ui::theme_loader::tests::custom_theme_can_inherit_from_custom_base ... ok
[INFO] [stdout] test ui::theme_loader::tests::color_spec_validation_accepts_known_tokens ... ok
[INFO] [stdout] test ui::theme_loader::tests::default_theme_paths_tracks_home_config_root_unit ... ok
[INFO] [stdout] test ui::theme_loader::tests::theme_catalog_resolve_normalizes_input_and_rejects_blank_unit ... ok
[INFO] [stdout] test ui::theme_loader::tests::theme_file_inherits_from_base ... ok
[INFO] [stdout] test ui::theme_loader::tests::theme_file_defaults_id_and_name_from_file_stem ... ok
[INFO] [stdout] test ui::theme_loader::tests::theme_path_helpers_expand_home_and_drop_blank_entries_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:25.404415Z  WARN osp_cli::ui::theme_loader: theme path is not a directory path=/tmp/osp-theme-loader-catalog-1773181225402647084/missing
[INFO] [stdout] test ui::theme_loader::tests::theme_catalog_load_reports_invalid_specs_and_preserves_custom_origins_unit ... ok
[INFO] [stderr] 2026-03-10T22:20:25.404470Z  WARN osp_cli::ui::theme_loader: failed to parse toml: TOML parse error at line 1, column 8
[INFO] [stderr]   |
[INFO] [stderr] 1 | not = [valid
[INFO] [stderr]   |        ^
[INFO] [stderr] invalid array
[INFO] [stderr] expected `]`
[INFO] [stderr]  path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/broken.toml
[INFO] [stderr] 2026-03-10T22:20:25.404485Z  WARN osp_cli::ui::theme_loader: invalid color spec for palette.text: bogus path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/dupe-a.toml
[INFO] [stderr] 2026-03-10T22:20:25.404495Z  WARN osp_cli::ui::theme_loader: invalid color spec for overrides.value_number: broken path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/dupe-a.toml
[INFO] [stderr] 2026-03-10T22:20:25.404504Z  WARN osp_cli::ui::theme_loader: invalid color spec for overrides.repl_completion_highlight: bad path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/dupe-a.toml
[INFO] [stderr] 2026-03-10T22:20:25.404521Z  WARN osp_cli::ui::theme_loader: theme id collision: dupe overridden (previous: /tmp/osp-theme-loader-catalog-1773181225402647084/themes/dupe-a.toml) path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/dupe-b.toml
[INFO] [stderr] 2026-03-10T22:20:25.404534Z  WARN osp_cli::ui::theme_loader: theme base cycle detected: cycle-a -> cycle-b -> cycle-a path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/cycle-a.toml
[INFO] [stderr] 2026-03-10T22:20:25.404545Z  WARN osp_cli::ui::theme_loader: theme base cycle detected: cycle-b -> cycle-a -> cycle-b path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/cycle-b.toml
[INFO] [stderr] 2026-03-10T22:20:25.404554Z  WARN osp_cli::ui::theme_loader: custom theme overrides builtin: dracula path=/tmp/osp-theme-loader-catalog-1773181225402647084/themes/dracula.toml
[INFO] [stdout] test ui::messages::tests::message_level_helpers_cover_titles_env_and_rank_unit ... ok
[INFO] [stdout] test repl::host::tests::repl_debug_commands_return_documents_unit ... ok
[INFO] [stdout] test plugin::tests::timed_out_plugin_terminates_background_process_group_unit ... ok
[INFO] [stderr]      Running unittests src/bin/osp.rs (/opt/rustwide/target/debug/deps/osp-a25593f70ef1a432)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/architecture_import_limits.rs (/opt/rustwide/target/debug/deps/architecture_import_limits-e8d7893ac074b342)
[INFO] [stdout] test result: ok. 957 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.67s
[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] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test root_public_facade_stays_curated ... ok
[INFO] [stdout] test root_single_crate_imports_follow_logical_layer_matrix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/contracts.rs (/opt/rustwide/target/debug/deps/contracts-234a869eeee8c560)
[INFO] [stdout] 
[INFO] [stdout] running 91 tests
[INFO] [stdout] test config_commands::config_doctor_contract ... ok
[INFO] [stdout] test config_commands::config_explain_json_stdout_is_machine_parseable_contract ... ok
[INFO] [stdout] test cli_ldap::ldap_user_json_contract ... ok
[INFO] [stdout] test cli_ldap::ldap_user_supports_attributes_and_filter ... ok
[INFO] [stdout] test config_commands::config_explain_profile_active_reports_runtime_phase_contract ... ok
[INFO] [stdout] test config_commands::config_explain_missing_key_keeps_stdout_clean_contract ... ok
[INFO] [stdout] test cli_ldap::ldap_netgroup_json_contract ... ok
[INFO] [stdout] test cli_ldap::ldap_user_defaults_to_global_user ... ok
[INFO] [stdout] test config_commands::config_explain_redacts_secrets_source_even_without_sensitive_key_contract ... ok
[INFO] [stdout] test config_commands::config_explain_profile_default_uses_bootstrap_view_contract ... ok
[INFO] [stdout] test config_commands::config_explain_profile_default_reports_override_source_contract ... ok
[INFO] [stdout] test config_commands::config_explain_missing_key_writes_suggestions_to_stderr_contract ... ok
[INFO] [stdout] test config_commands::config_explain_human_output_contract ... ok
[INFO] [stdout] test config_commands::config_explain_reports_interpolation_trace_contract ... ok
[INFO] [stdout] test config_commands::config_get_missing_key_honors_rich_color_and_unicode_contract ... ok
[INFO] [stdout] test config_commands::config_explain_redacts_secrets_unless_flag_contract ... ok
[INFO] [stdout] test config_commands::config_explain_reports_presentation_seeded_values_contract ... ok
[INFO] [stdout] test config_commands::config_explain_reports_winner_and_candidates_contract ... ok
[INFO] [stdout] test config_commands::config_get_missing_key_writes_grouped_error_to_stderr_contract ... ok
[INFO] [stdout] test config_commands::config_get_alias_uses_alias_namespace_contract ... ok
[INFO] [stdout] test config_commands::config_get_with_sources_contract ... ok
[INFO] [stdout] test config_commands::config_get_profile_default_uses_bootstrap_view_contract ... ok
[INFO] [stdout] test config_commands::config_set_allows_terminal_scoped_default_profile_contract ... ok
[INFO] [stdout] test config_commands::launch_json_flag_formats_output_without_mutating_config_contract ... ok
[INFO] [stdout] test config_commands::config_unset_allows_terminal_scoped_default_profile_contract ... ok
[INFO] [stdout] test config_commands::config_show_contract ... ok
[INFO] [stdout] test config_commands::config_set_rejects_profile_scoped_default_profile_contract ... ok
[INFO] [stdout] test config_commands::config_set_rejects_profile_terminal_scoped_default_profile_contract ... ok
[INFO] [stdout] test config_commands::positional_profile_with_config_get_contract ... ok
[INFO] [stdout] test config_commands::config_set_explain_json_keeps_messages_off_stdout_contract ... ok
[INFO] [stdout] test doctor_commands::doctor_json_stdout_is_machine_parseable_contract ... ok
[INFO] [stdout] test config_commands::no_config_file_ignores_file_values_contract ... ok
[INFO] [stdout] test help_commands::command_help_hides_common_invocation_options_without_verbose_contract ... ok
[INFO] [stdout] test config_commands::config_unset_persistent_contract ... ok
[INFO] [stdout] test config_commands::no_env_ignores_environment_overrides_contract ... ok
[INFO] [stdout] test doctor_commands::doctor_last_without_recorded_failure_is_human_text_contract ... ok
[INFO] [stdout] test config_commands::positional_profile_with_config_explain_contract ... ok
[INFO] [stdout] test config_commands::positional_and_explicit_profile_resolve_equivalent_config_contract ... ok
[INFO] [stdout] test help_commands::command_help_shows_common_invocation_options_with_verbose_contract ... ok
[INFO] [stdout] test cli_ldap::ldap_plugin_completes_subcommands_and_flags_contract ... ok
[INFO] [stdout] test help_commands::tty_subcommand_help_keeps_help_chrome_colors_contract ... ok
[INFO] [stdout] test plugins::bundled_manifest_mismatch_marks_plugin_unhealthy_contract ... ok
[INFO] [stdout] test history_commands::history_command_is_rejected_outside_repl_contract ... ok
[INFO] [stdout] test plugins::bundled_manifest_id_stays_visible_when_describe_id_mismatches_contract ... ok
[INFO] [stdout] test plugins::bundled_plugin_requires_manifest_contract ... ok
[INFO] [stdout] test help_commands::help_color_unicode_presentation_matrix_contract ... ok
[INFO] [stdout] test plugins::debug_flag_enables_developer_logs_contract ... ok
[INFO] [stdout] test plugins::errors_remain_visible_at_double_quiet_contract ... ok
[INFO] [stdout] test plugins::describe_cache_is_reused_and_invalidated_contract ... ok
[INFO] [stdout] test plugins::conflicting_providers_are_visible_in_plugin_commands_contract ... ok
[INFO] [stdout] test plugins::bundled_manifest_controls_default_enable_contract ... ok
[INFO] [stdout] test plugins::external_plugin_dispatch_contract ... ok
[INFO] [stdout] test plugins::multi_command_plugin_receives_selected_command_contract ... ok
[INFO] [stdout] test help_commands::table_color_unicode_presentation_matrix_contract ... ok
[INFO] [stdout] test plugins::plugin_dispatch_propagates_config_env_contract ... ok
[INFO] [stdout] test plugins::ignores_non_plugin_extension_files_contract ... ok
[INFO] [stdout] test plugins::plugin_dispatch_propagates_runtime_hints_contract ... ok
[INFO] [stdout] test plugins::external_plugin_help_is_passed_through_contract ... ok
[INFO] [stdout] test plugins::plugin_invalid_json_response_surfaces_contract ... ok
[INFO] [stdout] test plugins::external_plugin_help_keeps_raw_stderr_contract ... ok
[INFO] [stdout] test plugins::plugin_non_zero_exit_surfaces_stderr_contract ... ok
[INFO] [stdout] test plugins::plugin_messages_stay_on_stderr_when_data_is_json_contract ... ok
[INFO] [stdout] test plugins::plugins_config_reports_projected_env_contract ... ok
[INFO] [stdout] test plugins::enabling_one_plugin_does_not_disable_other_default_enabled_plugins_contract ... ok
[INFO] [stdout] test plugins::profile_override_is_validated_against_config_contract ... ok
[INFO] [stdout] test plugins::oneshot_dispatch_does_not_use_repl_session_cache_contract ... ok
[INFO] [stdout] test plugins::plugin_min_osp_version_mismatch_marks_plugin_unhealthy_contract ... ok
[INFO] [stdout] test plugins::plugins_refresh_reports_success_contract ... ok
[INFO] [stdout] test plugins::quiet_hides_success_messages_contract ... ok
[INFO] [stdout] test profile_cli::explicit_profile_overrides_positional_profile_contract ... ok
[INFO] [stdout] test plugins::unknown_domain_command_shows_plugin_hint_contract ... ok
[INFO] [stdout] test plugins::plugins_enable_and_disable_contract ... ok
[INFO] [stdout] test profile_cli::positional_profile_routes_to_builtin_plugins_command_contract ... ok
[INFO] [stdout] test profile_cli::unknown_first_token_is_treated_as_command_contract ... ok
[INFO] [stdout] test theme_commands::cli_theme_override_contract ... ok
[INFO] [stdout] test profile_cli::positional_profile_routes_to_plugin_command_contract ... ok
[INFO] [stdout] test theme_commands::custom_theme_inherits_custom_base_contract ... ok
[INFO] [stdout] test theme_commands::config_theme_seed_contract ... ok
[INFO] [stdout] test repl_debug::repl_debug_highlight_reports_help_alias_projection_contract ... ok
[INFO] [stdout] test repl_debug::repl_debug_highlight_reports_hex_literal_rgb_contract ... ok
[INFO] [stdout] test theme_commands::theme_show_plain_snapshot_contract ... ok
[INFO] [stdout] test theme_commands::theme_list_human_rich_snapshot_contract ... ok
[INFO] [stdout] test theme_commands::theme_list_contract ... ok
[INFO] [stdout] test version_commands::cli_reports_workspace_version_with_short_flag_contract ... ok
[INFO] [stdout] test theme_commands::unknown_theme_fails_fast_contract ... ok
[INFO] [stdout] test theme_commands::theme_show_contract ... ok
[INFO] [stdout] test version_commands::cli_reports_workspace_version_with_long_flag_contract ... ok
[INFO] [stdout] test plugins::plugins_list_and_doctor_contract ... ok
[INFO] [stdout] test plugins::plugin_provider_override_works_across_discovery_sources_contract ... ok
[INFO] [stdout] test plugins::provider_selection_can_be_persisted_or_overridden_per_invocation_contract ... ok
[INFO] [stdout] test help_commands::message_color_unicode_presentation_matrix_contract ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 91 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.35s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-98ba4e8c85cb0943)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test repl_smoke::repl_starts_and_exits_on_ctrl_d ... ignored, PTY interaction test will be enabled after prompt/session harness is added
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-e79e7912e0252a53)
[INFO] [stderr]      Running tests/pipeline_parse.rs (/opt/rustwide/target/debug/deps/pipeline_parse-fce20f856df19e30)
[INFO] [stdout] test aliases::alias_resolves_config_placeholders_and_splat ... ok
[INFO] [stdout] test repl_dsl::dsl_pipeline_filter_works ... ok
[INFO] [stdout] test aliases::alias_expands_internal_and_user_pipes ... ok
[INFO] [stdout] test repl_dsl::dsl_pipeline_markdown_table_format_works ... ok
[INFO] [stdout] test repl_dsl::dsl_pipeline_grouped_output_renders_without_flattening ... ok
[INFO] [stdout] test repl_dsl::dsl_pipeline_values_works_on_netgroup_members ... ok
[INFO] [stdout] test repl_dsl::dsl_pipeline_project_works_on_ldap_user_data ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test parse_accepts_cli_help_stage_from_text ... ok
[INFO] [stdout] test parse_accepts_quick_pipe_segments_from_cli_tokens ... ok
[INFO] [stdout] test parse_cli_tokens_preserves_single_stage_argument_with_spaces ... ok
[INFO] [stdout] test parse_accepts_cli_help_stage_from_alias_pipe ... ok
[INFO] [stdout] test parse_does_not_merge_outside_orch_provision ... ok
[INFO] [stdout] test parse_does_not_merge_when_version_is_dash ... ok
[INFO] [stdout] test parse_allows_quick_pipe_segments ... ok
[INFO] [stdout] test parse_merges_orch_os_tokens_from_cli_tokens ... ok
[INFO] [stdout] test parse_rejects_unknown_explicit_stage_from_alias_pipe ... ok
[INFO] [stdout] test parse_preserves_quoted_pipe_inside_command_segment ... ok
[INFO] [stdout] test parse_rejects_unknown_explicit_stage_from_text ... ok
[INFO] [stderr]      Running tests/pty_repl_completion.rs (/opt/rustwide/target/debug/deps/pty_repl_completion-bb7c3cb1a2be97f4)
[INFO] [stdout] test parse_merges_orch_os_tokens_from_text ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test repl_tab_completes_single_match_and_exits ... ok
[INFO] [stdout] test repl_tab_opens_menu_and_moves_selection ... ok
[INFO] [stdout] test repl_completion_resolves_fixed_key_aliases_end_to_end ... ok
[INFO] [stdout] test repl_close_menu_keeps_typed_input ... ok
[INFO] [stdout] test repl_enter_submits_current_line_without_accepting_menu_completion ... ok
[INFO] [stdout] test repl_tab_accepts_single_visible_completion ... ok
[INFO] [stdout] test repl_completion_respects_leading_invocation_flags ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.37s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_repl_highlight.rs (/opt/rustwide/target/debug/deps/pty_repl_highlight-d7a1866c6ab8cedc)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test repl_highlights_commands_with_success_color ... ok
[INFO] [stdout] test repl_help_history_highlights_help_keyword ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.54s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_repl_plugins.rs (/opt/rustwide/target/debug/deps/pty_repl_plugins-d5f7d3cf4b1ed59b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test repl_requires_explicit_provider_selection_for_conflicted_commands ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_repl_prompt.rs (/opt/rustwide/target/debug/deps/pty_repl_prompt-dc9f8babcb9ec82f)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test repl_prompt_prefix_uses_prompt_text_color ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/unit.rs (/opt/rustwide/target/debug/deps/unit-d40e9e33306393e1)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test ldap_filter::ldap_filter_key_value_matches ... ok
[INFO] [stdout] test dsl_parser::parse_pipeline_preserves_quoted_pipe_in_command ... ok
[INFO] [stdout] test verb_policy::builtin_command_verbs_are_consistent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests osp_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] running `Command { std: "docker" "inspect" "1fd0185dd9ddc6ba9e8136b6eb728dfbf53bc235a430bf927870b854384b3c23", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fd0185dd9ddc6ba9e8136b6eb728dfbf53bc235a430bf927870b854384b3c23", kill_on_drop: false }`
[INFO] [stdout] 1fd0185dd9ddc6ba9e8136b6eb728dfbf53bc235a430bf927870b854384b3c23
