[INFO] fetching crate cratefield-core 0.8.4...
[INFO] testing cratefield-core-0.8.4 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cratefield-core 0.8.4 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate cratefield-core 0.8.4
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate cratefield-core 0.8.4
[INFO] tweaked toml for crates.io crate cratefield-core 0.8.4 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate cratefield-core 0.8.4 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cratefield-core 0.8.4 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ulid v3.0.0
[INFO] [stderr]   Downloaded pollster-macro v0.4.0
[INFO] [stderr]   Downloaded inherent v1.0.14
[INFO] [stderr]   Downloaded tower-http v0.7.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f
[INFO] running `Command { std: "docker" "start" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", 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" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", 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" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling smallvec v1.16.0
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling ref-cast v1.0.27
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling tinyvec v1.13.2
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling tower-http v0.7.1
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling sha1 v0.11.0
[INFO] [stderr]    Compiling hmac v0.13.0
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling ulid v3.0.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling ref-cast-impl v1.0.27
[INFO] [stderr]    Compiling inherent v1.0.14
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling sea-query v0.32.7
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling cratefield-core v0.8.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", 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" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling ulid v3.0.0
[INFO] [stderr]    Compiling tower-http v0.7.1
[INFO] [stderr]    Compiling console v0.16.4
[INFO] [stderr]    Compiling pollster-macro v0.4.0
[INFO] [stderr]    Compiling pollster v0.4.0
[INFO] [stderr]    Compiling cratefield-core v0.8.4 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling insta v1.48.0
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", 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" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/cratefield_core-5dcec5f13094505d)
[INFO] [stdout] 
[INFO] [stdout] running 415 tests
[INFO] [stdout] test api_key::tests::parse_accepts_the_documented_shape ... ok
[INFO] [stdout] test admin::tests::constant_time_eq_matches_and_rejects ... ok
[INFO] [stdout] test billing::money::tests::charge_amounts_lowercases_an_uppercase_currency ... ok
[INFO] [stdout] test admin::tests::missing_header_is_unauthorized ... ok
[INFO] [stdout] test billing::money::tests::exponent_unknown_codes_are_none ... ok
[INFO] [stdout] test billing::money::tests::ledger_entry_holds_minor_units ... ok
[INFO] [stdout] test admin::tests::empty_bearer_is_unauthorized ... ok
[INFO] [stdout] test billing::money::tests::charge_amounts_from_percentages_matches_revenuecat_sample ... ok
[INFO] [stdout] test billing::money::tests::exponent_known_codes ... ok
[INFO] [stdout] test billing::money::tests::charge_amounts_saturate_rather_than_wrap ... ok
[INFO] [stdout] test admin::tests::wrong_token_is_forbidden ... ok
[INFO] [stdout] test billing::money::tests::exponent_table_is_sorted_and_free_of_duplicates ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_i64_boundary ... ok
[INFO] [stdout] test billing::money::tests::charge_amounts_ignore_non_finite_percentages ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_nan_is_error ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_unknown_currency_is_error ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_negative_kwd_rounds_away_from_zero ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_infinite_is_error ... ok
[INFO] [stdout] test api_key::tests::parse_rejects_every_malformed_shape ... ok
[INFO] [stdout] test billing::money::tests::exponent_zero_decimal_currencies ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_negative_usd ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_usd ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_out_of_i64_range_is_error ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_zero_exponent_jpy ... ok
[INFO] [stdout] test billing::money::tests::major_to_minor_three_exponent_kwd_rounds_half_away_from_zero ... ok
[INFO] [stdout] test billing::state::tests::a_refund_applies_before_or_after_a_renewal ... ok
[INFO] [stdout] test billing::state::tests::cancel_during_trial_keeps_access_to_the_period_end ... ok
[INFO] [stdout] test billing::state::tests::a_revoked_state_never_grants_access ... ok
[INFO] [stdout] test billing::state::tests::billing_issues_follow_the_grace_and_the_policy ... ok
[INFO] [stdout] test billing::state::tests::product_change_and_activation_touch_pending_product ... ok
[INFO] [stdout] test billing::money::tests::exponent_clf_is_four ... ok
[INFO] [stdout] test billing::money::tests::exponent_three_and_four_decimal_currencies ... ok
[INFO] [stdout] test billing::money::tests::charge_amounts_round_half_away_from_zero ... ok
[INFO] [stdout] test billing::state::tests::trial_start_and_conversion ... ok
[INFO] [stdout] test cost::tests::a_published_price_maps_one_to_one_and_displays_every_pico_usd ... ok
[INFO] [stdout] test cost::tests::tokens_are_estimated_from_the_truncated_state_the_questions_and_the_answers ... ok
[INFO] [stdout] test billing::state::tests::disputes_revoke_on_loss_and_restore_on_a_win ... ok
[INFO] [stdout] test cost::tests::an_unpriced_adapter_is_unknown_and_a_free_one_is_zero ... ok
[INFO] [stdout] test cost::tests::totals_separate_unpriced_from_failed_and_do_not_saturate_at_one_calls_ceiling ... ok
[INFO] [stdout] test csv::tests::plain_fields_pass_through ... ok
[INFO] [stdout] test classifier_agreement::tests::agreement_is_defined_per_answer_shape ... ok
[INFO] [stdout] test classifier_agreement::tests::margin_counts_unreported_mass_as_the_runner_up ... ok
[INFO] [stdout] test billing::state::tests::the_policy_knobs_move_the_outcome ... ok
[INFO] [stdout] test admin::tests::unset_token_disables_admin ... ok
[INFO] [stdout] test admin::tests::correct_token_passes ... ok
[INFO] [stdout] test classifier_routing::tests::a_bare_noul_probability_escalates_on_its_unreported_complement ... ok
[INFO] [stdout] test classifier_agreement::tests::evidence_is_graded_sliced_by_thresholds_and_unmeasured_is_not_zero ... ok
[INFO] [stdout] test csv::tests::formula_guard_applies_before_quoting ... ok
[INFO] [stdout] test billing::state::tests::a_stale_renewal_after_an_expiration_is_ignored ... ok
[INFO] [stdout] test email::tests::rejects_over_long_addresses ... ok
[INFO] [stdout] test email::tests::rejects_the_obvious ... ok
[INFO] [stdout] test harness::acceptance_recording::the_waiver_is_recorded_once_and_only_when_it_waived ... ok
[INFO] [stdout] test email::tests::accepts_plain_addresses ... ok
[INFO] [stdout] test harness::acceptance_recording::nothing_is_recorded_when_the_port_was_fine_all_along ... ok
[INFO] [stdout] test csv::tests::quoting_doubles_embedded_quotes ... ok
[INFO] [stdout] test csv::tests::row_joins_and_terminates ... ok
[INFO] [stdout] test http::tests::a_body_that_never_arrives_is_a_400_not_a_413 ... ok
[INFO] [stdout] test email::tests::normalize_trims_folds_and_nfcs ... ok
[INFO] [stdout] test cooldown::tests::create_table_sql_is_portable_ddl ... ok
[INFO] [stdout] test http::tests::a_form_body_that_never_arrives_is_a_400_not_a_413 ... ok
[INFO] [stdout] test http::tests::a_pause_becomes_retry_after_and_nothing_else ... ok
[INFO] [stdout] test http::tests::an_answerless_decision_is_a_bare_429 ... ok
[INFO] [stdout] test harness::acceptance_recording::a_refusing_deployment_records_no_acceptance_at_all ... ok
[INFO] [stdout] test http::tests::an_exhausted_allowance_carries_its_meter_limit_used_and_period_end ... ok
[INFO] [stdout] test harness::acceptance_recording::a_non_payments_signature_venture_boots_on_its_webhook_secret_alone ... ok
[INFO] [stdout] test http::tests::a_quota_rides_the_ratelimit_headers ... ok
[INFO] [stdout] test billing::state::tests::the_table_holds_for_every_status_and_kind ... ok
[INFO] [stdout] test http::tests::an_exhausted_allowance_is_a_429_with_a_retry_after ... ok
[INFO] [stdout] test idempotency::tests::create_table_sql_is_portable_ddl ... ok
[INFO] [stdout] test idempotency::tests::claim_renders_insert_on_conflict_do_nothing ... ok
[INFO] [stdout] test csv::tests::formula_leading_cells_are_prefixed ... ok
[INFO] [stdout] test http::tests::the_quotas_reset_backfills_a_missing_retry_after ... ok
[INFO] [stdout] test lint::created_tables_tests::a_create_table_in_a_comment_or_a_string_is_not_ddl ... ok
[INFO] [stdout] test lint::created_tables_tests::a_plain_create_is_found ... ok
[INFO] [stdout] test lint::created_tables_tests::every_create_in_one_set_is_found_in_order ... ok
[INFO] [stdout] test lint::created_tables_tests::the_rebuild_pattern_leaves_one_table ... ok
[INFO] [stdout] test lint::card_data_tests::a_card_number_column_is_flagged ... ok
[INFO] [stdout] test lint::created_tables_tests::a_renamed_column_does_not_rename_the_table ... ok
[INFO] [stdout] test idempotency::tests::claim_statement_renders_bare_insert_without_on_conflict ... ok
[INFO] [stdout] test lint::created_tables_tests::truncated_or_malformed_sql_does_not_panic ... ok
[INFO] [stdout] test lint::created_tables_tests::a_table_created_and_dropped_is_not_left_behind ... ok
[INFO] [stdout] test lint::tests::every_banned_token_is_flagged ... ok
[INFO] [stdout] test lint::card_data_tests::card_data_only_in_a_comment_or_string_is_not_flagged ... ok
[INFO] [stdout] test lint::created_tables_tests::a_temporary_table_is_not_the_modules_table ... ok
[INFO] [stdout] test lint::tests::clean_portable_sql_passes ... ok
[INFO] [stdout] test lint::tests::a_string_literal_is_data_not_ddl ... ok
[INFO] [stdout] test lint::tests::an_unterminated_comment_or_literal_does_not_panic ... ok
[INFO] [stdout] test lint::created_tables_tests::an_index_view_or_trigger_is_not_a_table ... ok
[INFO] [stdout] test lint::tests::a_block_comment_is_not_ddl_and_may_nest ... ok
[INFO] [stdout] test lint::tests::matching_is_case_insensitive ... ok
[INFO] [stdout] test lint::tests::a_double_quoted_identifier_is_still_ddl ... ok
[INFO] [stdout] test logging::forwarder_tests::control_events_reach_the_sink_prefixed_with_their_level ... ok
[INFO] [stdout] test logging::forwarder_tests::forwarding_without_a_sink_is_a_noop ... ok
[INFO] [stdout] test lint::tests::now_without_parens_is_not_flagged ... ok
[INFO] [stdout] test classifier_agreement::tests::a_non_finite_confidence_is_absent_and_the_report_round_trips ... ok
[INFO] [stdout] test lint::card_data_tests::ambiguous_words_do_not_false_positive ... ok
[INFO] [stdout] test lint::created_tables_tests::the_same_table_twice_is_reported_once ... ok
[INFO] [stdout] test logging::tests::scrub_text_drops_query_strings_from_urls_and_paths ... ok
[INFO] [stdout] test lint::tests::prose_in_a_comment_is_not_ddl ... ok
[INFO] [stdout] test logging::tests::scrub_request_url_keeps_the_port_and_never_the_userinfo ... ok
[INFO] [stdout] test lint::tests::stripping_comments_does_not_hide_real_ddl ... ok
[INFO] [stdout] test logging::forwarder_tests::an_installed_forwarder_receives_the_line ... ok
[INFO] [stdout] test logging::tests::scrub_request_url_ignores_anything_that_is_not_an_absolute_url ... ok
[INFO] [stdout] test logging::tests::pseudonym_hex_without_a_key_is_constant_and_not_a_bare_digest ... ok
[INFO] [stdout] test logging::forwarder_tests::the_internal_error_still_scrubs_and_now_carries_the_error_prefix ... ok
[INFO] [stdout] test logging::tests::non_email_values_in_email_fields_pass_through ... ok
[INFO] [stdout] test lint::created_tables_tests::a_name_the_scan_cannot_read_is_returned_rather_than_dropped ... ok
[INFO] [stdout] test logging::tests::pseudonym_hex_with_a_key_is_the_input_sensitive_hmac_form ... ok
[INFO] [stdout] test logging::tests::scrub_request_url_removes_a_credential_path_scrub_text_cannot_see ... ok
[INFO] [stdout] test logging::tests::scrub_request_url_leaves_a_root_target_alone ... ok
[INFO] [stdout] test logging::tests::secret_names_are_detected_case_insensitively ... ok
[INFO] [stdout] test logging::tests::scrub_text_pseudonymises_emails_inside_generic_values ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_pem_private_key_blocks ... ok
[INFO] [stdout] test logging::tests::subject_hash_without_a_key_is_the_fixed_placeholder ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_sigv4_credentials ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_signed_tokens_wherever_they_appear ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_url_credentials ... ok
[INFO] [stdout] test logging::tests::scrub_text_leaves_ordinary_log_values_alone ... ok
[INFO] [stdout] test module::reconciliation_guard_tests::a_migration_is_transactional_unless_marked_otherwise ... ok
[INFO] [stdout] test module::reconciliation_guard_tests::guarded_ddl_is_idempotent_plain_ddl_is_not ... ok
[INFO] [stdout] test logging::tests::visitor_rules_match_redacted_value ... ok
[INFO] [stdout] test logging::tests::scrub_text_leaves_github_prefix_lookalikes_alone ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_bearer_credentials ... ok
[INFO] [stdout] test logging::tests::scrub_text_redacts_every_github_token_shape ... ok
[INFO] [stdout] test origin::tests::a_relative_url_is_not_an_origin ... ok
[INFO] [stdout] test origin::tests::a_non_default_port_stays_and_a_default_one_goes ... ok
[INFO] [stdout] test module::reconciliation_guard_tests::the_missing_guard_message_names_the_migration_and_the_rule ... ok
[INFO] [stdout] test origin::tests::a_scheme_that_is_not_http_is_refused ... ok
[INFO] [stdout] test outbox::tests::enqueue_statement_inserts_the_row ... ok
[INFO] [stdout] test origin::tests::the_host_is_lowercased_and_punycoded ... ok
[INFO] [stdout] test ports::actor::tests::a_failing_alarm_commits_nothing ... ok
[INFO] [stdout] test ports::actor::tests::an_alarm_is_cancelled_unless_re_armed ... ok
[INFO] [stdout] test origin::tests::an_ordinary_url_keeps_its_origin_and_loses_everything_else ... ok
[INFO] [stdout] test origin::tests::userinfo_never_reaches_the_output ... ok
[INFO] [stdout] test ports::actor::tests::a_handler_error_commits_nothing ... ok
[INFO] [stdout] test outbox::tests::enqueue_statement_without_a_subject_binds_null ... ok
[INFO] [stdout] test ports::actor::tests::a_call_without_a_clock_reaches_the_host_with_no_timeout ... ok
[INFO] [stdout] test ports::actor::tests::a_successful_message_commits_its_writes ... ok
[INFO] [stdout] test ports::actor::tests::a_handler_sees_its_own_staged_writes ... ok
[INFO] [stdout] test ports::actor::tests::a_scoped_actors_refuses_an_undeclared_kind_before_the_host ... ok
[INFO] [stdout] test outbox::tests::create_table_sql_is_portable_ddl ... ok
[INFO] [stdout] test logging::tests::scrub_text_is_idempotent ... ok
[INFO] [stdout] test ports::actor::tests::an_oversized_reply_commits_nothing ... ok
[INFO] [stdout] test ports::actor::tests::delete_all_drops_staged_writes ... ok
[INFO] [stdout] test ports::actor::tests::kind_and_key_validation ... ok
[INFO] [stdout] test ports::blob::tests::a_scoped_blob_prefixes_both_presign_keys ... ok
[INFO] [stdout] test ports::blob::tests::limit_stream_refuses_the_crossing_chunk_and_fuses ... ok
[INFO] [stdout] test ports::blob::tests::an_oversized_put_is_refused_before_the_store_is_reached ... ok
[INFO] [stdout] test ports::actor::tests::an_oversized_put_is_refused ... ok
[INFO] [stdout] test origin::tests::an_opaque_origin_is_refused_rather_than_named ... ok
[INFO] [stdout] test ports::actor::tests::a_message_at_the_bound_passes_and_one_over_is_refused ... ok
[INFO] [stdout] test ports::blob::tests::a_scoped_blob_refuses_a_presign_ttl_outside_the_bound ... ok
[INFO] [stdout] test ports::blob::tests::check_part_number_bounds_the_one_based_range ... ok
[INFO] [stdout] test logging::tests::scrub_text_handles_a_very_long_line_of_begin_markers ... ok
[INFO] [stdout] test ports::blob::tests::a_scoped_blob_prefixes_the_key ... ok
[INFO] [stdout] test ports::blob::tests::a_scoped_blob_refuses_an_escaping_presign_key_before_the_store ... ok
[INFO] [stdout] test ports::blob::tests::a_scoped_blob_refuses_an_escaping_key ... ok
[INFO] [stdout] test ports::blob::tests::delete_is_idempotent ... ok
[INFO] [stdout] test ports::blob::tests::list_strips_the_prefix_and_hides_other_modules ... ok
[INFO] [stdout] test ports::actor::tests::an_oversized_reply_is_refused ... ok
[INFO] [stdout] test ports::classifier::tests::a_score_with_one_level_is_rejected ... ok
[INFO] [stdout] test ports::classifier::tests::a_zero_limit_keeps_nothing_but_stays_on_a_boundary ... ok
[INFO] [stdout] test ports::blob::tests::the_ceiling_defaults_to_the_small_bound_and_clamps_to_the_large_one ... ok
[INFO] [stdout] test ports::classifier::tests::display_sanitizes_the_provider_text ... ok
[INFO] [stdout] test ports::classifier::tests::truncate_is_a_no_op_under_the_limit ... ok
[INFO] [stdout] test ports::classifier::tests::truncate_never_splits_a_multi_byte_char ... ok
[INFO] [stdout] test ports::classifier::tests::a_good_set_is_accepted ... ok
[INFO] [stdout] test ports::classifier::tests::answer_conveniences_pick_confidence_from_the_probabilities ... ok
[INFO] [stdout] test ports::classifier::tests::an_absent_label_yields_zero_confidence ... ok
[INFO] [stdout] test ports::blob::tests::put_stream_uses_the_smaller_of_the_call_and_the_ceiling ... ok
[INFO] [stdout] test ports::classifier::tests::a_question_names_its_shape_and_labels ... ok
[INFO] [stdout] test ports::classifier::tests::blank_instructions_are_rejected ... ok
[INFO] [stdout] test ports::classifier::tests::an_empty_set_is_rejected ... ok
[INFO] [stdout] test ports::classifier::tests::a_choice_with_one_criterion_is_rejected ... ok
[INFO] [stdout] test ports::classifier::tests::a_calibration_names_itself_and_round_trips_through_json ... ok
[INFO] [stdout] test ports::classifier::tests::a_blank_id_is_rejected ... ok
[INFO] [stdout] test ports::blob::tests::the_default_signed_put_url_is_unsupported ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::display_never_leaks_a_bearer_token ... ok
[INFO] [stdout] test ports::database::tests::display_sanitizes_the_driver_message ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::the_deployments_own_zone_is_refused ... ok
[INFO] [stdout] test ports::classifier::tests::with_model_records_the_reporting_version_and_defaults_to_none ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::a_name_is_normalised_and_accepted ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::a_wildcard_is_refused ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::an_apex_is_refused ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::addresses_are_refused ... ok
[INFO] [stdout] test ports::classifier::tests::not_configured_names_the_missing_wiring_and_carries_no_back_off ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::a_name_over_253_characters_is_refused ... ok
[INFO] [stdout] test ports::classifier::tests::transient_says_retryable_and_carries_no_text_to_scrub ... ok
[INFO] [stdout] test ports::custom_hostnames::tests::malformed_names_are_refused ... ok
[INFO] [stdout] test ports::classifier::tests::truncate_trims_deterministically_over_the_limit ... ok
[INFO] [stdout] test ports::http::tests::an_oversized_response_body_is_refused ... ok
[INFO] [stdout] test ports::inbound_mail::tests::receive_mail_refuses_a_bad_signature_without_parsing ... ok
[INFO] [stdout] test ports::payments::tests::new_optional_methods_default_without_breaking_an_adapter ... ok
[INFO] [stdout] test ports::http::tests::a_policy_clamps_to_the_port_ceilings ... ok
[INFO] [stdout] test ports::mailer::tests::a_domain_that_is_an_address_is_still_scrubbed ... ok
[INFO] [stdout] test ports::payments::tests::subscription_status_round_trips_stripe_spellings ... ok
[INFO] [stdout] test ports::mailer::tests::display_sanitizes_the_provider_text ... ok
[INFO] [stdout] test ports::http::tests::an_abandoned_send_is_a_deadline_not_a_hang ... ok
[INFO] [stdout] test ports::push::retry_after_tests::the_delta_seconds_form_is_read ... ok
[INFO] [stdout] test ports::push::retry_after_tests::an_absent_or_unparseable_header_states_no_delay ... ok
[INFO] [stdout] test ports::inbound_mail::tests::a_verified_body_that_does_not_parse_is_malformed ... ok
[INFO] [stdout] test ports::push::tests::a_recipient_inside_a_struct_is_redacted_too ... ok
[INFO] [stdout] test ports::payments::tests::dispute_phases_and_keys ... ok
[INFO] [stdout] test ports::push::retry_after_tests::a_date_already_past_means_retry_now_not_no_delay ... ok
[INFO] [stdout] test ports::push::tests::an_unsupported_recipient_names_the_transport ... ok
[INFO] [stdout] test ports::payments::tests::hourly_identifier_names_the_utc_hour ... ok
[INFO] [stdout] test ports::push::retry_after_tests::an_http_date_parses_and_a_nonsense_one_does_not ... ok
[INFO] [stdout] test ports::push::retry_after_tests::the_http_date_form_is_read_too ... ok
[INFO] [stdout] test ports::push::tests::a_full_notification_round_trips_and_ttl_is_seconds ... ok
[INFO] [stdout] test ports::push::tests::a_notification_from_the_pre_recipient_wire_form_still_parses ... ok
[INFO] [stdout] test ports::push::tests::debug_prints_no_credential_material ... ok
[INFO] [stdout] test ports::push::tests::display_sanitizes_the_provider_text ... ok
[INFO] [stdout] test ports::push::tests::platform_is_a_transport_fact ... ok
[INFO] [stdout] test ports::push::tests::the_recipient_tag_is_the_transport_name ... ok
[INFO] [stdout] test ports::push::tests::the_router_dispatches_by_variant ... ok
[INFO] [stdout] test ports::text_model::tests::a_completion_starts_with_text_and_model_and_builds_up ... ok
[INFO] [stdout] test ports::text_model::tests::a_completion_starts_without_tool_calls_and_builds_them_up ... ok
[INFO] [stdout] test ports::text_model::tests::a_tier_with_no_adapter_is_not_configured_not_rejected ... ok
[INFO] [stdout] test ports::text_model::tests::a_parts_turn_carries_its_parts_in_order_and_a_text_turn_carries_none ... ok
[INFO] [stdout] test ports::text_model::tests::a_capability_names_itself_for_logs_and_errors ... ok
[INFO] [stdout] test ports::push::tests::a_minimal_notification_serialises_to_title_body_data_priority ... ok
[INFO] [stdout] test ports::push::tests::an_empty_router_is_not_configured_for_every_transport ... ok
[INFO] [stdout] test ports::text_model::tests::a_prompt_without_tools_reaches_a_plain_model_as_before ... ok
[INFO] [stdout] test ports::push::tests::transient_carries_an_optional_retry_after ... ok
[INFO] [stdout] test ports::text_model::tests::a_tool_spec_carries_its_name_description_and_schema ... ok
[INFO] [stdout] test ports::push::tests::a_sub_second_ttl_rounds_up_and_never_becomes_drop_now ... ok
[INFO] [stdout] test ports::text_model::tests::a_prompt_starts_empty_and_builds_up ... ok
[INFO] [stdout] test ports::text_model::tests::an_empty_router_is_not_configured_for_every_tier ... ok
[INFO] [stdout] test ports::text_model::tests::cached_input_tokens_defaults_to_absent_and_never_shrinks_the_total ... ok
[INFO] [stdout] test ports::text_model::tests::a_prompt_starts_without_tools_and_builds_them_up ... ok
[INFO] [stdout] test ports::text_model::tests::a_tier_and_a_role_round_trip_through_json ... ok
[INFO] [stdout] test ports::text_model::tests::encode_image_is_standard_padded_base64_and_encoded_image_len_predicts_it ... ok
[INFO] [stdout] test ports::text_model::tests::the_default_capability_answer_is_no ... ok
[INFO] [stdout] test ports::text_model::tests::the_image_limit_error_is_displayed_without_any_user_content ... ok
[INFO] [stdout] test ports::text_model::tests::the_router_answers_a_capability_per_tier_and_false_when_unwired ... ok
[INFO] [stdout] test ports::text_model::tests::images_to_a_tier_that_cannot_carry_them_are_refused_before_the_call ... ok
[INFO] [stdout] test ports::text_model::tests::a_tool_call_and_result_round_trip_their_fields ... ok
[INFO] [stdout] test ports::text_model::tests::a_turn_can_quote_tool_calls_and_carry_results_back ... ok
[INFO] [stdout] test ports::text_model::tests::the_router_dispatches_by_tier ... ok
[INFO] [stdout] test ports::text_model::tests::not_configured_names_the_missing_wiring ... ok
[INFO] [stdout] test ports::text_model::tests::display_sanitizes_the_provider_text ... ok
[INFO] [stdout] test ports::text_model::tests::debug_prints_which_tiers_are_wired_and_nothing_else ... ok
[INFO] [stdout] test ports::text_model::tests::the_tier_names_itself_for_logs_and_errors ... ok
[INFO] [stdout] test ports::text_model::tests::an_image_media_type_names_its_wire_mime ... ok
[INFO] [stdout] test ports::tracker::tests::a_destination_round_trips_through_json ... ok
[INFO] [stdout] test ports::tracker::tests::a_draft_builds_through_the_chaining_setters ... ok
[INFO] [stdout] test ports::tracker::tests::a_minimal_draft_has_no_labels_or_environment ... ok
[INFO] [stdout] test ports::tracker::tests::a_wired_router_forwards_comment_and_an_empty_slot_refuses ... ok
[INFO] [stdout] test ports::tracker::tests::a_wired_slot_reaches_its_adapter_and_the_rest_stay_not_configured ... ok
[INFO] [stdout] test ports::tracker::tests::an_empty_router_is_not_configured_for_every_destination ... ok
[INFO] [stdout] test ports::tracker::tests::an_unauthorized_credential_is_distinct_from_a_rejected_ticket ... ok
[INFO] [stdout] test ports::tracker::tests::an_unsupported_destination_names_the_kind ... ok
[INFO] [stdout] test ports::tracker::tests::display_sanitizes_the_rejection_text ... ok
[INFO] [stdout] test ports::tracker::tests::a_colonizer_destination_round_trips_and_prints_its_repo ... ok
[INFO] [stdout] test ports::text_model::tests::transient_says_retryable_and_carries_no_text_to_scrub ... ok
[INFO] [stdout] test ports::text_model::tests::the_wire_form_is_snake_case ... ok
[INFO] [stdout] test ports::tracker::tests::receive_status_parses_a_verified_state_change ... ok
[INFO] [stdout] test ports::tracker::tests::every_destination_kind_names_itself ... ok
[INFO] [stdout] test ports::tracker::tests::every_destination_dispatches_to_the_adapter_wired_for_its_slot ... ok
[INFO] [stdout] test ports::text_model::tests::an_unsupported_capability_names_what_is_missing_and_never_backs_off ... ok
[INFO] [stdout] test ports::tracker::tests::receive_status_maps_a_verified_but_unreadable_body_to_malformed ... ok
[INFO] [stdout] test ports::tracker::tests::severity_names_are_snake_case_on_the_wire_and_in_display ... ok
[INFO] [stdout] test ports::text_model::tests::the_structured_output_failures_name_themselves_and_never_back_off ... ok
[INFO] [stdout] test ports::text_model::tests::tools_to_a_capable_tier_pass_through_untouched ... ok
[INFO] [stdout] test ports::tracker::tests::receive_status_refuses_a_bad_signature_without_parsing ... ok
[INFO] [stdout] test ports::text_model::tests::check_images_holds_each_bound_as_a_ceiling ... ok
[INFO] [stdout] test ports::tracker::tests::the_webhook_debug_prints_no_url ... ok
[INFO] [stdout] test ports::tracker::tests::the_credential_exposes_its_text_once_wrapped ... ok
[INFO] [stdout] test ports::tracker::tests::the_transient_display_states_the_delay_where_one_was_given ... ok
[INFO] [stdout] test ports::tracker::tests::the_credential_debug_prints_nothing_but_redacted ... ok
[INFO] [stdout] test ports::tracker::tests::the_other_destinations_debug_print_their_routing_fields ... ok
[INFO] [stdout] test ports::tracker::tests::the_default_comment_impl_refuses_by_name ... ok
[INFO] [stdout] test ports::tracker::tests::the_router_debug_prints_only_wiring_not_adapters ... ok
[INFO] [stdout] test rate_limit::tests::a_denied_key_carries_its_quota_whole ... ok
[INFO] [stdout] test rate_limit::tests::a_denied_key_carries_its_retry_after ... ok
[INFO] [stdout] test rate_limit::tests::all_keys_passing_allows ... ok
[INFO] [stdout] test rate_limit::tests::keys_are_ip_then_normalized_email ... ok
[INFO] [stdout] test rate_limit::tests::missing_ip_falls_back_to_unknown ... ok
[INFO] [stdout] test ports::tracker::tests::transient_carries_an_optional_retry_after ... ok
[INFO] [stdout] test ports::vector_index::tests::namespaces_are_one_to_max_namespace_bytes ... ok
[INFO] [stdout] test ports::vector_index::tests::error_display_scrubs_provider_text ... ok
[INFO] [stdout] test ports::vector_index::tests::malformed_vectors_and_metadata_are_invalid_input ... ok
[INFO] [stdout] test rate_limit::tests::native_honors_forwarded_for_first_hop ... ok
[INFO] [stdout] test rate_limit::tests::no_limiter_is_a_composition_choice_not_a_failure ... ok
[INFO] [stdout] test rate_limit::tests::prefers_cf_connecting_ip ... ok
[INFO] [stdout] test route_policy::tests::a_declared_limiter_over_public_reads_needs_one_resolved ... ok
[INFO] [stdout] test rate_limit::tests::transport_errors_resolve_at_the_call_site ... ok
[INFO] [stdout] test route_policy::tests::a_declared_limiter_error_names_each_module_and_its_routes ... ok
[INFO] [stdout] test route_policy::tests::a_declared_policy_on_an_action_still_wins_over_the_fallback ... ok
[INFO] [stdout] test route_policy::tests::admin_and_public_writes_are_recorded_on_the_guards ... ok
[INFO] [stdout] test route_policy::tests::an_api_key_policy_serializes_as_api_key_and_guards ... ok
[INFO] [stdout] test route_policy::tests::an_api_key_writer_demands_no_captcha_and_no_port ... ok
[INFO] [stdout] test route_policy::tests::an_hmac_signature_writer_needs_no_payments_and_names_its_secret_key ... ok
[INFO] [stdout] test route_policy::tests::development_venture_needs_nothing ... ok
[INFO] [stdout] test route_policy::tests::a_signed_link_writer_still_has_a_production_requirement_of_its_own ... ok
[INFO] [stdout] test route_policy::tests::a_production_venture_needs_a_resolved_rate_limiter ... ok
[INFO] [stdout] test route_policy::tests::a_mixed_venture_gates_payments_only_for_the_module_that_names_it ... ok
[INFO] [stdout] test route_policy::tests::a_module_with_only_admin_routes_still_needs_the_limiter ... ok
[INFO] [stdout] test route_policy::tests::a_surface_less_writer_declares_what_actually_guards_it ... ok
[INFO] [stdout] test route_policy::tests::a_production_venture_needs_a_resolved_signer ... ok
[INFO] [stdout] test route_policy::tests::a_two_verifier_module_composes_and_gates_each_verifier_by_route ... ok
[INFO] [stdout] test route_policy::tests::absent_port_refuses_production_and_allows_lower_envs ... ok
[INFO] [stdout] test route_policy::tests::from_surface_honours_a_route_verifier_on_an_in_process_surface ... ok
[INFO] [stdout] test route_policy::tests::signature_action_never_requires_captcha ... ok
[INFO] [stdout] test route_policy::tests::legacy_captcha_flag_alias_still_guards ... ok
[INFO] [stdout] test route_policy::tests::the_deployment_environment_is_the_stricter_of_the_two ... ok
[INFO] [stdout] test route_policy::tests::undeclared_public_writer_falls_back_to_captcha ... ok
[INFO] [stdout] test scheduled::tests::an_unbounded_budget_never_refuses_or_exhausts ... ok
[INFO] [stdout] test scheduled::tests::an_unspent_share_rolls_forward_to_the_later_modules ... ok
[INFO] [stdout] test scheduled::tests::expiry_is_the_deadline_and_exhaustion_is_either_bound ... ok
[INFO] [stdout] test scheduled::tests::settled_spending_shrinks_the_later_shares ... ok
[INFO] [stdout] test scheduled::tests::the_wall_split_never_schedules_past_the_end ... ok
[INFO] [stdout] test route_policy::tests::human_form_action_requires_captcha ... ok
[INFO] [stdout] test scheduled::tests::try_spend_spends_only_what_fits ... ok
[INFO] [stdout] test scheduled::tests::unbounded_limits_give_unbounded_budgets ... ok
[INFO] [stdout] test route_policy::tests::guarded_surface_does_not_need_the_fallback ... ok
[INFO] [stdout] test route_policy::tests::the_webhook_secret_gate_is_production_only ... ok
[INFO] [stdout] test route_policy::tests::verified_tokens_pass_in_every_environment ... ok
[INFO] [stdout] test sigv4::tests::s3_key_path_and_debug_redaction ... ok
[INFO] [stdout] test route_policy::tests::refused_missing_or_unreachable_verifications_fail_closed ... ok
[INFO] [stdout] test route_policy::tests::the_undeclared_limiter_error_keeps_its_own_message ... ok
[INFO] [stdout] test route_policy::tests::production_without_runtime_refuses_captcha_writes ... ok
[INFO] [stdout] test sigv4::tests::presign_round_trips_and_refuses_tampering_or_wrong_scope ... ok
[INFO] [stdout] test route_policy::tests::production_signature_without_payments_refuses ... ok
[INFO] [stdout] test stream::tests::a_transport_error_is_mapped_not_swallowed ... ok
[INFO] [stdout] test stream::tests::all_response_chunks_reach_the_body ... ok
[INFO] [stdout] test structured_output::tests::a_fenced_reply_is_unwrapped ... ok
[INFO] [stdout] test stream::tests::the_crossing_chunk_is_refused_and_the_stream_fuses ... ok
[INFO] [stdout] test surface::tests::document_omits_modules_without_a_surface ... ok
[INFO] [stdout] test stream::tests::an_empty_stream_ends_at_once ... ok
[INFO] [stdout] test sigv4::tests::published_vectors ... ok
[INFO] [stdout] test stream::tests::take_after_the_body_was_consumed_answers_none ... ok
[INFO] [stdout] test stream::tests::a_body_exactly_at_the_ceiling_is_allowed ... ok
[INFO] [stdout] test sigv4::tests::verify_refuses_expiry_and_malformed_urls ... ok
[INFO] [stdout] test stream::tests::take_first_leaves_the_axum_body_empty ... ok
[INFO] [stdout] test surface::tests::hint_field_sets_a_keyword_and_ignores_unknown_fields ... ok
[INFO] [stdout] test surface::tests::only_a_signature_action_may_name_a_verifier ... ok
[INFO] [stdout] test surface::tests::an_api_key_action_refuses_a_captcha_and_hides_from_the_public_surface ... ok
[INFO] [stdout] test structured_output::tests::a_repair_names_the_reason_and_asks_for_only_json ... ok
[INFO] [stdout] test surface::tests::schema_carries_hints_and_is_inlined ... ok
[INFO] [stdout] test surface::tests::public_subset_drops_admin_actions_and_their_views ... ok
[INFO] [stdout] test surface::tests::every_validation_rule_names_the_module_and_action ... ok
[INFO] [stdout] test surface::tests::rendered_surface_etag_is_stable_and_differs_per_variant ... ok
[INFO] [stdout] test tenant::tests::a_retired_tenant_is_never_flown_by_the_fleet ... ok
[INFO] [stdout] test tenant::tests::a_tenant_being_shredded_is_not_revived_by_a_reconciliation ... ok
[INFO] [stdout] test tenant::tests::a_status_this_binary_does_not_know_is_refused_not_guessed ... ok
[INFO] [stdout] test tenant::tests::a_status_written_twice_is_not_a_failure ... ok
[INFO] [stdout] test tenant::tests::a_tenant_never_goes_back_to_provisioning ... ok
[INFO] [stdout] test tenant::tests::a_tenant_abandoned_before_it_served_still_has_keys_to_shred ... ok
[INFO] [stdout] test tenant::tests::a_terminal_status_never_serves_and_is_never_reconciled ... ok
[INFO] [stdout] test tenant::tests::an_unknown_host_is_a_404_not_a_503 ... ok
[INFO] [stdout] test tenant::tests::an_unknown_status_reads_as_degraded ... ok
[INFO] [stdout] test surface::tests::valid_surface_has_no_errors ... ok
[INFO] [stdout] test tenant::tests::archived_is_the_only_terminal_status ... ok
[INFO] [stdout] test tenant::tests::a_retired_tenant_is_indistinguishable_from_one_that_never_existed ... ok
[INFO] [stdout] test tenant::tests::a_status_the_fleet_flies_is_one_a_reconciliation_can_write ... ok
[INFO] [stdout] test ports::blob::tests::a_put_at_exactly_the_bound_is_accepted ... ok
[INFO] [stdout] test tenant::tests::archiving_records_a_shred_that_happened ... ok
[INFO] [stdout] test tenant::tests::nothing_leaves_archived_including_a_write_of_archived ... ok
[INFO] [stdout] test tenant::tests::every_status_round_trips_through_the_registry_text ... ok
[INFO] [stdout] test tenant::tests::only_an_active_tenant_is_admitted ... ok
[INFO] [stdout] test tenant::tests::only_active_serves ... ok
[INFO] [stdout] test tenant_lifecycle::tests::every_revival_out_of_offboarding_is_a_typed_refusal ... ok
[INFO] [stdout] test tenant_lifecycle::tests::nothing_leaves_archived_through_the_port ... ok
[INFO] [stdout] test tenant::tests::the_rule_reads_the_same_from_both_ends ... ok
[INFO] [stdout] test tenant::tests::provisioning_is_refused_like_degraded_and_not_like_unknown ... ok
[INFO] [stdout] test tenant_lifecycle::tests::the_remaining_erasure_of_a_status_is_its_runbook_position ... ok
[INFO] [stdout] test tool_loop::tests::a_known_schema_is_accepted_and_an_unknown_keyword_is_named ... ok
[INFO] [stdout] test tenant_lifecycle::tests::a_backend_message_is_scrubbed_on_its_way_out ... ok
[INFO] [stdout] test tenant_lifecycle::tests::an_absent_tenant_is_unknown_not_backend ... ok
[INFO] [stdout] test tenant_lifecycle::tests::a_tenant_walks_the_whole_lifecycle_through_the_port ... ok
[INFO] [stdout] test tool_loop::tests::annotations_are_ignored_but_a_malformed_known_keyword_is_refused ... ok
[INFO] [stdout] test tenant::tests::serializes_as_the_registry_text_not_the_variant_name ... ok
[INFO] [stdout] test tenant::tests::the_implicit_tenant_answers_for_every_host ... ok
[INFO] [stdout] test tenant_lifecycle::tests::a_listing_through_the_port_never_carries_a_dsn ... ok
[INFO] [stdout] test tool_loop::tests::combinators_are_enforced ... ok
[INFO] [stdout] test tool_loop::tests::a_nested_unknown_keyword_is_reached ... ok
[INFO] [stdout] test tool_loop::tests::instance_validation_covers_types_bounds_and_objects ... ok
[INFO] [stdout] test tool_loop::tests::const_and_enum_are_enforced ... ok
[INFO] [stdout] test ports::http::tests::an_oversized_declared_length_is_refused_before_the_body_counts ... ok
[INFO] [stdout] test ports::inbound_mail::tests::receive_mail_parses_a_verified_message ... ok
[INFO] [stdout] test ports::push::tests::a_recipient_round_trips_through_json ... ok
[INFO] [stdout] test ports::push::tests::a_transport_with_no_adapter_is_not_configured_not_rejected ... ok
[INFO] [stdout] test ports::text_model::tests::tools_to_a_tier_that_cannot_carry_them_are_refused_before_the_call ... ok
[INFO] [stdout] test ports::text_model::tests::transient_carries_an_optional_retry_after ... ok
[INFO] [stdout] test venture::tests::at_least_one_cors_origin ... ok
[INFO] [stdout] test usage::tests::a_period_index_outside_the_calendar_clamps_instead_of_panicking ... ok
[INFO] [stdout] test usage::tests::anchored_periods_clamp_the_day_to_the_target_month ... ok
[INFO] [stdout] test venture::tests::malformed_chrome_extension_ids_are_rejected ... ok
[INFO] [stdout] test venture::tests::malformed_extension_uuids_are_rejected ... ok
[INFO] [stdout] test venture::tests::browser_extension_origins_are_accepted ... ok
[INFO] [stdout] test venture::tests::domain_must_be_non_empty ... ok
[INFO] [stdout] test venture::tests::other_hyphenated_schemes_and_nulls_are_rejected ... ok
[INFO] [stdout] test venture::tests::wildcard_origin_rejected ... ok
[INFO] [stdout] test venture::tests::valid_venture_has_no_errors ... ok
[INFO] [stdout] test usage::tests::an_anchor_spanning_more_months_than_a_calendar_holds_does_not_panic ... ok
[INFO] [stdout] test webhook_signature::tests::a_stripe_delivery_verifies_and_malformed_ones_refuse ... ok
[INFO] [stdout] test webhook_signature::tests::a_delivery_outside_the_tolerance_is_refused ... ok
[INFO] [stdout] test webhook_signature::tests::a_tampered_delivery_or_wrong_secret_refuses_but_a_rotation_matches ... ok
[INFO] [stdout] test webhook_signature::tests::a_provider_scheme_verifies_raw_and_timestamped_deliveries ... ok
[INFO] [stdout] test webhook_signature::tests::a_gitlab_shared_token_verifies_and_ignores_the_body ... ok
[INFO] [stdout] test webhook_signature::tests::a_github_delivery_verifies ... ok
[INFO] [stdout] test webhook_signature::tests::an_svix_delivery_verifies ... ok
[INFO] [stdout] test webhook_signature::tests::hmac_sha1_matches_the_rfc_2202_vector ... ok
[INFO] [stdout] test webhook_signature::tests::a_vercel_delivery_verifies_and_tampered_ones_refuse ... ok
[INFO] [stdout] test webhook_signature::tests::unreadable_github_input_refuses ... ok
[INFO] [stdout] test webhook_signature::tests::unreadable_svix_input_refuses ... ok
[INFO] [stdout] test webhook_signature::tests::a_tampered_github_delivery_or_wrong_secret_refuses ... ok
[INFO] [stdout] test webhook_signature::tests::wrong_or_unreadable_gitlab_tokens_refuse ... ok
[INFO] [stdout] test webhook_signature::tests::unreadable_vercel_input_refuses ... ok
[INFO] [stdout] test usage::tests::create_table_sql_is_portable_ddl ... ok
[INFO] [stdout] test usage::tests::index_and_window_are_inverses ... ok
[INFO] [stdout] test usage::tests::the_statement_shapes_bind_seven_or_four_values ... ok
[INFO] [stdout] test venture::tests::name_must_be_kebab_case ... ok
[INFO] [stdout] test usage::tests::calendar_and_day_windows_are_utc ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 415 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cratefield_core
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test src/api_key.rs - api_key (line 17) ... ignored
[INFO] [stdout] test src/api_key.rs - api_key::RandomBytes (line 114) ... ignored
[INFO] [stdout] test src/cooldown.rs - cooldown (line 12) ... ignored
[INFO] [stdout] test src/idempotency.rs - idempotency (line 17) ... ignored
[INFO] [stdout] test src/scheduled.rs - scheduled::ScheduledBudget::try_spend (line 88) ... ignored
[INFO] [stdout] test src/sigv4.rs - sigv4::s3_key_path (line 98) ... ok
[INFO] [stdout] test src/venture.rs - venture::Venture (line 78) ... ok
[INFO] [stdout] test src/venture.rs - venture::Venture::problem_type_base (line 148) ... ok
[INFO] [stdout] test src/config.rs - config::ModuleConfig (line 80) ... ok
[INFO] [stdout] test src/personal_data.rs - personal_data (line 19) ... ok
[INFO] [stdout] test src/webhook_signature.rs - webhook_signature::WebhookVerifier::new (line 156) ... ok
[INFO] [stdout] test src/lint.rs - lint::created_tables (line 196) ... ok
[INFO] [stdout] test src/tenant_conn.rs - tenant_conn::TenantConn (line 53) ... ok
[INFO] [stdout] test src/personal_data.rs - personal_data::undeclared_tables (line 644) ... ok
[INFO] [stdout] test src/module.rs - module::assert_migration_set (line 101) ... ok
[INFO] [stdout] test src/logging.rs - logging::scrub_request_url (line 285) ... ok
[INFO] [stdout] test src/personal_data.rs - personal_data::unlisted_tables (line 739) ... ok
[INFO] [stdout] test src/ports/tracker.rs - ports::tracker::Credential (line 188) ... ok
[INFO] [stdout] test src/tenant.rs - tenant::TenantId (line 183) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/module.rs - module::assert_migration_set (line 124) - compile fail ... ok
[INFO] [stdout] test src/tenant.rs - tenant::Tenant (line 218) - compile fail ... ok
[INFO] [stdout] test src/module.rs - module::assert_migration_set (line 133) - compile fail ... ok
[INFO] [stdout] test src/module.rs - module::assert_migration_set (line 112) - compile fail ... ok
[INFO] [stdout] test src/tenant_conn.rs - tenant_conn::TenantConn (line 42) - compile fail ... ok
[INFO] [stdout] test src/tenant.rs - tenant::TenantId (line 175) - compile fail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.25s; merged doctests compilation took 0.93s
[INFO] running `Command { std: "docker" "inspect" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f", kill_on_drop: false }`
[INFO] [stdout] 0daf4314da6f05e8ea8fc2da970cf463bbeea06bd8510cbf0ed3c902285f6d8f
