[INFO] cloning repository https://github.com/hedra-labs/hedra-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hedra-labs/hedra-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhedra-labs%2Fhedra-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhedra-labs%2Fhedra-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c6da7c98e36c318fd04245505f5802e53bdc427a [INFO] testing hedra-labs/hedra-cli against 1.98.0-beta.1 for beta-1.98-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhedra-labs%2Fhedra-cli" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/hedra-labs/hedra-cli [INFO] finished tweaking git repo https://github.com/hedra-labs/hedra-cli [INFO] tweaked toml for git repo https://github.com/hedra-labs/hedra-cli written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/hedra-labs/hedra-cli on toolchain 1.98.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/hedra-labs/hedra-cli already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac [INFO] running `Command { std: "docker" "start" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.46 [INFO] [stderr] Compiling libc v0.2.186 [INFO] [stderr] Compiling memchr v2.8.2 [INFO] [stderr] Compiling shlex v2.0.1 [INFO] [stderr] Compiling smallvec v1.15.2 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling pkg-config v0.3.33 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling bytes v1.12.0 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling log v0.4.33 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling openssl v0.10.81 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling cc v1.2.65 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling typenum v1.20.1 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling autocfg v1.5.1 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling regex-syntax v0.8.11 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling syn v2.0.118 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling deunicode v1.6.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling slug v0.1.6 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling inventory v0.3.24 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.2.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling socket2 v0.6.4 [INFO] [stderr] Compiling openssl-sys v0.9.117 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling libdbus-sys v0.2.7 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling anyhow v1.0.103 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling data-encoding v2.11.0 [INFO] [stderr] Compiling num-conv v0.2.2 [INFO] [stderr] Compiling time-core v0.1.9 [INFO] [stderr] Compiling tinyvec v1.11.0 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling symlink v0.1.0 [INFO] [stderr] Compiling roff v1.1.1 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling time v0.3.51 [INFO] [stderr] Compiling jmespath v0.3.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.6 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling zeroize_derive v1.5.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rustls-pki-types v1.14.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand v0.8.6 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling serde_json_path_macros_internal v0.1.2 [INFO] [stderr] Compiling regex v1.12.4 [INFO] [stderr] Compiling secrecy v0.10.3 [INFO] [stderr] Compiling zerofrom v0.1.8 [INFO] [stderr] Compiling yoke v0.8.3 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling dbus v0.9.11 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling clap_mangen v0.2.33 [INFO] [stderr] Compiling clap_complete v4.6.5 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling serde_json_path_core v0.2.2 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling ordered-float v4.6.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling serde_qs v1.1.2 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling serde_json_path_macros v0.1.6 [INFO] [stderr] Compiling serde_json_path v0.7.2 [INFO] [stderr] Compiling tungstenite v0.24.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling dbus-secret-service v4.1.0 [INFO] [stderr] Compiling keyring v3.6.3 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tracing-appender v0.2.5 [INFO] [stderr] Compiling webbrowser v1.2.1 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling hedra_types v0.0.0 (/opt/rustwide/workdir/hedra-types) [INFO] [stderr] Compiling hedra_sdk v0.1.0 (/opt/rustwide/workdir/hedra-sdk) [INFO] [stderr] Compiling hedra-cli v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 28s [INFO] running `Command { std: "docker" "inspect" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling getrandom v0.4.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling serial_test_derive v3.5.0 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling openssl v0.10.81 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling h2 v0.4.15 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling serial_test v3.5.0 [INFO] [stderr] Compiling tower-http v0.6.11 [INFO] [stderr] Compiling hyper v1.10.1 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tungstenite v0.24.0 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling hedra_types v0.0.0 (/opt/rustwide/workdir/hedra-types) [INFO] [stderr] Compiling hedra_sdk v0.1.0 (/opt/rustwide/workdir/hedra-sdk) [INFO] [stderr] Compiling hedra-cli v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `openapi::binding::OpenApiBinding` that must be used [INFO] [stdout] --> src/openapi/binding.rs:930:9 [INFO] [stdout] | [INFO] [stdout] 930 | OpenApiBinding::default().command_namespace("auth"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 930 | let _ = OpenApiBinding::default().command_namespace("auth"); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 58.12s [INFO] running `Command { std: "docker" "inspect" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: unused `openapi::binding::OpenApiBinding` that must be used [INFO] [stderr] --> src/openapi/binding.rs:930:9 [INFO] [stderr] | [INFO] [stderr] 930 | OpenApiBinding::default().command_namespace("auth"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] help: use `let _ = ...` to ignore the resulting value [INFO] [stderr] | [INFO] [stderr] 930 | let _ = OpenApiBinding::default().command_namespace("auth"); [INFO] [stderr] | +++++++ [INFO] [stderr] [INFO] [stderr] warning: `hedra-cli` (lib test) generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fern_cli_sdk-58395bb3ac45fc4f) [INFO] [stdout] [INFO] [stdout] running 1704 tests [INFO] [stdout] test app::tests::cli_app_must_use ... ok [INFO] [stdout] test app::tests::deduplicate_after_help_multiline_blocks_are_atomic ... ok [INFO] [stdout] test app::tests::deduplicate_after_help_real_world_footer ... ok [INFO] [stdout] test app::tests::deduplicate_after_help_removes_identical_blocks ... ok [INFO] [stdout] test app::tests::merge_detects_leaf_collision ... ok [INFO] [stdout] test app::tests::merge_disjoint_top_levels ... ok [INFO] [stdout] test app::tests::deduplicate_after_help_preserves_unique_blocks ... ok [INFO] [stdout] test app::tests::merge_overlapping_top_levels_disjoint_leaves ... ok [INFO] [stdout] test app::tests::merge_exempts_intrinsic_generate_skills_from_collision ... ok [INFO] [stdout] test app::tests::resolve_binding_for_leaf_finds_owner ... ok [INFO] [stdout] test app::tests::resolve_op_path_extracts_chain ... ok [INFO] [stdout] test arg_source::tests::chain_arg_empty_returns_none ... ok [INFO] [stdout] test arg_source::tests::env_arg_empty_returns_none ... ok [INFO] [stdout] test arg_source::tests::chain_arg_first_wins ... ok [INFO] [stdout] test arg_source::tests::env_arg_missing_returns_none ... ok [INFO] [stdout] test arg_source::tests::env_arg_reads_value ... ok [INFO] [stdout] test arg_source::tests::chain_arg_falls_through ... ok [INFO] [stdout] test asyncapi::app::tests::cli_app_auth_scheme_records_binding ... ok [INFO] [stdout] test asyncapi::app::tests::cli_app_builder_records_spec_and_endpoint ... ok [INFO] [stdout] test arg_source::tests::file_arg_empty_returns_none ... ok [INFO] [stdout] test asyncapi::app::tests::cli_app_init_payload_records_explicit_override ... ok [INFO] [stdout] test asyncapi::app::tests::cli_arg_env_records_fallback ... ok [INFO] [stdout] test asyncapi::app::tests::select_init_payload_falls_back_to_static_when_dynamic_returns_none ... ok [INFO] [stdout] test asyncapi::app::tests::select_init_payload_dynamic_closure_wins_over_static ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_env_value_fallback_used_when_cli_absent ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_env_fallback_empty_string_leaves_flag_false ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_env_fallback_promotes_nonempty_to_true_flag ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_flag_absent_is_false ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_reads_flag_from_cli ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_reads_value_from_cli ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_value_absent_returns_none ... ok [INFO] [stdout] test asyncapi::app::tests::select_autoresponder_dynamic_closure_wins_over_static ... ok [INFO] [stdout] test arg_source::tests::file_arg_missing_returns_none ... ok [INFO] [stdout] test arg_source::tests::literal_arg ... ok [INFO] [stdout] test asyncapi::app::tests::cli_arg_records_spec_with_no_env_fallback ... ok [INFO] [stdout] test asyncapi::app::tests::select_init_payload_returns_none_when_neither_set ... ok [INFO] [stdout] test asyncapi::binding::tests::binding_inherits_root_auth ... ok [INFO] [stdout] test asyncapi::commands::tests::ac2_leaf_exposes_optional_message_and_param_flags ... ok [INFO] [stdout] test asyncapi::binding::tests::resolve_channel_disambiguates_shared_leaf_by_group_path ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_merges_authority_with_endpoint_path ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_none_when_both_unset ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_override_with_explicit_path_wins ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_trailing_slash_override_still_takes_endpoint_path ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_uses_endpoint_alone ... ok [INFO] [stdout] test asyncapi::commands::tests::shared_group_merges_two_distinct_leaves ... ok [INFO] [stdout] test asyncapi::executor::tests::compose_base_url_uses_override_alone ... ok [INFO] [stdout] test asyncapi::executor::tests::concatenate_parts_assembles_chunks ... ok [INFO] [stdout] test asyncapi::executor::tests::concatenate_parts_handles_agent_response ... ok [INFO] [stdout] test asyncapi::executor::tests::concatenate_parts_ignores_unknown_shapes ... ok [INFO] [stdout] test asyncapi::executor::tests::connect_url_appends_channel_path_when_starts_with_slash ... ok [INFO] [stdout] test asyncapi::executor::tests::connect_url_encodes_special_chars ... ok [INFO] [stdout] test asyncapi::executor::tests::connect_url_skips_empty_value_params ... ok [INFO] [stdout] test asyncapi::executor::tests::connect_url_sorts_params ... ok [INFO] [stdout] test asyncapi::executor::tests::describe_ws_auth_covers_every_variant ... ok [INFO] [stdout] test asyncapi::executor::tests::describe_ws_auth_surfaces_location_and_name_without_secret ... ok [INFO] [stdout] test asyncapi::executor::tests::dry_run_info_repl_has_null_message_and_init ... ok [INFO] [stdout] test asyncapi::executor::tests::init_payload_explicit_overrides_overlay ... ok [INFO] [stdout] test asyncapi::executor::tests::init_payload_none_when_neither_set ... ok [INFO] [stdout] test asyncapi::executor::tests::init_payload_uses_overlay_when_set ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_server_url_empty_url_skipped ... ok [INFO] [stdout] test asyncapi::executor::tests::dry_run_info_single_shot_shape ... ok [INFO] [stdout] test asyncapi::binding::tests::resolve_channel_agrees_with_registrar_on_empty_sdk_method_name ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_server_url_multiple_servers_errors_with_candidates ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_server_url_override_always_wins ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_server_url_single_server_used ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_server_url_zero_servers_errors ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_ws_auth_falls_back_to_none_with_multiple_bindings ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_ws_auth_falls_back_to_none_with_no_bindings ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_ws_auth_preserves_xi_api_key_scheme ... ok [INFO] [stdout] test asyncapi::executor::tests::resolve_ws_auth_uses_scheme_name_from_binding ... ok [INFO] [stdout] test asyncapi::executor::tests::response_timeout_error_mentions_duration_frames_and_override ... ok [INFO] [stdout] test asyncapi::commands::tests::ac1_group_and_method_extension_produce_foo_bar_path ... ok [INFO] [stdout] test asyncapi::executor::tests::response_timeout_falls_back_on_bad_or_zero_values ... ok [INFO] [stdout] test asyncapi::executor::tests::response_timeout_parses_valid_override ... ok [INFO] [stdout] test asyncapi::executor::tests::user_message_frame_shape ... ok [INFO] [stdout] test asyncapi::commands::tests::ac2_message_is_optional_parse_succeeds_without_it ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_apply_overlays_to_spec_no_overlays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_append_boolean ... ok [INFO] [stdout] test asyncapi::commands::tests::ac3_channel_without_method_name_falls_back_to_kebab_case ... ok [INFO] [stdout] test asyncapi::overlay::tests::overlay_jsonpath_filter_edge_case_no_matches ... ok [INFO] [stdout] test asyncapi::overlay::tests::overlay_remove_action_removes_node_from_parsed_asyncapi ... ok [INFO] [stdout] test asyncapi::overlay::tests::overlay_update_action_deep_merges_into_parsed_asyncapi ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_append_null ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_append_number ... ok [INFO] [stdout] test asyncapi::commands::tests::method_without_group_attaches_at_root ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_apply_overlays_to_spec_roundtrip ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_apply_multiple_overlays ... ok [INFO] [stdout] test asyncapi::commands::tests::parameter_flags_are_kebab_cased ... ok [INFO] [stdout] test arg_source::tests::file_arg_reads_and_trims ... ok [INFO] [stdout] test asyncapi::commands::tests::channel_without_params_exposes_only_message_flag ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_append_object ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_array_type_mismatch_replaces ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_arrays_index_by_index ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_empty_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_arrays_of_objects ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_mixed_type_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_nested ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_sparse_like_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_nested_objects_in_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_objects ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_append_string ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_array_replace_with_array ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_overwrites_primitives ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_update_extends_shorter_array ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_preserves_existing ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_actions_on_items_from_earlier_actions ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_deep_merge_arrays_of_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_does_not_mutate_input ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_deep_merge_preserves_nested_structure ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_array_edge_cases_append_and_replace ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_array_index_targeting ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_merge_array_element_by_filter ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_merge_multiple_array_items_by_filter ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_merge_updates_into_schema ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_multiple_overlay_actions ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_multiple_consecutive_array_removals ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_replace_primitive_arrays ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_root_level_targeting ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_remove_ignores_update ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_merge_at_path_array_append ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_remove_array_element ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_remove_property ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_update_nested_path ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_normalized_path_to_segments_direct ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_key_with_special_chars ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_root_target ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_sequential_actions ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_wildcard_across_multiple_paths ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_update_simple_path ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_fern_zero_match_continues_processing ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_wildcard_update ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_parse_overlay_json ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_overlay_zero_match_no_error ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_validate_overlay_action_no_update_no_remove ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_validate_overlay_missing_version ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_parse_overlay_yaml ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_validate_overlay_no_actions ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_yaml_roundtrip_resolves_anchors ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_validate_overlay_action_no_target ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_accepts_ws_and_wss_protocols ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_extracts_message_ref_from_single_ref ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_asyncapi_2_5_0 ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_extracts_message_refs_from_oneof ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_yaml_roundtrip_strips_comments ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_yaml_roundtrip_with_overlay_preserves_structure ... ok [INFO] [stdout] test asyncapi::overlay::tests::test_yaml_roundtrip_strips_custom_tags ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_asyncapi_3_0_0 ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_protocol_amqp ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_missing_asyncapi_field ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_protocol_kafka ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_protocol_mqtt ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_populates_x_fern_init_payload_when_present ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_asyncapi_1_2_0 ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_yields_none_when_x_fern_init_payload_absent ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_rejects_protocol_sse ... ok [INFO] [stdout] test auth::builder::tests::no_bindings_returns_noop ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_describes_chain ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_describes_basic_pair ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_marks_hintless_custom_provider_opaque ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_none_for_empty_bindings ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_shows_custom_provider_credential_hints ... ok [INFO] [stdout] test auth::builder::tests::render_auth_layers_help_handles_hintless_layer ... ok [INFO] [stdout] test auth::builder::tests::render_auth_layers_help_marks_optional_with_hints ... ok [INFO] [stdout] test auth::builder::tests::render_auth_layers_help_none_for_empty ... ok [INFO] [stdout] test auth::builder::tests::render_auth_help_section_describes_env_var ... ok [INFO] [stdout] test auth::builder::tests::strategy_all_with_zero_bindings_returns_no_auth ... ok [INFO] [stdout] test auth::builder::tests::strategy_any_overrides_spec_routing ... ok [INFO] [stdout] test auth::builder::tests::strategy_auto_picks_any_when_no_per_endpoint_security ... ok [INFO] [stdout] test auth::builder::tests::strategy_auto_picks_routing_when_spec_has_per_endpoint_security ... ok [INFO] [stdout] test auth::builder::tests::strategy_routing_used_even_without_per_endpoint_security ... ok [INFO] [stdout] test auth::builder::tests::strategy_routing_with_zero_bindings_returns_no_auth ... ok [INFO] [stdout] test asyncapi::app::tests::resolve_binding_args_cli_value_overrides_env_fallback ... ok [INFO] [stdout] test asyncapi::commands::tests::nested_groups_resolve_three_levels_deep ... ok [INFO] [stdout] test auth::builder::tests::token_binding_for_basic_scheme_is_skipped ... ok [INFO] [stdout] test asyncapi::binding::tests::cli_arg_attaches_global_flag_to_built_clap_tree ... ok [INFO] [stdout] test auth::compose::tests::all_auth_empty_provider_list_is_no_credentials ... ok [INFO] [stdout] test auth::compose::tests::all_auth_has_credentials_requires_every_child ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_real_elevenlabs_spec_returns_ok_with_agentmessages_and_31_messages ... ok [INFO] [stdout] test asyncapi::binding::tests::cli_arg_value_attaches_global_value_arg ... ok [INFO] [stdout] test asyncapi::parser::tests::parse_extracts_real_spec_message_refs_for_agentmessages ... ok [INFO] [stdout] test asyncapi::binding::tests::binding_registers_alongside_openapi_without_panic ... ok [INFO] [stdout] test auth::compose::tests::layered_credential_hints_exclude_layers ... ok [INFO] [stdout] test auth::compose::tests::any_auth_skips_routing_child_that_cant_satisfy_endpoint ... ok [INFO] [stdout] test auth::compose::tests::all_auth_applies_every_provider ... ok [INFO] [stdout] test auth::compose::tests::layered_applies_primary_and_present_layer ... ok [INFO] [stdout] test auth::compose::tests::layered_satisfiability_follows_primary_only ... ok [INFO] [stdout] test auth::builder::tests::uses_routing_when_doc_has_per_endpoint_security ... ok [INFO] [stdout] test auth::compose::tests::layered_does_not_attach_to_explicit_anonymous_endpoint ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_explicit_anonymous_is_true ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_satisfiable_requirement_is_true ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_unsatisfiable_requirement_is_false ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_unspecified_delegates_to_default ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_unspecified_propagates_default_false ... ok [INFO] [stdout] test auth::compose::tests::routing_has_credentials_for_unspecified_with_no_default_uses_general_check ... ok [INFO] [stdout] test auth::builder::tests::routing_falls_back_to_any_for_unspecified_endpoint ... ok [INFO] [stdout] test auth::builder::tests::custom_binding_used_as_is ... ok [INFO] [stdout] test auth::builder::tests::apikey_header_uses_declared_header_name ... ok [INFO] [stdout] test auth::builder::tests::bearer_scheme_routes_to_bearer_provider ... ok [INFO] [stdout] test auth::builder::tests::strategy_all_applies_every_scheme_unconditionally ... ok [INFO] [stdout] test auth::credential::tests::chain_picks_first_with_value ... ok [INFO] [stdout] test auth::compose::tests::all_auth_short_circuits_on_provider_error ... ok [INFO] [stdout] test auth::credential::tests::chain_with_empty_literal_falls_through ... ok [INFO] [stdout] test auth::credential::tests::cli_args_collects_recursively_through_chain ... ok [INFO] [stdout] test auth::credential::tests::cli_args_empty_when_no_cli_variants ... ok [INFO] [stdout] test auth::credential::tests::cli_resolves_to_none_before_finalize ... ok [INFO] [stdout] test auth::builder::tests::from_bindings_works_without_doc ... ok [INFO] [stdout] test auth::credential::tests::closure_resolves ... ok [INFO] [stdout] test auth::credential::tests::cli_strips_leading_dashes ... ok [INFO] [stdout] test auth::credential::tests::closure_returning_none_is_missing ... ok [INFO] [stdout] test auth::credential::tests::closure_returning_empty_string_is_missing ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_chain_collects_all ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_cli ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_closure_without_hint_is_empty ... ok [INFO] [stdout] test auth::compose::tests::any_auth_no_credentials_is_passthrough ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_env ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_literal_is_empty ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_file ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_missing_is_empty ... ok [INFO] [stdout] test auth::compose::tests::routing_setup_registers_provider_named_apikey ... ok [INFO] [stdout] test auth::credential::tests::chain_returns_none_when_all_missing ... ok [INFO] [stdout] test auth::credential::tests::debug_redacts_literal_value ... ok [INFO] [stdout] test auth::credential::tests::env_returns_none_when_unset ... ok [INFO] [stdout] test auth::credential::tests::env_treats_empty_as_missing ... ok [INFO] [stdout] test auth::credential::tests::env_trims_surrounding_whitespace ... ok [INFO] [stdout] test auth::credential::tests::env_treats_whitespace_only_as_missing ... ok [INFO] [stdout] test auth::credential::tests::expand_home_resolves_tilde_prefix ... ok [INFO] [stdout] test auth::credential::tests::file_reads_and_trims_contents ... ok [INFO] [stdout] test auth::credential::tests::finalize_chain_cli_wins_over_env ... ok [INFO] [stdout] test auth::credential::tests::credential_hints_closure_with_hint_from_finalize ... ok [INFO] [stdout] test auth::credential::tests::file_missing_resolves_to_none ... ok [INFO] [stdout] test auth::credential::tests::file_empty_content_is_missing ... ok [INFO] [stdout] test auth::credential::tests::finalize_cli_returns_none_when_flag_absent ... ok [INFO] [stdout] test auth::credential::tests::home_dir_falls_back_to_userprofile_when_home_unset ... ok [INFO] [stdout] test auth::credential::tests::keyring_cli_args_is_empty ... ok [INFO] [stdout] test auth::credential::tests::finalize_passes_through_non_cli_variants ... ok [INFO] [stdout] test auth::credential::tests::keyring_debug_shows_service_and_account ... ok [INFO] [stdout] test auth::credential::tests::keyring_credential_hint_describes_entry ... ok [INFO] [stdout] test auth::credential::tests::finalize_recurses_into_chain_with_cli_fallback_to_env ... ok [INFO] [stdout] test auth::credential::tests::keyring_source_empty_value_resolves_to_none ... ok [INFO] [stdout] test auth::credential::tests::keyring_finalize_is_pass_through ... ok [INFO] [stdout] test auth::credential::tests::literal_empty_string_resolves_to_none ... ok [INFO] [stdout] test auth::credential::tests::keyring_source_in_chain_falls_through_when_missing ... ok [INFO] [stdout] test auth::credential::tests::keyring_source_returns_none_when_unset ... ok [INFO] [stdout] test auth::credential::tests::keyring_source_resolves_via_active_store ... ok [INFO] [stdout] test auth::credential::tests::literal_resolves ... ok [INFO] [stdout] test auth::credential::tests::missing_resolves_to_none ... ok [INFO] [stdout] test auth::error::tests::falls_back_to_raw_body_when_non_json ... ok [INFO] [stdout] test auth::error::tests::forbidden_with_credentials_discloses_source ... ok [INFO] [stdout] test auth::error::tests::friendly_error_json_envelope_contains_env_var ... ok [INFO] [stdout] test auth::error::tests::friendly_error_names_cli_flag_after_finalize ... ok [INFO] [stdout] test auth::error::tests::friendly_error_names_cli_flag_in_chain ... ok [INFO] [stdout] test auth::error::tests::friendly_error_names_env_var_basic ... ok [INFO] [stdout] test auth::error::tests::friendly_error_names_env_var_bearer ... ok [INFO] [stdout] test auth::error::tests::friendly_error_names_env_var_header ... ok [INFO] [stdout] test auth::error::tests::friendly_error_fallback_when_no_hints ... ok [INFO] [stdout] test auth::credential::tests::resolved_secret_does_not_leak_through_debug ... ok [INFO] [stdout] test auth::error::tests::handles_top_level_reason_field ... ok [INFO] [stdout] test auth::error::tests::non_auth_status_codes_skip_source_disclosure ... ok [INFO] [stdout] test auth::error::tests::parses_structured_error_envelope ... ok [INFO] [stdout] test auth::credential::tests::finalize_replaces_cli_with_closure_reading_matches ... ok [INFO] [stdout] test auth::error::tests::dedup_removes_duplicates_preserving_order ... ok [INFO] [stdout] test auth::error::tests::unauthorized_with_credentials_discloses_source ... ok [INFO] [stdout] test auth::keyring_store::tests::active_store_install_and_swap ... ok [INFO] [stdout] test auth::error::tests::friendly_when_provider_has_no_credentials_for_endpoint ... ok [INFO] [stdout] test auth::keyring_store::tests::file_store_delete_missing_is_ok ... ok [INFO] [stdout] test auth::keyring_store::tests::backend_labels_describe_themselves ... ok [INFO] [stdout] test auth::error::tests::passes_through_when_credentials_present ... ok [INFO] [stdout] test auth::keyring_store::tests::file_store_isolates_services ... ok [INFO] [stdout] test auth::keyring_store::tests::file_store_writes_owner_only_perms ... ok [INFO] [stdout] test auth::login::tests::describe_source_covers_all_variants ... ok [INFO] [stdout] test auth::keyring_store::tests::mock_store_roundtrip ... ok [INFO] [stdout] test auth::keyring_store::tests::mock_store_snapshot_lists_entries ... ok [INFO] [stdout] test auth::login::tests::expand_sources_returns_empty_for_custom_with_no_login_flow ... ok [INFO] [stdout] test auth::keyring_store::tests::file_store_multiple_accounts_per_service ... ok [INFO] [stdout] test auth::keyring_store::tests::file_store_roundtrip ... ok [INFO] [stdout] test auth::login::tests::flatten_chain_handles_nested_chains ... ok [INFO] [stdout] test auth::login::tests::expand_sources_synthesises_keyring_for_oauth_custom_binding ... ok [INFO] [stdout] test auth::login::tests::inject_keyring_appends_to_existing_chain ... ok [INFO] [stdout] test auth::login::tests::inject_keyring_into_single_env_source ... ok [INFO] [stdout] test auth::login::tests::inject_keyring_promotes_missing_to_keyring_alone ... ok [INFO] [stderr] ✓ Removed credential for my-cli:OAuth2 from mock (in-memory). [INFO] [stdout] test auth::login::tests::inject_oauth2_caches_is_noop_for_token_bindings ... ok [INFO] [stdout] test auth::login::tests::logout_clears_keyring_entry ... ok [INFO] [stdout] test auth::compose::tests::routing_picks_satisfiable_requirement ... ok [INFO] [stdout] test auth::login::tests::paint_returns_plain_string_when_stderr_is_not_a_tty ... ok [INFO] [stdout] test auth::login::tests::resolve_scheme_multiple_bindings_no_arg_errors ... ok [INFO] [stdout] test auth::login::tests::resolve_scheme_explicit_wins ... ok [INFO] [stdout] test auth::login::tests::resolve_scheme_single_binding_no_arg ... ok [INFO] [stdout] test auth::login::tests::token_paste_with_url_carries_hint ... ok [INFO] [stdout] test auth::login::tests::with_token_errors_on_bindingless_cli_without_explicit_scheme ... ok [INFO] [stdout] test auth::login::tests::token_paste_flow_type_and_scheme ... ok [INFO] [stdout] test auth::login::tests::with_token_resolves_scheme_from_explicit_arg_when_bindingless ... ok [INFO] [stdout] test auth::login::tests::inject_oauth2_caches_idempotent ... ok [INFO] [stdout] test auth::login::tests::inject_oauth2_caches_wires_cache_into_custom_provider ... ok [INFO] [stdout] test auth::oauth2::tests::has_credentials_true_when_cache_has_valid_token ... ok [INFO] [stdout] test auth::oauth2::tests::inject_token_cache_sets_cache_via_trait ... ok [INFO] [stdout] test auth::oauth2::tests::inject_token_cache_idempotent ... ok [INFO] [stdout] test auth::login::tests::resolve_scheme_disambiguates_via_single_login_flow ... ok [INFO] [stdout] test auth::builder::tests::basic_scheme_routes_to_basic_provider ... ok [INFO] [stdout] test auth::oauth2::tests::client_credentials_no_creds_when_env_unset ... ok [INFO] [stdout] test auth::compose::tests::any_auth_picks_first_with_credentials ... ok [INFO] [stdout] test auth::compose::tests::routing_unspecified_no_default_is_passthrough ... ok [INFO] [stdout] test auth::builder::tests::duplicate_binding_uses_last_write_consistently ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_expired_token_returns_none ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_file_permissions ... ok [INFO] [stdout] test auth::oauth2::tests::misconfigured_oauth2_provider_errors_instead_of_silent_unauth ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_no_expiry_always_valid ... ok [INFO] [stdout] test auth::compose::tests::routing_combines_anded_schemes_in_one_requirement ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_preserves_refresh_token_on_update ... ok [INFO] [stdout] test auth::oauth2::tests::with_cache_sets_oncelock ... ok [INFO] [stdout] test auth::oauth_common::tests::parse_oauth_error_message_falls_back_to_description_only ... ok [INFO] [stdout] test auth::oauth_common::tests::parse_oauth_error_message_none_on_non_json ... ok [INFO] [stdout] test auth::oauth_common::tests::parse_oauth_error_message_prefers_error_and_description ... ok [INFO] [stdout] test auth::oauth_common::tests::token_bundle_expired_when_past_deadline ... ok [INFO] [stdout] test auth::oauth_common::tests::token_bundle_no_expires_at_never_expired ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_remove ... ok [INFO] [stdout] test auth::oauth_common::tests::token_bundle_roundtrip ... ok [INFO] [stdout] test auth::oauth_common::tests::truncate_body_long_gets_ellipsis ... ok [INFO] [stdout] test auth::oauth_common::tests::truncate_body_multibyte_utf8_no_panic ... ok [INFO] [stdout] test auth::oauth_common::tests::truncate_body_short_passes_through ... ok [INFO] [stdout] test auth::oauth_login::tests::code_challenge_s256_matches_rfc_example ... ok [INFO] [stdout] test auth::oauth_login::tests::code_verifier_is_url_safe_and_long_enough ... ok [INFO] [stdout] test auth::compose::tests::routing_explicit_anonymous_skips_auth_even_with_default ... ok [INFO] [stdout] test auth::oauth_login::tests::device_code_flow_type_and_scheme ... ok [INFO] [stdout] test auth::compose::tests::routing_no_satisfiable_requirement_is_passthrough ... ok [INFO] [stdout] test auth::compose::tests::routing_falls_back_to_or_alternative ... ok [INFO] [stdout] test auth::oauth_login::tests::device_code_validates_required_fields ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_authorize_url_appends_with_ampersand_when_query_present ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_authorize_url_includes_all_required_params ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_flow_type_and_scheme ... ok [INFO] [stdout] test auth::oauth2::tests::token_cache_store_and_load ... ok [INFO] [stdout] test auth::oauth_common::tests::token_bundle_raw_fallback ... ok [INFO] [stdout] test auth::compose::tests::layered_skips_layer_without_credentials ... ok [INFO] [stdout] test auth::oauth2::tests::client_credentials_fetches_and_caches_token ... ok [INFO] [stdout] test auth::compose::tests::routing_uses_default_when_endpoint_has_no_requirements ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_loopback_handshake_rejects_missing_code ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_validates_required_fields ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_loopback_times_out_when_no_callback_arrives ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_loopback_ignores_favicon_and_accepts_callback ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_loopback_handshake_surfaces_authorization_error_param ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_state_mismatch_aborts ... ok [INFO] [stdout] test auth::oauth_login::tests::pkce_loopback_handshake_returns_code_and_state ... ok [INFO] [stdout] test auth::oauth2::tests::provider_persists_token_to_disk ... ok [INFO] [stdout] test auth::provider::tests::endpoint_metadata_three_states ... ok [INFO] [stdout] test auth::provider::tests::no_auth_provider_emits_no_headers ... ok [INFO] [stdout] test auth::root_builder::tests::api_key_auth_builds_token_binding ... ok [INFO] [stdout] test auth::root_builder::tests::basic_auth_builds_basic_binding ... ok [INFO] [stdout] test auth::root_builder::tests::bearer_auth_builds_token_binding ... ok [INFO] [stdout] test auth::root_builder::tests::oauth2_auth_client_credentials_wires_oauth_provider ... ok [INFO] [stdout] test auth::root_builder::tests::oauth2_auth_incomplete_config_fails_fast_not_silent ... ok [INFO] [stdout] test auth::root_builder::tests::oauth2_auth_non_env_refresh_token_fails_fast ... ok [INFO] [stdout] test auth::root_builder::tests::oauth2_auth_refresh_token_wires_oauth_provider ... ok [INFO] [stdout] test auth::root_builder::tests::oauth2_auth_with_static_token ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_emits_base64_authorization ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_full_missing_password_is_no_credentials ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_full_missing_username_is_no_credentials ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_password_only_missing_is_no_credentials ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_password_only_sends_empty_username ... ok [INFO] [stdout] test auth::oauth2::tests::provider_falls_through_when_cached_refresh_fails ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_username_only_missing_is_no_credentials ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_has_credentials_false_when_keyring_empty ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_has_credentials_returns_true_when_keyring_populated ... ok [INFO] [stdout] test auth::schemes::tests::bearer_provider_rejects_invalid_token_bytes ... ok [INFO] [stdout] test auth::schemes::tests::bearer_provider_no_token_is_noop ... ok [INFO] [stdout] test auth::schemes::tests::basic_provider_username_only_sends_empty_password ... ok [INFO] [stdout] test auth::schemes::tests::bearer_provider_emits_authorization_bearer ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_embedded_value_flag ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_multi_segment ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_one_segment ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_root ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_skips_bool_flag_before_subcommand ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_skips_global_value_flag_before_subcommand ... ok [INFO] [stdout] test cli_args::tests::test_extract_subcommand_path_stops_at_first_flag ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_allows_help_and_format_flags ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_bare_format_name_not_hijacked ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_default_no_format ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_does_not_hijack_nested_resource ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_empty_args ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_format_equals ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_format_space_separated ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_negative ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_positive ... ok [INFO] [stdout] test cli_args::tests::test_is_errors_subcommand_rejects_unknown_flags ... ok [INFO] [stdout] test cli_args::tests::test_is_version_flag ... ok [INFO] [stdout] test cli_args::tests::test_wants_schema_absent ... ok [INFO] [stdout] test cli_args::tests::test_wants_schema_present ... ok [INFO] [stdout] test cli_args::tests::test_wants_spec_absent ... ok [INFO] [stdout] test cli_args::tests::test_wants_spec_present ... ok [INFO] [stdout] test cli_args::tests::test_wants_spec_raw_absent ... ok [INFO] [stdout] test cli_args::tests::test_wants_spec_raw_present ... ok [INFO] [stdout] test completions::tests::parse_shell_invalid ... ok [INFO] [stdout] test completions::tests::parse_shell_rejects_uppercase ... ok [INFO] [stdout] test completions::tests::parse_shell_valid ... ok [INFO] [stdout] test completions::tests::wants_completion_detects_subcommand ... ok [INFO] [stdout] test completions::tests::wants_completion_false_for_normal_commands ... ok [INFO] [stdout] test completions::tests::wants_completion_false_when_flag_value ... ok [INFO] [stdout] test completions::tests::wants_completion_false_when_nested ... ok [INFO] [stdout] test completions::tests::wants_completion_true_after_eq_flag ... ok [INFO] [stdout] test completions::tests::wants_completion_with_boolean_flag ... ok [INFO] [stdout] test completions::tests::wants_completion_with_multiple_boolean_flags ... ok [INFO] [stdout] test custom_commands::tests::graft_creates_missing_intermediate_parent ... ok [INFO] [stdout] test custom_commands::tests::graft_into_existing_parent_keeps_siblings ... ok [INFO] [stdout] test custom_commands::tests::graft_leaf_collision_under_parent_replaces ... ok [INFO] [stdout] test custom_commands::tests::graft_top_level_adds_command ... ok [INFO] [stdout] test custom_commands::tests::graft_top_level_collision_replaces_leaf ... ok [INFO] [stdout] test custom_commands::tests::registry_dispatch_invokes_matching_handler ... ok [INFO] [stdout] test custom_commands::tests::registry_dispatch_returns_none_when_no_custom_invoked ... ok [INFO] [stdout] test custom_commands::tests::registry_graft_into_grafts_all_entries ... ok [INFO] [stdout] test custom_commands::tests::registry_registers_top_level_command ... ok [INFO] [stdout] test custom_commands::tests::registry_registers_under_path ... ok [INFO] [stdout] test custom_commands::tests::typed_command_augments_args_onto_command ... ok [INFO] [stdout] test custom_commands::tests::typed_command_context_mismatch_returns_error ... ok [INFO] [stdout] test custom_commands::tests::typed_command_erased_dispatch_round_trip ... ok [INFO] [stdout] test custom_commands::tests::typed_command_parses_args_from_matches ... ok [INFO] [stdout] test custom_commands::tests::typed_command_parses_optional_absent ... ok [INFO] [stdout] test custom_commands::tests::walk_matches_finds_leaf ... ok [INFO] [stdout] test custom_commands::tests::walk_matches_misses_when_parent_diverges ... ok [INFO] [stdout] test custom_commands::tests::walk_matches_misses_when_path_diverges ... ok [INFO] [stdout] test debug::tests::apisecret_redacted ... ok [INFO] [stdout] test debug::tests::bare_json_scalar_not_pretty_printed ... ok [INFO] [stdout] test debug::tests::body_preview_truncation ... ok [INFO] [stdout] test debug::tests::body_preview_truncation_multibyte ... ok [INFO] [stdout] test debug::tests::compound_password_keys_redacted ... ok [INFO] [stdout] test debug::tests::compound_token_keys_redacted ... ok [INFO] [stdout] test debug::tests::custom_auth_header_redacted ... ok [INFO] [stdout] test debug::tests::dump_error_response_does_not_panic ... ok [INFO] [stdout] test debug::tests::dump_graphql_request_does_not_panic_with_empty_variables ... ok [INFO] [stdout] test debug::tests::dump_graphql_request_does_not_panic_with_populated_variables ... ok [INFO] [stdout] test debug::tests::dump_request_does_not_panic ... ok [INFO] [stdout] test debug::tests::dump_request_with_custom_auth_header ... ok [INFO] [stdout] test debug::tests::dump_response_does_not_panic ... ok [INFO] [stdout] test debug::tests::dump_streaming_note_does_not_panic ... ok [INFO] [stdout] test debug::tests::dump_streaming_note_empty_headers_no_panic ... ok [INFO] [stdout] test debug::tests::dump_streaming_note_no_panic_error_status ... ok [INFO] [stdout] test debug::tests::form_encoded_body_redaction ... ok [INFO] [stdout] test debug::tests::form_encoded_case_insensitive ... ok [INFO] [stdout] test debug::tests::graphql_variables_nested_secret_redacted ... ok [INFO] [stdout] test debug::tests::graphql_variables_password_key_redacted_before_dump ... ok [INFO] [stdout] test debug::tests::hyphenated_compound_stems_redacted ... ok [INFO] [stdout] test debug::tests::json_all_sensitive_keys_redacted ... ok [INFO] [stdout] test debug::tests::json_array_with_sensitive_keys ... ok [INFO] [stdout] test debug::tests::json_case_insensitive_key_match ... ok [INFO] [stdout] test debug::tests::json_nested_password_redacted ... ok [INFO] [stdout] test debug::tests::json_top_level_password_redacted ... ok [INFO] [stdout] test debug::tests::key_and_session_exact_stems_redacted ... ok [INFO] [stdout] test debug::tests::multiline_body_not_treated_as_form ... ok [INFO] [stdout] test debug::tests::new_sensitive_headers_detected ... ok [INFO] [stdout] test debug::tests::no_box_drawing_characters_in_source ... ok [INFO] [stdout] test debug::tests::non_json_non_form_body_left_untouched ... ok [INFO] [stdout] test debug::tests::non_sensitive_headers_pass_through ... ok [INFO] [stdout] test debug::tests::password_adjacent_keys_defensively_redacted ... ok [INFO] [stdout] test debug::tests::private_key_and_api_variants_redacted ... ok [INFO] [stdout] test debug::tests::redact_body_catches_response_tokens ... ok [INFO] [stdout] test debug::tests::safe_keys_not_over_matched ... ok [INFO] [stdout] test debug::tests::safe_keys_not_over_matched_extended ... ok [INFO] [stdout] test debug::tests::sensitive_headers_detected ... ok [INFO] [stdout] test debug::tests::short_exact_stems_redacted ... ok [INFO] [stdout] test debug::tests::url_credentials_redacted ... ok [INFO] [stdout] test debug::tests::url_no_credentials_unchanged ... ok [INFO] [stdout] test debug::tests::url_query_api_key_redacted ... ok [INFO] [stdout] test debug::tests::url_query_extra_spec_param_redacted ... ok [INFO] [stdout] test debug::tests::url_query_no_query_unchanged ... ok [INFO] [stdout] test auth::schemes::tests::header_provider_raw_value_no_prefix ... ok [INFO] [stdout] test early_intercept::tests::first_positional_basic ... ok [INFO] [stdout] test debug::tests::url_query_password_redacted_page_preserved ... ok [INFO] [stdout] test early_intercept::tests::first_positional_false_for_other_subcommand ... ok [INFO] [stdout] test early_intercept::tests::first_positional_false_when_flag_value ... ok [INFO] [stdout] test early_intercept::tests::first_positional_true_after_boolean_flag ... ok [INFO] [stdout] test early_intercept::tests::first_positional_true_after_debug_flag ... ok [INFO] [stdout] test early_intercept::tests::first_positional_true_after_eq_flag ... ok [INFO] [stdout] test early_intercept::tests::first_positional_true_after_multiple_boolean_flags ... ok [INFO] [stdout] test early_intercept::tests::first_positional_true_after_quiet_flag ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_eq_flag ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_out_of_range ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_with_boolean_flag ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_skips_value_flag ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_with_quiet_flag ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_zeroth ... ok [INFO] [stdout] test early_intercept::tests::nth_positional_with_debug_flag ... ok [INFO] [stdout] test error::tests::detect_errors_format_defaults_to_table ... ok [INFO] [stdout] test error::tests::detect_errors_format_recognizes_json_equals ... ok [INFO] [stdout] test error::tests::detect_errors_format_recognizes_json_space_separated ... ok [INFO] [stdout] test error::tests::detect_errors_format_trailing_format_flag_with_no_value_is_table ... ok [INFO] [stdout] test error::tests::detect_errors_format_unknown_format_falls_back_to_table ... ok [INFO] [stdout] test error::tests::exit_code_table_covers_all_known_codes ... ok [INFO] [stdout] test error::tests::exit_code_table_has_no_duplicates ... ok [INFO] [stdout] test error::tests::help_hint_shown_only_for_validation_errors ... ok [INFO] [stdout] test error::tests::is_raw_sentinel_false_for_api_with_raw_reason ... ok [INFO] [stdout] test error::tests::is_raw_sentinel_false_for_non_api_errors ... ok [INFO] [stdout] test error::tests::is_raw_sentinel_true_for_raw_sentinel_variant ... ok [INFO] [stdout] test error::tests::detect_errors_format_case_insensitive ... ok [INFO] [stdout] test error::tests::raw_sentinel_duplicate ... ok [INFO] [stdout] test error::tests::raw_sentinel_exit_code_matches_api ... ok [INFO] [stdout] test error::tests::print_errors_json_emits_expected_shape ... ok [INFO] [stdout] test error::tests::test_duplicate_preserves_variant ... ok [INFO] [stdout] test auth::schemes::tests::header_provider_bearer_prefix_named_header ... ok [INFO] [stdout] test error::tests::test_exit_codes_all_variants ... ok [INFO] [stdout] test error::tests::test_exit_codes_are_distinct ... ok [INFO] [stdout] { [INFO] [stdout] "error": { [INFO] [stdout] "code": 500, [INFO] [stdout] "message": "oops", [INFO] [stdout] "reason": "err" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] "error": { [INFO] [stdout] "code": 400, [INFO] [stdout] "message": "bad input", [INFO] [stdout] "reason": "validationError" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] "error": { [INFO] [stdout] "code": 401, [INFO] [stdout] "message": "no auth", [INFO] [stdout] "reason": "authError" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] "error": { [INFO] [stdout] "code": 500, [INFO] [stdout] "message": "no spec", [INFO] [stdout] "reason": "discoveryError" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] { [INFO] [stdout] "error": { [INFO] [stdout] "code": 500, [INFO] [stdout] "message": "broken", [INFO] [stdout] "reason": "internalError" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] test error::tests::test_error_to_json_api ... ok [INFO] [stdout] test error::tests::test_print_error_json_all_variants_no_panic ... ok [INFO] [stdout] test error::tests::test_to_json_auth ... ok [INFO] [stdout] test error::tests::test_to_json_discovery ... ok [INFO] [stdout] test error::tests::test_to_json_other ... ok [INFO] [stdout] test error::tests::write_error_json_no_docs_url_for_non_api_errors ... ok [INFO] [stdout] test error::tests::validation_label_is_error_validation ... ok [INFO] [stdout] test error::tests::write_error_json_no_panic_without_context ... ok [INFO] [stdout] test error::tests::test_error_to_json_validation ... ok [INFO] [stdout] test error::tests::write_error_json_normal_api_error_writes_json ... ok [INFO] [stdout] test error::tests::write_error_json_raw_sentinel_suppresses_stdout ... ok [INFO] [stdout] test error::tests::write_error_json_stdout_unchanged_with_context ... ok [INFO] [stdout] test formatter::tests::apply_jmespath_array_filter ... ok [INFO] [stdout] test formatter::tests::apply_jmespath_extracts_nested_field ... ok [INFO] [stdout] test formatter::tests::apply_jmespath_invalid_expression ... ok [INFO] [stdout] test formatter::tests::format_value_http_fallback_is_compact_json ... ok [INFO] [stdout] test formatter::tests::format_value_paginated_raw_fallback_is_compact_json ... ok [INFO] [stdout] test formatter::tests::format_value_paginated_http_fallback_is_compact_json ... ok [INFO] [stdout] test formatter::tests::format_value_raw_fallback_is_compact_json ... ok [INFO] [stdout] test formatter::tests::is_http_returns_false_for_other_formats ... ok [INFO] [stdout] test formatter::tests::is_http_returns_true_for_http_format ... ok [INFO] [stdout] test formatter::tests::is_raw_returns_false_for_other_formats ... ok [INFO] [stdout] test formatter::tests::is_raw_returns_true_for_raw_format ... ok [INFO] [stdout] test formatter::tests::jsonl_empty_array_is_empty_string ... ok [INFO] [stdout] test formatter::tests::jsonl_list_response_extracts_and_flattens_data_array ... ok [INFO] [stdout] test formatter::tests::jsonl_paginated_flattens_array ... ok [INFO] [stdout] test formatter::tests::jsonl_scalar_value ... ok [INFO] [stdout] test formatter::tests::jsonl_single_object_is_compact_one_line ... ok [INFO] [stdout] test formatter::tests::jsonl_top_level_array_flattened ... ok [INFO] [stdout] test formatter::tests::parse_http_format ... ok [INFO] [stdout] test formatter::tests::parse_jsonl_format ... ok [INFO] [stdout] test formatter::tests::parse_raw_format ... ok [INFO] [stdout] test formatter::tests::pipeline_apply_query_streaming_passes_non_null ... ok [INFO] [stdout] test formatter::tests::pipeline_apply_query_streaming_suppresses_null ... ok [INFO] [stdout] test formatter::tests::pipeline_emit_jsonl_flattens_array ... ok [INFO] [stdout] test formatter::tests::pipeline_emit_quiet_suppresses_output ... ok [INFO] [stdout] test formatter::tests::pipeline_emit_paginated_json_is_compact_one_line ... ok [INFO] [stdout] test formatter::tests::pipeline_emit_single_page_json_is_pretty_with_trailing_newline ... ok [INFO] [stdout] test formatter::tests::pipeline_emit_with_query_projects_value ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_env_var_name_mirrors_logging_convention ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_explicit_flag_beats_env ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_explicit_http_flag ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_explicit_jsonl_flag ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_explicit_raw_flag ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_reads_explicit_format ... ok [INFO] [stdout] test formatter::tests::apply_jmespath_returns_null_for_missing_path ... ok [INFO] [stdout] test formatter::tests::pipeline_from_matches_rejects_unknown_format ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_empty_env_falls_back_to_tty_default ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_env_http ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_env_is_case_insensitive ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_env_jsonl ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_env_raw ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_invalid_env_falls_back_to_tty_default ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_no_env_piped_is_json ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_no_env_terminal_is_table ... ok [INFO] [stdout] test formatter::tests::resolve_default_format_valid_env_wins_over_tty_default ... ok [INFO] [stdout] test formatter::tests::test_extract_items ... ok [INFO] [stdout] test formatter::tests::test_extract_items_none ... ok [INFO] [stdout] test formatter::tests::test_format_csv ... ok [INFO] [stdout] test formatter::tests::test_format_csv_array_of_arrays ... ok [INFO] [stdout] test formatter::tests::test_format_csv_escape ... ok [INFO] [stdout] test formatter::tests::test_format_csv_flat_scalars_with_escaping ... ok [INFO] [stdout] test formatter::tests::test_format_csv_flat_scalars ... ok [INFO] [stdout] test formatter::tests::test_format_json ... ok [INFO] [stdout] test formatter::tests::test_format_table_array_of_objects ... ok [INFO] [stdout] test formatter::tests::test_format_table_empty_array ... ok [INFO] [stdout] test formatter::tests::test_format_table_multibyte_exact_boundary ... ok [INFO] [stdout] test formatter::tests::test_format_table_multibyte_truncation_does_not_panic ... ok [INFO] [stdout] test formatter::tests::test_format_table_nested_object_flattened ... ok [INFO] [stdout] test formatter::tests::test_format_table_nested_objects_in_array ... ok [INFO] [stdout] test formatter::tests::test_format_table_single_object ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_csv_continuation_no_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_csv_first_page_has_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_table_continuation_no_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_table_first_page_has_header ... ok [INFO] [stdout] test formatter::tests::test_format_value_paginated_yaml_has_document_separator ... ok [INFO] [stdout] test formatter::tests::test_format_yaml ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_array_of_objects ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_colon_in_string_is_quoted ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_empty_array_has_space ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_empty_object_has_space ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_hash_in_string_is_quoted_not_block ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_multiline_still_uses_block ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_nested_array ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_nested_object ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_no_leading_blank_line ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_null_bool_number ... ok [INFO] [stdout] test formatter::tests::test_format_yaml_top_level_array ... ok [INFO] [stdout] test formatter::tests::test_output_format_from_str ... ok [INFO] [stdout] test formatter::tests::test_output_format_parse_known ... ok [INFO] [stdout] test formatter::tests::test_output_format_parse_unknown_returns_err ... ok [INFO] [stdout] test graphql::app::tests::test_graphql_auth_scheme_records_binding ... ok [INFO] [stdout] test graphql::app::tests::test_graphql_cli_app_builder ... ok [INFO] [stdout] test graphql::commands::tests::test_all_commands_always_shown ... ok [INFO] [stdout] test graphql::app::tests::test_graphql_cli_app_endpoint ... ok [INFO] [stdout] test graphql::commands::tests::test_builtin_flag_names_not_duplicated ... ok [INFO] [stdout] test graphql::commands::tests::test_method_params_become_flags ... ok [INFO] [stdout] test graphql::commands::tests::test_root_uses_doc_name ... ok [INFO] [stdout] test graphql::discovery::tests::test_deserialize_graphql_schema ... ok [INFO] [stdout] test graphql::executor::tests::test_build_graphql_body_no_cursor_when_no_after_arg ... ok [INFO] [stdout] test graphql::executor::tests::test_build_graphql_body_reconstructs_nested_input ... ok [INFO] [stdout] test graphql::executor::tests::test_build_graphql_body_injects_cursor_when_after_arg_present ... ok [INFO] [stdout] test graphql::executor::tests::test_coerce_graphql_value_object_invalid_json_is_validation_error ... ok [INFO] [stdout] test graphql::executor::tests::test_coerce_graphql_value_object_non_object_json_is_validation_error ... ok [INFO] [stdout] test graphql::executor::tests::test_coerce_graphql_value_object_parses_json ... ok [INFO] [stdout] test graphql::executor::tests::test_execute_method_dry_run_with_http_config ... ok [INFO] [stdout] test graphql::executor::tests::test_extract_graphql_cursor_returns_cursor_when_has_next ... ok [INFO] [stdout] test graphql::executor::tests::test_extract_graphql_cursor_returns_none_when_no_next ... ok [INFO] [stdout] test graphql::executor::tests::test_extract_graphql_cursor_returns_none_when_no_page_info ... ok [INFO] [stdout] test graphql::executor::tests::test_graphql_json_plus_input_arg_validation_error ... ok [INFO] [stdout] test graphql::executor::tests::test_graphql_object_shorthand_plus_leaf_validation_error ... ok [INFO] [stdout] test graphql::executor::tests::test_handle_json_response_capture_output ... ok [INFO] [stdout] test graphql::executor::tests::test_handle_json_response_non_json_body ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_refreshes_expired_token ... ok [INFO] [stdout] test graphql::executor::tests::test_pagination_config_default ... ok [INFO] [stdout] test graphql::executor::tests::test_parse_graphql_response_errors_and_data_returns_data ... ok [INFO] [stdout] test graphql::executor::tests::test_parse_graphql_response_errors_only_is_fatal ... ok [INFO] [stdout] test graphql::executor::tests::test_parse_graphql_response_null_data_with_errors_is_fatal ... ok [INFO] [stdout] test graphql::executor::tests::test_parse_graphql_response_unwraps_single_field ... ok [INFO] [stdout] test graphql::executor::tests::test_resolve_retry_policy_default_vs_disabled ... ok [INFO] [stdout] test graphql::discovery::tests::test_deserialize_defaults ... ok [INFO] [stdout] test graphql::executor::tests::test_set_nested_value_flat ... ok [INFO] [stdout] test graphql::executor::tests::test_set_nested_value_three_levels ... ok [INFO] [stdout] test graphql::executor::tests::test_set_nested_value_two_levels ... ok [INFO] [stdout] test graphql::help::tests::test_default_selection_emitted_on_per_op_schema ... ok [INFO] [stdout] test graphql::help::tests::test_default_selection_omitted_when_empty ... ok [INFO] [stdout] test graphql::help::tests::test_render_nested_operation_schema ... ok [INFO] [stdout] test graphql::help::tests::test_render_operation_schema ... ok [INFO] [stdout] test graphql::help::tests::test_render_resource ... ok [INFO] [stdout] test graphql::help::tests::test_render_root_lists_all ... ok [INFO] [stdout] test graphql::help::tests::test_render_schema_dispatches_nested_path ... ok [INFO] [stdout] test graphql::help::tests::test_render_schema_nested_sub_resource_listing ... ok [INFO] [stdout] test graphql::parser::tests::test_camel_to_kebab ... ok [INFO] [stdout] test graphql::parser::tests::test_input_arg_object_shorthand_basic ... ok [INFO] [stdout] test graphql::parser::tests::test_load_minimal_schema ... ok [INFO] [stdout] test graphql::parser::tests::test_nested_input_flattening ... ok [INFO] [stdout] test graphql::parser::tests::test_singular_kebab ... ok [INFO] [stdout] test graphql::parser::tests::test_split_mutation_name ... ok [INFO] [stdout] test graphql::parser::tests::test_split_query_name ... ok [INFO] [stdout] test graphql::parser::tests::test_undeclared_scalar_as_arg ... ok [INFO] [stdout] test hooks::tests::pattern_empty ... ok [INFO] [stdout] test hooks::tests::pattern_exact_match ... ok [INFO] [stdout] test hooks::tests::pattern_globstar ... ok [INFO] [stdout] test hooks::tests::pattern_globstar_prefix ... ok [INFO] [stdout] test hooks::tests::pattern_globstar_suffix ... ok [INFO] [stdout] test hooks::tests::pattern_single_wildcard ... ok [INFO] [stdout] test auth::schemes::tests::header_provider_custom_header_name ... ok [INFO] [stdout] test graphql::executor::tests::test_build_http_request_posts_json_body ... ok [INFO] [stdout] test auth::oauth2::tests::provider_uses_disk_cache ... ok [INFO] [stdout] test http::tests::compute_backoff_delay_grows_exponentially ... ok [INFO] [stdout] test http::tests::decide_retry_exhausts_max_attempts ... ok [INFO] [stdout] test http::tests::decide_retry_no_retry_flag_short_circuits ... ok [INFO] [stdout] test graphql::executor::tests::test_retryable_status_retries_under_default_policy ... ok [INFO] [stdout] test http::tests::decide_retry_post_429_always_safe ... ok [INFO] [stdout] test http::tests::decide_retry_post_5xx_without_idempotent_no_retry ... ok [INFO] [stdout] test http::tests::env_prefix_uppercases_and_translates_dashes ... ok [INFO] [stdout] test graphql::executor::tests::test_no_retry_yields_single_attempt ... ok [INFO] [stdout] test auth::oauth2::tests::provider_uses_cached_refresh_token ... ok [INFO] [stdout] test auth::login::tests::status_marks_env_as_active_keyring_as_shadowed ... ok [INFO] [stdout] test http::tests::generate_idempotency_key_is_uuid_shaped ... ok [INFO] [stdout] test http::tests::generate_idempotency_key_unique ... ok [INFO] [stdout] test http::tests::http_config_rejects_empty_name ... ok [INFO] [stdout] test http::tests::is_retryable_status_covers_5xx_408_429 ... ok [INFO] [stdout] test http::tests::is_truthy_is_case_insensitive ... ok [INFO] [stdout] test http::tests::method_allows_retry_idempotent_verbs ... ok [INFO] [stdout] test http::tests::needs_idempotency_key_post_put_patch ... ok [INFO] [stdout] test http::tests::parse_retry_after_empty_returns_none ... ok [INFO] [stdout] test http::tests::parse_retry_after_numeric ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_treats_raw_string_as_unexpired_bearer ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_uses_cached_unexpired_token ... ok [INFO] [stdout] test auth::oauth_login::tests::provider_wipes_keyring_when_refresh_fails ... ok [INFO] [stdout] test http::tests::build_client_succeeds_with_clean_env ... ok [INFO] [stdout] test http::tests::ca_bundle_env_invalid_path_returns_error ... ok [INFO] [stdout] test auth::oauth2::tests::refresh_token_fetches_token ... ok [INFO] [stdout] test auth::oauth2::tests::refresh_token_no_creds_without_refresh_env ... ok [INFO] [stderr] ! First copy your one-time code: X [INFO] [stderr] Then visit: https://e [INFO] [stderr] (browser not opened — use the URL above) [INFO] [stdout] test auth::oauth_login::tests::device_code_fails_on_access_denied ... ok [INFO] [stderr] ! First copy your one-time code: ABCD-1234 [INFO] [stderr] Then visit: https://example.com/device [INFO] [stderr] (browser not opened — use the URL above) [INFO] [stderr] ✓ Authenticated. Stored credential in mock (in-memory). [INFO] [stdout] test auth::oauth_login::tests::device_code_polling_succeeds_on_third_try ... ok [INFO] [stdout] test http::tests::is_first_emission_dedupes_by_binary_and_kind ... ok [INFO] [stdout] test http::tests::parse_secs_handles_numeric_and_invalid ... ok [INFO] [stdout] test http::tests::retry_policy_default_has_4_attempts ... ok [INFO] [stdout] test http::tests::scoped_helper_concatenates_prefix_and_suffix ... ok [INFO] [stdout] test http::tests::with_extra_root_cert_rejects_empty_bundle ... ok [INFO] [stdout] test http::tests::with_extra_root_cert_rejects_non_pem ... ok [INFO] [stdout] test logging::tests::test_env_prefix ... ok [INFO] [stdout] test logging::tests::test_env_var_names_derived ... ok [INFO] [stdout] test http::tests::resolve_proxy_with_explicit_no_proxy_wins_over_env ... ok [INFO] [stdout] test http::tests::resolve_appends_env_ca_bundle_after_compile_time_roots ... ok [INFO] [stdout] test http::tests::resolve_clean_env_yields_no_overrides ... ok [INFO] [stdout] test http::tests::ca_bundle_env_empty_file_returns_error ... ok [INFO] [stdout] test man::tests::wants_man_basic ... ok [INFO] [stdout] test man::tests::generate_man_produces_roff ... ok [INFO] [stdout] test man::tests::wants_man_false_when_flag_value ... ok [INFO] [stdout] test man::tests::wants_man_with_boolean_flag ... ok [INFO] [stdout] test openapi::app::tests::test_app_context_extra_headers_optional_missing_is_ok ... ok [INFO] [stdout] test openapi::app::tests::test_app_context_extra_headers_per_op_param_satisfies_required ... ok [INFO] [stdout] test openapi::app::tests::test_app_context_extra_headers_required_missing_errors ... ok [INFO] [stdout] test openapi::app::tests::test_app_context_spec_accessor ... ok [INFO] [stdout] test http::tests::resolve_invalid_ca_bundle_contents_errors ... ok [INFO] [stdout] test http::tests::resolve_invalid_ca_bundle_path_errors ... ok [INFO] [stdout] test http::tests::first_env_truthy_rejects_falsy ... ok [INFO] [stdout] test openapi::app::tests::test_auth_basic_scheme_records_basic_binding ... ok [INFO] [stdout] test http::tests::first_env_picks_first_set_value_and_skips_empty ... ok [INFO] [stdout] test openapi::app::tests::test_auth_scheme_records_token_binding ... ok [INFO] [stdout] test openapi::app::tests::test_build_pagination_config_uses_doc_token_names ... ok [INFO] [stdout] test openapi::app::tests::test_build_global_header_overrides_per_op_param_wins ... ok [INFO] [stdout] test openapi::app::tests::test_build_pagination_config_defaults ... ok [INFO] [stdout] test openapi::app::tests::test_cli_app_builder ... ok [INFO] [stdout] test openapi::app::tests::test_build_global_header_overrides_errors_when_required_missing ... ok [INFO] [stdout] test openapi::app::tests::test_apply_server_var_substitutions_walks_named_servers ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_array_typed_param_invalid_json_falls_back_to_string ... ok [INFO] [stdout] test openapi::app::tests::test_apply_server_var_substitutions_walks_nested_resources ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_array_invalid_json_falls_back_to_string ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_array_value_parsed_from_json ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_array_typed_param_parsed_from_json ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_invalid_json_override ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_null_sentinel_does_not_apply_to_defaults ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_null_sentinel_on_nullable_param ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_individual_flags ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_empty_when_no_flags ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_null_string_on_non_nullable_param_unchanged ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_repeated_param_json_array_value_flattened ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_override_wins ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_scalar_or_array_json_array_stays_array ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_repeated_param_non_array_json_stays_literal ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_repeated_param_mixed_json_array_and_literal ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_scalar_or_array_multiple_values_become_array ... ok [INFO] [stdout] test openapi::app::tests::test_compose_root_after_help_sections_skips_absent ... ok [INFO] [stdout] test openapi::app::tests::test_global_header_flag_name_respects_name_field_then_header ... ok [INFO] [stdout] test openapi::app::tests::test_find_method_across_entries ... ok [INFO] [stdout] test openapi::app::tests::test_collect_params_scalar_or_array_single_value_stays_scalar ... ok [INFO] [stdout] test openapi::app::tests::test_global_header_arg_id_is_namespaced_by_wire_name ... ok [INFO] [stdout] test openapi::app::tests::test_idempotency_header_env_matches_by_header ... ok [INFO] [stdout] test openapi::app::tests::test_merge_global_headers_first_write_wins ... ok [INFO] [stdout] test openapi::app::tests::test_idempotency_header_env_matches_by_name ... ok [INFO] [stdout] test openapi::app::tests::test_idempotency_header_env_skips_non_idempotent_ops ... ok [INFO] [stdout] test openapi::app::tests::test_merge_security_schemes_first_write_wins ... ok [INFO] [stdout] test openapi::app::tests::test_merge_schemas_first_write_wins_on_duplicate ... ok [INFO] [stdout] test openapi::app::tests::test_decorate_command_global_header_param_collision_no_panic ... ok [INFO] [stdout] test openapi::app::tests::test_global_header_long_collides_with_param_scopes_to_subcommands ... ok [INFO] [stdout] test openapi::app::tests::test_multiple_overlays_on_same_spec ... ok [INFO] [stdout] test openapi::app::tests::test_overlay_applied_before_parsing ... ok [INFO] [stdout] test openapi::app::tests::test_overrides_array_of_objects_merged_by_index ... ok [INFO] [stdout] test openapi::app::tests::test_multi_spec_collision_error ... ok [INFO] [stdout] test openapi::app::tests::test_overrides_null_removes_field ... ok [INFO] [stdout] test openapi::app::tests::test_multi_spec_flat_merge ... ok [INFO] [stdout] test openapi::app::tests::test_overlay_adds_fern_extensions ... ok [INFO] [stdout] test openapi::app::tests::test_overrides_primitive_array_replaced ... ok [INFO] [stdout] test openapi::app::tests::test_per_method_root_url_set_by_openapi_parser ... ok [INFO] [stdout] test openapi::app::tests::test_per_op_header_param_override_is_case_insensitive ... ok [INFO] [stdout] test openapi::app::tests::test_register_global_header_skips_conflicting_leaf ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_global_header_value_filters_empty_and_whitespace ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_empty_path ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_from_matches_basic ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_resource_not_found ... ok [INFO] [stdout] test openapi::app::tests::test_sdk_variable_collides_with_builtin_flags ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_sub_resource_not_found ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_method_not_found ... ok [INFO] [stdout] test openapi::app::tests::test_resolve_method_from_matches_nested ... ok [INFO] [stdout] test openapi::app::tests::test_security_schemes_merge_across_multi_spec ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_collides_on_inner_resource ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_accepts_slash_delimited_path ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_merges_multiple_specs_into_same_prefix ... ok [INFO] [stdout] test openapi::app::tests::test_sequential_overrides_chain ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_hoists_matching_top_level_resource ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_with_overrides ... ok [INFO] [stdout] test openapi::app::tests::test_spec_with_overrides_applies_fern_extensions ... ok [INFO] [stdout] test openapi::app::tests::test_spec_without_overrides_unchanged ... ok [INFO] [stdout] test openapi::app::tests::test_substitute_url_vars_replaces_known_and_leaves_unknown ... ok [INFO] [stdout] test openapi::app::tests::test_specs_under_named_with_overrides ... ok [INFO] [stdout] test openapi::app::tests::test_specs_under_named_creates_nested_namespaces ... ok [INFO] [stdout] test openapi::app::tests::test_specs_under_batch_helper ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_namespaces_resources ... ok [INFO] [stdout] test openapi::app::tests::test_title_description_override ... ok [INFO] [stdout] test openapi::app::tests::test_spec_under_root_url_on_methods ... ok [INFO] [stdout] test openapi::binding::tests::prefix_schema_operations_array ... ok [INFO] [stdout] test openapi::binding::tests::prefix_schema_operations_envelope ... ok [INFO] [stdout] test openapi::binding::tests::prefix_schema_operations_leaf_object ... ok [INFO] [stdout] test openapi::binding::tests::wrap_subcommands_under_namespace_moves_subs ... ok [INFO] [stdout] test openapi::commands::tests::test_all_commands_always_shown ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_rejects_null_when_non_nullable ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_accepts_null_when_param_nullable ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_accepts_both_display_and_wire ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_no_fern_enum_uses_wire_values ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_nullable_lists_null_in_help ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_renders_display_name_and_per_value_help ... ok [INFO] [stdout] test openapi::commands::tests::test_build_enum_value_parser_skips_alias_when_display_equals_wire ... ok [INFO] [stdout] test openapi::commands::tests::test_builtin_flag_names_renamed_with_param_suffix ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_empty_is_noop ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_recurses_into_nested_resources ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_single_keeps_matching_only ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_nonexistent_prunes_empty_resources ... ok [INFO] [stdout] test openapi::commands::tests::test_group_about_falls_back_to_legacy_label_when_no_metadata ... ok [INFO] [stdout] test openapi::commands::tests::test_group_summary_and_description_populate_both_about_fields ... ok [INFO] [stdout] test openapi::commands::tests::test_group_summary_overrides_about_text ... ok [INFO] [stdout] test openapi::commands::tests::test_json_help_text_rest_method ... ok [INFO] [stdout] test openapi::commands::tests::test_multipart_field_builtin_collision_skipped ... ok [INFO] [stdout] test openapi::commands::tests::test_nullable_scalar_renders_value_name_with_null_suffix ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_body_preserves_dots ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_builtin_collision ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_is_idempotent ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_sanitizes_non_body ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_uses_display_name ... ok [INFO] [stdout] test openapi::commands::tests::test_resolve_param_flag_name_uses_override ... ok [INFO] [stdout] test openapi::commands::tests::test_method_params_become_flags ... ok [INFO] [stdout] test openapi::commands::tests::test_sanitized_flag_help_shows_wire_name ... ok [INFO] [stdout] test openapi::commands::tests::test_root_uses_doc_name ... ok [INFO] [stdout] test openapi::commands::tests::test_sanitized_param_name_produces_correct_flag ... ok [INFO] [stdout] test openapi::commands::tests::test_variable_bound_param_does_not_block_same_named_normal_param ... ok [INFO] [stdout] test openapi::commands::tests::test_variable_bound_param_skipped_from_per_op_flags ... ok [INFO] [stdout] test openapi::commands::tests::test_x_fern_groups_does_not_restructure_clap_tree ... ok [INFO] [stdout] test openapi::commands::tests::test_x_fern_groups_missing_entry_falls_back_to_default_label ... ok [INFO] [stdout] test openapi::discovery::tests::test_deserialize_defaults ... ok [INFO] [stdout] test openapi::discovery::tests::test_deserialize_rest_description ... ok [INFO] [stdout] test openapi::commands::tests::test_x_fern_groups_summary_drives_about_for_matched_group ... ok [INFO] [stdout] test openapi::executor::format_http_version_known_versions ... ok [INFO] [stdout] { [INFO] [stdout] "body": { [INFO] [stdout] "name": "test.txt" [INFO] [stdout] }, [INFO] [stdout] "content_type": "application/json", [INFO] [stdout] "dry_run": true, [INFO] [stdout] "headers": [], [INFO] [stdout] "is_multipart_upload": false, [INFO] [stdout] "method": "POST", [INFO] [stdout] "query_params": [], [INFO] [stdout] "url": "https://example.googleapis.com/v1/files/123" [INFO] [stdout] } [INFO] [stdout] test openapi::executor::test_execute_method_dry_run ... ok [INFO] [stdout] test openapi::executor::test_execute_method_missing_path_param ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_is_case_sensitive ... ok [INFO] [stdout] test openapi::commands::tests::test_filter_doc_by_audiences_multiple_unions_matches ... ok [INFO] [stdout] test openapi::executor::test_get_value_type_helper ... ok [INFO] [stdout] test openapi::commands::tests::test_group_description_sets_long_about_only ... ok [INFO] [stdout] test openapi::executor::tests::test_append_query_string_continues_existing_query ... ok [INFO] [stdout] test openapi::executor::tests::test_append_query_string_empty_pairs_is_unchanged ... ok [INFO] [stdout] test openapi::executor::tests::test_append_query_string_first_param_uses_question_mark ... ok [INFO] [stdout] test openapi::executor::tests::test_append_query_string_joins_multiple_with_ampersand ... ok [INFO] [stdout] test openapi::executor::tests::test_apply_base_path_helper_handles_edge_cases ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_is_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_at_dash_is_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_at_path_strips_prefix ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_backslash_at_file_scheme_is_literal_path ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_backslash_at_is_escaped_literal_path ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_dash_is_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_data_scheme_dash_is_not_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_data_scheme_is_data_mode ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_double_at_is_literal_at_path ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_file_scheme_dash_is_not_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_file_scheme_is_text_mode ... ok [INFO] [stdout] test openapi::executor::tests::test_binary_body_source_plain_path ... ok [INFO] [stdout] test openapi::executor::tests::test_body_params_merge_into_body_via_params_json ... ok [INFO] [stdout] test openapi::executor::test_get_does_not_set_content_length_zero ... ok [INFO] [stdout] test openapi::executor::test_post_without_body_sets_content_length_zero ... ok [INFO] [stdout] test openapi::executor::test_post_with_body_does_not_add_content_length_zero ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_body ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_bytes_with_metadata ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_bytes_without_metadata ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_body_no_metadata ... ok [INFO] [stdout] test openapi::binding::tests::command_namespace_rejects_reserved_name - should panic ... ok [INFO] [stdout] test openapi::executor::tests::test_build_http_request_put_patch_delete ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_stream_content_length ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_stream_large_file ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_applies_to_doc_base_url ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_applies_to_media_upload_branch ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_applies_to_spec_root_url ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_composes_with_per_operation_server ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_doc_base_url_with_path_component ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_leading_slash_x_server_no_trailing_slash ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_leading_slash_x_server_trailing_slash ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_multi_segment ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_multi_templated_params_substitute ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_no_leading_slash_x_server_no_trailing_slash ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_no_leading_slash_x_server_trailing_slash ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_none_unchanged ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_per_op_server_with_trailing_slash ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_preserves_path_substitution ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_templated_param_declared_as_path_param_does_not_error ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_templated_param_missing_value_leaves_placeholder ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_templated_param_substitutes_and_does_not_leak_to_query ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_templated_param_with_base_url_override ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_templated_with_operation_path_param_and_query ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_base_path_with_trailing_slash_normalized ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_basic ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_does_not_replace_placeholder_like_values ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_empty_method_root_url_falls_back_to_doc ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_encodes_path_parameter_chars ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_errors_for_path_param_not_in_template ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_flatpath_fallback_on_mismatch ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_method_root_url_overrides_doc_root_url ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_override_no_double_slash_with_leading_slash_path ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_override_replaces_spec_base ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_override_trailing_slash_normalized ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_plus_expansion_preserves_slashes ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_plus_expansion_rejects_path_traversal ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_plus_expansion_rejects_reserved_chars ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_query_params ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_repeated_query_param_expands_array ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_substitution ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_upload_endpoint_substitutes_path_params ... ok [INFO] [stdout] test openapi::executor::tests::test_build_url_uses_root_url_and_service_path_when_no_base_url ... ok [INFO] [stdout] test openapi::executor::tests::test_coerce_body_param_value_nested_decodes_json ... ok [INFO] [stdout] test openapi::executor::tests::test_coerce_body_param_value_object_rejects_non_object_json ... ok [INFO] [stdout] test openapi::executor::tests::test_coerce_body_param_value_rejects_bad_input ... ok [INFO] [stdout] test openapi::executor::tests::test_coerce_body_param_value_scalar_types ... ok [INFO] [stdout] test openapi::executor::tests::test_compute_backoff_delay_default_entropy_produces_jitter ... ok [INFO] [stdout] test openapi::executor::tests::test_compute_backoff_delay_disabled_returns_zero ... ok [INFO] [stdout] test openapi::executor::tests::test_compute_backoff_delay_jitter_symmetric_around_raw ... ok [INFO] [stdout] test openapi::executor::tests::test_compute_backoff_delay_no_jitter_is_deterministic ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_disabled_config_no_retry ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_falls_back_to_backoff_when_retry_after_invalid ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_honors_retry_after_numeric ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_max_attempts_cap ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_network_error_get_retries ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_network_error_post_without_idempotent_no_retry ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_no_retry_flag_short_circuits ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_non_retryable_status_no_retry ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_post_429_always_safe ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_post_503_with_idempotent_retries ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_post_503_without_idempotent_no_retry ... ok [INFO] [stdout] test openapi::executor::tests::test_decide_retry_retryable_status_get_retries ... ok [INFO] [stdout] test openapi::executor::test_bearer_header_sends_bearer_prefix ... ok [INFO] [stdout] test openapi::executor::tests::test_decode_ndjson_emits_whole_line ... ok [INFO] [stdout] test openapi::executor::tests::test_decode_ndjson_terminator_only_when_configured ... ok [INFO] [stdout] test openapi::executor::tests::test_decode_ndjson_skips_blank_lines ... ok [INFO] [stdout] test openapi::executor::tests::test_decode_text_emits_each_line_verbatim ... ok [INFO] [stdout] test openapi::executor::tests::test_decode_text_skips_blank_lines ... ok [INFO] [stdout] test openapi::executor::tests::test_encode_query_component_comma_stays_literal ... ok [INFO] [stdout] test openapi::executor::tests::test_encode_query_component_reserved_chars ... ok [INFO] [stdout] test openapi::executor::tests::test_encode_query_component_space_is_percent20_not_plus ... ok [INFO] [stdout] test openapi::executor::tests::test_encode_query_component_unreserved_untouched ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_form_file_part_default_octet_stream ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_case_insensitive_param_name ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_decodes_rfc5987_utf8 ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_falls_through_to_next_part ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_ignores_form_data_disposition ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_inline ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_missing ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_prefers_filename_star ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_quoted ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_quoted_with_semicolon ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_rejects_dot_only ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_rejects_empty_and_control ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_rfc5987_unsupported_charset ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_strips_directory ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_content_disposition_filename_unquoted ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_descriptor_appears_verbatim_in_error ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_nested_resolves ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_no_extract_overrides_path ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_no_path_returns_full_body ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_resolved_null_is_preserved_not_errored ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_top_level_resolves ... ok [INFO] [stdout] test openapi::executor::tests::test_extract_return_value_unresolved_path_errors ... ok [INFO] [stdout] test openapi::executor::tests::test_file_part_mime_defaults_and_override ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_str_missing_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_str_nested_path ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_str_non_string_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_str_simple ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_array_index ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_array_index_on_object_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_array_index_out_of_range_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_consecutive_dots_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_empty_path_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_missing_intermediate_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_missing_top_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_nested_property ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_object_key_named_zero_wins_over_array_index ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_path_through_array_with_index ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_returns_primitive_subvalue ... ok [INFO] [stdout] test openapi::executor::tests::test_get_nested_value_top_level_property ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_capture_output ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_extract_unresolved_errors ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_extracts_subvalue_capture ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_no_extract_keeps_full_body ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_non_json_body ... ok [INFO] [stdout] {"items":[],"nextPageToken":"would-be-next"} [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_pagination_at_limit ... ok [INFO] [stdout] {"items":[],"nextPageToken":"next-tok"} [INFO] [stdout] test openapi::executor::tests::test_build_multipart_form_text_part_uses_encoding_content_type ... ok [INFO] [stdout] test openapi::executor::tests::test_default_accept_skipped_when_accept_in_params ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_pagination_continues ... ok [INFO] [stdout] test openapi::executor::tests::test_handle_json_response_pagination_with_extract_emits_subvalue_per_page ... ok [INFO] [stdout] test openapi::executor::tests::test_header_params_not_in_query_string ... ok [INFO] [stdout] test openapi::executor::tests::test_is_escaped_literal_detects_backslash_at_prefix ... ok [INFO] [stdout] test openapi::executor::tests::test_is_retryable_status_set_matches_docs ... ok [INFO] [stdout] test openapi::executor::tests::test_json_flag_overrides_body_field_flags ... ok [INFO] [stdout] test openapi::executor::tests::test_method_allows_retry_idempotent_methods ... ok [INFO] [stdout] test openapi::executor::tests::test_json_plus_body_flag_returns_validation_error ... ok [INFO] [stdout] test openapi::executor::tests::test_method_allows_retry_non_idempotent_methods_only_when_marked ... ok [INFO] [stdout] test openapi::executor::tests::test_mime_from_extension_various ... ok [INFO] [stdout] test openapi::executor::tests::test_mime_to_extension_additional_branches ... ok [INFO] [stdout] test openapi::executor::tests::test_mime_to_extension_audio_and_video ... ok [INFO] [stdout] test openapi::executor::tests::test_mime_to_extension_audio_subtypes_disambiguated ... ok [INFO] [stdout] test openapi::executor::tests::test_missing_body_param_hint_preserves_dot_notation ... ok [INFO] [stdout] test openapi::executor::tests::test_missing_param_hint_uses_builtin_collision_suffix ... ok [INFO] [stdout] test openapi::executor::tests::test_multipart_has_stdin ... ok [INFO] [stdout] test openapi::executor::tests::test_non_object_json_replaces_body_and_drops_per_field_flags ... ok [INFO] [stdout] test openapi::executor::tests::test_object_shorthand_alone_parses_and_sets_nested ... ok [INFO] [stdout] test openapi::executor::tests::test_object_shorthand_plus_leaf_flag_returns_validation_error ... ok [INFO] [stdout] test openapi::executor::tests::test_object_shorthand_satisfies_required_leaf ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_initial_for_each_form ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_endpoint_cursor_uses_op_param_name ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_heuristic_first_page ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_heuristic_with_token ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_offset_nonzero_injects ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_offset_zero_skipped_on_first_page ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_injection_uri_path_custom_no_query_param ... ok [INFO] [stdout] test openapi::executor::tests::test_page_state_url_override_only_for_next_url ... ok [INFO] [stdout] test openapi::executor::tests::test_pagination_config_default ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_and_validate_inputs_invalid_body_json ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_and_validate_inputs_invalid_params_json ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_and_validate_inputs_required_query_param_missing ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_at_ref_recognises_schemes ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_garbage_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_mime_to_extension_more_types ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_http_date_future ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_http_date_in_the_past_clamps_to_zero ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_numeric_seconds ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_whitespace_and_empty ... ok [INFO] [stdout] test openapi::executor::tests::test_parse_retry_after_zero ... ok [INFO] [stdout] test openapi::executor::tests::test_per_field_body_flags_path_runs_schema_validation ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_cursor_pagination_continues_with_response_path ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_cursor_stops_on_empty_next_cursor ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_offset_pagination_advances_by_results_len ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_offset_step_continues_on_full_page ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_offset_stops_when_has_next_page_false ... ok [INFO] [stdout] test openapi::executor::tests::test_per_op_offset_step_stops_on_short_page ... ok [INFO] [stdout] test openapi::executor::tests::test_project_text_event_bypasses_return_value_projection ... ok [INFO] [stdout] test openapi::executor::tests::test_render_path_template_allows_dot_in_value ... ok [INFO] [stdout] test openapi::executor::tests::test_render_path_template_label_style ... ok [INFO] [stdout] test openapi::executor::tests::test_render_path_template_no_defs_falls_back_to_simple ... ok [INFO] [stdout] test openapi::executor::tests::test_render_path_template_rejects_single_dot ... ok [INFO] [stdout] test openapi::executor::tests::test_render_path_template_rejects_dot_segment ... ok [INFO] [stdout] test openapi::executor::tests::test_required_body_field_missing_mentions_flag_json_and_params ... ok [INFO] [stdout] test openapi::executor::tests::test_required_leaf_still_reported_when_no_ancestor_shorthand ... ok [INFO] [stdout] test openapi::executor::tests::test_required_non_body_param_missing_omits_json_hint ... ok [INFO] [stdout] test openapi::executor::tests::test_required_param_missing_uses_flag_name_override ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_backslash_at_data_scheme_is_literal ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_backslash_at_file_scheme_is_literal ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_data_scheme_base64s_binary_input ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_base64_encodes_binary_file ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_deep_pointer_is_correct ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_escapes_special_keys_in_pointer ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_file_scheme_errors_on_non_utf8 ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_data_scheme_base64s_utf8_input ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_file_scheme_inlines_utf8_string ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_missing_file_includes_path_and_pointer ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_leaves_non_at_strings_unchanged ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_reads_utf8_file_inside_nested_string ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_rejects_control_chars_in_path ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_file_refs_rewrites_backslash_escape_in_string ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_next_path_absolute_url_overrides_base ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_next_path_absolute_path_keeps_scheme_and_host ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_next_path_relative_path_inherits_directory ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_next_path_rejects_invalid_base_url ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_step_target_from_request_param ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_step_target_literal_integer ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_step_target_unresolvable_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_step_target_none_returns_none ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_explicit_enables_import_conversion ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_explicit_flag ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_all_control_chars_falls_back ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_extension_beats_metadata ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_extension_when_no_metadata ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_fallback ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_strips_control_chars ... ok [INFO] [stdout] test openapi::executor::tests::test_sanitize_rejects_embedded_backslashes ... ok [INFO] [stdout] test openapi::executor::tests::test_sanitize_rejects_leading_dot_filenames ... ok [INFO] [stdout] test openapi::executor::tests::test_sanitize_rejects_unicode_bidi_override ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_deep_object ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_deep_object_array_uses_repeated_keys ... ok [INFO] [stdout] test openapi::executor::tests::test_resolve_upload_mime_metadata_fallback_for_unknown_extension ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_deep_object_non_object_value ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_default_style_is_form ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_delimited_scalar_degrades_to_value ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_form_explode_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_form_explode_object ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_form_no_explode_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_form_no_explode_object ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_array_comma_joined ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_array_numbers ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_object_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_object_no_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_primitive ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_rejects_control_chars ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_deep_object_nested ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_default_simple_primitive ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_header_simple_rejects_control_chars_in_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_label_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_label_array_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_encodes_values_not_separators ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_label_object_no_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_label_primitive ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_matrix_array_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_matrix_array_no_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_label_object_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_matrix_encodes_value_not_prefix ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_matrix_object_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_matrix_primitive ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_simple_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_simple_array_with_null ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_simple_object ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_path_param_simple_object_explode ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_pipe_delimited_array ... ok [INFO] [stdout] test openapi::executor::tests::test_serialize_space_delimited_array ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_blank_line_without_buffered_data_dispatches_nothing ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_dispatches_on_blank_line_with_multiline_concat ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_dispatches_two_events_separated_by_blank ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_flushes_final_event_without_blank_line ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_no_space_after_data ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_skips_comments_and_unknown_fields ... ok [INFO] [stdout] test openapi::executor::tests::test_sse_decoder_strips_data_prefix_and_one_space ... ok [INFO] [stdout] test openapi::executor::tests::test_strip_or_escape_at_passes_through_plain_path ... ok [INFO] [stdout] test openapi::executor::tests::test_strip_or_escape_at_rewrites_backslash_escape ... ok [INFO] [stdout] test openapi::executor::tests::test_strip_or_escape_at_strips_at_dash ... ok [INFO] [stdout] test openapi::executor::tests::test_strip_or_escape_at_strips_curl_prefix ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_accepts_null_on_3_0_nullable_branch ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_accepts_null_on_nullable_property ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_accepts_null_on_nullable_union_via_any_of ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_deep_validation ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_object_property_with_all_of_overlay ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_open_schema_allows_any_properties ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_object_property_with_typeless_all_of_overlay ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_ref_to_nullable_schema_accepts_null ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_property_all_of_enforces_ref_resolved_required ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_root_level_all_of_enters_object_branch ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_unknown_field ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_valid ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_value_non_nullable_schema_rejects_null ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_body_rejects_null_on_non_nullable_property ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_value_nullable_schema_accepts_null ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_value_nullable_union_composition_accepts_null ... ok [INFO] [stdout] test openapi::executor::tests::test_build_http_request_unsupported_method ... ok [INFO] [stdout] test openapi::executor::tests::test_value_to_query_string_null ... ok [INFO] [stdout] test openapi::executor::tests::test_validate_value_schema_not_found ... ok [INFO] [stdout] test openapi::executor::tests::test_value_to_query_string_object_serializes ... ok [INFO] [stdout] test openapi::executor::write_http_preamble_binary_header_value ... ok [INFO] [stdout] test openapi::executor::write_http_preamble_duplicate_headers ... ok [INFO] [stdout] test openapi::executor::write_http_preamble_basic ... ok [INFO] [stdout] test openapi::help::tests::test_binding_root_stays_bare_array_when_no_sdk_variables ... ok [INFO] [stdout] test openapi::help::tests::test_body_all_of_arbitrarily_deep_inline_chain_surfaces_all_branches ... ok [INFO] [stdout] test openapi::help::tests::test_body_all_of_inline_branch_recurses_into_nested_composition ... ok [INFO] [stdout] test openapi::help::tests::test_body_all_of_inline_branch_required_propagates_into_input_required ... ok [INFO] [stdout] test openapi::help::tests::test_body_all_of_merge_surfaces_fields_from_all_branches ... ok [INFO] [stdout] test openapi::help::tests::test_body_field_collision_keeps_query_param_wins ... ok [INFO] [stdout] test openapi::help::tests::test_body_field_default_surfaces_under_server_default_with_wire_type_preserved ... ok [INFO] [stdout] test openapi::executor::write_http_preamble_error_status ... ok [INFO] [stdout] test openapi::executor::write_http_preamble_no_headers ... ok [INFO] [stdout] test openapi::help::tests::test_body_fields_surface_in_input_with_location_body ... ok [INFO] [stdout] test openapi::help::tests::test_capability_hint_binary_response ... ok [INFO] [stdout] test openapi::help::tests::test_body_required_does_not_re_mark_variable_bound_param_required ... ok [INFO] [stdout] test openapi::help::tests::test_body_required_does_not_elevate_optional_colliding_query_param ... ok [INFO] [stdout] test openapi::help::tests::test_capability_hint_paginable_cursor ... ok [INFO] [stdout] test openapi::help::tests::test_capability_hint_streaming_sse_with_terminator ... ok [INFO] [stdout] test openapi::help::tests::test_nested_object_body_field_required_surfaces_per_object ... ok [INFO] [stdout] test openapi::help::tests::test_output_absent_when_method_has_no_response ... ok [INFO] [stdout] test openapi::help::tests::test_nonfinite_min_max_omitted_not_emitted_as_null ... ok [INFO] [stdout] test openapi::help::tests::test_output_cycle_detection_emits_ref_pointer_on_self_reference ... ok [INFO] [stdout] test openapi::help::tests::test_output_unresolved_ref_omits_field ... ok [INFO] [stdout] test openapi::help::tests::test_param_and_body_field_bounds_share_same_json_number_type ... ok [INFO] [stdout] test openapi::help::tests::test_render_nested_operation_schema ... ok [INFO] [stdout] test openapi::help::tests::test_per_property_metadata_surfaces_default_format_nullable_deprecated_constraints ... ok [INFO] [stdout] test openapi::executor::tests::test_build_multipart_form_file_part_honors_encoding_content_type ... ok [INFO] [stdout] test openapi::help::tests::test_render_root_lists_all ... ok [INFO] [stdout] test openapi::help::tests::test_render_schema_dispatches_nested_path ... ok [INFO] [stdout] test openapi::help::tests::test_render_schema_nested_sub_resource_listing ... ok [INFO] [stdout] test openapi::help::tests::test_render_operation_schema ... ok [INFO] [stdout] test openapi::help::tests::test_repeated_param_rendered_as_array_in_schema ... ok [INFO] [stdout] test openapi::help::tests::test_output_inlines_response_schema ... ok [INFO] [stdout] test openapi::help::tests::test_root_listing_drops_http_method_and_path ... ok [INFO] [stdout] test openapi::help::tests::test_scalar_or_array_union_rendered_as_oneof_in_schema ... ok [INFO] [stdout] test openapi::help::tests::test_root_listing_surfaces_sdk_variables_when_declared ... ok [INFO] [stdout] test openapi::help::tests::test_render_resource ... ok [INFO] [stdout] test openapi::overlay::tests::test_apply_overlays_to_spec_no_overlays ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_append_boolean ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_append_null ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_append_number ... ok [INFO] [stdout] test openapi::help::tests::test_variable_bound_param_annotated_and_not_required_in_per_op_schema ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_append_object ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_append_string ... ok [INFO] [stdout] test openapi::overlay::tests::test_apply_multiple_overlays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_array_type_mismatch_replaces ... ok [INFO] [stdout] test openapi::overlay::tests::test_apply_overlays_to_spec_roundtrip ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_arrays_index_by_index ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_arrays_of_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_empty_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_arrays_of_objects ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_mixed_type_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_nested_objects_in_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_overwrites_primitives ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_preserves_existing ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_sparse_like_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_update_extends_shorter_array ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_actions_on_items_from_earlier_actions ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_array_edge_cases_append_and_replace ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_nested ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_array_index_targeting ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_does_not_mutate_input ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_merge_array_element_by_filter ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_merge_multiple_array_items_by_filter ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_merge_updates_into_schema ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_multiple_consecutive_array_removals ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_multiple_overlay_actions ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_remove_ignores_update ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_replace_primitive_arrays ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_root_level_targeting ... ok [INFO] [stdout] test openapi::overlay::tests::test_deep_merge_objects ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_deep_merge_preserves_nested_structure ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_zero_match_continues_processing ... ok [INFO] [stdout] test openapi::overlay::tests::test_fern_wildcard_across_multiple_paths ... ok [INFO] [stdout] test openapi::overlay::tests::test_merge_at_path_array_append ... ok [INFO] [stdout] test openapi::overlay::tests::test_normalized_path_to_segments_direct ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_remove_array_element ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_remove_property ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_root_target ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_key_with_special_chars ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_sequential_actions ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_update_nested_path ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_update_simple_path ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_wildcard_update ... ok [INFO] [stdout] test openapi::overlay::tests::test_overlay_zero_match_no_error ... ok [INFO] [stdout] test openapi::overlay::tests::test_parse_overlay_json ... ok [INFO] [stdout] test openapi::overlay::tests::test_validate_overlay_action_no_target ... ok [INFO] [stdout] test openapi::overlay::tests::test_parse_overlay_yaml ... ok [INFO] [stdout] test openapi::overlay::tests::test_validate_overlay_action_no_update_no_remove ... ok [INFO] [stdout] test openapi::overlay::tests::test_validate_overlay_no_actions ... ok [INFO] [stdout] test openapi::overlay::tests::test_validate_overlay_missing_version ... ok [INFO] [stdout] test openapi::overlay::tests::test_yaml_roundtrip_strips_custom_tags ... ok [INFO] [stdout] test openapi::overlay::tests::test_yaml_roundtrip_resolves_anchors ... ok [INFO] [stdout] test openapi::overlay::tests::test_yaml_roundtrip_strips_comments ... ok [INFO] [stdout] test openapi::overlay::tests::test_yaml_roundtrip_with_overlay_preserves_structure ... ok [INFO] [stdout] test openapi::parser::tests::test_all_objects_servers_array_is_all_objects ... ok [INFO] [stdout] test openapi::parser::tests::test_all_objects_empty_arrays_vacuous_truth ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_flattens_inline_branches_at_root ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_inside_object_property_flattens_dot_notation ... ok [INFO] [stdout] test openapi::parser::tests::test_all_objects_tags_array_is_primitives ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_is_transparent_to_max_body_depth ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_last_branch_wins_on_duplicate_property ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_resolves_ref_branches ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_unions_required_arrays_across_branches ... ok [INFO] [stdout] test openapi::parser::tests::test_allow_null_keys_covers_all_fern_cli_keys ... ok [INFO] [stdout] test openapi::parser::tests::test_all_of_unresolvable_ref_skipped_silently ... ok [INFO] [stdout] test openapi::parser::tests::test_binary_request_body_flag_name_defaults_to_file_for_format_binary ... ok [INFO] [stdout] test openapi::parser::tests::test_binary_request_body_defaults_to_body_when_not_binary_format ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_30_and_31_produce_same_ir_for_strict_minimum ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_30_exclusive_false_keeps_inclusive ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_30_exclusive_flag_promotes_minimum ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_30_exclusive_maximum_flag_promotes_maximum ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_30_inclusive ... ok [INFO] [stdout] test openapi::parser::tests::test_bounds_31_numeric_form ... ok [INFO] [stdout] test openapi::parser::tests::test_build_rs_to_kebab_matches_parser_camel_to_kebab ... ok [INFO] [stdout] test openapi::parser::tests::test_camel_to_kebab ... ok [INFO] [stdout] test openapi::parser::tests::test_binary_request_body_honors_x_fern_parameter_name ... ok [INFO] [stdout] test openapi::parser::tests::test_composition_any_of_and_all_of ... ok [INFO] [stdout] test openapi::parser::tests::test_composition_at_parent_json_schema_level ... ok [INFO] [stdout] test openapi::parser::tests::test_composition_nullable_via_oneof_with_null_type ... ok [INFO] [stdout] test openapi::overlay::tests::test_array_replace_with_array ... ok [INFO] [stdout] test openapi::parser::tests::test_composition_one_of_captures_branches ... ok [INFO] [stdout] test openapi::parser::tests::test_const_lowered_through_flatten_body_params_inline ... ok [INFO] [stdout] test openapi::parser::tests::test_const_does_not_override_explicit_enum ... ok [INFO] [stdout] test openapi::parser::tests::test_const_lowered_through_flatten_body_params_via_ref ... ok [INFO] [stdout] test openapi::parser::tests::test_body_depth_3_plus_not_flattened ... ok [INFO] [stdout] test openapi::parser::tests::test_convert_parameter_lowers_schema_min_max_into_method_parameter ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_adds_new_keys ... ok [INFO] [stdout] test openapi::parser::tests::test_const_lowers_to_single_element_enum ... ok [INFO] [stdout] test openapi::parser::tests::test_const_numeric_default_keeps_wire_type ... ok [INFO] [stdout] test openapi::parser::tests::test_const_numeric_value ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_empty_override_is_identity ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_enum_array_replaced ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_mixed_array_replaced_wholesale ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_mixed_examples_and_non_examples_nulls ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_nested_object_merging ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_nested_sibling_keys ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_multiple_overrides_applied_sequentially ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_nested_openapi_paths ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_null_deletes_deeply_nested ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_null_deletes_key ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_null_removes_from_merged_result ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_null_removed_inside_object_array ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_object_arrays_merged_by_index ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_object_arrays_override_longer ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_override_adds_fern_extensions_to_spec ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_override_adds_schema_property ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_override_adds_new_schema ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_parameters_array_merges_by_index ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_multi_operation_fern_extensions ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_preserves_nulls_inside_examples ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_primitive_array_shorter_override_replaces ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_primitive_arrays_replaced_wholesale ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_preserves_nulls_deeply_nested_under_examples ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_removes_pre_existing_nulls_outside_examples ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_override_changes_group_name ... ok [INFO] [stdout] test openapi::parser::tests::test_example_30_single ... ok [INFO] [stdout] test openapi::parser::tests::test_empty_and_whitespace_server_names_are_dropped ... ok [INFO] [stdout] test openapi::parser::tests::test_deep_merge_scalars_override_wins ... ok [INFO] [stdout] test openapi::parser::tests::test_examples_31_list ... ok [INFO] [stdout] test openapi::parser::tests::test_default_value_absent_when_no_default_anywhere ... ok [INFO] [stdout] test openapi::parser::tests::test_examples_lax_30_map_form ... ok [INFO] [stdout] test openapi::parser::tests::test_extract_response_inline_schema ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_marks_scalar_nullable_31 ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_marks_scalar_nullable_30 ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_nested_nullable_via_dot_notation ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_non_nullable_scalar_stays_false ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_non_scalar_nullable_not_propagated ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_nullable_integer_and_boolean_and_number ... ok [INFO] [stdout] test openapi::parser::tests::test_extract_response_with_ref_schema ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_promotes_nullable_union_field ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_ref_chain_union ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_body_params_nullable_string_array_union ... ok [INFO] [stdout] test openapi::parser::tests::test_flatten_promotes_nullable_union_via_ref_to_scalar ... ok [INFO] [stdout] test openapi::parser::tests::test_explicit_empty_operation_security_means_anonymous ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_absent_yields_empty_vec ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_minimal_entry_uses_defaults ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_optional_true_lowers_to_optional ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_preserves_declaration_order ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_default_accepts_scalar_types ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_false_for_empty_responses ... ok [INFO] [stdout] test openapi::parser::tests::test_group_name_accepts_scalar_string ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_false_for_json_only_2xx ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_x_fern_default_overrides_default ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_false_for_non_json_only_on_4xx ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_honors_2xx_wildcard ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_mixed_binary_2xx_and_json_4xx ... ok [INFO] [stdout] test openapi::executor::tests::test_explicit_anonymous_endpoint_skips_auth ... ok [INFO] [stdout] test openapi::parser::tests::test_global_headers_full_entry_round_trips ... ok [INFO] [stdout] test openapi::parser::tests::test_idempotent_op_surfaces_header_param_non_idempotent_does_not ... ok [INFO] [stdout] test openapi::parser::tests::test_has_binary_response_true_for_audio_2xx ... ok [INFO] [stdout] test openapi::parser::tests::test_inline_body_does_not_clobber_query_params_with_same_name ... ok [INFO] [stdout] test openapi::parser::tests::test_inline_object_body_param_emits_parent_object_flag ... ok [INFO] [stdout] test openapi::parser::tests::test_idempotent_op_uses_name_for_flag_derivation ... ok [INFO] [stdout] test openapi::parser::tests::test_idempotency_headers_parsed_from_spec_root ... ok [INFO] [stdout] test openapi::parser::tests::test_method_name_keeps_operation_id_when_no_tag_overlap ... ok [INFO] [stdout] test openapi::parser::tests::test_method_name_skips_strip_when_explicit_group_name ... ok [INFO] [stdout] test openapi::parser::tests::test_method_name_strips_tag_prefix_with_tag_grouping ... ok [INFO] [stdout] test openapi::parser::tests::test_idempotent_op_without_spec_root_headers_has_no_synthetic_params ... ok [INFO] [stdout] test openapi::parser::tests::test_inline_request_body_produces_per_field_body_params ... ok [INFO] [stdout] test openapi::parser::tests::test_multipart_encoding_content_type_overrides_inferred ... ok [INFO] [stdout] test openapi::parser::tests::test_load_openapi_spec_with_root_retries ... ok [INFO] [stdout] test openapi::parser::tests::test_multipart_does_not_produce_json_body ... ok [INFO] [stdout] test openapi::parser::tests::test_multipart_file_part_defaults_to_octet_stream_without_encoding ... ok [INFO] [stdout] test openapi::parser::tests::test_multipart_form_data_fields_parsed ... ok [INFO] [stdout] test openapi::parser::tests::test_named_server_empty_v1_falls_through_to_v2 ... ok [INFO] [stdout] test openapi::parser::tests::test_named_server_empty_v2_still_falls_back_to_v1 ... ok [INFO] [stdout] test openapi::parser::tests::test_named_server_v1_alias_x_name_is_recognized ... ok [INFO] [stdout] test openapi::parser::tests::test_named_server_v1_wins_when_both_present ... ok [INFO] [stdout] test openapi::parser::tests::test_multipart_form_data_with_ref_schema ... ok [INFO] [stdout] test openapi::parser::tests::test_no_named_servers_when_extensions_absent ... ok [INFO] [stdout] test openapi::parser::tests::test_named_server_v2_spelling_is_parsed ... ok [INFO] [stdout] test openapi::parser::tests::test_nested_group_names ... ok [INFO] [stdout] test openapi::parser::tests::test_normalize_base_path ... ok [INFO] [stdout] test openapi::parser::tests::test_null_preserved_under_x_fern_examples ... ok [INFO] [stdout] test openapi::parser::tests::test_null_preserved_under_x_code_samples ... ok [INFO] [stdout] test openapi::parser::tests::test_no_security_anywhere_leaves_requirements_none ... ok [INFO] [stdout] test openapi::parser::tests::test_null_preserved_under_example_singular ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_30_regression_plain_type ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_30_explicit_field ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_31_type_array_with_null ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_at_parent_json_schema_level ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_31_type_array_null_first ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_31_type_array_only_null ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_absent_defaults_to_none ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_beta ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_alias_ga ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_alpha ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_pre_release ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_legacy ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_generally_available_canonical ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_pre_release_wire_spelling ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_preview ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_can_reference_undeclared_scheme ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_inherits_spec_level_security ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_deprecated_value ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_availability_stable_is_rejected ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_openapi_deprecated_true_falls_back_to_deprecated ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_return_value_absent_is_none ... ok [INFO] [stdout] test openapi::parser::tests::test_nullable_schema_object_lowering ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_return_value_empty_string_is_none ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_return_value_nested_dotted_path ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_return_value_whitespace_trimmed ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_return_value_top_level_path ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_x_fern_availability_overrides_openapi_deprecated ... ok [INFO] [stdout] test openapi::parser::tests::test_parameter_availability_beta ... ok [INFO] [stdout] test openapi::parser::tests::test_operation_security_overrides_spec_default ... ok [INFO] [stdout] test openapi::parser::tests::test_parses_http_basic_security_scheme ... ok [INFO] [stdout] test openapi::parser::tests::test_or_of_ands_security_requirements ... ok [INFO] [stdout] test openapi::parser::tests::test_parameter_openapi_deprecated_falls_back_to_deprecated_availability ... ok [INFO] [stdout] test openapi::parser::tests::test_parses_apikey_header_and_query ... ok [INFO] [stdout] test openapi::parser::tests::test_parses_oauth2_security_scheme_as_oauth2 ... ok [INFO] [stdout] test openapi::parser::tests::test_parses_http_bearer_security_scheme ... ok [INFO] [stdout] test openapi::parser::tests::test_per_operation_server_override ... ok [INFO] [stdout] test openapi::parser::tests::test_plain_path_param_without_variable_reference ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_inline_one_of ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_mixed_scalar_types_is_not_promoted ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_all_of_never_promoted ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_30_idiom_with_nullable_branch ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_no_null_branch_is_not_promoted ... ok [INFO] [stdout] test openapi::parser::tests::test_per_operation_servers_override_is_captured ... ok [INFO] [stdout] test openapi::executor::tests::test_header_params_sent_as_http_headers ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_inline_any_of ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_two_null_branches_not_promoted ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_ref_to_non_scalar_not_promoted ... ok [INFO] [stdout] test openapi::parser::tests::test_recognize_nullable_union_with_ref_to_scalar ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_cursor_form_requires_all_fields ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_enum_display_to_wire_identity_without_fern_enum ... ok [INFO] [stdout] test openapi::parser::tests::test_ref_property_within_inline_schema_resolved ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_discrimination_order_matches_upstream ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_inherits_root_when_op_is_true ... ok [INFO] [stdout] test openapi::parser::tests::test_ref_object_body_param_emits_parent_object_flag ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_non_object_form_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_offset_form_with_step_and_has_next_page ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_offset_form_with_optional_fields ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_missing_extension_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_op_bool_with_root_bool_is_validation_error ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_op_true_without_root_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_custom_form_rejects_unknown_type ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_path_form ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_op_false_inherits_root_like_upstream ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_uri_form ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_uri_form_requires_both_fields ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_unknown_form_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_ref_chain_already_terminal ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_ref_chain_broken_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_ref_chain_multi_hop ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_response_ref_inline ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_ref_chain_single_hop ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_response_ref_missing_component ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_absent_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_invalid_jitter_out_of_range_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_invalid_factor_below_one_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_invalid_disabled_non_bool_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_invalid_shape_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_invalid_max_negative_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_max_attempts_alias_spellings ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_max_zero_treated_as_disabled ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_false_disables_regardless_of_root ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_missing_inherits_root_object ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_object_overrides_root_field_by_field ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_true_inherits_root_object ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_object_reenables_after_root_disabled ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_response_ref_resolves_ref ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_anyof ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_integer_type ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_upstream_disabled_object ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_root_disabled_inherited_by_default ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_retries_op_true_no_root_uses_defaults ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_cursor_form_strips_prefixes ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_rejects_extra_branches ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_rejects_mismatched_array ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_not_matching ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_type_mismatch_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_oneof ... ok [INFO] [stdout] test openapi::parser::tests::test_schema_default_via_ref_lowers_as_documentation_only ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_with_null ... ok [INFO] [stdout] test openapi::parser::tests::test_scalar_or_array_union_with_ref ... ok [INFO] [stdout] test openapi::parser::tests::test_sdk_variables_absent_yields_empty_vec ... ok [INFO] [stdout] test openapi::parser::tests::test_sdk_variable_marks_path_parameter ... ok [INFO] [stdout] test openapi::parser::tests::test_sdk_variables_parses_string_entries_with_descriptions ... ok [INFO] [stdout] test openapi::parser::tests::test_select_primary_response_picks_lowest_2xx ... ok [INFO] [stdout] test openapi::parser::tests::test_select_primary_response_falls_back_to_default ... ok [INFO] [stdout] test openapi::parser::tests::test_sdk_variable_on_non_path_parameter_is_ignored ... ok [INFO] [stdout] test openapi::parser::tests::test_sdk_variables_skips_non_string_types ... ok [INFO] [stdout] test openapi::parser::tests::test_spec_level_empty_security_inherited_as_anonymous ... ok [INFO] [stdout] test openapi::parser::tests::test_standard_openapi_default_lowers_as_documentation_only ... ok [INFO] [stdout] test openapi::parser::tests::test_security_scheme_type_and_scheme_are_case_insensitive ... ok [INFO] [stdout] test openapi::parser::tests::test_spec_declared_param_wins_over_injection ... ok [INFO] [stdout] test openapi::parser::tests::test_resolve_pagination_custom_form ... ok [INFO] [stdout] test openapi::parser::tests::test_status_code_sort_key_default_returns_none ... ok [INFO] [stdout] test openapi::parser::tests::test_status_code_sort_key_wildcard ... ok [INFO] [stdout] test openapi::parser::tests::test_status_code_sort_key_numeric ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_invalid_kind_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_boolean_true_is_ndjson ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_invalid_format_errors ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_object_default_format_is_json ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_boolean_false_is_none ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_text_rejects_terminator ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_object_format_text ... ok [INFO] [stdout] test openapi::parser::tests::test_strip_pagination_prefix_request_and_response ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_object_format_sse ... ok [INFO] [stdout] test openapi::parser::tests::test_tokenize_camel_and_other ... ok [INFO] [stdout] test openapi::parser::tests::test_unknown_security_type_falls_through_to_other ... ok [INFO] [stdout] test openapi::parser::tests::test_strip_tag_prefix_strips_when_op_starts_with_tag ... ok [INFO] [stdout] test openapi::parser::tests::test_strip_tag_prefix_no_strip_when_no_overlap ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_object_sse_with_terminator ... ok [INFO] [stdout] test openapi::parser::tests::test_webhooks_block_parses_and_is_ignored_for_commands ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_audiences_explicit_empty_yields_empty_vec ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_object_format_json ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_audiences_multiple_values_preserve_order ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_audiences_single_value ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_base_path_does_not_affect_command_tree ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_audiences_preserves_duplicate_entries ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_base_path_with_leading_slash_captured_verbatim ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_base_path_empty_string_collapses_to_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_default_alone_lowers_as_client_default ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_base_path_absent_yields_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_default_at_ref_site_wins_over_resolved_component ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_default_from_resolved_component_when_no_ref_site_override ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_default_supersedes_schema_default_for_help_too ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_enum_absent_yields_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_enum_full_override_round_trips_per_value_fields ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_enum_drops_empty_entries ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_enum_partial_override_skips_missing_entries ... ok [INFO] [stdout] test openapi::parser::tests::test_streaming_and_pagination_mutually_exclusive ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_audiences_missing_yields_empty_vec ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_enum_display_to_wire_round_trip ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_base_path_without_leading_slash_captured_verbatim ... ok [INFO] [stdout] test http::tests::resolve_picks_up_insecure_flag ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_description_only_keeps_summary_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_keys_are_kebab_cased ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_absent_yields_empty_map ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_single_group_round_trips ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_multiple_groups_parse_independently ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_summary_only_keeps_description_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_groups_tolerates_unknown_fields ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_drops_operation ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_mixed_path_keeps_non_ignored_ops ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_drops_parameter ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_default_false_keeps_operation_and_parameter ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_at_parameter_ref_site_drops_parameter ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_at_component_drops_parameter_via_any_ref ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_parameter_name_absent_leaves_display_name_none ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_parameter_name_at_ref_site_wins_over_component ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_ignore_prunes_empty_nested_group ... ok [INFO] [stdout] test openapi::skill_emitter::tests::deterministic_output_across_calls ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_parameter_name_inline_sets_display_name ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_parameter_name_kebab_normalization_via_commands_builder ... ok [INFO] [stdout] test openapi::skill_emitter::tests::example_placeholder_format_driven ... ok [INFO] [stdout] test openapi::skill_emitter::tests::example_placeholder_missing_fields ... ok [INFO] [stdout] test openapi::skill_emitter::tests::frontmatter_description_escapes_quotes ... ok [INFO] [stdout] test openapi::skill_emitter::tests::example_placeholder_type_driven ... ok [INFO] [stdout] test openapi::skill_emitter::tests::group_skill_has_valid_frontmatter ... ok [INFO] [stdout] test openapi::skill_emitter::tests::group_skill_has_prerequisite_link ... ok [INFO] [stdout] test openapi::parser::tests::test_x_fern_parameter_name_falls_back_to_component_when_ref_site_absent ... ok [INFO] [stdout] test openapi::skill_emitter::tests::group_skill_lists_methods ... ok [INFO] [stdout] test openapi::skill_emitter::tests::multi_level_resource_nesting ... ok [INFO] [stdout] test openapi::skill_emitter::tests::shared_skill_contains_auth_section ... ok [INFO] [stdout] test openapi::skill_emitter::tests::shared_skill_has_valid_frontmatter ... ok [INFO] [stdout] test openapi::skill_emitter::tests::group_skill_has_discovering_commands ... ok [INFO] [stdout] test output::tests::colorize_returns_text_in_no_color_mode ... ok [INFO] [stdout] test openapi::skill_emitter::tests::shared_skill_contains_global_flags ... ok [INFO] [stdout] test output::tests::reject_c1_control_csi ... ok [INFO] [stdout] test output::tests::reject_del ... ok [INFO] [stdout] test output::tests::reject_newline ... ok [INFO] [stdout] test output::tests::reject_paragraph_separator ... ok [INFO] [stdout] test output::tests::reject_bom ... ok [INFO] [stdout] test output::tests::reject_tab ... ok [INFO] [stdout] test output::tests::reject_zero_width_joiner ... ok [INFO] [stdout] test output::tests::reject_zero_width_space ... ok [INFO] [stdout] test output::tests::reject_rtl_override ... ok [INFO] [stdout] test output::tests::reject_preserves_normal_unicode ... ok [INFO] [stdout] test output::tests::sanitize_preserves_normal_unicode ... ok [INFO] [stdout] test output::tests::sanitize_preserves_newlines_and_tabs ... ok [INFO] [stdout] test output::tests::reject_clean_string ... ok [INFO] [stdout] test output::tests::reject_line_separator ... ok [INFO] [stdout] test output::tests::sanitize_strips_carriage_return ... ok [INFO] [stdout] test output::tests::sanitize_strips_ansi_escape_sequences ... ok [INFO] [stdout] test output::tests::sanitize_strips_bell_and_backspace ... ok [INFO] [stdout] test output::tests::sanitize_strips_zero_width_chars ... ok [INFO] [stdout] test pager::tests::test_default_pager_program ... ok [INFO] [stdout] test pager::tests::test_is_broken_pipe ... ok [INFO] [stdout] test pager::tests::test_is_less_compatible ... ok [INFO] [stdout] test pager::tests::test_pager_config_disabled_skips_spawn ... ok [INFO] [stdout] test output::tests::sanitize_strips_bidi_overrides ... ok [INFO] [stdout] test output::tests::sanitize_strips_line_separators ... ok [INFO] [stdout] test http::tests::resolve_timeouts_parsed_as_seconds ... ok [INFO] [stdout] test openapi::skill_emitter::tests::empty_resources_produces_only_shared ... ok [INFO] [stdout] test openapi::skill_emitter::tests::generates_shared_and_group_files ... ok [INFO] [stdout] test output::tests::sanitize_strips_directional_isolates ... ok [INFO] [stdout] test sdk_executor::tests::block_on_converts_sdk_error ... ok [INFO] [stdout] test http::tests::resolve_proxy_falls_back_to_global_no_proxy ... ok [INFO] [stdout] test http::tests::first_env_truthy_returns_active_key_name ... ok [INFO] [stdout] test sdk_executor::tests::cli_executor_new_default_retries ... ok [INFO] [stdout] test sdk_executor::tests::cli_executor_with_retries_override ... ok [INFO] [stdout] test sdk_executor::tests::http_status_reason_known_codes ... ok [INFO] [stderr] ! First copy your one-time code: X [INFO] [stderr] Then visit: https://e [INFO] [stderr] (browser not opened — use the URL above) [INFO] [stdout] test sdk_executor::tests::resolve_url_no_override ... ok [INFO] [stdout] test sdk_executor::tests::execute_applies_base_url_override ... ok [INFO] [stdout] test sdk_executor::tests::execute_fails_closed_on_auth_error ... ok [INFO] [stdout] test sdk_executor::tests::execute_applies_global_headers ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_display_formats ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_http_maps_to_cli_api ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_implements_std_error ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_network_maps_to_cli_other ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_timeout_maps_to_cli_other ... ok [INFO] [stdout] test stability::tests::badge_text ... ok [INFO] [stdout] test stability::tests::deprecated_always_visible ... ok [INFO] [stdout] test stability::tests::rank_ordering ... ok [INFO] [stdout] test sdk_executor::tests::sdk_error_auth_maps_to_cli_auth ... ok [INFO] [stdout] test stability::tests::visible_at_threshold ... ok [INFO] [stdout] test text::tests::does_not_cut_url_looking_periods ... ok [INFO] [stdout] test text::tests::empty_and_whitespace ... ok [INFO] [stdout] test text::tests::hard_cut_no_spaces ... ok [INFO] [stdout] test text::tests::multibyte_safe ... ok [INFO] [stdout] test text::tests::preserves_links_when_strip_links_false ... ok [INFO] [stdout] test text::tests::preserves_sentence_ending_at_limit ... ok [INFO] [stdout] test text::tests::sentence_boundary_at_exact_limit ... ok [INFO] [stdout] test text::tests::short_desc_unchanged ... ok [INFO] [stdout] test text::tests::strips_markdown_links ... ok [INFO] [stdout] test text::tests::strips_markdown_links_and_truncates ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_empty_rejected ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_idempotence ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_rejects_cjk ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_rejects_control_chars ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_rejects_whitespace ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_strips_zero_width ... ok [INFO] [stdout] test text::tests::test_sanitize_flag_name_table ... ok [INFO] [stdout] test text::tests::test_strip_markdown_links ... ok [INFO] [stdout] test text::tests::test_to_kebab_flag ... ok [INFO] [stdout] test text::tests::test_to_screaming_snake ... ok [INFO] [stdout] test text::tests::truncate_at_sentence_boundary ... ok [INFO] [stdout] test text::tests::truncate_at_word_boundary ... ok [INFO] [stdout] test text::tests::zero_max_chars ... ok [INFO] [stdout] test validate::tests::encode_query_component_encodes_adversarial_agent_id ... ok [INFO] [stdout] test validate::tests::encode_query_component_encodes_control_chars ... ok [INFO] [stdout] test validate::tests::encode_query_component_encodes_reserved_chars ... ok [INFO] [stdout] test validate::tests::encode_query_component_encodes_space_as_percent20 ... ok [INFO] [stdout] test validate::tests::encode_query_component_unreserved_passes_through ... ok [INFO] [stdout] test validate::tests::test_dir_path_cwd ... ok [INFO] [stdout] test validate::tests::test_dir_path_rejects_absolute ... ok [INFO] [stdout] test sdk_executor::tests::execute_retries_on_500 ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_escapes_reserved_chars ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_hierarchical_name ... ok [INFO] [stdout] test validate::tests::test_encode_path_preserving_slashes_spaces_and_unicode ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_already_encoded ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_dot_and_tilde_unreserved ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_dot_segment_guard ... ok [INFO] [stdout] test stability::tests::removed_never_visible ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_fragment_injection ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_hyphenated_id ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_path_traversal ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_plain_id ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_query_injection ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_spaces ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_unicode ... ok [INFO] [stdout] test validate::tests::test_encode_path_segment_email ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_control_chars ... ok [INFO] [stdout] test sdk_executor::tests::resolve_url_with_override ... ok [INFO] [stdout] test sdk_executor::tests::resolve_url_with_path_bearing_override ... ok [INFO] [stdout] test auth::oauth_login::tests::device_code_handles_slow_down_increases_interval ... ok [INFO] [stderr] ✓ Authenticated. Stored credential in mock (in-memory). [INFO] [stdout] test validate::tests::test_is_dot_segment ... ok [INFO] [stdout] test http::tests::resolve_and_build_client_agree_on_common_env_var_shape ... ok [INFO] [stdout] test logging::tests::test_init_logging_default_no_panic ... ok [INFO] [stdout] test pager::tests::test_pager_config_from_env_binary_var_takes_precedence ... ok [INFO] [stdout] test pager::tests::test_pager_config_empty_env_falls_through ... ok [INFO] [stdout] test pager::tests::test_pager_config_from_env_defaults ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_absolute ... ok [INFO] [stdout] test validate::tests::test_dir_path_rejects_traversal ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_control_chars ... ok [INFO] [stdout] test logging::tests::test_init_logging_with_stderr_filter_no_panic ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_null_bytes ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_unicode_line_separator ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_rtl_override ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_zero_width_chars ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_bom ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_clean ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_paragraph_separator ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_newline ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_normal_unicode_ok ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_del ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_tab ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_unicode_line_separator ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_empty ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_rejects_path_traversal ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_rejects_special_chars ... ok [INFO] [stdout] test validate::tests::test_validate_api_identifier_valid ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_bidi_embedding ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_rtl_override ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_zero_width_joiner ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_empty ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_homoglyphs_pass_through ... ok [INFO] [stdout] test validate::tests::test_reject_control_chars_zero_width_space ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_control_chars ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_percent_bypass ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_rtl_override ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_query_injection ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_single_dot ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_traversal ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_error_messages_are_clear ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_overlong_accepted ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_valid ... ok [INFO] [stdout] test logging::tests::test_init_logging_with_file_dir_no_panic ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_zero_width_chars ... ok [INFO] [stdout] test websocket::auth::tests::bearer_helper_surfaces_missing_credential_loudly ... ok [INFO] [stdout] test websocket::auth::tests::bearer_helper_prepends_literal_bearer_space ... ok [INFO] [stdout] test http::tests::resolve_preserves_compile_time_pem_bytes_unchanged ... ok [INFO] [stdout] test websocket::auth::tests::first_message_is_noop_at_handshake ... ok [INFO] [stdout] test pager::tests::test_pager_with_arguments_is_split ... ok [INFO] [stdout] test websocket::auth::tests::header_adds_to_header_list_does_not_touch_url ... ok [INFO] [stdout] test websocket::auth::tests::first_message_missing_credential_errors ... ok [INFO] [stdout] test websocket::auth::tests::headers_variant_emits_all_pairs_in_order ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_symlink_escape ... ok [INFO] [stdout] test websocket::auth::tests::first_message_rejects_non_object ... ok [INFO] [stdout] test websocket::auth::tests::header_rejects_ws_protocol_reserved_names ... ok [INFO] [stdout] test websocket::auth::tests::missing_credential_for_query_param_surfaces_as_auth_error ... ok [INFO] [stdout] test websocket::auth::tests::none_is_noop ... ok [INFO] [stdout] test websocket::auth::tests::headers_variant_missing_credential_errors ... ok [INFO] [stdout] test websocket::auth::tests::headers_variant_rejects_reserved_names_per_pair ... ok [INFO] [stdout] test websocket::auth::tests::other_variants_skip_merge_into_first_message ... ok [INFO] [stdout] test websocket::auth::tests::query_param_percent_encodes_special_chars ... ok [INFO] [stdout] test websocket::auth::tests::missing_credential_for_header_surfaces_as_auth_error ... ok [INFO] [stdout] test websocket::auth::tests::token_helper_does_not_double_prefix_already_prefixed_value ... ok [INFO] [stdout] test websocket::auth::tests::query_param_appends_to_clean_url ... ok [INFO] [stdout] test websocket::auth::tests::query_param_appends_with_ampersand_when_query_present ... ok [INFO] [stdout] test websocket::auth::tests::first_message_merges_field_into_json_object ... ok [INFO] [stdout] test websocket::auth::tests::token_helper_prepends_literal_token_space ... ok [INFO] [stdout] test websocket::client::tests::strip_keys_noop_when_keys_absent ... ok [INFO] [stdout] test websocket::client::tests::strip_keys_removes_top_level_and_nested ... ok [INFO] [stdout] test websocket::error::tests::close_with_reason_includes_reason_in_message ... ok [INFO] [stdout] test websocket::error::tests::close_1006_is_err_with_hint ... ok [INFO] [stdout] test websocket::error::tests::custom_hint_replaces_default_in_message ... ok [INFO] [stdout] test websocket::error::tests::close_1001_going_away_is_ok ... ok [INFO] [stdout] test websocket::error::tests::handshake_url_error_maps_to_validation ... ok [INFO] [stdout] test websocket::error::tests::missing_close_frame_is_abnormal_err ... ok [INFO] [stdout] test websocket::error::tests::truncate_respects_char_boundary ... ok [INFO] [stdout] test websocket::error::tests::close_1000_is_ok ... ok [INFO] [stdout] test validate::tests::test_validate_resource_name_unicode_line_seps ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_traversal_via_nonexistent_prefix ... ok [INFO] [stdout] test validate::tests::test_file_path_relative_is_ok ... ok [INFO] [stdout] test pager::tests::test_pager_config_from_env_pager_var ... ok [INFO] [stdout] test validate::tests::test_output_dir_non_existing_subdir ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_symlink_traversal ... ok [INFO] [stdout] test validate::tests::test_output_dir_rejects_traversal ... ok [INFO] [stdout] test validate::tests::test_output_dir_relative_subdir ... ok [INFO] [stdout] test validate::tests::test_file_path_rejects_traversal ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1704 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.38s [INFO] [stdout] [INFO] [stderr] Running unittests cli/hedra/main.rs (/opt/rustwide/target/debug/deps/hedra-ca8e0f0a10fc90e6) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests fern_cli_sdk [INFO] [stdout] [INFO] [stdout] running 20 tests [INFO] [stdout] test src/app.rs - app::CliApp (line 79) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::auth (line 174) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::command (line 238) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::command_typed (line 267) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::command_typed_with (line 311) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::command_under (line 347) ... ignored [INFO] [stdout] test src/app.rs - app::CliApp::command_under_typed (line 380) ... ignored [INFO] [stdout] test src/graphql/app.rs - graphql::app::CliApp::extra_root_cert (line 147) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::audiences (line 665) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::auth_layer (line 1188) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::auth_scheme_env (line 1075) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::extra_root_cert (line 1239) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::idempotency_header_env (line 694) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::overlay (line 896) ... ignored [INFO] [stdout] test src/openapi/app.rs - openapi::app::CliApp::specs_under_named_with_overrides (line 853) ... ignored [INFO] [stdout] test src/openapi/binding.rs - openapi::binding::OpenApiBinding (line 26) ... ignored [INFO] [stdout] test src/openapi/binding.rs - openapi::binding::OpenApiBinding::handler (line 314) ... ignored [INFO] [stdout] test src/websocket/client.rs - websocket::client::AutoResponder (line 64) ... ignored [INFO] [stdout] test src/websocket/client.rs - websocket::client::AutoResponder (line 82) ... ignored [INFO] [stdout] test src/auth/root_builder.rs - auth::root_builder (line 9) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 19 ignored; 0 measured; 0 filtered out; finished in 0.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac", kill_on_drop: false }` [INFO] [stdout] 0be83560e7c1780a697780f02e5b433abb58015087f66102d4fed071c48e58ac