[INFO] cloning repository https://github.com/farbenmeer/ai-pod
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/farbenmeer/ai-pod" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarbenmeer%2Fai-pod", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarbenmeer%2Fai-pod'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 58dbad98d88019cadde518e4e21fdf75177aa84d
[INFO] testing farbenmeer/ai-pod against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffarbenmeer%2Fai-pod" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/farbenmeer/ai-pod
[INFO] finished tweaking git repo https://github.com/farbenmeer/ai-pod
[INFO] tweaked toml for git repo https://github.com/farbenmeer/ai-pod written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/farbenmeer/ai-pod on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/farbenmeer/ai-pod already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded uuid v1.23.3
[INFO] [stderr]   Downloaded tower_governor v0.8.0
[INFO] [stderr]   Downloaded aws-lc-rs v1.16.3
[INFO] [stderr]   Downloaded lru v0.18.0
[INFO] [stderr]   Downloaded ratatui v0.30.2
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.2
[INFO] [stderr]   Downloaded ratatui-core v0.1.2
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.2
[INFO] [stderr]   Downloaded ratatui-termina v0.1.0
[INFO] [stderr]   Downloaded ratatui-macros v0.7.2
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.2
[INFO] [stderr]   Downloaded notify-rust v4.18.0
[INFO] [stderr]   Downloaded termina v0.3.3
[INFO] [stderr]   Downloaded uds_windows v1.2.1
[INFO] [stderr]   Downloaded async-signal v0.2.14
[INFO] [stderr]   Downloaded mac-notification-sys v0.6.15
[INFO] [stderr]   Downloaded dialoguer v0.12.0
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded aws-lc-sys v0.40.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070
[INFO] running `Command { std: "docker" "start" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", 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" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", 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" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling winnow v1.0.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.3
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling piper v0.2.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling lru v0.18.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling hybrid-array v0.4.11
[INFO] [stderr]    Compiling async-executor v1.14.0
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling spinning_top v0.3.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling nonzero_ext v0.3.0
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling block-buffer v0.12.0
[INFO] [stderr]    Compiling crypto-common v0.2.1
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling nonempty v0.7.0
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling aws-lc-sys v0.40.0
[INFO] [stderr]    Compiling toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling quanta v0.12.6
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling forwarded-header-value v0.1.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling zvariant_utils v3.3.0
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling async-signal v0.2.14
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling zvariant_derive v5.10.0
[INFO] [stderr]    Compiling governor v0.10.4
[INFO] [stderr]    Compiling zvariant v5.10.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling zbus_names v4.3.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling zbus_macros v5.14.0
[INFO] [stderr]    Compiling zbus v5.14.0
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling hyper-timeout v0.5.2
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling notify-rust v4.18.0
[INFO] [stderr]    Compiling tonic v0.14.5
[INFO] [stderr]    Compiling tower_governor v0.8.0
[INFO] [stderr]    Compiling ai-pod v0.13.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 59s
[INFO] running `Command { std: "docker" "inspect" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", 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" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling ai-pod v0.13.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.97s
[INFO] running `Command { std: "docker" "inspect" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", 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" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.57s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ai_pod-de6ccf6937bf4c59)
[INFO] [stdout] 
[INFO] [stdout] running 198 tests
[INFO] [stdout] test config::tests::all_paths_are_under_config_dir ... ok
[INFO] [stdout] test config::tests::global_config_add_rejects_duplicate_host ... ok
[INFO] [stdout] test config::tests::claude_md_path_points_to_claude_md ... ok
[INFO] [stdout] test config::tests::claude_settings_path_points_to_settings_json ... ok
[INFO] [stdout] test config::tests::config_dir_is_under_home ... ok
[INFO] [stdout] test config::tests::global_config_remove_reports_match ... ok
[INFO] [stdout] test config::tests::global_config_load_missing_returns_default ... ok
[INFO] [stdout] test config::tests::server_state_file_is_under_config_dir ... ok
[INFO] [stdout] test config::tests::global_config_round_trips ... ok
[INFO] [stdout] test config::tests::session_state_load_missing_returns_none ... ok
[INFO] [stdout] test config::tests::project_state_file_is_under_config_dir ... ok
[INFO] [stdout] test container::tests::build_mount_args_emits_readonly_by_default ... ok
[INFO] [stdout] test container::tests::claude_mcp_entry_bakes_literal_values ... ok
[INFO] [stdout] test container::tests::build_mount_args_skips_missing_host_paths ... ok
[INFO] [stdout] test config::tests::global_config_save_overwrites_stale_tmp_with_0o600 ... ok
[INFO] [stdout] test container::tests::build_mount_args_emits_writable_when_flagged ... ok
[INFO] [stdout] test container::tests::build_mount_args_warn_skips_outside_home_when_no_container ... ok
[INFO] [stdout] test config::tests::session_state_file_is_under_sessions_subdir ... ok
[INFO] [stdout] test container::tests::build_mount_args_resolves_home_relative_target ... ok
[INFO] [stdout] test config::tests::init_creates_config_dir ... ok
[INFO] [stdout] test container::tests::build_mount_args_keeps_dangling_symlinks ... ok
[INFO] [stdout] test container::tests::build_mount_args_warn_skips_invalid_stored_spec ... ok
[INFO] [stdout] test config::tests::session_state_round_trips_at_0o600 ... ok
[INFO] [stdout] test container::tests::resolve_container_target_rejects_home_root ... ok
[INFO] [stdout] test container::tests::opencode_config_content_bakes_literal_values ... ok
[INFO] [stdout] test container::tests::resolve_container_target_uses_explicit_path ... ok
[INFO] [stdout] test container::tests::runtime_settings_stop_hook_uses_curl ... ok
[INFO] [stdout] test container::tests::runtime_settings_contains_default_mode_bypass_permissions ... ok
[INFO] [stdout] test config::tests::global_config_load_malformed_returns_default ... ok
[INFO] [stdout] test container::tests::runtime_settings_does_not_contain_mcp_servers ... ok
[INFO] [stdout] test credentials::tests_env_files_management::hide_file_preserves_nested_path ... ok
[INFO] [stdout] test container::tests::runtime_settings_preserves_existing_keys ... ok
[INFO] [stdout] test container::tests::resolve_container_target_mirrors_home_paths ... ok
[INFO] [stdout] test container::tests::resolve_container_target_errors_for_paths_outside_home ... ok
[INFO] [stdout] test credentials::tests_env_files_management::remove_ignored_credential_removes_entry ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::credentials_json_is_credential ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::dot_env_exact_match ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::dot_env_local ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::key_extension ... ok
[INFO] [stdout] test container::tests::runtime_settings_contains_stop_hook ... ok
[INFO] [stdout] test credentials::tests_ignore_list::ignored_credential_file_is_filtered_out ... ok
[INFO] [stdout] test credentials::tests_env_files_management::hide_file_refuses_already_hidden_file ... ok
[INFO] [stdout] test credentials::tests_env_files_management::unhide_file_restores_real_file ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::normal_rust_file_is_not_credential ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::gnupg_path_pattern ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::aws_credentials_path_pattern ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::normal_json_file_is_not_credential ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::p12_extension ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::service_account_json_is_credential ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::pem_extension ... ok
[INFO] [stdout] test credentials::tests_env_files_management::hide_file_moves_and_symlinks ... ok
[INFO] [stdout] test credentials::tests_env_files_management::hide_file_rejects_path_traversal ... ok
[INFO] [stdout] test credentials::tests_scan::skips_node_modules ... ok
[INFO] [stdout] test credentials::tests_ignore_list::ignored_credential_file_is_filtered_when_workspace_is_canonicalized ... ok
[INFO] [stdout] test image::tests::image_name_differs_for_same_dirname_different_parent ... ok
[INFO] [stdout] test credentials::tests_scan::skips_target_directory ... ok
[INFO] [stdout] test image::tests::image_name_is_deterministic ... ok
[INFO] [stdout] test image::tests::image_name_differs_for_different_paths ... ok
[INFO] [stdout] test image::tests::image_name_sanitises_special_chars ... ok
[INFO] [stdout] test image::tests::image_name_is_lowercase ... ok
[INFO] [stdout] test image::tests::image_name_strips_leading_dot ... ok
[INFO] [stdout] test image::tests::image_name_short_hash_is_6_hex_chars ... ok
[INFO] [stdout] test credentials::tests_env_files_management::unhide_file_refuses_regular_file ... ok
[INFO] [stdout] test credentials::tests_ignore_list::unignored_credential_file_is_returned_as_pending ... ok
[INFO] [stdout] test image::tests::needs_build_returns_true_when_force ... ok
[INFO] [stdout] test credentials::tests_scan::finds_dot_env_file ... ok
[INFO] [stdout] test credentials::tests_scan::finds_credentials_in_subdirectory ... ok
[INFO] [stdout] test credentials::tests_env_files_management::list_env_files_classifies_all_three_states ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_normalizes_trailing_slash_in_host ... ok
[INFO] [stdout] test credentials::tests_is_credential_file::ssh_private_key ... ok
[INFO] [stdout] test credentials::tests_scan::skips_git_directory ... ok
[INFO] [stdout] test credentials::tests_scan::finds_multiple_credential_files ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_host_only ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_accepts_container_home_subpath ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_host_and_container ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_normalizes_trailing_slash_in_container ... ok
[INFO] [stdout] test image::tests::image_name_uses_last_path_component ... ok
[INFO] [stdout] test mount_cli::tests::normalize_host_only_at_start ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_expands_tilde_in_host ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_app_root_target ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_filesystem_root_host_alone ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_relative_host ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_filesystem_root_host ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_trailing_slash_bypass_of_app ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_container_home_exactly ... ok
[INFO] [stdout] test credentials::tests_scan::empty_workspace_returns_nothing ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_reserved_target ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_app_target ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_auto_mode_dot_claude ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_auto_mode_home_root ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_colon_smuggling_in_container ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_seeded_dot_claude ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_seeded_opencode_plugins ... ok
[INFO] [stdout] test mount_cli::tests::run_add_stores_risky_mount_when_confirmed ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_trailing_slash_bypass_of_container_home ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_trailing_slash_bypass_of_reserved ... ok
[INFO] [stdout] test credentials::tests_scan::ignores_normal_source_files ... ok
[INFO] [stdout] test mount_cli::tests::run_add_rejects_no_container_outside_home ... ok
[INFO] [stdout] test mount_cli::tests::run_add_rejects_colliding_container_target ... ok
[INFO] [stdout] test mount_cli::tests::run_add_and_remove_round_trip ... ok
[INFO] [stdout] test mount_cli::tests::parse_spec_rejects_traversal_in_host ... ok
[INFO] [stdout] test mount_cli::tests::run_add_dedups_by_host_when_writable_matches ... ok
[INFO] [stdout] test mount_cli::tests::warn_flags_seeded_target_files ... ok
[INFO] [stdout] test mount_cli::tests::warn_flags_ssh_aws_gnupg_under_home ... ok
[INFO] [stdout] test mount_cli::tests::run_remove_normalizes_trailing_slash ... ok
[INFO] [stdout] test mount_cli::tests::run_add_aborts_risky_mount_without_yes ... ok
[INFO] [stdout] test mount_cli::tests::run_add_allows_risky_mount_with_yes ... ok
[INFO] [stdout] test mount_cli::tests::warn_silent_on_benign_skills_mount ... ok
[INFO] [stdout] test runtime::tests::as_str_round_trips_through_from_value ... ok
[INFO] [stdout] test mount_cli::tests::validate_spec_rejects_symlink_to_filesystem_root ... ok
[INFO] [stdout] test mount_cli::tests::warn_fires_when_symlink_resolves_to_system_path ... ok
[INFO] [stdout] test mount_cli::tests::warn_flags_ai_pod_self_mount ... ok
[INFO] [stdout] test mount_cli::tests::warn_flags_binary_shadow_targets ... ok
[INFO] [stdout] test mount_cli::tests::warn_flags_system_host_paths ... ok
[INFO] [stdout] test mount_cli::tests::run_add_errors_on_writable_mismatch ... ok
[INFO] [stdout] test runtime::tests::clap_value_variants_match_string_form ... ok
[INFO] [stdout] test runtime::tests::dry_run_off_uses_real_binary ... ok
[INFO] [stdout] test runtime::tests::podman_runtime_properties ... ok
[INFO] [stdout] test runtime::tests::dry_run_on_uses_echo ... ok
[INFO] [stdout] test runtime::tests::serde_serializes_as_lowercase_binary_name ... ok
[INFO] [stdout] test server::commands::tests::applescript_template_offers_denial_reasons ... ok
[INFO] [stdout] test server::commands::tests::approval_command_does_not_interpolate_user_input ... ok
[INFO] [stdout] test server::commands::tests::approval_command_handles_empty_strings ... ok
[INFO] [stdout] test server::commands::tests::approval_command_handles_backslashes_and_quotes ... ok
[INFO] [stdout] test server::commands::tests::approval_command_handles_newlines_and_control_chars ... ok
[INFO] [stdout] test server::commands::tests::denial_reason_messages_are_distinct_and_nonempty ... ok
[INFO] [stdout] test server::commands::tests::service_approval_key_dedupes_env_keys ... ok
[INFO] [stdout] test server::commands::tests::service_approval_key_differs_when_keys_differ ... ok
[INFO] [stdout] test server::lifecycle::tests::add_allowed_is_idempotent ... ok
[INFO] [stdout] test server::lifecycle::tests::allowed_services_default_loads_when_field_missing ... ok
[INFO] [stdout] test server::commands::tests::cd_slash_is_rejected ... ok
[INFO] [stdout] test server::commands::tests::cd_relative_is_not_rejected ... ok
[INFO] [stdout] test server::lifecycle::tests::get_or_create_generates_api_key ... ok
[INFO] [stdout] test server::commands::tests::service_approval_key_sorts_env_keys ... ok
[INFO] [stdout] test server::commands::tests::pipe_to_head_or_tail_is_rejected ... ok
[INFO] [stdout] test server::lifecycle::tests::project_state_default_has_no_api_key ... ok
[INFO] [stdout] test server::lifecycle::tests::mask_helpers_round_trip ... ok
[INFO] [stdout] test runtime::tests::detect_honors_explicit_preference_in_dry_run ... ok
[INFO] [stdout] test runtime::tests::docker_runtime_properties ... ok
[INFO] [stdout] test runtime::tests::from_value_parses_case_insensitively_and_trims ... ok
[INFO] [stdout] test server::lifecycle::tests::get_or_create_is_stable ... ok
[INFO] [stdout] test server::commands::tests::approval_command_handles_dash_prefixed_args ... ok
[INFO] [stdout] test server::lifecycle::tests::is_allowed_checks_exact_match ... ok
[INFO] [stdout] test server::commands::tests::parse_denial_reason_recognises_slugs_and_labels ... ok
[INFO] [stdout] test server::commands::tests::parse_macos_approval_output_handles_all_decisions ... ok
[INFO] [stdout] test server::commands::tests::service_approval_key_drops_env_when_empty ... ok
[INFO] [stdout] test server::commands::tests::normal_commands_not_rejected ... ok
[INFO] [stdout] test server::commands::tests::pipe_to_head_in_middle_of_pipeline_is_allowed ... ok
[INFO] [stdout] test server::lifecycle::tests::project_state_load_missing_returns_default ... ok
[INFO] [stdout] test runtime::tests::dry_run_command_echoes_invocation ... ok
[INFO] [stdout] test server::commands::tests::words_starting_with_head_or_tail_not_rejected ... ok
[INFO] [stdout] test server::lifecycle::tests::project_state_round_trips ... ok
[INFO] [stdout] test server::lifecycle::tests::project_state_save_sets_restrictive_permissions ... ok
[INFO] [stdout] test server::lifecycle::tests::service_helpers_round_trip ... ok
[INFO] [stdout] test server::mcp::tests::command_status_description_points_at_in_container_log_path ... ok
[INFO] [stdout] test server::mcp::tests::tools_definition_lists_all_expected_tools ... ok
[INFO] [stdout] test server::mcp::tests::run_command_description_includes_docker_host_gateway ... ok
[INFO] [stdout] test server::mcp::tests::run_command_description_includes_podman_host_gateway ... ok
[INFO] [stdout] test server::mcp::tests::session_runtime_falls_back_to_server_runtime_when_no_record ... ok
[INFO] [stdout] test server::mcp::tests::run_command_description_points_at_in_container_log_path ... ok
[INFO] [stdout] test server::lifecycle::tests::server_log_file_has_restrictive_permissions ... ok
[INFO] [stdout] test server::mcp::tests::session_runtime_reads_persisted_kind_and_keeps_dry_run ... ok
[INFO] [stdout] test server::mcp::tests::start_service_description_mentions_lifetime_and_reachability ... ok
[INFO] [stdout] test server::mcp::tests::tools_definition_includes_service_tools ... ok
[INFO] [stdout] test server::runner::tests::container_paths_uses_app_mount ... ok
[INFO] [stdout] test server::lifecycle::tests::state_file_is_under_config_dir ... ok
[INFO] [stdout] test server::runner::tests::clean_stale_sessions_removes_orphans ... ok
[INFO] [stdout] test service::tests::service_label_constant_matches_filter_form ... ok
[INFO] [stdout] test update::tests::newer_major ... ok
[INFO] [stdout] test update::tests::newer_minor ... ok
[INFO] [stdout] test service::tests::parent_label_key_matches_documented_value ... ok
[INFO] [stdout] test update::tests::newer_patch ... ok
[INFO] [stdout] test update::tests::older_version ... ok
[INFO] [stdout] test update::tests::cache_round_trips ... ok
[INFO] [stdout] test update::tests::read_cache_malformed_returns_none ... ok
[INFO] [stdout] test workspace::tests::hash_is_12_chars ... ok
[INFO] [stdout] test workspace::tests::container_prefix_starts_with_ai_pod ... ok
[INFO] [stdout] test workspace::tests::names_differ_for_different_paths ... ok
[INFO] [stdout] test workspace::tests::new_container_name_starts_with_prefix ... ok
[INFO] [stdout] test workspace::tests::service_network_name_is_per_workspace ... ok
[INFO] [stdout] test workspace::tests::service_container_name_differs_between_sessions ... ok
[INFO] [stdout] test workspace::tests::new_container_name_is_unique ... ok
[INFO] [stdout] test workspace::tests::service_container_name_embeds_workspace_and_session ... ok
[INFO] [stdout] test update::tests::same_version ... ok
[INFO] [stdout] test workspace::tests::mask_volume_name_includes_hash_and_dir ... ok
[INFO] [stdout] test workspace::tests::hash_is_deterministic ... ok
[INFO] [stdout] test update::tests::read_cache_missing_returns_none ... ok
[INFO] [stdout] test workspace::tests::service_container_name_stays_under_docker_limit ... ok
[INFO] [stdout] test workspace::tests::validate_service_name_rejects_empty_and_too_long ... ok
[INFO] [stdout] test workspace::tests::validate_service_name_accepts_typical_names ... ok
[INFO] [stdout] test workspace::tests::mask_volume_names_differ_per_workspace_and_dir ... ok
[INFO] [stdout] test workspace::tests::validate_service_name_uppercase_first_char_message_blames_first_char ... ok
[INFO] [stdout] test workspace::tests::volume_name_uses_workspace_hash ... ok
[INFO] [stdout] test workspace::tests::validate_service_name_rejects_uppercase_and_punctuation ... ok
[INFO] [stdout] test update::tests::write_cache_creates_missing_parent_dir ... ok
[INFO] [stdout] test workspace::tests::validate_service_name_rejects_leading_dash ... ok
[INFO] [stdout] test server::runner::tests::quick_command_returns_finished_with_exit_code ... ok
[INFO] [stdout] test server::runner::tests::long_command_returns_running ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 198 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ai_pod-3b5ce60f2023926c)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::accepts_typical_top_level_names ... ok
[INFO] [stdout] test tests::rejects_hidden_dirs ... ok
[INFO] [stdout] test tests::rejects_empty_and_dots ... ok
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-d0a4f7cced17bfb6)
[INFO] [stdout] test tests::rejects_path_traversal_and_slashes ... ok
[INFO] [stdout] test tests::rejects_disallowed_characters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test e2e_container_workdir_is_app ... ok
[INFO] [stdout] test e2e_build_image ... ok
[INFO] [stdout] test e2e_container_default_user ... ok
[INFO] [stdout] test e2e_image_name_produces_valid_tag ... ok
[INFO] [stdout] test e2e_needs_build_false_after_build ... ok
[INFO] [stdout] test e2e_service_name_collision_within_session ... ok
[INFO] [stdout] test e2e_service_start_reach_cleanup ... ok
[INFO] [stdout] test e2e_service_stop_respects_parent_label ... ok
[INFO] [stdout] test e2e_volume_exists_lifecycle ... ok
[INFO] [stdout] test e2e_service_network_create_idempotent ... ok
[INFO] [stdout] test e2e_workspace_naming_works_with_runtime ... ok
[INFO] [stdout] test e2e_ensure_image_is_idempotent ... ok
[INFO] [stdout] test e2e_runtime_detect ... ok
[INFO] [stdout] test e2e_containers_for_prefix ... ok
[INFO] [stdout] test e2e_clean_container_removes_all ... ok
[INFO] [stdout] test e2e_server_reachable_from_container ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/rate_limit.rs (/opt/rustwide/target/debug/deps/rate_limit-3cfc67d9834aad43)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test rate_limit_returns_429_with_retry_after ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests ai_pod
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070", kill_on_drop: false }`
[INFO] [stdout] 7e14382a1a7a677412025b12f2b150e57b3f5d9f7474dccfa01e97d5849cb070
