[INFO] cloning repository https://github.com/awazonable/quotamiser
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/awazonable/quotamiser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fawazonable%2Fquotamiser", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fawazonable%2Fquotamiser'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e3ec4a3595f0ccd65f68ad74f211e944f9c2ba7b
[INFO] testing awazonable/quotamiser against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fawazonable%2Fquotamiser" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/awazonable/quotamiser
[INFO] finished tweaking git repo https://github.com/awazonable/quotamiser
[INFO] tweaked toml for git repo https://github.com/awazonable/quotamiser written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/awazonable/quotamiser 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 git repo https://github.com/awazonable/quotamiser 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]  Downloading crates ...
[INFO] [stderr]   Downloaded rustls v0.23.44
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14
[INFO] running `Command { std: "docker" "start" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", 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" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14" "/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" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", 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" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling smallvec v1.16.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.12
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling aws-lc-rs v1.18.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling rustls v0.23.44
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling ipnet v2.12.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling encoding_rs v0.8.41
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling hashlink v0.12.2
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling cc v1.4.5
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling libsqlite3-sys v0.38.2
[INFO] [stderr]    Compiling aws-lc-sys v0.45.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling multiversion-macros v0.9.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling multiversion v0.9.0
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling quotamiser-admission v0.1.0 (/opt/rustwide/workdir/crates/admission)
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling quotamiser-protocol v0.1.0 (/opt/rustwide/workdir/crates/protocol)
[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 tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.5
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling rusqlite v0.40.2
[INFO] [stderr]    Compiling quotamiser-ledger v0.1.0 (/opt/rustwide/workdir/crates/ledger)
[INFO] [stderr]    Compiling quotamiser-proxy v0.1.0 (/opt/rustwide/workdir/crates/proxy)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4m 04s
[INFO] running `Command { std: "docker" "inspect" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", 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" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14" "/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 bitflags v2.13.2
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.5.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rusqlite v0.40.2
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling reqwest v0.13.5
[INFO] [stderr]    Compiling quotamiser-ledger v0.1.0 (/opt/rustwide/workdir/crates/ledger)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling quotamiser-proxy v0.1.0 (/opt/rustwide/workdir/crates/proxy)
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling quotamiser-protocol v0.1.0 (/opt/rustwide/workdir/crates/protocol)
[INFO] [stderr]    Compiling quotamiser-admission v0.1.0 (/opt/rustwide/workdir/crates/admission)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 26s
[INFO] running `Command { std: "docker" "inspect" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", 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" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14" "/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.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/quotamiser_admission-b73f54767511887c)
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test liability::tests::bytes_not_characters ... ok
[INFO] [stdout] test epoch::tests::several_missed_days_roll_over_to_the_latest_opened_day ... ok
[INFO] [stdout] test liability::tests::overflow_is_an_error_not_a_wrap ... ok
[INFO] [stdout] test liability::tests::synchronous_short_flat_text_may_use_the_utf8_byte_bound ... ok
[INFO] [stdout] test epoch::tests::stays_closed_through_the_opening_delay ... ok
[INFO] [stdout] test epoch::tests::without_fresh_trusted_time_nothing_is_open ... ok
[INFO] [stdout] test liability::tests::instructions_are_counted_as_a_second_node ... ok
[INFO] [stdout] test epoch::tests::never_spends_across_the_reset_and_never_opens_early ... ok
[INFO] [stdout] test liability::tests::output_bound_follows_the_cap_but_never_exceeds_the_model ... ok
[INFO] [stdout] test epoch::tests::unsafe_policies_are_refused ... ok
[INFO] [stdout] test liability::tests::flat_text_is_bytes_plus_framing_plus_output ... ok
[INFO] [stdout] test epoch::tests::closes_before_the_boundary_by_the_reading_uncertainty ... ok
[INFO] [stdout] test epoch::tests::mid_day_is_open ... ok
[INFO] [stdout] test liability::tests::structure_or_an_unknown_encoding_needs_an_exact_count ... ok
[INFO] [stdout] test liability::tests::synchronous_byte_bound_falls_back_for_long_or_structured_input ... ok
[INFO] [stdout] test liability::tests::fast_path_dominates_worst_case_byte_level_tokenization ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/quotamiser_ledger-b115d4bfbbd4fbca)
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test lock::tests::identity_is_not_confused_by_sanitisation ... ok
[INFO] [stdout] test lock::tests::different_pools_do_not_contend ... ok
[INFO] [stdout] test hwm::tests::missing_record_reads_as_none ... ok
[INFO] [stdout] test model_tests::an_external_record_on_the_ledger_volume_is_refused ... ok
[INFO] [stdout] test lock::tests::a_second_holder_is_refused_until_the_first_is_dropped ... ok
[INFO] [stdout] test hwm::tests::round_trips ... ok
[INFO] [stdout] test hwm::tests::a_corrupted_record_is_an_error_not_absence ... ok
[INFO] [stdout] test requests::tests::a_failed_request_still_spends_its_slot ... ok
[INFO] [stdout] test model_tests::an_untrusted_ledger_admits_nothing ... ok
[INFO] [stdout] test schema::tests::network_paths_are_refused ... ok
[INFO] [stdout] test state::tests::a_possibly_sent_request_is_never_released_without_evidence ... ok
[INFO] [stdout] test state::tests::a_rejection_before_processing_is_only_recorded_while_dispatching ... ok
[INFO] [stdout] test state::tests::id_unknown_cannot_settle ... ok
[INFO] [stdout] test state::tests::names_round_trip ... ok
[INFO] [stdout] test state::tests::terminal_states_allow_nothing ... ok
[INFO] [stdout] test trust::tests::a_fresh_ledger_is_uninitialized_not_trusted ... ok
[INFO] [stdout] test trust::tests::a_gap_that_does_not_match_the_named_row_is_rollback ... ok
[INFO] [stdout] test trust::tests::a_lost_ledger_with_a_surviving_external_record_is_rollback ... ok
[INFO] [stdout] test trust::tests::a_ledger_restored_from_an_older_snapshot_is_detected ... ok
[INFO] [stdout] test trust::tests::agreement_without_a_clean_shutdown_is_not_trust ... ok
[INFO] [stdout] test trust::tests::clean_and_consistent_is_the_only_trusted_shape ... ok
[INFO] [stdout] test requests::tests::old_window_entries_are_pruned ... ok
[INFO] [stdout] test trust::tests::one_uncommitted_dispatch_is_promoted_not_released ... ok
[INFO] [stdout] test trust::tests::an_external_record_behind_the_ledger_is_never_trusted ... ok
[INFO] [stdout] test requests::tests::slots_are_taken_until_the_day_is_spent ... ok
[INFO] [stdout] test model_tests::an_expired_or_backdated_safety_input_refuses ... ok
[INFO] [stdout] test model_tests::the_liability_not_an_estimate_controls_inventory ... ok
[INFO] [stdout] test model_tests::the_safety_budget_is_debited_not_merely_checked ... ok
[INFO] [stdout] test requests::tests::each_epoch_counts_separately ... ok
[INFO] [stdout] test requests::tests::the_short_window_holds_requests_back_without_spending_them ... ok
[INFO] [stdout] test model_tests::a_second_ledger_for_the_same_pools_is_refused ... ok
[INFO] [stdout] test model_tests::an_overrun_is_recorded_as_reported_and_latches_the_model ... ok
[INFO] [stdout] test model_tests::untrustworthy_usage_is_written_off_and_latches_the_pool ... ok
[INFO] [stdout] test requests::tests::the_window_survives_reopening_the_ledger ... ok
[INFO] [stdout] test model_tests::rollover_reserves_the_carried_liability_in_the_new_epoch ... ok
[INFO] [stdout] test model_tests::a_restored_snapshot_is_detected_as_rollback ... ok
[INFO] [stdout] test model_tests::upstream_liability_never_exceeds_the_grant ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/quotamiser_protocol-d665c78d08bb7569)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.18s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 60 tests
[INFO] [stdout] test error_body::tests::a_usage_limit_carries_the_reset_time ... ok
[INFO] [stdout] test error_body::tests::a_refusal_names_the_parameter_and_code ... ok
[INFO] [stdout] test request::tests::a_bounded_body_can_disable_background_without_disabling_storage ... ok
[INFO] [stdout] test error_body::tests::the_shape_matches_openai ... ok
[INFO] [stdout] test request::tests::an_openclaw_request_is_accepted_and_normalized ... ok
[INFO] [stdout] test request::tests::a_request_without_additional_tools_is_counted_once ... ok
[INFO] [stdout] test request::tests::a_count_body_for_hoisted_tools_drops_a_named_tool_choice ... ok
[INFO] [stdout] test request::tests::a_codex_lite_request_is_accepted_and_normalized ... ok
[INFO] [stdout] test request::tests::a_rejection_becomes_an_openai_error_body ... ok
[INFO] [stdout] test request::tests::a_structured_output_is_visible_to_the_router ... ok
[INFO] [stdout] test request::tests::an_output_schema_is_part_of_the_counted_input ... ok
[INFO] [stdout] test request::tests::a_reasoning_item_must_carry_its_encrypted_content ... ok
[INFO] [stdout] test request::tests::an_output_schema_travels_to_openrouter ... ok
[INFO] [stdout] test request::tests::hosted_tools_are_refused_with_guidance ... ok
[INFO] [stdout] test request::tests::enumerated_values_outside_the_list_are_refused ... ok
[INFO] [stdout] test request::tests::namespaces_hold_only_function_and_custom_tools ... ok
[INFO] [stdout] test request::tests::codex_builtin_provider_fields_point_at_the_fix ... ok
[INFO] [stdout] test request::tests::duplicate_keys_are_refused_at_any_depth ... ok
[INFO] [stdout] test request::tests::only_inline_images_are_accepted ... ok
[INFO] [stdout] test request::tests::client_background_mode_is_refused_but_false_is_absent ... ok
[INFO] [stdout] test request::tests::normalizing_twice_changes_nothing ... ok
[INFO] [stdout] test request::tests::malformed_json_is_refused ... ok
[INFO] [stdout] test request::tests::model_and_input_are_required ... ok
[INFO] [stdout] test request::tests::server_side_state_is_refused_but_null_is_absent ... ok
[INFO] [stdout] test request::tests::unlisted_fields_are_refused_wherever_they_appear ... ok
[INFO] [stdout] test responses::tests::a_retrieved_response_object_is_read ... ok
[INFO] [stdout] test responses::tests::a_second_response_id_fails_the_observer ... ok
[INFO] [stdout] test responses::tests::an_event_name_that_disagrees_with_its_type_is_malformed ... ok
[INFO] [stdout] test responses::tests::an_incomplete_response_is_terminal ... ok
[INFO] [stdout] test responses::tests::disagreeing_terminal_events_fail_the_observer ... ok
[INFO] [stdout] test responses::tests::a_framing_failure_fails_the_observer ... ok
[INFO] [stdout] test request::tests::the_flat_form_excludes_anything_that_adds_input ... ok
[INFO] [stdout] test responses::tests::events_split_across_packets_are_still_observed ... ok
[INFO] [stdout] test request::tests::tool_usage_finds_every_shape_wherever_it_is_declared ... ok
[INFO] [stdout] test request::tests::field_order_is_kept_and_the_fixed_fields_come_last ... ok
[INFO] [stdout] test responses::tests::non_lifecycle_events_are_not_parsed ... ok
[INFO] [stdout] test responses::tests::the_id_and_the_final_usage_are_observed ... ok
[INFO] [stdout] test responses::tests::usage_that_is_not_integers_reads_as_absent ... ok
[INFO] [stdout] test request::tests::history_from_unaccepted_tools_is_refused ... ok
[INFO] [stdout] test request::tests::streaming_is_required ... ok
[INFO] [stdout] test request::tests::the_count_bodies_cover_additional_tools_a_second_time ... ok
[INFO] [stdout] test sse::tests::comments_are_ignored ... ok
[INFO] [stdout] test responses::tests::an_error_event_is_reported ... ok
[INFO] [stdout] test sse::tests::invalid_utf8_fails_permanently_but_keeps_earlier_events ... ok
[INFO] [stdout] test sse::tests::mixed_terminators_do_not_stall_the_parser ... ok
[INFO] [stdout] test sse::tests::cr_only_terminated_events_are_parsed ... ok
[INFO] [stdout] test sse::tests::event_names_and_multiline_data ... ok
[INFO] [stdout] test sse::tests::crlf_terminated_events_are_parsed ... ok
[INFO] [stdout] test request::tests::the_openrouter_body_leaves_out_what_openai_alone_needs ... ok
[INFO] [stdout] test sse::tests::a_lone_cr_split_across_packets_stays_buffered ... ok
[INFO] [stdout] test sse::tests::an_event_without_data_is_not_dispatched ... ok
[INFO] [stdout] test sse::tests::the_mid_event_boundary_is_tracked ... ok
[INFO] [stdout] test sse::tests::only_one_leading_space_is_stripped ... ok
[INFO] [stdout] test sse::tests::events_split_across_packets_mid_utf8 ... ok
[INFO] [stdout] test request::tests::unknown_top_level_fields_are_refused ... ok
[INFO] [stdout] test sse::tests::crlf_split_across_packets_terminates_exactly_once ... ok
[INFO] [stdout] test responses::tests::an_unreadable_lifecycle_event_fails_the_observer ... ok
[INFO] [stdout] test request::tests::unknown_message_fields_are_refused ... ok
[INFO] [stdout] test sse::tests::garbage_without_newlines_does_not_grow_the_buffer ... ok
[INFO] [stdout] test sse::tests::an_unterminated_event_trips_the_cap_and_stays_failed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 60 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/quotamiser_proxy-ed8a558616e180a8)
[INFO] [stdout] 
[INFO] [stdout] running 88 tests
[INFO] [stdout] test config::tests::a_non_loopback_bind_is_refused ... ok
[INFO] [stdout] test config::tests::a_model_must_name_a_configured_pool ... ok
[INFO] [stdout] test config::tests::an_enabled_route_with_no_models_is_refused ... ok
[INFO] [stdout] test config::tests::a_missing_credential_stops_startup ... ok
[INFO] [stdout] test config::tests::an_unknown_key_stops_startup ... ok
[INFO] [stdout] test admission::tests::the_digest_binds_the_body ... ok
[INFO] [stdout] test config::tests::duplicates_are_refused ... ok
[INFO] [stdout] test config::tests::a_token_pool_may_not_take_the_request_counters_name ... ok
[INFO] [stdout] test config::tests::lan_configuration_resolves_only_with_independent_credentials ... ok
[INFO] [stdout] test config::tests::synchronous_output_threshold_is_configurable ... ok
[INFO] [stdout] test config::tests::the_openrouter_route_resolves_with_its_measured_capabilities ... ok
[INFO] [stdout] test config::tests::an_absent_or_disabled_openrouter_route_resolves_to_none ... ok
[INFO] [stdout] test config::tests::the_sample_resolves ... ok
[INFO] [stdout] test clock::tests::a_garbled_date_is_refused ... ok
[INFO] [stdout] test clock::tests::the_provider_date_header_is_the_reading ... ok
[INFO] [stdout] test clock::tests::an_unsuccessful_answer_is_not_a_time_source ... ok
[INFO] [stdout] test admission::tests::an_uncountable_input_is_refused_rather_than_estimated ... ok
[INFO] [stdout] test admission::tests::a_closed_window_reserves_nothing ... ok
[INFO] [stdout] test admission::tests::a_liability_over_the_remaining_grant_is_refused_by_the_ledger ... ok
[INFO] [stdout] test admission::tests::an_unknown_model_is_refused_before_anything_is_counted ... ok
[INFO] [stdout] test admission::tests::a_flat_request_is_reserved_from_the_structural_bound_without_counting ... ok
[INFO] [stdout] test failure_breaker::tests::a_completion_resets_the_cooldown ... ok
[INFO] [stdout] test failure_breaker::tests::a_completion_between_failures_keeps_it_closed ... ok
[INFO] [stdout] test failure_breaker::tests::failures_while_open_do_not_extend_it ... ok
[INFO] [stdout] test failure_breaker::tests::failing_again_after_the_cooldown_reopens_it_for_longer ... ok
[INFO] [stdout] test failure_breaker::tests::it_opens_at_the_threshold ... ok
[INFO] [stdout] test lan::tests::broken_body_is_a_bad_request_without_leaking_transport_details ... ok
[INFO] [stdout] test lan::tests::configuration_fails_closed_and_private_ranges_do_not_span_public_addresses ... ok
[INFO] [stdout] test lan::tests::authorized_models_and_responses_accept_ipv4_ipv6_and_mapped_peers ... ok
[INFO] [stdout] test lan::tests::oversized_authenticated_body_never_reaches_handler ... ok
[INFO] [stdout] test lan::tests::denials_never_read_the_body_or_reach_a_handler ... ok
[INFO] [stdout] test dispatch::tests::a_bad_request_is_returned_and_the_reservation_released ... ok
[INFO] [stdout] test lan::tests::streaming_holds_request_permit_until_end_or_disconnect ... ok
[INFO] [stdout] test admission::tests::a_structured_request_reserves_the_sum_of_every_counted_body ... ok
[INFO] [stdout] test dispatch::tests::a_bounded_synchronous_disconnect_writes_off_without_retrieval ... ok
[INFO] [stdout] test dispatch::tests::a_disconnect_after_the_id_cancels_upstream ... ok
[INFO] [stdout] test openrouter::tests::a_structured_output_needs_a_model_that_does_them ... ok
[INFO] [stdout] test openrouter::tests::a_request_carrying_custom_tools_has_no_model_to_go_to ... ok
[INFO] [stdout] test admission::tests::the_output_cap_selects_the_low_latency_dispatch_mode ... ok
[INFO] [stdout] test lan::tests::slow_authenticated_body_times_out_before_handler ... ok
[INFO] [stdout] test dispatch::tests::a_completed_stream_is_relayed_and_settled ... ok
[INFO] [stdout] test openrouter::tests::the_first_model_that_covers_the_shape_is_chosen ... ok
[INFO] [stdout] test openrouter::tests::credits_on_the_account_close_the_route ... ok
[INFO] [stdout] test openrouter::tests::a_zero_balance_free_tier_account_is_safe ... ok
[INFO] [stdout] test lan::tests::transport_rejects_slow_headers_and_http2_and_stops_cleanly ... ok
[INFO] [stdout] test openrouter::tests::leaving_the_free_tier_closes_the_route ... ok
[INFO] [stdout] test openrouter::tests::a_plain_http_base_url_is_refused_unless_it_is_loopback ... ok
[INFO] [stdout] test rate_limit::tests::a_rate_limit_closes_the_gate_until_the_longest_reset ... ok
[INFO] [stdout] test rate_limit::tests::a_rate_limit_without_timing_closes_for_the_minimum ... ok
[INFO] [stdout] test rate_limit::tests::a_shorter_signal_never_reopens_the_gate_early ... ok
[INFO] [stdout] test dispatch::tests::a_redirect_is_refused_and_the_reservation_held ... ok
[INFO] [stdout] test rate_limit::tests::an_exhausted_window_closes_the_gate_before_any_429 ... ok
[INFO] [stdout] test rate_limit::tests::remaining_capacity_leaves_the_gate_open ... ok
[INFO] [stdout] test rate_limit::tests::reset_durations_parse ... ok
[INFO] [stdout] test rate_limit::tests::retry_after_counts_and_the_wait_is_capped ... ok
[INFO] [stdout] test dispatch::tests::a_rate_limit_releases_the_reservation_and_holds_the_provider_back ... ok
[INFO] [stdout] test openrouter::tests::byok_is_checked_only_when_a_management_key_is_configured ... ok
[INFO] [stdout] test dispatch::tests::a_disconnect_before_the_id_gives_up_after_the_wait ... ok
[INFO] [stdout] test status_policy::tests::a_rate_limit_backs_off_and_server_errors_do_not_close ... ok
[INFO] [stdout] test status_policy::tests::a_redirect_closes_the_provider ... ok
[INFO] [stdout] test status_policy::tests::exactly_the_listed_refusals_release_the_reservation ... ok
[INFO] [stdout] test status_policy::tests::only_a_malformed_request_is_returned_to_the_client ... ok
[INFO] [stdout] test status_policy::tests::payment_required_moves_on_and_closes_the_provider ... ok
[INFO] [stdout] test status_policy::tests::redirects_and_server_errors_hold_the_reservation ... ok
[INFO] [stdout] test status_policy::tests::success_relays_and_settles ... ok
[INFO] [stdout] test lan::tests::transport_connection_limit_and_long_sse_preserve_bounds ... ok
[INFO] [stdout] test dispatch::tests::a_transport_failure_is_an_unknown_outcome ... ok
[INFO] [stdout] test upstream::tests::a_response_id_cannot_change_the_path ... ok
[INFO] [stdout] test upstream::tests::a_redirect_is_returned_not_followed ... ok
[INFO] [stdout] test upstream::tests::a_non_loopback_http_base_url_is_refused ... ok
[INFO] [stdout] test upstream::tests::only_the_configured_credential_and_project_are_sent ... ok
[INFO] [stdout] test dispatch::tests::a_completed_response_between_server_errors_keeps_the_provider_open ... ok
[INFO] [stdout] test usage_api::tests::a_failed_answer_is_an_error_not_an_empty_day ... ok
[INFO] [stdout] test usage_api::tests::traffic_outside_the_grant_is_counted_apart_from_unknown_tiers ... ok
[INFO] [stdout] test dispatch::tests::repeated_server_errors_cool_the_provider_down ... ok
[INFO] [stdout] test dispatch::tests::streams_that_end_before_their_terminal_event_cool_the_provider_down ... ok
[INFO] [stdout] test openrouter_dispatch::tests::the_short_window_holds_back_without_spending ... ok
[INFO] [stdout] test usage_api::tests::a_day_is_summed_by_model ... ok
[INFO] [stdout] test runtime::tests::lan_denials_leave_runtime_ledger_and_provider_untouched ... ok
[INFO] [stdout] test openrouter_dispatch::tests::a_granted_slot_sends_and_relays ... ok
[INFO] [stdout] test openrouter_dispatch::tests::a_refusal_still_spends_the_slot ... ok
[INFO] [stdout] test usage_api::tests::a_plain_http_base_url_is_refused_unless_it_is_loopback ... ok
[INFO] [stdout] test openrouter_dispatch::tests::the_day_runs_out_without_sending ... ok
[INFO] [stdout] test dispatch::tests::a_disconnect_before_the_id_waits_for_it_and_then_cancels ... ok
[INFO] [stdout] test openrouter_dispatch::tests::a_transport_failure_spends_the_slot_and_says_so ... ok
[INFO] [stdout] test runtime::tests::a_trusted_ledger_is_not_re_adopted_from_usage_reporting ... ok
[INFO] [stdout] test retrieval::tests::a_sweep_settles_retries_and_writes_off_on_the_right_evidence ... ok
[INFO] [stdout] test runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean stdout ----
[INFO] [stdout] [quotamiser] ledger opened: trust Unknown(Uninitialized)
[INFO] [stdout] [quotamiser] epoch 20744: Advanced { carried: 0 }
[INFO] [stdout] [quotamiser] the ledger cannot be trusted; recovering today's consumption from usage reporting. Fail-closed is not claimed for a ledger recovered this way.
[INFO] [stdout] [quotamiser] recovered consumption: [("openai:small", 20744, 9000)]
[INFO] [stdout] 
[INFO] [stdout] thread 'runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean' (4572) panicked at crates/proxy/src/runtime.rs:767:9:
[INFO] [stdout] assertion `left == right` failed: an untrusted ledger adopts the day's reported consumption
[INFO] [stdout]   left: 9000
[INFO] [stdout]  right: 5000
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x557e1b02ae01 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x557e1b042fba - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x557e1b03020c - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x557e1b0039a6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x557e1b021959 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x557e1a9908e0 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x557e1b021c82 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x557e1b003a52 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x557e1affc349 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x557e1b0049cd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x557e1b04375c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x557e1b0436d3 - core[df12db4294e9bfd3]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x557e1a9120ca - core[df12db4294e9bfd3]::panicking::assert_failed::<i64, i64>
[INFO] [stdout]   13:     0x557e1a940b8e - quotamiser_proxy[1654933dcbe5062b]::runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean::{closure#0}
[INFO] [stdout]   14:     0x557e1a9279aa - <tokio[52f860a97a17df05]::runtime::park::CachedParkThread>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   15:     0x557e1a90240c - tokio[52f860a97a17df05]::runtime::context::runtime::enter_runtime::<<tokio[52f860a97a17df05]::runtime::scheduler::multi_thread::MultiThread>::block_on<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>::{closure#0}, ()>
[INFO] [stdout]   16:     0x557e1a8d1e6a - <tokio[52f860a97a17df05]::runtime::runtime::Runtime>::block_on::<core[df12db4294e9bfd3]::pin::Pin<&mut dyn core[df12db4294e9bfd3]::future::future::Future<Output = ()>>>
[INFO] [stdout]   17:     0x557e1a943eea - quotamiser_proxy[1654933dcbe5062b]::runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean
[INFO] [stdout]   18:     0x557e1a895ea9 - <quotamiser_proxy[1654933dcbe5062b]::runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   19:     0x557e1a983bcb - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   20:     0x557e1a991235 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   21:     0x557e1a98aaf4 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   22:     0x557e1a994392 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   23:     0x557e1b02a0d9 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   24:     0x7b6b623f6dfa - <unknown>
[INFO] [stdout]   25:     0x7b6b6248a3d4 - clone
[INFO] [stdout]   26:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     runtime::tests::a_fresh_ledger_is_recovered_from_usage_reporting_and_closed_clean
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 87 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.80s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p quotamiser-proxy --lib`
[INFO] running `Command { std: "docker" "inspect" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14", kill_on_drop: false }`
[INFO] [stdout] a81d0d15472e1ba1de1c6f4846160d8ad21d59f6e40f24d02c562967d115ba14
