[INFO] fetching crate starpod-core 0.3.1...
[INFO] testing starpod-core-0.3.1 against 1.95.0 for beta-1.96-2
[INFO] extracting crate starpod-core 0.3.1 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate starpod-core 0.3.1
[INFO] finished tweaking crates.io crate starpod-core 0.3.1
[INFO] tweaked toml for crates.io crate starpod-core 0.3.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate starpod-core 0.3.1 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate starpod-core 0.3.1 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 92601470f26dddfc5622f3f5a02a4641e8b9820e4220d88d97d471e8e494edf5
[INFO] running `Command { std: "docker" "start" "-a" "92601470f26dddfc5622f3f5a02a4641e8b9820e4220d88d97d471e8e494edf5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "92601470f26dddfc5622f3f5a02a4641e8b9820e4220d88d97d471e8e494edf5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "92601470f26dddfc5622f3f5a02a4641e8b9820e4220d88d97d471e8e494edf5", kill_on_drop: false }`
[INFO] [stdout] 92601470f26dddfc5622f3f5a02a4641e8b9820e4220d88d97d471e8e494edf5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7be001a0a3b1095dbf9ce2b1fec9817b8e1729deea4d5299ad38b620b96abca5
[INFO] running `Command { std: "docker" "start" "-a" "7be001a0a3b1095dbf9ce2b1fec9817b8e1729deea4d5299ad38b620b96abca5", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling starpod-core v0.3.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.04s
[INFO] running `Command { std: "docker" "inspect" "7be001a0a3b1095dbf9ce2b1fec9817b8e1729deea4d5299ad38b620b96abca5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7be001a0a3b1095dbf9ce2b1fec9817b8e1729deea4d5299ad38b620b96abca5", kill_on_drop: false }`
[INFO] [stdout] 7be001a0a3b1095dbf9ce2b1fec9817b8e1729deea4d5299ad38b620b96abca5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec382b1e209fe39a4d2d4bed822bd035818236e91845dd2003add970a065fdb7
[INFO] running `Command { std: "docker" "start" "-a" "ec382b1e209fe39a4d2d4bed822bd035818236e91845dd2003add970a065fdb7", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling starpod-core v0.3.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.05s
[INFO] running `Command { std: "docker" "inspect" "ec382b1e209fe39a4d2d4bed822bd035818236e91845dd2003add970a065fdb7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec382b1e209fe39a4d2d4bed822bd035818236e91845dd2003add970a065fdb7", kill_on_drop: false }`
[INFO] [stdout] ec382b1e209fe39a4d2d4bed822bd035818236e91845dd2003add970a065fdb7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 193db0e633b133f4a2a9d6a9ba7f757464880649854cb27b8e2e72b4a9c3b016
[INFO] running `Command { std: "docker" "start" "-a" "193db0e633b133f4a2a9d6a9ba7f757464880649854cb27b8e2e72b4a9c3b016", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/starpod_core-9de5deffa3deaf39)
[INFO] [stdout] 
[INFO] [stdout] running 248 tests
[INFO] [stdout] test config::tests::attachments_default_when_missing_from_toml ... ok
[INFO] [stdout] test config::tests::attachments_empty_extensions_allows_all ... ok
[INFO] [stdout] test config::tests::agent_name_from_toml ... ok
[INFO] [stdout] test config::tests::attachments_disabled_rejects_all ... ok
[INFO] [stdout] test config::tests::attachments_allowed_extensions_filter ... ok
[INFO] [stdout] test config::tests::attachments_default_allows_everything ... ok
[INFO] [stdout] test config::tests::attachments_from_toml_disabled ... ok
[INFO] [stdout] test config::tests::attachments_from_toml ... ok
[INFO] [stdout] test config::tests::attachments_max_file_size_enforced ... ok
[INFO] [stdout] test config::tests::channel_gap_minutes_default_when_telegram_missing ... ok
[INFO] [stdout] test config::tests::bedrock_provider_config_deserialization ... ok
[INFO] [stdout] test config::tests::agent_name_default ... ok
[INFO] [stdout] test config::tests::channel_gap_minutes_default_when_telegram_present ... ok
[INFO] [stdout] test config::tests::compaction_config_default_when_missing_from_toml ... ok
[INFO] [stdout] test config::tests::compaction_config_defaults ... ok
[INFO] [stdout] test config::tests::cron_config_default_when_missing_from_toml ... ok
[INFO] [stdout] test config::tests::cron_config_defaults ... ok
[INFO] [stdout] test config::tests::compaction_config_partial_from_toml ... ok
[INFO] [stdout] test config::tests::channel_gap_minutes_email_none_when_not_configured ... ok
[INFO] [stdout] test config::tests::cron_config_partial_from_toml ... ok
[INFO] [stdout] test config::tests::compaction_config_from_toml ... ok
[INFO] [stdout] test config::tests::cron_config_from_toml ... ok
[INFO] [stdout] test config::tests::channel_gap_minutes_custom_from_toml ... ok
[INFO] [stdout] test config::tests::compaction_memory_flush_from_toml ... ok
[INFO] [stdout] test config::tests::deep_merge_empty_overlay_preserves_base ... ok
[INFO] [stdout] test config::tests::deep_merge_instance_overrides_model_but_keeps_other_fields ... ok
[INFO] [stdout] test config::tests::email_channel_default_not_configured ... ok
[INFO] [stdout] test config::tests::default_model_from_default_config ... ok
[INFO] [stdout] test config::tests::email_and_telegram_channels_coexist ... ok
[INFO] [stdout] test config::tests::deep_merge_nested_tables ... ok
[INFO] [stdout] test config::tests::deep_merge_overlay_adds_new_keys ... ok
[INFO] [stdout] test config::tests::frontend_config_default ... ok
[INFO] [stdout] test config::tests::frontend_config_serializes_to_json ... ok
[INFO] [stdout] test config::tests::email_channel_enabled_and_gap_defaults ... ok
[INFO] [stdout] test config::tests::deep_merge_overlay_overrides_existing ... ok
[INFO] [stdout] test config::tests::email_channel_gap_minutes_convenience ... ok
[INFO] [stdout] test config::tests::internet_config_from_toml_defaults ... ok
[INFO] [stdout] test config::tests::internet_config_from_toml_full_override ... ok
[INFO] [stdout] test config::tests::email_channel_custom_gap_minutes ... ok
[INFO] [stdout] test config::tests::default_model_fallback_when_empty ... ok
[INFO] [stdout] test config::tests::deep_merge_overlay_replaces_scalar_with_table ... ok
[INFO] [stdout] test config::tests::internet_config_defaults ... ok
[INFO] [stdout] test config::tests::frontend_config_load_from_file ... ok
[INFO] [stdout] test config::tests::frontend_config_load_malformed_file ... ok
[INFO] [stdout] test config::tests::frontend_config_greeting_only ... ok
[INFO] [stdout] test config::tests::frontend_config_load_missing_file ... ok
[INFO] [stdout] test config::tests::default_model_returns_first_entry ... ok
[INFO] [stdout] test config::tests::frontend_config_full ... ok
[INFO] [stdout] test config::tests::max_tokens_default ... ok
[INFO] [stdout] test config::tests::internet_config_from_toml_partial_override ... ok
[INFO] [stdout] test config::tests::frontend_config_prompts_only ... ok
[INFO] [stdout] test config::tests::max_tokens_from_toml ... ok
[INFO] [stdout] test config::tests::memory_config_default_when_missing_from_toml ... ok
[INFO] [stdout] test config::tests::memory_auto_log_from_toml ... ok
[INFO] [stdout] test config::tests::models_default_when_absent ... ok
[INFO] [stdout] test config::tests::memory_config_defaults ... ok
[INFO] [stdout] test config::tests::memory_config_partial_from_toml ... ok
[INFO] [stdout] test config::tests::memory_auto_log_defaults_false ... ok
[INFO] [stdout] test config::tests::memory_config_from_toml ... ok
[INFO] [stdout] test config::tests::frontend_config_empty ... ok
[INFO] [stdout] test config::tests::models_from_toml_multiple ... ok
[INFO] [stdout] test config::tests::models_from_toml_single ... ok
[INFO] [stdout] test config::tests::nudge_config_serialization_round_trip ... ok
[INFO] [stdout] test config::tests::nudge_interval_defaults_to_10 ... ok
[INFO] [stdout] test config::tests::nudge_interval_from_toml ... ok
[INFO] [stdout] test config::tests::nudge_interval_defaults_when_missing_from_toml ... ok
[INFO] [stdout] test config::tests::nudge_interval_zero_disables ... ok
[INFO] [stdout] test config::tests::nudge_model_none_when_absent_from_toml ... ok
[INFO] [stdout] test config::tests::parse_model_spec_empty_parts ... ok
[INFO] [stdout] test config::tests::parse_model_spec_multiple_slashes ... ok
[INFO] [stdout] test config::tests::parse_model_spec_no_slash ... ok
[INFO] [stdout] test config::tests::provider_options_empty_by_default ... ok
[INFO] [stdout] test config::tests::parse_model_spec_valid ... ok
[INFO] [stdout] test config::tests::provider_options_empty_when_section_present_but_no_options ... ok
[INFO] [stdout] test config::tests::provider_options_parsed_from_toml ... ok
[INFO] [stdout] test config::tests::provider_options_bedrock_region ... ok
[INFO] [stdout] test config::tests::provider_options_unknown_provider_returns_empty ... ok
[INFO] [stdout] test config::tests::resolve_compaction_model_invalid_spec_falls_back ... ok
[INFO] [stdout] test config::tests::provider_options_per_provider_isolation ... ok
[INFO] [stdout] test config::tests::provider_options_vertex_project_and_region ... ok
[INFO] [stdout] test config::tests::resolve_compaction_model_none_falls_back_to_default ... ok
[INFO] [stdout] test config::tests::resolve_compaction_model_with_spec ... ok
[INFO] [stdout] test config::tests::resolve_model_none_returns_default ... ok
[INFO] [stdout] test config::tests::resolve_model_override_matches_default ... ok
[INFO] [stdout] test config::tests::resolve_model_valid_override ... ok
[INFO] [stdout] test config::tests::resolved_api_key_ignores_config_reads_env_only ... ok
[INFO] [stdout] test config::tests::resolve_model_override_not_in_list ... ok
[INFO] [stdout] test config::tests::resolved_provider_api_key_from_env ... ok
[INFO] [stdout] test config::tests::resolved_provider_api_key_bedrock_from_env ... ok
[INFO] [stdout] test config::tests::resolved_provider_api_key_ollama_returns_empty_string ... ok
[INFO] [stdout] test config::tests::resolved_provider_api_key_unknown_provider_returns_none ... ok
[INFO] [stdout] test config::tests::resolved_provider_api_key_vertex_from_env ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_bedrock_default ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_bedrock_config_override ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_config_override ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_defaults ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_unknown_returns_none ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_vertex_default ... ok
[INFO] [stdout] test config::tests::resolved_provider_base_url_vertex_config_override ... ok
[INFO] [stdout] test config::tests::resolved_telegram_token_reads_env_only ... ok
[INFO] [stdout] test config::tests::starpod_config_default_has_internet_enabled ... ok
[INFO] [stdout] test config::tests::test_export_sessions_defaults_true ... ok
[INFO] [stdout] test config::tests::test_channels_telegram_enabled_and_gap_defaults ... ok
[INFO] [stdout] test config::tests::test_channel_gap_minutes_convenience ... ok
[INFO] [stdout] test config::tests::test_telegram_default ... ok
[INFO] [stdout] test config::tests::test_resolved_api_key_env_only ... ok
[INFO] [stdout] test config::tests::timezone_from_toml ... ok
[INFO] [stdout] test config_migrate::tests::latest_config_version_is_positive ... ok
[INFO] [stdout] test config::tests::warn_credentials_in_toml_clean_config_no_panic ... ok
[INFO] [stdout] test config::tests::warn_credentials_in_toml_detects_bot_token ... ok
[INFO] [stdout] test config_migrate::tests::latest_config_version_matches_registry ... ok
[INFO] [stdout] test config::tests::test_export_sessions_from_toml ... ok
[INFO] [stdout] test config_migrate::tests::migrate_handles_future_config_version_gracefully ... ok
[INFO] [stdout] test config_migrate::tests::migrate_empty_file_treated_as_version_zero ... ok
[INFO] [stdout] test config_migrate::tests::migrations_are_in_ascending_order ... ok
[INFO] [stdout] test config_migrate::tests::migrate_already_current_is_noop ... ok
[INFO] [stdout] test config::tests::vertex_provider_config_deserialization ... ok
[INFO] [stdout] test config_migrate::tests::migrations_have_no_gaps ... ok
[INFO] [stdout] test config::tests::timezone_default_is_none ... ok
[INFO] [stdout] test config_migrate::tests::migrate_nonexistent_file_returns_false ... ok
[INFO] [stdout] test config_migrate::tests::migrate_invalid_toml_returns_error ... ok
[INFO] [stdout] test config::tests::warn_credentials_in_toml_detects_api_key ... ok
[INFO] [stdout] test config_migrate::tests::migrate_is_idempotent ... ok
[INFO] [stdout] test config_migrate::tests::migrations_start_at_one ... ok
[INFO] [stdout] test deploy_manifest::tests::test_generate_minimal ... ok
[INFO] [stdout] test deploy_manifest::tests::test_generate_and_write_first_run_no_existing ... ok
[INFO] [stdout] test config_migrate::tests::migrate_fresh_config_adds_version ... ok
[INFO] [stdout] test deploy_manifest::tests::test_bedrock_mixed_with_other_providers ... ok
[INFO] [stdout] test deploy_manifest::tests::test_bedrock_provider_generates_aws_credentials ... ok
[INFO] [stdout] test deploy_manifest::tests::test_bedrock_provider_no_duplicate_aws_keys ... ok
[INFO] [stdout] test deploy_manifest::tests::test_bedrock_toml_output_contains_aws_keys ... ok
[INFO] [stdout] test deploy_manifest::tests::test_empty_models_no_agent_secrets ... ok
[INFO] [stdout] test config_migrate::tests::migrate_config_version_zero_treated_as_unversioned ... ok
[INFO] [stdout] test deploy_manifest::tests::test_generate_with_skill_envs ... ok
[INFO] [stdout] test deploy_manifest::tests::test_generate_with_telegram ... ok
[INFO] [stdout] test config_migrate::tests::migrate_preserves_nested_tables ... ok
[INFO] [stdout] test deploy_manifest::tests::test_load_corrupt_file_returns_error ... ok
[INFO] [stdout] test config_migrate::tests::migrate_preserves_array_of_tables ... ok
[INFO] [stdout] test config::tests::starpod_config_includes_internet_section ... ok
[INFO] [stdout] test deploy_manifest::tests::test_local_provider_optional_api_key ... ok
[INFO] [stdout] test deploy_manifest::tests::test_load_nonexistent_returns_none ... ok
[INFO] [stdout] test deploy_manifest::tests::test_malformed_model_spec_no_slash ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_does_not_overwrite_unchanged_alias ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_keeps_user_added_agent_entries ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_new_skill_added ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_preserves_agent_secret_alias ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_preserves_alias_while_updating_required ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_preserves_secret_alias ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_preserves_user_added_agent_variable_default ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_preserves_variable_default_override ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_removes_deleted_skill ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_removes_deleted_skill_key ... ok
[INFO] [stdout] test deploy_manifest::tests::test_merge_with_empty_existing ... ok
[INFO] [stdout] test deploy_manifest::tests::test_multiple_providers ... ok
[INFO] [stdout] test deploy_manifest::tests::test_multiple_skills_sorted ... ok
[INFO] [stdout] test deploy_manifest::tests::test_secret_with_empty_description ... ok
[INFO] [stdout] test deploy_manifest::tests::test_skill_with_empty_env_omitted ... ok
[INFO] [stdout] test deploy_manifest::tests::test_to_toml_output ... ok
[INFO] [stdout] test deploy_manifest::tests::test_toml_roundtrip_parseable ... ok
[INFO] [stdout] test deploy_manifest::tests::test_variable_without_default ... ok
[INFO] [stdout] test deploy_manifest::tests::test_vertex_provider_generates_gcp_credentials ... ok
[INFO] [stdout] test config_migrate::tests::migrate_preserves_all_existing_fields ... ok
[INFO] [stdout] test deploy_manifest::tests::test_vertex_provider_no_duplicate_gcp_keys ... ok
[INFO] [stdout] test deploy_manifest::tests::test_vertex_toml_output_contains_gcp_keys ... ok
[INFO] [stdout] test deploy_manifest::tests::test_write_to_file ... ok
[INFO] [stdout] test deploy_manifest::tests::test_generate_and_write_merges ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_creates_skills_dir_even_without_workspace_skills ... ok
[INFO] [stdout] test deploy_manifest::tests::test_vertex_mixed_with_other_providers ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_env_at_root_not_config ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_creates_structure ... ok
[INFO] [stdout] test instance::tests::build_standalone_copies_lifecycle_files_from_blueprint ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_dev_env_not_copied ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_creates_home_dirs ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_no_env_files ... ok
[INFO] [stdout] test instance::tests::build_standalone_fails_if_starpod_exists_without_force ... ok
[INFO] [stdout] test instance::tests::build_standalone_copies_skills ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_dev_no_env_copied ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_preserves_home_files_on_reapply ... ok
[INFO] [stdout] test instance::tests::build_standalone_copies_env_file ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_refreshes_agent_toml ... ok
[INFO] [stdout] test instance::tests::build_standalone_fails_without_agent_toml ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_syncs_template_files ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_prod_env_not_copied ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_overwrites_blueprint_skills_preserves_agent_skills ... ok
[INFO] [stdout] test instance::tests::build_standalone_creates_home_dirs ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_config_is_loadable ... ok
[INFO] [stdout] test instance::tests::sync_files_skips_starpod_dir ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_cleanup_on_drop ... ok
[INFO] [stdout] test types::tests::attachment_is_image_detects_image_types ... ok
[INFO] [stdout] test instance::tests::build_standalone_overwrites_config_preserves_runtime ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_has_default_agent_name ... ok
[INFO] [stdout] test instance::tests::build_standalone_skills_merge_preserves_user_skills ... ok
[INFO] [stdout] test types::tests::attachment_is_image_rejects_non_images ... ok
[INFO] [stdout] test types::tests::chat_message_model_absent_defaults_to_none ... ok
[INFO] [stdout] test types::tests::chat_message_model_null_deserializes_as_none ... ok
[INFO] [stdout] test types::tests::attachment_raw_size_approximation ... ok
[INFO] [stdout] test types::tests::chat_message_with_attachments_roundtrips ... ok
[INFO] [stdout] test types::tests::chat_message_without_attachments_deserializes ... ok
[INFO] [stdout] test instance::tests::build_standalone_creates_structure ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_creates_valid_structure ... ok
[INFO] [stdout] test instance::tests::build_standalone_copies_deploy_toml ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_is_single_agent_mode ... ok
[INFO] [stdout] test instance::tests::build_standalone_with_missing_env_file_succeeds ... ok
[INFO] [stdout] test instance::tests::build_standalone_no_env_when_not_provided ... ok
[INFO] [stdout] test instance::tests::build_standalone_syncs_template_files ... ok
[INFO] [stdout] test instance::tests::ephemeral_instance_unique_per_call ... ok
[INFO] [stdout] test types::tests::max_attachment_size_is_20mb ... ok
[INFO] [stdout] test workspace::tests::agent_config_defaults_are_sane ... ok
[INFO] [stdout] test workspace::tests::agent_config_to_starpod_config_bridge ... ok
[INFO] [stdout] test workspace::tests::detect_old_starpod_dir_without_agent_toml ... ok
[INFO] [stdout] test instance::tests::apply_blueprint_copies_workspace_skills ... ok
[INFO] [stdout] test instance::tests::build_standalone_config_and_runtime_separation ... ok
[INFO] [stdout] test types::tests::chat_message_model_override_roundtrips ... ok
[INFO] [stdout] test workspace::tests::detect_no_project_errors ... ok
[INFO] [stdout] test workspace::tests::detect_mode_works_with_old_layout ... ok
[INFO] [stdout] test workspace::tests::detect_single_agent_mode ... ok
[INFO] [stdout] test workspace::tests::detect_mode_works_with_new_layout ... ok
[INFO] [stdout] test workspace::tests::agent_config_deserializes_skills_filter ... ok
[INFO] [stdout] test workspace::tests::infer_agent_name_not_in_agents ... ok
[INFO] [stdout] test workspace::tests::infer_agent_name_at_workspace_root ... ok
[INFO] [stdout] test workspace::tests::infer_agent_name_from_agents_subdir ... ok
[INFO] [stdout] test workspace::tests::detect_single_agent_walk_up_finds_nearest ... ok
[INFO] [stdout] test workspace::tests::load_single_agent_config ... ok
[INFO] [stdout] test workspace::tests::reload_agent_config_returns_updated_values ... ok
[INFO] [stdout] test workspace::tests::load_env_loads_instance_env ... ok
[INFO] [stdout] test workspace::tests::detect_single_agent_walks_up_directories ... ok
[INFO] [stdout] test workspace::tests::load_config_with_legacy_api_key_still_parses ... ok
[INFO] [stdout] test workspace::tests::load_workspace_config_no_agent_toml_errors ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_workspace_no_blueprint_errors ... ok
[INFO] [stdout] test workspace::tests::load_single_agent_missing_file_errors ... ok
[INFO] [stdout] test workspace::tests::single_agent_takes_priority_over_workspace ... ok
[INFO] [stdout] test workspace::tests::load_env_user_overrides_instance ... ok
[INFO] [stdout] test workspace::tests::load_workspace_config_self_contained ... ok
[INFO] [stdout] test workspace::tests::workspace_config_all_optional ... ok
[INFO] [stdout] test workspace::tests::workspace_config_parses_partial ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_workspace_auto_applies_blueprint ... ok
[INFO] [stdout] test workspace::tests::env_file_resolved_at_starpod_root_not_config ... ok
[INFO] [stdout] test workspace::tests::instance_env_overrides_workspace_env ... ok
[INFO] [stdout] test workspace::tests::instance_config_loads_workspace_env ... ok
[INFO] [stdout] test workspace::tests::load_instance_config ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_single_agent ... ok
[INFO] [stdout] test workspace::tests::user_context_paths ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_instance ... ok
[INFO] [stdout] test workspace::tests::load_single_agent_name_from_agent_name ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_workspace_with_instance_new_layout ... ok
[INFO] [stdout] test workspace::tests::resolved_paths_workspace_with_instance_old_layout ... ok
[INFO] [stdout] test workspace::tests::load_env_file_in_workspace ... ok
[INFO] [stdout] test workspace::tests::load_workspace_config_with_legacy_credentials_still_parses ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 248 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests starpod_core
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/config_migrate.rs - config_migrate (line 19) ... ignored
[INFO] [stdout] test src/workspace.rs - workspace (line 41) - compile ... ok
[INFO] [stdout] test src/config.rs - config::parse_model_spec (line 782) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "193db0e633b133f4a2a9d6a9ba7f757464880649854cb27b8e2e72b4a9c3b016", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "193db0e633b133f4a2a9d6a9ba7f757464880649854cb27b8e2e72b4a9c3b016", kill_on_drop: false }`
[INFO] [stdout] 193db0e633b133f4a2a9d6a9ba7f757464880649854cb27b8e2e72b4a9c3b016
