[INFO] cloning repository https://github.com/nutthouse/tutti [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nutthouse/tutti" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnutthouse%2Ftutti", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnutthouse%2Ftutti'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4101a1ba4f8899d471e73f6b86825462d30f5247 [INFO] testing nutthouse/tutti against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnutthouse%2Ftutti" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/nutthouse/tutti [INFO] finished tweaking git repo https://github.com/nutthouse/tutti [INFO] tweaked toml for git repo https://github.com/nutthouse/tutti written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nutthouse/tutti on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/nutthouse/tutti 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded env_home v0.1.0 [INFO] [stderr] Downloaded wait-timeout v0.2.1 [INFO] [stderr] Downloaded serial_test_derive v3.4.0 [INFO] [stderr] Downloaded serial_test v3.4.0 [INFO] [stderr] Downloaded memmem v0.1.1 [INFO] [stderr] Downloaded which v7.0.3 [INFO] [stderr] Downloaded atomic v0.6.1 [INFO] [stderr] Downloaded vtparse v0.6.2 [INFO] [stderr] Downloaded tokio-macros v2.6.1 [INFO] [stderr] Downloaded filedescriptor v0.8.3 [INFO] [stderr] Downloaded mac_address v1.1.8 [INFO] [stderr] Downloaded ratatui-crossterm v0.1.0 [INFO] [stderr] Downloaded wezterm-color-types v0.3.0 [INFO] [stderr] Downloaded lab v0.11.0 [INFO] [stderr] Downloaded cron v0.12.1 [INFO] [stderr] Downloaded comfy-table v7.2.2 [INFO] [stderr] Downloaded cc v1.2.57 [INFO] [stderr] Downloaded wezterm-bidi v0.2.3 [INFO] [stderr] Downloaded fancy-regex v0.11.0 [INFO] [stderr] Downloaded winnow v0.7.15 [INFO] [stderr] Downloaded pest v2.8.6 [INFO] [stderr] Downloaded ratatui-core v0.1.0 [INFO] [stderr] Downloaded scc v2.4.0 [INFO] [stderr] Downloaded uuid v1.22.0 [INFO] [stderr] Downloaded ratatui-widgets v0.3.0 [INFO] [stderr] Downloaded euclid v0.22.13 [INFO] [stderr] Downloaded ratatui v0.30.0 [INFO] [stderr] Downloaded finl_unicode v1.4.0 [INFO] [stderr] Downloaded chrono v0.4.44 [INFO] [stderr] Downloaded pest_meta v2.8.6 [INFO] [stderr] Downloaded terminfo v0.9.0 [INFO] [stderr] Downloaded getrandom v0.4.2 [INFO] [stderr] Downloaded strum_macros v0.27.2 [INFO] [stderr] Downloaded fuzzy-matcher v0.3.7 [INFO] [stderr] Downloaded termwiz v0.23.3 [INFO] [stderr] Downloaded pest_generator v2.8.6 [INFO] [stderr] Downloaded winsafe v0.0.19 [INFO] [stderr] Downloaded r-efi v6.0.0 [INFO] [stderr] Downloaded wezterm-input-types v0.1.0 [INFO] [stderr] Downloaded kasuari v0.4.12 [INFO] [stderr] Downloaded unicode-truncate v2.0.1 [INFO] [stderr] Downloaded sdd v3.0.10 [INFO] [stderr] Downloaded ratatui-macros v0.7.0 [INFO] [stderr] Downloaded pest_derive v2.8.6 [INFO] [stderr] Downloaded termios v0.3.3 [INFO] [stderr] Downloaded ratatui-termwiz v0.1.0 [INFO] [stderr] Downloaded lru v0.16.3 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded wezterm-dynamic v0.2.1 [INFO] [stderr] Downloaded instability v0.3.12 [INFO] [stderr] Downloaded strum v0.27.2 [INFO] [stderr] Downloaded siphasher v1.0.2 [INFO] [stderr] Downloaded line-clipping v0.3.5 [INFO] [stderr] Downloaded wezterm-blob-leases v0.1.1 [INFO] [stderr] Downloaded wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Downloaded tokio v1.50.0 [INFO] [stderr] Downloaded deltae v0.3.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2534edfb9014b60aefd7dd43404b1d67723899b1ce56555414204ec729fe834d [INFO] running `Command { std: "docker" "start" "-a" "2534edfb9014b60aefd7dd43404b1d67723899b1ce56555414204ec729fe834d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2534edfb9014b60aefd7dd43404b1d67723899b1ce56555414204ec729fe834d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2534edfb9014b60aefd7dd43404b1d67723899b1ce56555414204ec729fe834d", kill_on_drop: false }` [INFO] [stdout] 2534edfb9014b60aefd7dd43404b1d67723899b1ce56555414204ec729fe834d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a0ca596781ee04aa6aa289a58b4967ad19209ff16a55fa8c7b7053e057b4fb88 [INFO] running `Command { std: "docker" "start" "-a" "a0ca596781ee04aa6aa289a58b4967ad19209ff16a55fa8c7b7053e057b4fb88", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling which v7.0.3 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling rust-embed-impl v8.11.0 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling rust-embed v8.11.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling comfy-table v7.2.2 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling cron v0.12.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling tutti v0.9.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.45s [INFO] running `Command { std: "docker" "inspect" "a0ca596781ee04aa6aa289a58b4967ad19209ff16a55fa8c7b7053e057b4fb88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a0ca596781ee04aa6aa289a58b4967ad19209ff16a55fa8c7b7053e057b4fb88", kill_on_drop: false }` [INFO] [stdout] a0ca596781ee04aa6aa289a58b4967ad19209ff16a55fa8c7b7053e057b4fb88 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b545882e74f88b90c23b01ed0f4a1a7821d6dce61c42564698ad05c372aaed37 [INFO] running `Command { std: "docker" "start" "-a" "b545882e74f88b90c23b01ed0f4a1a7821d6dce61c42564698ad05c372aaed37", kill_on_drop: false }` [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling tutti v0.9.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 18.01s [INFO] running `Command { std: "docker" "inspect" "b545882e74f88b90c23b01ed0f4a1a7821d6dce61c42564698ad05c372aaed37", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b545882e74f88b90c23b01ed0f4a1a7821d6dce61c42564698ad05c372aaed37", kill_on_drop: false }` [INFO] [stdout] b545882e74f88b90c23b01ed0f4a1a7821d6dce61c42564698ad05c372aaed37 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] adeb5fe91003a465d24bb43636766d744f6761416cb5b7a33d661d6e255c01c2 [INFO] running `Command { std: "docker" "start" "-a" "adeb5fe91003a465d24bb43636766d744f6761416cb5b7a33d661d6e255c01c2", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tt-d21856602bc28d76) [INFO] [stdout] [INFO] [stdout] running 371 tests [INFO] [stdout] test automation::tests::build_normalized_dependencies_defaults_to_previous_when_explicit_mode_enabled ... ok [INFO] [stdout] test automation::tests::expand_artifact_glob_expands_tilde ... ok [INFO] [stdout] test automation::tests::command_agent_worktree_cwd_resolves_to_agent_worktree_path ... ok [INFO] [stdout] test automation::tests::capture_artifact_zero_new_files_fails ... ok [INFO] [stdout] test automation::tests::expand_artifact_glob_replaces_workspace_and_agent ... ok [INFO] [stdout] test automation::tests::command_agent_worktree_cwd_requires_existing_worktree ... ok [INFO] [stdout] test automation::tests::execute_control_step_reports_intent_write_failure_as_failed_result ... ok [INFO] [stdout] test automation::tests::command_policy_block_open_warns_and_continues ... ok [INFO] [stdout] test automation::tests::gstack_slug_missing_binary_returns_actionable_error ... ok [INFO] [stdout] test automation::tests::render_template_replaces_known_outputs_and_rejects_unresolved ... ok [INFO] [stdout] test automation::tests::render_template_with_artifact_output ... ok [INFO] [stdout] test automation::tests::build_resume_compensator_plan_warns_for_command_step ... ok [INFO] [stdout] test automation::tests::hook_dispatch_filters_by_agent ... ok [INFO] [stdout] test automation::tests::retry_policy_requires_more_than_one_attempt ... ok [INFO] [stdout] test automation::tests::load_resume_context_rejects_completed_run ... ok [INFO] [stdout] test automation::tests::resolver_supports_control_steps ... ok [INFO] [stdout] test automation::tests::snapshot_artifact_glob_captures_existing_files ... ok [INFO] [stdout] test automation::tests::load_resume_context_filters_failed_steps ... ok [INFO] [stdout] test automation::tests::workflow_complete_hook_filters_by_source ... ok [INFO] [stdout] test automation::tests::inject_prompt_files_copies_workspace_state ... ok [INFO] [stdout] test budget::tests::token_total_counts_input_cache_and_output ... ok [INFO] [stdout] test automation::tests::resolver_applies_command_subdir ... ok [INFO] [stdout] test budget::tests::enforce_mode_over_cap_errors ... ok [INFO] [stdout] test automation::tests::store_artifact_output_creates_output_value ... ok [INFO] [stdout] test automation::tests::command_policy_block_closed_fails_step ... ok [INFO] [stdout] test cli::doctor::tests::auth_health_checks_map_auth_states ... ok [INFO] [stdout] test budget::tests::warn_mode_over_cap_returns_warning_not_error ... ok [INFO] [stdout] test automation::tests::record_step_intent_preserves_original_planned_at ... ok [INFO] [stdout] test cli::doctor::tests::build_report_counts_status_totals ... ok [INFO] [stdout] test cli::detect::tests::detect_output_serializes_to_json ... ok [INFO] [stdout] test cli::doctor::tests::doctor_exit_status_allows_warnings_when_not_strict ... ok [INFO] [stdout] test cli::doctor::tests::fails_when_launch_requires_policy_but_permissions_missing ... ok [INFO] [stdout] test cli::doctor::tests::doctor_exit_status_fails_on_warnings_in_strict_mode ... ok [INFO] [stdout] test cli::doctor::tests::fails_when_workspace_profile_is_unknown ... ok [INFO] [stdout] test cli::doctor::tests::serve_readiness_checks_fail_when_state_dir_cannot_be_created ... ok [INFO] [stdout] test cli::doctor::tests::tool_pack_checks_fail_for_missing_command_and_env ... ok [INFO] [stdout] test cli::doctor::tests::uses_profile_command_override_for_runtime_availability ... ok [INFO] [stdout] test cli::doctor::tests::serve_readiness_checks_pass_when_state_is_writable ... ok [INFO] [stdout] test cli::doctor::tests::warns_when_default_profile_is_missing ... ok [INFO] [stdout] test cli::doctor::tests::suggestion_for_launch_policy_failure_is_actionable ... ok [INFO] [stdout] test cli::handoff::tests::auto_handoff_trigger_pct_maps_threshold ... ok [INFO] [stdout] test cli::handoff::tests::extract_recent_non_empty_lines_trims_and_limits ... ok [INFO] [stdout] test cli::handoff::tests::should_auto_generate_respects_toggle_and_threshold ... ok [INFO] [stdout] test cli::doctor::tests::ignores_mismatched_profile_command_override_for_runtime ... ok [INFO] [stdout] test cli::init::tests::init_creates_parseable_config ... ok [INFO] [stdout] test cli::init::tests::init_refuses_overwrite ... ok [INFO] [stdout] test cli::doctor::tests::warns_when_bypass_launch_mode_selected ... ok [INFO] [stdout] test cli::init::tests::init_template_refuses_nonexistent ... ok [INFO] [stdout] test cli::init::tests::init_template_refuses_overwrite ... ok [INFO] [stdout] test cli::detect::tests::render_human_output_lists_signals_and_matches ... ok [INFO] [stdout] test cli::detect::tests::ensure_session_running_returns_agent_not_running_error ... ok [INFO] [stdout] test cli::init::tests::remove_agent_from_config_body_works ... ok [INFO] [stdout] test automation::tests::capture_artifact_multiple_new_files_picks_newest ... ok [INFO] [stdout] test cli::init::tests::init_template_role_remap_works ... ok [INFO] [stdout] test cli::init::tests::validate_accepts_explicit_runtime_with_role ... ok [INFO] [stdout] test automation::tests::execute_persists_step_intent_and_outcome ... ok [INFO] [stdout] test cli::init::tests::init_template_generates_valid_config ... ok [INFO] [stdout] test cli::issue_claim::tests::test_claim_record_expiry ... ok [INFO] [stdout] test cli::issue_claim::tests::test_claim_record_new ... ok [INFO] [stdout] test cli::init::tests::validate_rejects_role_without_roles_table ... ok [INFO] [stdout] test cli::issue_claim::tests::test_claim_record_not_expired ... ok [INFO] [stdout] test cli::init::tests::validate_rejects_unknown_role ... ok [INFO] [stdout] test automation::tests::strict_mode_forces_closed ... ok [INFO] [stdout] test cli::issue_claim::tests::test_push_event_caps_at_max ... ok [INFO] [stdout] test cli::issue_claim::tests::test_selected_issue_output_serializes ... ok [INFO] [stdout] test cli::issue_claim::tests::test_winner_active_claim_empty ... ok [INFO] [stdout] test cli::issue_claim::tests::test_decode_no_marker ... ok [INFO] [stdout] test cli::issue_claim::tests::test_winner_active_claim_picks_earliest ... ok [INFO] [stdout] test cli::issue_claim::tests::test_winner_skips_released ... ok [INFO] [stdout] test cli::land::tests::parse_pr_number_returns_first_open_pr ... ok [INFO] [stdout] test cli::land::tests::split_name_with_owner_validates_repo_slug ... ok [INFO] [stdout] test cli::permissions::tests::matching_rule_supports_exact_and_prefix ... ok [INFO] [stdout] test cli::permissions::tests::matching_rule_supports_wildcard_prefix ... ok [INFO] [stdout] test cli::land::tests::unresolved_review_thread_count_counts_false_flags ... ok [INFO] [stdout] test cli::permissions::tests::normalize_compacts_whitespace ... ok [INFO] [stdout] test automation::tests::command_fail_closed_aborts ... ok [INFO] [stdout] test cli::permissions::tests::render_claude_settings_wraps_allow_entries_as_bash_permissions ... ok [INFO] [stdout] test cli::issue_claim::tests::test_winner_skips_expired ... ok [INFO] [stdout] test cli::permissions::tests::persist_permission_check_decision_writes_policy_log ... ok [INFO] [stdout] test automation::tests::capture_artifact_picks_newest_new_file ... ok [INFO] [stdout] test cli::permissions::tests::render_export_rejects_unknown_runtime ... ok [INFO] [stdout] test cli::run::tests::serialize_dry_run_contains_prompt_and_command_steps ... ok [INFO] [stdout] test cli::runs::tests::derive_next_action_all_success ... ok [INFO] [stdout] test cli::runs::tests::derive_next_action_resume_eligible ... ok [INFO] [stdout] test cli::runs::tests::format_duration_ms_values ... ok [INFO] [stdout] test cli::runs::tests::format_issue_with_blank_title ... ok [INFO] [stdout] test cli::runs::tests::format_issue_with_title ... ok [INFO] [stdout] test cli::remote::tests::ssh_args_custom_port ... ok [INFO] [stdout] test cli::remote::tests::ssh_args_default_port ... ok [INFO] [stdout] test cli::runs::tests::format_issue_without_title ... ok [INFO] [stdout] test cli::runs::tests::truncate_run_id_long ... ok [INFO] [stdout] test cli::runs::tests::truncate_run_id_short ... ok [INFO] [stdout] test cli::send::tests::assemble_prompt_joins_parts ... ok [INFO] [stdout] test cli::send::tests::assemble_prompt_rejects_empty_input ... ok [INFO] [stdout] test cli::send::tests::pane_delta_returns_empty_when_no_change ... ok [INFO] [stdout] test cli::send::tests::assemble_prompt_rejects_whitespace_only ... ok [INFO] [stdout] test cli::send::tests::pane_delta_returns_new_tail_after_overlap ... ok [INFO] [stdout] test cli::serve::tests::is_localhost_addr_identifies_local_addresses ... ok [INFO] [stdout] test cli::serve::tests::rotation_strategy_for_trigger_picks_expected_strategy ... ok [INFO] [stdout] test cli::serve::tests::recovery_cooldown_elapsed_throttles_recent_attempts ... ok [INFO] [stdout] test cli::serve::tests::strategy_requests_rotation_matches_supported_values ... ok [INFO] [stdout] test automation::tests::run_shell_command_with_retry_retries_until_success ... ok [INFO] [stdout] test cli::serve::tests::validate_bearer_auth_rejects_malformed_header ... ok [INFO] [stdout] test cli::serve::tests::validate_bearer_auth_accepts_valid_token ... ok [INFO] [stdout] test cli::serve::tests::validate_bearer_auth_rejects_missing_header ... ok [INFO] [stdout] test cli::serve::tests::validate_bearer_auth_skips_when_not_required ... ok [INFO] [stdout] test cli::serve::tests::serve_config_toml_round_trip ... ok [INFO] [stdout] test cli::init::tests::team_preview_renders_without_panic ... ok [INFO] [stdout] test cli::snapshot::tests::claude_ctx_prefers_context_hint ... ok [INFO] [stdout] test cli::serve::tests::validate_bearer_auth_rejects_wrong_token ... ok [INFO] [stdout] test cli::snapshot::tests::codex_ctx_ignores_unrelated_percent_without_hint ... ok [INFO] [stdout] test cli::snapshot::tests::parse_percent_in_line_extracts_valid_pct ... ok [INFO] [stdout] test cli::snapshot::tests::unknown_runtime_falls_back_to_any_percent ... ok [INFO] [stdout] test cli::switch::tests::filter_entries_empty_query_returns_all_in_order ... ok [INFO] [stdout] test cli::switch::tests::filter_entries_matches_workspace_or_agent ... ok [INFO] [stdout] test cli::up::tests::agent_env_overrides_workspace ... ok [INFO] [stdout] test cli::up::tests::agent_uses_profile_only_for_compatible_runtime ... ok [INFO] [stdout] test cli::issue_claim::tests::test_encode_decode_roundtrip ... ok [INFO] [stdout] test cli::up::tests::build_launch_command_bypass_warns_even_without_runtime_specific_flags ... ok [INFO] [stdout] test cli::up::tests::build_launch_command_aider_constrained_adds_policy_prompt ... ok [INFO] [stdout] test cli::snapshot::tests::build_snapshot_running_uses_detected_status_and_session ... ok [INFO] [stdout] test cli::init::tests::template_list_runs_without_error ... ok [INFO] [stdout] test cli::snapshot::tests::build_snapshot_stopped_sets_stopped_defaults ... ok [INFO] [stdout] test cli::permissions::tests::suggest_reports_blocked_commands_including_nested_workflow_and_deduplicates ... ok [INFO] [stdout] test cli::init::tests::interactive_init_quit_does_not_write_config ... ok [INFO] [stdout] test cli::permissions::tests::suggest_apply_writes_global_permissions_and_json_shape_is_stable ... ok [INFO] [stdout] test cli::up::tests::build_workspace_env_from_config ... ok [INFO] [stdout] test cli::up::tests::is_api_usage_plan_is_case_insensitive ... ok [INFO] [stdout] test automation::tests::execute_with_hooks_emits_started_and_completed_with_same_correlation ... ok [INFO] [stdout] test cli::up::tests::build_launch_command_openclaw_constrained_adds_policy_prompt ... ok [INFO] [stdout] test cli::up::tests::build_launch_command_codex_constrained_adds_flags_and_policy_prompt ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_noop_when_no_memory_config ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_noop_when_memory_file_missing ... ok [INFO] [stdout] test cli::up::tests::resolve_launch_settings_prefers_cli_over_workspace_config ... ok [INFO] [stdout] test cli::up::tests::resolve_profile_command_for_runtime_ignores_mismatched_profile_command ... ok [INFO] [stdout] test cli::up::tests::resolve_profile_command_for_runtime_applies_matching_profile_command ... ok [INFO] [stdout] test cli::up::tests::resolve_profile_limit_reads_max_concurrent ... ok [INFO] [stdout] test cli::up::tests::resolve_runtime_launch_attempts_adds_fallback_profiles_by_priority ... ok [INFO] [stdout] test cli::up::tests::runtime_shell_allow_rules_adds_apply_patch_for_codex ... ok [INFO] [stdout] test cli::up::tests::strategy_requests_rotation_accepts_known_values ... ok [INFO] [stdout] test cli::up::tests::topo_sort_cycle_detected ... ok [INFO] [stdout] test cli::up::tests::topo_sort_diamond ... ok [INFO] [stdout] test cli::up::tests::topo_sort_linear_chain ... ok [INFO] [stdout] test cli::up::tests::topo_sort_no_deps_passthrough ... ok [INFO] [stdout] test cli::up::tests::resolve_launch_permissions_requires_policy_for_constrained_supported_runtimes ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_skips_project_root ... ok [INFO] [stdout] test cli::up::tests::is_api_usage_plan_rejects_non_api_and_missing ... ok [INFO] [stdout] test cli::usage::tests::resolve_workspaces_multi_profile_excludes_unassigned ... ok [INFO] [stdout] test cli::usage::tests::resolve_workspaces_single_profile_includes_unassigned ... ok [INFO] [stdout] test cli::up::tests::resolve_profile_limit_none_when_unset ... ok [INFO] [stdout] test cli::usage::tests::total_helpers_include_cached_and_output ... ok [INFO] [stdout] test cli::usage::tests::usage_enabled_for_api_plan_is_case_insensitive ... ok [INFO] [stdout] test cli::verify::tests::format_failed_steps_handles_empty_and_values ... ok [INFO] [stdout] test cli::watch::tests::build_plan_cache_applies_workspace_plan_to_agents ... ok [INFO] [stdout] test cli::watch::tests::build_plan_cache_defaults_to_dash_when_global_missing ... ok [INFO] [stdout] test cli::watch::tests::format_plan_label_uppercases_and_defaults ... ok [INFO] [stdout] test cli::watch::tests::is_auth_failed_status_matches_prefix_case_insensitive ... ok [INFO] [stdout] test cli::watch::tests::profile_rotation_enabled_checks_both_strategy_fields ... ok [INFO] [stdout] test cli::watch::tests::resolve_workspace_plan_label_returns_dash_when_unresolved ... ok [INFO] [stdout] test cli::watch::tests::resolve_workspace_plan_label_uses_default_profile_plan ... ok [INFO] [stdout] test cli::watch::tests::rotation_strategy_for_trigger_prefers_matching_strategy ... ok [INFO] [stdout] test cli::watch::tests::strategy_requests_rotation_accepts_known_values ... ok [INFO] [stdout] test cli::watch::tests::watch_header_columns_include_plan_and_ctx ... ok [INFO] [stdout] test cli::usage::tests::usage_enabled_for_profile_rejects_non_api_and_missing ... ok [INFO] [stdout] test config::tests::artifact_glob_and_name_parse_from_toml ... ok [INFO] [stdout] test config::tests::artifact_glob_without_name_rejects ... ok [INFO] [stdout] test config::tests::artifact_glob_without_wait_for_idle_is_valid ... ok [INFO] [stdout] test config::tests::artifact_name_requires_step_id ... ok [INFO] [stdout] test config::tests::artifact_name_without_glob_rejects ... ok [INFO] [stdout] test config::tests::global_config_register_workspace ... ok [INFO] [stdout] test config::tests::memory_field_defaults_to_none ... ok [INFO] [stdout] test config::tests::memory_field_parses_from_toml ... ok [INFO] [stdout] test config::tests::memory_path_allows_double_dot_in_filename ... ok [INFO] [stdout] test config::tests::memory_path_must_be_relative ... ok [INFO] [stdout] test config::tests::memory_path_rejects_traversal ... ok [INFO] [stdout] test cli::up::tests::prepend_memory_to_prompt_noop_for_claude_code ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_creates_claude_md_when_missing ... ok [INFO] [stdout] test config::tests::parse_full_config ... ok [INFO] [stdout] test config::tests::parse_launch_config ... ok [INFO] [stdout] test config::tests::parse_budget_config ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_writes_managed_section ... ok [INFO] [stdout] test config::tests::parse_minimal_config ... ok [INFO] [stdout] test config::tests::parse_persistent_agent ... ok [INFO] [stdout] test config::tests::parse_tool_packs ... ok [INFO] [stdout] test config::tests::parse_workflow_control_steps ... ok [INFO] [stdout] test cli::serve::tests::token_generation_produces_valid_hex_and_reloads ... ok [INFO] [stdout] test cli::init::tests::interactive_init_customize_project_name ... ok [INFO] [stdout] test cli::up::tests::prepend_memory_to_prompt_adds_context ... ok [INFO] [stdout] test cli::up::tests::write_shell_policy_shims_rejects_tool_only_policy ... ok [INFO] [stdout] test config::tests::parse_workflows_and_hooks ... ok [INFO] [stdout] test config::tests::resolved_fresh_worktree_defaults_false ... ok [INFO] [stdout] test config::tests::resolved_runtime_uses_role_mapping ... ok [INFO] [stdout] test config::tests::validate_bad_depends_on ... ok [INFO] [stdout] test config::tests::validate_command_subdir_cannot_be_empty ... ok [INFO] [stdout] test config::tests::resolved_branch_default ... ok [INFO] [stdout] test config::tests::resolved_runtime_explicit_overrides_role ... ok [INFO] [stdout] test config::tests::resolved_runtime_falls_back_to_default ... ok [INFO] [stdout] test config::tests::validate_agent_env_parses ... ok [INFO] [stdout] test cli::up::tests::inject_agent_memory_is_idempotent ... ok [INFO] [stdout] test automation::tests::command_fail_open_continues ... ok [INFO] [stdout] test config::tests::validate_budget_rejects_unknown_agent_caps ... ok [INFO] [stdout] test config::tests::validate_duplicate_names ... ok [INFO] [stdout] test config::tests::validate_depends_on_rejects_non_control_steps ... ok [INFO] [stdout] test config::tests::validate_prompt_inject_files_must_be_relative ... ok [INFO] [stdout] test config::tests::parse_launch_defaults_when_fields_missing ... ok [INFO] [stdout] test config::tests::validate_duplicate_tool_pack_names ... ok [INFO] [stdout] test config::tests::validate_output_json_requires_step_id ... ok [INFO] [stdout] test cli::usage::tests::format_non_api_notice_mentions_api_only_and_required_plan ... ok [INFO] [stdout] test config::tests::validate_command_subdir_must_be_relative ... ok [INFO] [stdout] test config::tests::artifact_name_rejects_invalid_characters ... ok [INFO] [stdout] test config::tests::validate_dependency_cycle ... ok [INFO] [stdout] test config::tests::validate_rejects_hook_without_action ... ok [INFO] [stdout] test config::tests::validate_rejects_unknown_hook_workflow ... ok [INFO] [stdout] test config::tests::parse_global_config ... ok [INFO] [stdout] test config::tests::validate_depends_on_detects_cycles_for_control_steps ... ok [INFO] [stdout] test config::tests::validate_schedule_must_be_five_field_cron ... ok [INFO] [stdout] test config::tests::webhook_config_empty_is_default ... ok [INFO] [stdout] test config::tests::validate_nested_workflow_reference_must_exist ... ok [INFO] [stdout] test config::tests::validate_unknown_runtime ... ok [INFO] [stdout] test health::tests::classify_auth_failed ... ok [INFO] [stdout] test config::tests::validate_self_dependency ... ok [INFO] [stdout] test health::tests::classify_rate_limited ... ok [INFO] [stdout] test health::tests::classify_idle_recent_output ... ok [INFO] [stdout] test config::tests::validate_rejects_workflow_filters_on_non_workflow_event ... ok [INFO] [stdout] test config::tests::webhook_config_serde_round_trip ... ok [INFO] [stdout] test health::tests::classify_stalled_no_output_ever ... ok [INFO] [stdout] test health::tests::classify_stalled_old_output ... ok [INFO] [stdout] test health::tests::classify_stalled_uses_threshold ... ok [INFO] [stdout] test health::tests::classify_stopped ... ok [INFO] [stdout] test health::tests::classify_unknown ... ok [INFO] [stdout] test health::tests::classify_working ... ok [INFO] [stdout] test dashboard::tests::content_type_lookup ... ok [INFO] [stdout] test health::tests::classify_provider_down ... ok [INFO] [stdout] test dashboard::tests::embedded_assets_exist ... ok [INFO] [stdout] test dashboard::tests::embedded_index_html_exists ... ok [INFO] [stdout] test health::tests::completion_signal_can_finish_after_activity_when_runtime_is_idle ... ok [INFO] [stdout] test health::tests::completion_signal_can_finish_after_startup_grace_when_runtime_is_idle ... ok [INFO] [stdout] test health::tests::working_consecutive_threshold_is_at_least_two ... ok [INFO] [stdout] test health::tests::transition_events_emits_running_changes ... ok [INFO] [stdout] test permissions::tests::evaluate_command_policy_allows_when_policy_unset ... ok [INFO] [stdout] test permissions::tests::evaluate_command_policy_suggests_rule_from_first_two_tokens_only ... ok [INFO] [stdout] test permissions::tests::evaluate_command_policy_blocks_when_rule_missing ... ok [INFO] [stdout] test permissions::tests::evaluate_command_policy_suggests_single_token_rule ... ok [INFO] [stdout] test permissions::tests::has_configured_policy_requires_non_empty_entries ... ok [INFO] [stdout] test permissions::tests::render_claude_settings_preserves_tool_permissions ... ok [INFO] [stdout] test permissions::tests::shell_command_allow_rules_extracts_bash_and_plain_rules ... ok [INFO] [stdout] test permissions::tests::render_claude_settings_wraps_bash_permissions ... ok [INFO] [stdout] test runtime::tests::aider_detect_auth_failure ... ok [INFO] [stdout] test runtime::tests::aider_detect_completion_signal ... ok [INFO] [stdout] test health::tests::recovery_trigger_detects_rate_limit_and_provider_down_reason_prefixes ... ok [INFO] [stdout] test runtime::tests::aider_detect_working_from_spinner ... ok [INFO] [stdout] test runtime::tests::claude_command_override ... ok [INFO] [stdout] test health::tests::transition_events_emits_activity_and_auth_changes ... ok [INFO] [stdout] test runtime::tests::aider_detect_idle ... ok [INFO] [stdout] test runtime::tests::claude_detect_auth_failure ... ok [INFO] [stdout] test runtime::tests::aider_detect_unknown ... ok [INFO] [stdout] test runtime::tests::claude_detect_completion_signal ... ok [INFO] [stdout] test runtime::tests::aider_spawn_with_prompt ... ok [INFO] [stdout] test runtime::tests::aider_spawn_without_prompt ... ok [INFO] [stdout] test runtime::tests::claude_detect_idle ... ok [INFO] [stdout] test runtime::tests::claude_detect_working_from_spinner ... ok [INFO] [stdout] test runtime::tests::claude_detect_working_from_searching_and_unravelling ... ok [INFO] [stdout] test runtime::tests::claude_spawn_with_prompt ... ok [INFO] [stdout] test dashboard::tests::missing_asset_returns_none ... ok [INFO] [stdout] test health::tests::completion_signal_is_ignored_while_runtime_is_still_working ... ok [INFO] [stdout] test runtime::tests::claude_detect_provider_down_signal ... ok [INFO] [stdout] test runtime::tests::claude_detect_unknown ... ok [INFO] [stdout] test runtime::tests::codex_spawn_with_prompt ... ok [INFO] [stdout] test runtime::tests::codex_detect_auth_failure ... ok [INFO] [stdout] test permissions::tests::evaluate_command_policy_matches_prefix_rule ... ok [INFO] [stdout] test health::tests::hash_output_ignores_codex_status_and_footer_lines ... ok [INFO] [stdout] test runtime::tests::codex_detect_idle ... ok [INFO] [stdout] test runtime::tests::claude_spawn_without_prompt ... ok [INFO] [stdout] test runtime::tests::codex_detect_rate_limit_signal ... ok [INFO] [stdout] test runtime::tests::codex_detect_working_from_spinner ... ok [INFO] [stdout] test health::tests::transition_events_emits_rate_limited_and_provider_recovered ... ok [INFO] [stdout] test runtime::tests::codex_detect_completion_signal ... ok [INFO] [stdout] test cli::init::tests::interactive_init_backup_existing ... ok [INFO] [stdout] test runtime::tests::codex_spawn_without_prompt ... ok [INFO] [stdout] test runtime::tests::compatible_override_rejects_mismatch ... ok [INFO] [stdout] test runtime::tests::compatible_override_matches_runtime ... ok [INFO] [stdout] test runtime::tests::diagnose_output_returns_runtime_error_for_unknown_runtime ... ok [INFO] [stdout] test runtime::tests::diagnostics_prefers_idle_when_completion_marker_present ... ok [INFO] [stdout] test runtime::tests::openclaw_detect_completion_signal ... ok [INFO] [stdout] test runtime::tests::openclaw_detect_idle ... ok [INFO] [stdout] test runtime::tests::diagnostics_report_match_explanations ... ok [INFO] [stdout] test runtime::tests::fixture_claude_status_variants ... ok [INFO] [stdout] test runtime::tests::fixture_codex_status_and_signal_variants ... ok [INFO] [stdout] test runtime::tests::diagnostics_records_spinner_signal_when_spinner_present ... ok [INFO] [stdout] test runtime::tests::openclaw_spawn_with_prompt ... ok [INFO] [stdout] test runtime::tests::openclaw_spawn_without_prompt ... ok [INFO] [stdout] test runtime::tests::spawn_command_with_pre_args_quotes_values ... ok [INFO] [stdout] test runtime::tests::unknown_runtime_returns_none ... ok [INFO] [stdout] test scheduler::tests::parse_schedule_accepts_five_field_cron ... ok [INFO] [stdout] test scheduler::tests::parse_schedule_rejects_bad_field_count ... ok [INFO] [stdout] test session::tmux::tests::strips_claudecode_env_var_case_insensitive ... ok [INFO] [stdout] test runtime::tests::openclaw_detect_unknown ... ok [INFO] [stdout] test runtime::tests::openclaw_detect_working_from_spinner ... ok [INFO] [stdout] test state::tests::automation_runs_jsonl_is_appended ... ok [INFO] [stdout] test state::tests::parse_template_tag_nonexistent_file ... ok [INFO] [stdout] test state::tests::health_state_display_and_color ... ok [INFO] [stdout] test state::tests::load_nonexistent_state_returns_none ... ok [INFO] [stdout] test state::tests::control_events_append_and_load ... ok [INFO] [stdout] test state::tests::policy_decisions_append_and_load ... ok [INFO] [stdout] test state::tests::run_id_allowlist_rejects_special_chars_and_accepts_safe_values ... ok [INFO] [stdout] test state::tests::load_all_states_works ... ok [INFO] [stdout] test state::tests::parse_template_tag_missing ... ok [INFO] [stdout] test state::tests::run_id_with_path_segments_is_rejected ... ok [INFO] [stdout] test state::tests::parse_template_tag_rejects_partial_tags ... ok [INFO] [stdout] test state::tests::parse_template_tag_valid ... ok [INFO] [stdout] test state::tests::run_telemetry_appends_multiple_runs ... ok [INFO] [stdout] test runtime::tests::claude_detect_working_from_status_ellipsis_even_with_prompt_bar ... ok [INFO] [stdout] test runtime::tests::codex_detect_unknown ... ok [INFO] [stdout] test session::tmux::tests::does_not_strip_unrelated_env_var ... ok [INFO] [stdout] test state::tests::sdlc_pr_comment_summary_renders_transitions ... ok [INFO] [stdout] test runtime::tests::openclaw_detect_auth_failure ... ok [INFO] [stdout] test state::tests::step_id_allowlist_rejects_special_chars_and_accepts_safe_values ... ok [INFO] [stdout] test runtime::tests::fixture_aider_and_openclaw_signal_variants ... ok [INFO] [stdout] test state::tests::workflow_checkpoint_round_trip ... ok [INFO] [stdout] test state::tests::run_telemetry_creates_file_with_valid_json ... ok [INFO] [stdout] test state::tests::sdlc_ledger_rejects_invalid_transition ... ok [INFO] [stdout] test state::tests::sdlc_ledger_round_trip_and_transition ... ok [INFO] [stdout] test state::tests::workflow_output_is_persisted ... ok [INFO] [stdout] test state::tests::scheduler_last_runs_round_trip ... ok [INFO] [stdout] test template::tests::generate_config_substitutes_variables ... ok [INFO] [stdout] test state::tests::step_id_with_path_segments_is_rejected ... ok [INFO] [stdout] test state::tests::workflow_intent_round_trip ... ok [INFO] [stdout] test template::tests::generated_config_parses_as_tutti_config ... ok [INFO] [stdout] test state::tests::sdlc_ledger_allows_idempotent_transition_retry ... ok [INFO] [stdout] test template::tests::parse_template_missing_metadata_errors ... ok [INFO] [stdout] test usage::tests::aggregated_usage_merge ... ok [INFO] [stdout] test template::tests::parse_template_missing_separator_errors ... ok [INFO] [stdout] test usage::tests::compute_reset_start_each_weekday ... ok [INFO] [stdout] test usage::tests::compute_reset_start_monday ... ok [INFO] [stdout] test state::tests::run_telemetry_creates_missing_directory ... ok [INFO] [stdout] test usage::tests::encode_project_path_basic ... ok [INFO] [stdout] test usage::tests::encode_project_path_home ... ok [INFO] [stdout] test usage::tests::format_tokens_thousands_separator ... ok [INFO] [stdout] test state::tests::round_trip_agent_state ... ok [INFO] [stdout] test state::tests::ensure_tutti_dir_creates_structure ... ok [INFO] [stdout] test state::tests::health_round_trip ... ok [INFO] [stdout] test template::tests::parse_template_extracts_config_body ... ok [INFO] [stdout] test template::tests::parse_template_extracts_metadata ... ok [INFO] [stdout] test usage::tests::estimate_compute_hours_known_tokens ... ok [INFO] [stdout] test webhook::tests::empty_events_matches_all ... ok [INFO] [stdout] test webhook::tests::expand_template_missing_key ... ok [INFO] [stdout] test usage::tests::parse_codex_rollout_file_respects_since_cutoff ... ok [INFO] [stdout] test usage::tests::profile_config_with_new_fields ... ok [INFO] [stdout] test usage::tests::parse_jsonl_file_extracts_usage ... ok [INFO] [stdout] test webhook::tests::expand_template_no_placeholders ... ok [INFO] [stdout] test usage::tests::parse_codex_rollout_file_computes_delta_and_agent ... ok [INFO] [stdout] test usage::tests::parse_jsonl_skips_before_since ... ok [INFO] [stdout] test usage::tests::profile_config_backward_compat ... ok [INFO] [stdout] test webhook::tests::expand_template_simple ... ok [INFO] [stdout] test webhook::tests::no_match_returns_empty ... ok [INFO] [stdout] test usage::tests::encode_project_path_nested ... ok [INFO] [stdout] test webhook::tests::wildcard_source_matches_all ... ok [INFO] [stdout] test webhook::tests::log_event_creates_file ... ok [INFO] [stdout] test webhook::tests::match_by_source_and_event ... ok [INFO] [stdout] test webhook::tests::expand_template_nested ... ok [INFO] [stdout] test webhook::tests::wildcard_event_matches_all ... ok [INFO] [stdout] test template::tests::detect_templates_on_empty_dir ... ok [INFO] [stdout] test state::tests::verify_last_summary_round_trip ... ok [INFO] [stdout] test automation::tests::build_resume_compensator_plan_detects_already_merged_land_branch ... ok [INFO] [stdout] test automation::tests::build_resume_compensator_plan_land_fresh_branch_is_not_skipped ... ok [INFO] [stdout] test worktree::tests::remove_worktree_is_idempotent_and_removes_existing_checkout ... ok [INFO] [stdout] test worktree::tests::ensure_worktree_creates_new_branch_and_reports_clean_snapshot ... ok [INFO] [stdout] test worktree::tests::inspect_worktree_detects_dirty_state_and_head_divergence ... ok [INFO] [stdout] test template::tests::builtin_templates_are_valid ... ok [INFO] [stdout] test worktree::tests::ensure_fresh_worktree_resets_diverged_branch_to_project_head ... ok [INFO] [stdout] test state::tests::control_events_rotation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 371 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.18s [INFO] [stdout] [INFO] [stderr] Running tests/send_auto_up_integration.rs (/opt/rustwide/target/debug/deps/send_auto_up_integration-d25965a44e715276) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test send_auto_up_wait_output_preserves_long_prompt ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "adeb5fe91003a465d24bb43636766d744f6761416cb5b7a33d661d6e255c01c2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "adeb5fe91003a465d24bb43636766d744f6761416cb5b7a33d661d6e255c01c2", kill_on_drop: false }` [INFO] [stdout] adeb5fe91003a465d24bb43636766d744f6761416cb5b7a33d661d6e255c01c2