[INFO] cloning repository https://github.com/leogue/preon-agent
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leogue/preon-agent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleogue%2Fpreon-agent", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleogue%2Fpreon-agent'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 07955a994332da895cbcfeff34fe2fcd18ff072a
[INFO] testing leogue/preon-agent/07955a994332da895cbcfeff34fe2fcd18ff072a 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%2Fleogue%2Fpreon-agent" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-2-tc1/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/leogue/preon-agent
[INFO] finished tweaking git repo https://github.com/leogue/preon-agent
[INFO] tweaked toml for git repo https://github.com/leogue/preon-agent written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leogue/preon-agent 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/leogue/preon-agent 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 futures-io v0.3.33
[INFO] [stderr]   Downloaded thiserror v2.0.19
[INFO] [stderr]   Downloaded futures-macro v0.3.33
[INFO] [stderr]   Downloaded thiserror-impl v2.0.19
[INFO] [stderr]   Downloaded futures v0.3.33
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85
[INFO] running `Command { std: "docker" "start" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", 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" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85" "/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" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", 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" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[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 pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling futures-io v0.3.33
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling cc v1.4.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling futures v0.3.33
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling preon-ai v0.1.0 (/opt/rustwide/workdir/crates/preon-ai)
[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 preon-core v0.1.0 (/opt/rustwide/workdir/crates/preon-core)
[INFO] [stderr]    Compiling preon-catalog v0.1.0 (/opt/rustwide/workdir/crates/preon-catalog)
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling preon-tools v0.1.0 (/opt/rustwide/workdir/crates/preon-tools)
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling preon-protocol v0.1.0 (/opt/rustwide/workdir/crates/preon-protocol)
[INFO] [stderr]    Compiling rusqlite v0.37.0
[INFO] [stderr]    Compiling preon-store v0.1.0 (/opt/rustwide/workdir/crates/preon-store)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 15s
[INFO] running `Command { std: "docker" "inspect" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", 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" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85" "/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 syn v3.0.3
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling preon-ai v0.1.0 (/opt/rustwide/workdir/crates/preon-ai)
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling preon-catalog v0.1.0 (/opt/rustwide/workdir/crates/preon-catalog)
[INFO] [stderr]    Compiling preon-core v0.1.0 (/opt/rustwide/workdir/crates/preon-core)
[INFO] [stderr]    Compiling preon-store v0.1.0 (/opt/rustwide/workdir/crates/preon-store)
[INFO] [stderr]    Compiling preon-tools v0.1.0 (/opt/rustwide/workdir/crates/preon-tools)
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling preon-protocol v0.1.0 (/opt/rustwide/workdir/crates/preon-protocol)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 6m 19s
[INFO] running `Command { std: "docker" "inspect" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", 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" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85" "/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.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_ai-6d56755922b666ea)
[INFO] [stdout] 
[INFO] [stdout] running 52 tests
[INFO] [stdout] test capability::tests::a_model_that_reasons_uncontrollably_is_distinguishable_from_one_that_does_not ... ok
[INFO] [stdout] test image::tests::an_unnamed_format_is_carried_rather_than_lost ... ok
[INFO] [stdout] test image::tests::base64_matches_the_reference_vectors ... ok
[INFO] [stdout] test error::tests::messages_carry_the_detail_a_caller_needs ... ok
[INFO] [stdout] test image::tests::the_media_type_everyone_writes_wrong_is_accepted ... ok
[INFO] [stdout] test capability::tests::a_model_with_no_declared_capabilities_is_valid ... ok
[INFO] [stdout] test image::tests::media_types_round_trip ... ok
[INFO] [stdout] test image::tests::formats_are_recognised_by_signature_not_by_extension ... ok
[INFO] [stdout] test capability::tests::unknown_modalities_survive_deserialization ... ok
[INFO] [stdout] test image::tests::sources_round_trip_through_json ... ok
[INFO] [stdout] test image::tests::base64_covers_the_whole_byte_range ... ok
[INFO] [stdout] test image::tests::a_source_reports_its_media_type_only_when_it_knows_it ... ok
[INFO] [stdout] test capability::tests::reasoning_controls_match_the_shapes_providers_publish ... ok
[INFO] [stdout] test message::tests::a_tool_result_can_carry_an_image_beside_its_text ... ok
[INFO] [stdout] test error::tests::retryability_follows_the_provider_status ... ok
[INFO] [stdout] test message::tests::text_skips_non_text_blocks ... ok
[INFO] [stdout] test provider::tests::debug_output_never_leaks_credentials ... ok
[INFO] [stdout] test provider::tests::protocol_display_matches_its_serialized_name ... ok
[INFO] [stdout] test message::tests::images_are_found_wherever_they_sit_in_a_turn ... ok
[INFO] [stdout] test provider::tests::serializing_a_provider_drops_its_credentials ... ok
[INFO] [stdout] test model::tests::a_model_without_capabilities_falls_back_to_its_raw_id ... ok
[INFO] [stdout] test reasoning::tests::a_degenerate_budget_range_does_not_panic ... ok
[INFO] [stdout] test reasoning::tests::a_model_without_reasoning_reports_the_intent_as_dropped ... ok
[INFO] [stdout] test message::tests::opaque_blocks_survive_a_round_trip_unchanged ... ok
[INFO] [stdout] test reasoning::tests::a_partial_budget_range_is_not_guessed_at ... ok
[INFO] [stdout] test reasoning::tests::an_unusable_effort_vocabulary_falls_through_to_the_next_control ... ok
[INFO] [stdout] test message::tests::an_image_block_round_trips_through_json ... ok
[INFO] [stdout] test model::tests::a_model_with_capabilities_resolves_reasoning_through_them ... ok
[INFO] [stdout] test capability::tests::unknown_statuses_are_preserved ... ok
[INFO] [stdout] test message::tests::thinking_signature_is_preserved_but_omitted_when_absent ... ok
[INFO] [stdout] test message::tests::tool_result_round_trips_through_json ... ok
[INFO] [stdout] test reasoning::tests::auto_always_sends_nothing ... ok
[INFO] [stdout] test reasoning::tests::effort_is_preferred_over_a_budget_when_both_are_offered ... ok
[INFO] [stdout] test reasoning::tests::budget_ranges_place_levels_between_their_bounds ... ok
[INFO] [stdout] test reasoning::tests::off_distinguishes_a_silent_model_from_an_uncontrollable_one ... ok
[INFO] [stdout] test reasoning::tests::off_uses_the_none_level_when_there_is_no_toggle ... ok
[INFO] [stdout] test response::tests::unknown_stop_reasons_are_preserved_rather_than_dropped ... ok
[INFO] [stdout] test stream::tests::a_delta_for_an_unopened_block_is_rejected ... ok
[INFO] [stdout] test stream::tests::a_truncated_tool_call_is_an_error_not_a_panic ... ok
[INFO] [stdout] test stream::tests::a_mismatched_delta_is_rejected ... ok
[INFO] [stdout] test request::tests::defaults_send_nothing_optional ... ok
[INFO] [stdout] test response::tests::usage_accumulates_across_turns ... ok
[INFO] [stdout] test reasoning::tests::levels_resolve_against_real_provider_vocabularies ... ok
[INFO] [stdout] test reasoning::tests::none_is_never_mistaken_for_the_shallowest_depth ... ok
[INFO] [stdout] test request::tests::extras_are_scoped_to_the_protocol_that_understands_them ... ok
[INFO] [stdout] test stream::tests::a_tool_call_without_arguments_yields_an_empty_object ... ok
[INFO] [stdout] test stream::tests::interleaved_blocks_keep_their_declared_order ... ok
[INFO] [stdout] test stream::tests::opaque_blocks_pass_straight_through ... ok
[INFO] [stdout] test stream::tests::tool_arguments_are_assembled_from_fragments ... ok
[INFO] [stdout] test stream::tests::a_stream_that_never_stops_is_an_error ... ok
[INFO] [stdout] test response::tests::message_keeps_every_block_not_just_the_text ... ok
[INFO] [stdout] test request::tests::a_request_round_trips_through_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_catalog-c56a7a8ffe7afab9)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test protocol::tests::well_known_packages_map_to_their_protocol ... ok
[INFO] [stdout] test protocol::tests::an_unrecognised_package_yields_no_guess ... ok
[INFO] [stdout] test tests::a_provider_without_an_endpoint_is_still_usable ... ok
[INFO] [stdout] test tests::an_uncontrollable_reasoner_is_recorded_as_one ... ok
[INFO] [stdout] test tests::an_unrecognised_package_defers_to_the_caller ... ok
[INFO] [stdout] test tests::an_unknown_reasoning_control_is_skipped_not_fatal ... ok
[INFO] [stdout] test tests::capabilities_survive_the_translation ... ok
[INFO] [stdout] test tests::a_model_can_override_its_providers_protocol ... ok
[INFO] [stdout] test tests::building_a_model_carries_its_capabilities_across ... ok
[INFO] [stdout] test tests::overlay_merges_per_model_rather_than_wholesale ... ok
[INFO] [stdout] test tests::catalog_data_feeds_reasoning_resolution_end_to_end ... ok
[INFO] [stdout] test tests::parses_providers_and_models ... ok
[INFO] [stdout] test tests::a_malformed_model_is_skipped_not_fatal ... ok
[INFO] [stdout] test tests::the_vendored_snapshot_parses_and_is_plausible ... ok
[INFO] [stdout] test tests::the_snapshot_still_justifies_two_design_choices ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_core-f235e5ab5cf9d9bb)
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test agent::tests::a_denied_call_tells_the_model_why ... ok
[INFO] [stdout] test agent::tests::a_run_without_tools_returns_the_models_answer ... ok
[INFO] [stdout] test agent::tests::the_request_carries_the_tools_and_the_system_prompt ... ok
[INFO] [stdout] test agent::tests::a_hallucinated_tool_is_answered_rather_than_fatal ... ok
[INFO] [stdout] test agent::tests::the_iteration_cap_stops_a_model_stuck_in_a_loop ... ok
[INFO] [stdout] test agent::tests::the_prefix_a_provider_caches_only_ever_grows ... ok
[INFO] [stdout] test agent::tests::a_failing_tool_is_reported_to_the_model_and_the_run_continues ... ok
[INFO] [stdout] test error::tests::retryability_follows_the_underlying_failure ... ok
[INFO] [stdout] test permission::tests::the_default_policy_allows ... ok
[INFO] [stdout] test agent::tests::events_arrive_in_the_order_a_ui_needs ... ok
[INFO] [stdout] test registry::tests::a_name_collision_is_reported_rather_than_silent ... ok
[INFO] [stdout] test registry::tests::tools_are_advertised_in_a_stable_order ... ok
[INFO] [stdout] test registry::tests::an_empty_registry_advertises_nothing ... ok
[INFO] [stdout] test session::tests::a_session_round_trips_through_json ... ok
[INFO] [stdout] test agent::tests::a_tool_call_round_trips_and_the_model_answers ... ok
[INFO] [stdout] test agent::tests::bad_arguments_come_back_to_the_model_not_to_the_caller ... ok
[INFO] [stdout] test error::tests::the_iteration_limit_says_what_it_was ... ok
[INFO] [stdout] test agent::tests::text_is_emitted_before_the_turn_ends ... ok
[INFO] [stdout] test session::tests::clearing_the_transcript_keeps_what_it_cost ... ok
[INFO] [stdout] test tool::tests::a_typed_tool_runs_through_the_erased_form ... ok
[INFO] [stdout] test tool::tests::the_schema_is_derived_from_the_input_type ... ok
[INFO] [stdout] test tool::tests::a_context_reports_what_the_model_can_accept ... ok
[INFO] [stdout] test agent::tests::a_run_is_unbounded_unless_a_cap_is_asked_for ... ok
[INFO] [stdout] test session::tests::usage_accumulates_across_turns ... ok
[INFO] [stdout] test agent::tests::tools_see_what_the_model_can_accept ... ok
[INFO] [stdout] test tool::tests::a_cancelled_run_stops_the_tool ... ok
[INFO] [stdout] test agent::tests::every_call_in_a_parallel_turn_is_answered ... ok
[INFO] [stdout] test session::tests::a_session_can_resume_an_existing_transcript ... ok
[INFO] [stdout] test permission::tests::a_policy_can_gate_a_single_tool ... ok
[INFO] [stdout] test tool::tests::bad_arguments_are_reported_to_the_model_not_raised ... ok
[INFO] [stdout] test tool::tests::schema_metadata_the_model_cannot_use_is_stripped ... ok
[INFO] [stdout] test agent::tests::a_barrier_splits_a_turn_without_reordering_it ... ok
[INFO] [stdout] test agent::tests::a_tool_that_declines_concurrency_gets_a_batch_of_its_own ... ok
[INFO] [stdout] test agent::tests::results_keep_request_order_however_the_work_finishes ... ok
[INFO] [stdout] test agent::tests::concurrent_calls_run_at_the_same_time ... ok
[INFO] [stdout] test agent::tests::an_unknown_tool_does_not_serialise_the_turn ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_protocol-38b614078618c865)
[INFO] [stdout] 
[INFO] [stdout] running 108 tests
[INFO] [stdout] test anthropic::request::tests::a_growing_transcript_keeps_the_stable_prefix_byte_identical ... ok
[INFO] [stdout] test anthropic::request::tests::a_declared_effort_vocabulary_becomes_adaptive_thinking_plus_an_effort_level ... ok
[INFO] [stdout] test anthropic::request::tests::an_effort_vocabulary_that_can_say_none_switches_thinking_off ... ok
[INFO] [stdout] test anthropic::request::tests::an_image_uses_a_structured_source_not_a_data_url ... ok
[INFO] [stdout] test anthropic::request::tests::a_turn_left_empty_is_dropped_rather_than_sent_as_an_empty_array ... ok
[INFO] [stdout] test anthropic::request::tests::builds_a_minimal_streaming_request ... ok
[INFO] [stdout] test anthropic::request::tests::caller_extras_are_applied_last_so_they_can_override ... ok
[INFO] [stdout] test anthropic::request::tests::a_model_that_cannot_honour_the_intent_gets_no_reasoning_parameter ... ok
[INFO] [stdout] test anthropic::request::tests::the_five_minute_ttl_reaches_every_breakpoint ... ok
[INFO] [stdout] test anthropic::request::tests::a_thinking_budget_is_kept_below_the_output_cap ... ok
[INFO] [stdout] test anthropic::request::tests::signed_thinking_is_replayed_verbatim_and_unsigned_thinking_is_not ... ok
[INFO] [stdout] test anthropic::request::tests::a_breakpoint_marks_the_end_of_a_turn_not_its_first_block ... ok
[INFO] [stdout] test anthropic::request::tests::opaque_blocks_are_replayed_only_for_the_protocol_that_made_them ... ok
[INFO] [stdout] test anthropic::request::tests::every_tool_choice_maps_to_this_protocols_spelling ... ok
[INFO] [stdout] test anthropic::request::tests::extras_meant_for_another_protocol_are_ignored ... ok
[INFO] [stdout] test anthropic::request::tests::stop_sequences_use_this_protocols_field_name ... ok
[INFO] [stdout] test anthropic::request::tests::the_anchor_breakpoint_lands_on_the_last_system_block ... ok
[INFO] [stdout] test anthropic::request::tests::an_image_from_a_tool_stays_in_the_result_that_produced_it ... ok
[INFO] [stdout] test anthropic::request::tests::a_declared_budget_range_becomes_a_token_budget ... ok
[INFO] [stdout] test anthropic::stream::tests::a_signed_thinking_block_keeps_its_signature ... ok
[INFO] [stdout] test anthropic::request::tests::temperature_is_dropped_only_for_models_known_to_reject_it ... ok
[INFO] [stdout] test anthropic::stream::tests::a_block_left_open_by_the_provider_is_still_closed ... ok
[INFO] [stdout] test anthropic::request::tests::the_rolling_breakpoints_mark_the_last_two_messages_and_nothing_earlier ... ok
[INFO] [stdout] test anthropic::stream::tests::a_cache_write_is_reported_separately_from_a_read ... ok
[INFO] [stdout] test anthropic::request::tests::the_system_prompt_is_a_top_level_block_list_not_a_message ... ok
[INFO] [stdout] test anthropic::stream::tests::a_block_closes_where_the_protocol_says_it_does ... ok
[INFO] [stdout] test anthropic::stream::tests::an_in_stream_error_is_reported_with_the_right_retryability ... ok
[INFO] [stdout] test anthropic::stream::tests::a_stream_cut_short_is_an_error ... ok
[INFO] [stdout] test anthropic::request::tests::the_anchor_falls_back_to_the_last_tool_when_there_is_no_system_prompt ... ok
[INFO] [stdout] test anthropic::stream::tests::maps_every_stop_reason ... ok
[INFO] [stdout] test anthropic::stream::tests::redacted_thinking_survives_as_an_opaque_block ... ok
[INFO] [stdout] test anthropic::request::tests::tool_calls_and_results_stay_inside_their_messages ... ok
[INFO] [stdout] test anthropic::stream::tests::a_malformed_event_names_itself ... ok
[INFO] [stdout] test anthropic::request::tests::tool_results_lead_their_turn_however_the_transcript_orders_them ... ok
[INFO] [stdout] test anthropic::stream::tests::keepalives_and_unknown_events_are_ignored ... ok
[INFO] [stdout] test anthropic::stream::tests::thinking_tokens_are_reported_as_a_subset_of_the_output_count ... ok
[INFO] [stdout] test anthropic::tests::builds_the_endpoint_from_the_providers_base_url ... ok
[INFO] [stdout] test anthropic::tests::five_minutes_is_the_default_time_to_live ... ok
[INFO] [stdout] test anthropic::request::tests::tools_carry_no_function_envelope_and_required_is_spelled_any ... ok
[INFO] [stdout] test anthropic::stream::tests::assembles_tool_calls_from_partial_json_fragments ... ok
[INFO] [stdout] test anthropic::stream::tests::cache_figures_from_message_start_survive_the_final_usage_frame ... ok
[INFO] [stdout] test anthropic::stream::tests::decodes_a_plain_text_response ... ok
[INFO] [stdout] test anthropic::tests::refuses_a_provider_with_no_endpoint ... ok
[INFO] [stdout] test anthropic::tests::refuses_a_provider_that_speaks_another_protocol ... ok
[INFO] [stdout] test anthropic::request::tests::the_output_cap_prefers_the_caller_then_the_catalog_then_a_safe_floor ... ok
[INFO] [stdout] test anthropic::tests::the_protocol_version_is_sent_without_the_caller_naming_it ... ok
[INFO] [stdout] test anthropic::stream::tests::falls_back_to_the_requested_model_when_the_stream_omits_it ... ok
[INFO] [stdout] test openai::request::tests::effort_is_the_only_reasoning_control_this_protocol_can_carry ... ok
[INFO] [stdout] test openai::request::tests::multiple_text_pieces_in_one_result_are_joined ... ok
[INFO] [stdout] test anthropic::stream::tests::keeps_parallel_tool_calls_apart ... ok
[INFO] [stdout] test anthropic::tests::a_caller_pinning_a_protocol_version_keeps_it ... ok
[INFO] [stdout] test openai::request::tests::a_tool_that_returned_only_an_image_still_answers_its_call ... ok
[INFO] [stdout] test openai::request::tests::a_turn_without_images_keeps_the_plain_string_form ... ok
[INFO] [stdout] test openai::request::tests::an_attached_image_becomes_a_data_url ... ok
[INFO] [stdout] test openai::request::tests::an_image_from_a_tool_moves_into_the_turn_after_the_tool_message ... ok
[INFO] [stdout] test openai::request::tests::caller_extras_are_applied_last_so_they_can_override ... ok
[INFO] [stdout] test openai::request::tests::reasoning_blocks_are_not_echoed_back ... ok
[INFO] [stdout] test openai::request::tests::a_failed_tool_result_is_still_reported_as_an_error ... ok
[INFO] [stdout] test openai::request::tests::usage_reporting_can_be_turned_off_for_strict_gateways ... ok
[INFO] [stdout] test openai::stream::tests::a_block_closes_as_soon_as_the_next_one_opens ... ok
[INFO] [stdout] test openai::stream::tests::a_tool_call_closes_the_prose_before_it ... ok
[INFO] [stdout] test openai::stream::tests::every_block_is_closed_exactly_once ... ok
[INFO] [stdout] test openai::request::tests::builds_a_minimal_streaming_request ... ok
[INFO] [stdout] test openai::request::tests::extras_meant_for_another_protocol_are_ignored ... ok
[INFO] [stdout] test openai::stream::tests::buffers_arguments_that_arrive_before_a_tool_is_named ... ok
[INFO] [stdout] test openai::stream::tests::cache_hits_are_read_from_either_shape ... ok
[INFO] [stdout] test openai::stream::tests::honours_a_catalogued_reasoning_field ... ok
[INFO] [stdout] test openai::stream::tests::ignores_empty_and_keepalive_payloads ... ok
[INFO] [stdout] test openai::stream::tests::keeps_parallel_tool_calls_apart ... ok
[INFO] [stdout] test openai::stream::tests::maps_every_finish_reason ... ok
[INFO] [stdout] test openai::stream::tests::reads_reasoning_from_the_conventional_fields ... ok
[INFO] [stdout] test openai::stream::tests::reasoning_resumed_after_prose_opens_a_second_block ... ok
[INFO] [stdout] test anthropic::tests::the_five_minute_ttl_is_expressed_by_omitting_the_field ... ok
[INFO] [stdout] test openai::request::tests::temperature_is_dropped_only_for_models_known_to_reject_it ... ok
[INFO] [stdout] test openai::stream::tests::a_malformed_chunk_names_itself ... ok
[INFO] [stdout] test openai::request::tests::a_url_image_is_passed_through_untouched ... ok
[INFO] [stdout] test openai::request::tests::the_output_cap_falls_back_to_the_models_declared_ceiling ... ok
[INFO] [stdout] test openai::stream::tests::a_stream_cut_short_is_an_error ... ok
[INFO] [stdout] test openai::stream::tests::usage_arrives_after_the_finish_reason_and_must_still_be_reported ... ok
[INFO] [stdout] test openai::request::tests::the_system_prompt_leads_the_message_list ... ok
[INFO] [stdout] test openai::stream::tests::decodes_a_plain_text_response ... ok
[INFO] [stdout] test openai::tests::builds_the_endpoint_from_the_providers_base_url ... ok
[INFO] [stdout] test sse::tests::ignores_comments_and_unknown_fields ... ok
[INFO] [stdout] test sse::tests::reassembles_a_frame_split_across_chunks ... ok
[INFO] [stdout] test sse::tests::survives_a_chunk_boundary_inside_a_character ... ok
[INFO] [stdout] test tests::connect_dispatches_on_the_providers_protocol ... ok
[INFO] [stdout] test tests::connect_reports_a_protocol_with_no_adapter ... ok
[INFO] [stdout] test sse::tests::accepts_crlf_and_no_space_after_the_colon ... ok
[INFO] [stdout] test openai::tests::refuses_a_provider_with_no_endpoint ... ok
[INFO] [stdout] test transport::tests::a_local_server_needs_no_credentials ... ok
[INFO] [stdout] test transport::tests::a_malformed_credential_fails_at_construction_not_on_every_request ... ok
[INFO] [stdout] test transport::tests::credentials_are_marked_sensitive_so_they_stay_out_of_logs ... ok
[INFO] [stdout] test transport::tests::falls_back_when_a_gateway_answers_in_its_own_shape ... ok
[INFO] [stdout] test transport::tests::reads_the_standard_error_envelope ... ok
[INFO] [stdout] test transport::tests::joins_base_urls_entered_with_or_without_a_trailing_slash ... ok
[INFO] [stdout] test transport::tests::supports_providers_that_do_not_use_bearer_tokens ... ok
[INFO] [stdout] test openai::request::tests::tool_results_become_one_message_each ... ok
[INFO] [stdout] test openai::request::tests::tools_are_wrapped_in_the_function_envelope ... ok
[INFO] [stdout] test openai::stream::tests::assembles_tool_calls_from_argument_fragments ... ok
[INFO] [stdout] test sse::tests::decodes_a_simple_stream ... ok
[INFO] [stdout] test sse::tests::flushes_a_frame_left_open_by_a_closed_connection ... ok
[INFO] [stdout] test sse::tests::handles_several_events_in_one_chunk ... ok
[INFO] [stdout] test sse::tests::joins_multiple_data_lines_and_keeps_the_event_name ... ok
[INFO] [stdout] test sse::tests::preserves_an_empty_data_payload ... ok
[INFO] [stdout] test tests::connect_dispatches_to_the_anthropic_adapter ... ok
[INFO] [stdout] test openai::stream::tests::falls_back_to_the_requested_model_when_the_stream_omits_it ... ok
[INFO] [stdout] test openai::tests::refuses_a_provider_that_speaks_another_protocol ... ok
[INFO] [stdout] test openai::stream::tests::tolerates_a_gateway_that_only_sends_done ... ok
[INFO] [stderr]      Running tests/end_to_end.rs (/opt/rustwide/target/release/deps/end_to_end-07a4f58561577e44)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test an_unreachable_endpoint_is_a_transport_error ... ok
[INFO] [stdout] test an_authentication_failure_is_not_reported_as_retryable ... ok
[INFO] [stdout] test a_server_error_is_marked_retryable ... ok
[INFO] [stdout] test a_connection_cut_mid_response_surfaces_rather_than_truncating_silently ... ok
[INFO] [stdout] test an_image_a_tool_read_is_delivered_in_the_turn_after_it ... ok
[INFO] [stdout] test an_error_after_a_successful_status_is_still_surfaced ... ok
[INFO] [stdout] test a_messages_response_reassembles_from_split_writes ... ok
[INFO] [stdout] test an_image_from_a_tool_reaches_the_wire_inside_its_own_result ... ok
[INFO] [stdout] test a_named_effort_level_reaches_the_wire_as_output_config ... ok
[INFO] [stdout] test a_tool_call_survives_the_round_trip ... ok
[INFO] [stdout] test model_capabilities_shape_the_request_that_goes_out ... ok
[INFO] [stdout] test cache_breakpoints_reach_the_wire_in_the_places_they_were_planned_for ... ok
[INFO] [stdout] test a_cache_read_survives_the_split_between_usage_events ... ok
[INFO] [stdout] test a_messages_stream_emits_events_incrementally ... ok
[INFO] [stdout] test rate_limiting_carries_the_providers_own_backoff ... ok
[INFO] [stdout] test streams_a_response_reassembled_from_split_writes ... ok
[INFO] [stdout] test the_hour_long_ttl_reaches_the_wire_when_the_caller_selects_it ... ok
[INFO] [stdout] test an_image_reaches_the_wire_as_a_data_url ... ok
[INFO] [stdout] test emits_events_incrementally_rather_than_all_at_once ... ok
[INFO] [stdout] test a_reasoning_budget_shaped_by_the_catalog_reaches_the_wire ... ok
[INFO] [stdout] test a_messages_tool_call_survives_the_round_trip ... ok
[INFO] [stdout] test a_signed_thinking_block_is_replayed_on_the_following_request ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_store-2eeda46870d12ea0)
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/store.rs (/opt/rustwide/target/release/deps/store-8662ecbf48a8cdc1)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test usage_is_carried_and_not_double_counted ... ok
[INFO] [stdout] test an_empty_session_exists_and_loads_empty ... ok
[INFO] [stdout] test a_diverged_transcript_is_refused_rather_than_grafted_on ... ok
[INFO] [stdout] test a_missing_session_says_so_rather_than_returning_nothing ... ok
[INFO] [stdout] test rewinding_to_a_message_from_elsewhere_is_refused ... ok
[INFO] [stdout] test deleting_a_session_takes_its_messages_with_it ... ok
[INFO] [stdout] test one_database_holds_many_sessions_without_mixing_them ... ok
[INFO] [stdout] test a_branch_shares_the_history_before_it_forked ... ok
[INFO] [stdout] test saving_twice_writes_only_what_is_new ... ok
[INFO] [stdout] test a_session_survives_a_round_trip_intact ... ok
[INFO] [stdout] test rewinding_and_answering_again_keeps_both_paths ... ok
[INFO] [stdout] test listing_shows_the_current_branch_and_orders_by_recency ... ok
[INFO] [stdout] test a_store_can_be_shared_across_threads ... ok
[INFO] [stdout] test a_store_survives_being_closed_and_reopened ... ok
[INFO] [stdout] test a_deep_branch_walks_without_trouble ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/preon_tools-6c3d16be951305c7)
[INFO] [stdout] running 35 tests
[INFO] [stdout] test fs::edit::tests::a_no_op_edit_is_refused ... ok
[INFO] [stdout] test fs::edit::tests::a_unique_string_is_replaced ... ok
[INFO] [stdout] test fs::edit::tests::a_block_that_diverges_after_its_first_line_says_where ... ok
[INFO] [stdout] test fs::edit::tests::editing_is_never_done_concurrently ... ok
[INFO] [stdout] test fs::edit::tests::a_missing_string_is_reported_plainly ... ok
[INFO] [stdout] test fs::read::tests::a_short_file_gets_no_footer ... ok
[INFO] [stdout] test fs::edit::tests::a_whitespace_mismatch_says_so ... ok
[INFO] [stdout] test fs::edit::tests::an_empty_new_string_deletes ... ok
[INFO] [stdout] test fs::edit::tests::an_ambiguous_string_fails_rather_than_guessing ... ok
[INFO] [stdout] test fs::read::tests::an_absurdly_long_line_is_truncated ... ok
[INFO] [stdout] test fs::read::tests::a_whole_file_comes_back_verbatim ... ok
[INFO] [stdout] test fs::edit::tests::text_copied_from_read_matches_without_stripping_anything ... ok
[INFO] [stdout] test fs::read::tests::a_directory_is_refused_rather_than_read ... ok
[INFO] [stdout] test fs::read::tests::an_image_is_refused_when_the_model_cannot_see_it ... ok
[INFO] [stdout] test fs::read::tests::a_path_outside_the_workspace_is_refused ... ok
[INFO] [stdout] test fs::read::tests::a_long_file_says_how_to_read_the_rest ... ok
[INFO] [stdout] test fs::read::tests::an_image_is_returned_when_the_model_can_see_it ... ok
[INFO] [stdout] test fs::read::tests::binary_that_is_not_an_image_is_refused_clearly ... ok
[INFO] [stdout] test fs::write::tests::a_path_outside_the_workspace_is_refused ... ok
[INFO] [stdout] test fs::write::tests::a_directory_is_refused_rather_than_clobbered ... ok
[INFO] [stdout] test fs::read::tests::offset_and_limit_page_through_a_file ... ok
[INFO] [stdout] test fs::read::tests::an_image_is_recognised_by_signature_not_extension ... ok
[INFO] [stdout] test workspace::tests::a_missing_file_says_so_rather_than_leaking_the_absolute_path ... ok
[INFO] [stdout] test fs::write::tests::a_new_file_is_created_with_its_parents ... ok
[INFO] [stdout] test fs::read::tests::reading_is_safe_to_do_several_at_a_time ... ok
[INFO] [stdout] test workspace::tests::a_parent_traversal_is_refused ... ok
[INFO] [stdout] test workspace::tests::a_rendered_path_round_trips_back_through_the_workspace ... ok
[INFO] [stdout] test fs::read::tests::the_last_page_does_not_invite_another ... ok
[INFO] [stdout] test workspace::tests::a_new_file_resolves_even_though_it_does_not_exist ... ok
[INFO] [stdout] test fs::edit::tests::replace_all_changes_every_occurrence ... ok
[INFO] [stdout] test fs::write::tests::an_existing_file_is_reported_as_overwritten ... ok
[INFO] [stdout] test workspace::tests::an_absolute_path_is_refused ... ok
[INFO] [stdout] test workspace::tests::a_symlink_out_of_the_workspace_is_refused ... ok
[INFO] [stdout] test workspace::tests::an_ordinary_path_resolves ... ok
[INFO] [stdout] test workspace::tests::a_write_through_a_symlinked_directory_is_refused ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests preon_ai
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test crates/preon-ai/src/lib.rs - (line 36) ... ok
[INFO] [stdout] test crates/preon-ai/src/lib.rs - ReadmeExamples (line 126) ... ok
[INFO] [stdout] test crates/preon-ai/src/stream.rs - stream::ResponseAccumulator (line 140) ... ok
[INFO] [stdout] test crates/preon-ai/src/reasoning.rs - reasoning::Reasoning::resolve (line 114) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.42s; merged doctests compilation took 2.38s
[INFO] [stderr]    Doc-tests preon_catalog
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/preon-catalog/src/lib.rs - (line 55) - compile ... ok
[INFO] [stdout] test crates/preon-catalog/src/lib.rs - (line 26) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 3.00s; merged doctests compilation took 2.74s
[INFO] [stderr]    Doc-tests preon_core
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/preon-core/src/lib.rs - (line 10) - compile ... ok
[INFO] [stdout] test crates/preon-core/src/tool.rs - tool::Tool (line 154) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.18s; merged doctests compilation took 2.16s
[INFO] [stderr]    Doc-tests preon_protocol
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test crates/preon-protocol/src/anthropic/mod.rs - anthropic::AnthropicMessages::with_cache_ttl (line 182) - compile ... ok
[INFO] [stdout] test crates/preon-protocol/src/lib.rs - (line 40) - compile ... ok
[INFO] [stdout] test crates/preon-protocol/src/anthropic/mod.rs - anthropic::CacheTtl (line 66) ... ok
[INFO] [stdout] test crates/preon-protocol/src/openai/mod.rs - openai (line 16) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 3.21s; merged doctests compilation took 3.20s
[INFO] [stderr]    Doc-tests preon_store
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test crates/preon-store/src/store.rs - store::SqliteStore (line 59) ... ok
[INFO] [stdout] test crates/preon-store/src/lib.rs - (line 42) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.81s; merged doctests compilation took 2.78s
[INFO] [stderr]    Doc-tests preon_tools
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test crates/preon-tools/src/lib.rs - (line 14) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.86s; merged doctests compilation took 1.85s
[INFO] running `Command { std: "docker" "inspect" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85", kill_on_drop: false }`
[INFO] [stdout] f37a21774efed34c73ce2a618840733ed32f3589a99d5416dc6e26ea6d4fab85
