[INFO] cloning repository https://github.com/iceyie/pact
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/iceyie/pact" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficeyie%2Fpact", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficeyie%2Fpact'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b2def859ba4380ef1aeefe6371aa6d8fe7ca0f98
[INFO] testing iceyie/pact against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ficeyie%2Fpact" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/iceyie/pact
[INFO] finished tweaking git repo https://github.com/iceyie/pact
[INFO] tweaked toml for git repo https://github.com/iceyie/pact written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/iceyie/pact on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/iceyie/pact 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6
[INFO] running `Command { std: "docker" "start" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", 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" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", 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" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling rustc-demangle v0.1.27
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling supports-unicode v3.0.0
[INFO] [stderr]    Compiling supports-hyperlinks v3.2.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling str_indices v0.4.4
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling ropey v1.6.1
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling toml v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling eventsource-stream v0.2.3
[INFO] [stderr]    Compiling rustyline v17.0.2
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling tower-lsp-macros v0.9.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling pact-core v0.1.0 (/opt/rustwide/workdir/crates/pact-core)
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling pact-build v0.1.0 (/opt/rustwide/workdir/crates/pact-build)
[INFO] [stderr]    Compiling pact-mermaid v0.1.0 (/opt/rustwide/workdir/crates/pact-mermaid)
[INFO] [stderr]    Compiling pact-mcp v0.1.0 (/opt/rustwide/workdir/crates/pact-mcp)
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling lsp-types v0.94.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling reqwest-eventsource v0.6.0
[INFO] [stderr]    Compiling pact-dispatch v0.1.0 (/opt/rustwide/workdir/crates/pact-dispatch)
[INFO] [stderr]    Compiling tower-lsp v0.20.0
[INFO] [stderr]    Compiling pact-lang v0.1.0 (/opt/rustwide/workdir/crates/pact-cli)
[INFO] [stderr]    Compiling pact-lsp v0.1.0 (/opt/rustwide/workdir/crates/pact-lsp)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", 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" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling pact-build v0.1.0 (/opt/rustwide/workdir/crates/pact-build)
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling pact-mermaid v0.1.0 (/opt/rustwide/workdir/crates/pact-mermaid)
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling lsp-types v0.94.1
[INFO] [stderr]    Compiling pact-mcp v0.1.0 (/opt/rustwide/workdir/crates/pact-mcp)
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling reqwest-eventsource v0.6.0
[INFO] [stderr]    Compiling pact-dispatch v0.1.0 (/opt/rustwide/workdir/crates/pact-dispatch)
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling pact-lang v0.1.0 (/opt/rustwide/workdir/crates/pact-cli)
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling tower-lsp v0.20.0
[INFO] [stderr]    Compiling pact-core v0.1.0 (/opt/rustwide/workdir/crates/pact-core)
[INFO] [stderr]    Compiling pact-lsp v0.1.0 (/opt/rustwide/workdir/crates/pact-lsp)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 49.77s
[INFO] running `Command { std: "docker" "inspect" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", 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" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pact_build-9f712516ff29829e)
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test builtins::tests::find_builtin_prompt_works ... ok
[INFO] [stdout] test builtins::tests::find_builtin_skill_works ... ok
[INFO] [stdout] test builtins::tests::all_prompts_have_required_fields ... ok
[INFO] [stdout] test config::tests::target_parsing ... ok
[INFO] [stdout] test config::tests::path_resolution ... ok
[INFO] [stdout] test config::tests::source_name ... ok
[INFO] [stdout] test emit_markdown::tests::prompt_no_prompt_field ... ok
[INFO] [stdout] test emit_claude::tests::type_mapping ... ok
[INFO] [stdout] test emit_markdown::tests::prompt_without_tool_decls ... ok
[INFO] [stdout] test guardrails::tests::auth_compliance_detected ... ok
[INFO] [stdout] test guardrails::tests::compliance_mediation_always_present ... ok
[INFO] [stdout] test emit_markdown::tests::prompt_with_tools_and_permissions ... ok
[INFO] [stdout] test emit_claude::tests::tool_to_claude_basic ... ok
[INFO] [stdout] test emit_toml::tests::manifest_generation ... ok
[INFO] [stdout] test emit_toml::tests::tool_toml_generation ... ok
[INFO] [stdout] test emit_toml::tests::agent_toml_generation ... ok
[INFO] [stdout] test emit_toml::tests::flow_toml_generation ... ok
[INFO] [stdout] test emit_claude::tests::build_agent_request_full ... ok
[INFO] [stdout] test guardrails::tests::context_management_always_present ... ok
[INFO] [stdout] test builtins::tests::all_skills_have_required_fields ... ok
[INFO] [stdout] test guardrails::tests::financial_compliance_detected ... ok
[INFO] [stdout] test emit_claude::tests::tool_with_multiple_params ... ok
[INFO] [stdout] test emit_toml::tests::permissions_toml_generation ... ok
[INFO] [stdout] test guardrails::tests::hallucination_prevention_no_tools ... ok
[INFO] [stdout] test guardrails::tests::multiple_compliance_domains ... ok
[INFO] [stdout] test guardrails::tests::hallucination_prevention_with_tools ... ok
[INFO] [stdout] test guardrails::tests::no_permissions_shows_no_special_perms ... ok
[INFO] [stdout] test emit_claude::tests::generate_claude_tools_json_output ... ok
[INFO] [stdout] test guardrails::tests::health_compliance_detected ... ok
[INFO] [stdout] test guardrails::tests::security_section_always_present ... ok
[INFO] [stdout] test guardrails::tests::personal_data_compliance_detected ... ok
[INFO] [stdout] test guardrails::tests::permission_boundaries_granted_and_denied ... ok
[INFO] [stdout] test guardrails::tests::parent_permission_covers_children ... ok
[INFO] [stdout] test tests::build_empty_program_fails ... ok
[INFO] [stdout] test guardrails::tests::output_format_from_return_types ... ok
[INFO] [stdout] test tests::build_creates_output_files ... ok
[INFO] [stdout] test builtins::tests::list_functions_return_all ... ok
[INFO] [stdout] test guardrails::tests::age_verification_compliance_detected ... ok
[INFO] [stderr]      Running tests/build_integration.rs (/opt/rustwide/target/debug/deps/build_integration-be55142675a5f8e3)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test empty_program_returns_build_error ... ok
[INFO] [stdout] test guardrails_gdpr_triggered_by_personal_data_params ... ok
[INFO] [stdout] test build_creates_complete_output_directory_structure ... ok
[INFO] [stdout] test guardrails_hipaa_triggered_by_health_params ... ok
[INFO] [stdout] test agent_prompt_markdown_contains_guardrails ... ok
[INFO] [stdout] test multiple_compliance_domains_detected_together ... ok
[INFO] [stdout] test website_builder_pact_builds_successfully ... ok
[INFO] [stdout] test agent_with_no_tools_gets_no_tool_access_guardrail ... ok
[INFO] [stdout] test agent_toml_contains_correct_fields ... ok
[INFO] [stdout] test flow_toml_captures_all_steps_with_args ... ok
[INFO] [stdout] test claude_tools_json_has_proper_input_schema ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pact_core-a5084c080ffe57f8)
[INFO] [stdout] 
[INFO] [stdout] running 154 tests
[INFO] [stdout] test checker::permissions::tests::exact_match ... ok
[INFO] [stdout] test checker::permissions::tests::registry_has_entries ... ok
[INFO] [stdout] test checker::scope::tests::define_and_lookup ... ok
[INFO] [stdout] test checker::permissions::tests::parent_grants_child ... ok
[INFO] [stdout] test checker::permissions::tests::no_match ... ok
[INFO] [stdout] test checker::scope::tests::permissions ... ok
[INFO] [stdout] test checker::tests::connect_block_invalid_transport ... ok
[INFO] [stdout] test checker::tests::declarative_tool_missing_permission ... ok
[INFO] [stdout] test checker::tests::declarative_tool_multiple_permissions ... ok
[INFO] [stdout] test checker::tests::declarative_tool_type_checking ... ok
[INFO] [stdout] test checker::tests::mcp_handler_unknown_server ... ok
[INFO] [stdout] test checker::tests::mcp_tool_shorthand_with_connect ... ok
[INFO] [stdout] test checker::tests::schema_field_types_checked ... ok
[INFO] [stdout] test checker::tests::type_inference_no_warnings_for_consistent_types ... ok
[INFO] [stdout] test checker::tests::unknown_type_detected ... ok
[INFO] [stdout] test checker::tests::type_inference_dispatch_return_type ... ok
[INFO] [stdout] test checker::tests::mcp_handler_valid ... ok
[INFO] [stdout] test checker::types::tests::builtin_types_recognized ... ok
[INFO] [stdout] test checker::types::tests::infer_assignment_tracks_type ... ok
[INFO] [stdout] test checker::tests::valid_agent_passes ... ok
[INFO] [stdout] test checker::tests::type_inference_warns_on_incompatible_reassignment ... ok
[INFO] [stdout] test checker::types::tests::infer_dispatch_return_type ... ok
[INFO] [stdout] test checker::types::tests::inferred_type_compatibility ... ok
[INFO] [stdout] test doc::tests::test_flows_section ... ok
[INFO] [stdout] test doc::tests::test_generates_title_and_toc ... ok
[INFO] [stdout] test doc::tests::test_agents_section ... ok
[INFO] [stdout] test doc::tests::test_full_document ... ok
[INFO] [stdout] test doc::tests::test_generic_type_formatting ... ok
[INFO] [stdout] test doc::tests::test_optional_type_formatting ... ok
[INFO] [stdout] test doc::tests::test_permissions_section ... ok
[INFO] [stdout] test checker::tests::builtin_type_passes ... ok
[INFO] [stdout] test checker::tests::declarative_tool_parent_permission ... ok
[INFO] [stdout] test checker::tests::connect_block_valid ... ok
[INFO] [stdout] test checker::tests::declarative_tool_duplicate ... ok
[INFO] [stdout] test checker::tests::declarative_tool_permissions ... ok
[INFO] [stdout] test checker::tests::missing_permission_detected ... ok
[INFO] [stdout] test checker::tests::duplicate_definition_detected ... ok
[INFO] [stdout] test checker::tests::parent_permission_satisfies ... ok
[INFO] [stdout] test checker::tests::permit_tree_collects_permissions ... ok
[INFO] [stdout] test checker::types::tests::infer_incompatible_reassignment_warns ... ok
[INFO] [stdout] test checker::types::tests::infer_literal_types ... ok
[INFO] [stdout] test doc::tests::test_tools_section ... ok
[INFO] [stdout] test formatter::tests::format_agent_declaration ... ok
[INFO] [stdout] test formatter::tests::format_binop ... ok
[INFO] [stdout] test formatter::tests::format_fallback_expression ... ok
[INFO] [stdout] test formatter::tests::format_flow_declaration ... ok
[INFO] [stdout] test formatter::tests::format_idempotent ... ok
[INFO] [stdout] test formatter::tests::format_schema ... ok
[INFO] [stdout] test interpreter::agent::tests::mock_dispatch_no_args ... ok
[INFO] [stdout] test formatter::tests::format_pipeline_expression ... ok
[INFO] [stdout] test interpreter::env::tests::inner_scope_sees_outer ... ok
[INFO] [stdout] test interpreter::env::tests::scoped_lookup ... ok
[INFO] [stdout] test interpreter::env::tests::define_and_lookup ... ok
[INFO] [stdout] test interpreter::agent::tests::mock_dispatch_returns_tool_result ... ok
[INFO] [stdout] test formatter::tests::format_list_literal ... ok
[INFO] [stdout] test formatter::tests::format_test_block ... ok
[INFO] [stdout] test formatter::tests::format_tool_declaration ... ok
[INFO] [stdout] test formatter::tests::format_type_alias ... ok
[INFO] [stdout] test doc::tests::test_schemas_section ... ok
[INFO] [stdout] test doc::tests::test_tests_section ... ok
[INFO] [stdout] test formatter::tests::format_blank_lines_between_decls ... ok
[INFO] [stdout] test formatter::tests::format_multiple_params ... ok
[INFO] [stdout] test formatter::tests::format_permit_tree ... ok
[INFO] [stdout] test interpreter::tests::env_expression_reads_var ... ok
[INFO] [stdout] test interpreter::tests::match_type_pattern_no_match_falls_through ... ok
[INFO] [stdout] test interpreter::tests::on_error_returns_body_on_success ... ok
[INFO] [stdout] test interpreter::tests::match_wildcard_always_matches ... ok
[INFO] [stdout] test interpreter::tests::prompt_interpolation_multiple_vars ... ok
[INFO] [stdout] test interpreter::tests::on_error_returns_fallback_on_failure ... ok
[INFO] [stdout] test interpreter::tests::run_flow_arity_mismatch ... ok
[INFO] [stdout] test interpreter::tests::run_flow_expression ... ok
[INFO] [stdout] test interpreter::tests::match_type_pattern_string ... ok
[INFO] [stdout] test interpreter::tests::run_flow_with_binop ... ok
[INFO] [stdout] test interpreter::tests::run_flow_not_found ... ok
[INFO] [stdout] test interpreter::tests::run_flow_not_found_fails ... ok
[INFO] [stdout] test interpreter::tests::prompt_interpolation_basic ... ok
[INFO] [stdout] test interpreter::tests::run_record_literal ... ok
[INFO] [stdout] test interpreter::tests::run_record_with_variable ... ok
[INFO] [stdout] test interpreter::value::tests::truthiness ... ok
[INFO] [stdout] test interpreter::tests::run_test_pass ... ok
[INFO] [stdout] test lexer::cursor::tests::basic_advance ... ok
[INFO] [stdout] test lexer::cursor::tests::eat_while_digits ... ok
[INFO] [stdout] test lexer::cursor::tests::empty_source ... ok
[INFO] [stdout] test lexer::tests::agent_decl_tokens ... ok
[INFO] [stdout] test lexer::tests::connect_keyword ... ok
[INFO] [stdout] test interpreter::tests::run_hello_flow ... ok
[INFO] [stdout] test lexer::tests::delimiters_and_punctuation ... ok
[INFO] [stdout] test lexer::tests::identifiers ... ok
[INFO] [stdout] test lexer::tests::keywords ... ok
[INFO] [stdout] test lexer::tests::dollar_sigil ... ok
[INFO] [stdout] test interpreter::tests::run_match_expression ... ok
[INFO] [stdout] test lexer::tests::number_literals ... ok
[INFO] [stdout] test lexer::tests::prompt_literal ... ok
[INFO] [stdout] test lexer::tests::sigils ... ok
[INFO] [stdout] test lexer::tests::line_comments ... ok
[INFO] [stdout] test lexer::tests::skill_keywords ... ok
[INFO] [stdout] test interpreter::tests::run_record_field_access ... ok
[INFO] [stdout] test lexer::tests::string_literal ... ok
[INFO] [stdout] test lexer::tests::unexpected_char_error ... ok
[INFO] [stdout] test interpreter::tests::match_type_pattern_bool ... ok
[INFO] [stdout] test interpreter::tests::match_type_pattern_int ... ok
[INFO] [stdout] test interpreter::value::tests::display ... ok
[INFO] [stdout] test lexer::cursor::tests::peek_next ... ok
[INFO] [stdout] test loader::tests::duplicate_import_loaded_once ... ok
[INFO] [stdout] test lexer::tests::unterminated_prompt_error ... ok
[INFO] [stdout] test memory::tests::memory_persistence ... ok
[INFO] [stdout] test loader::tests::imported_declarations_available ... ok
[INFO] [stdout] test parser::tests::parse_backward_compat ... ok
[INFO] [stdout] test parser::tests::parse_agent_with_model_and_prompt ... ok
[INFO] [stdout] test loader::tests::nested_imports ... ok
[INFO] [stdout] test loader::tests::missing_import_file_returns_error ... ok
[INFO] [stdout] test memory::tests::memory_store_get_set ... ok
[INFO] [stdout] test parser::tests::parse_agent_bundle ... ok
[INFO] [stdout] test lexer::tests::unterminated_string_error ... ok
[INFO] [stdout] test parser::tests::parse_connect_block ... ok
[INFO] [stdout] test memory::tests::memory_store_remove ... ok
[INFO] [stdout] test parser::tests::parse_connect_with_sse ... ok
[INFO] [stdout] test memory::tests::memory_store_keys ... ok
[INFO] [stdout] test loader::tests::basic_import ... ok
[INFO] [stdout] test parser::tests::parse_match_with_wildcard ... ok
[INFO] [stdout] test loader::tests::circular_import_does_not_loop ... ok
[INFO] [stdout] test parser::tests::parse_complete_program ... ok
[INFO] [stdout] test parser::tests::parse_permit_tree ... ok
[INFO] [stdout] test parser::tests::parse_minimal_agent ... ok
[INFO] [stdout] test parser::tests::parse_fallback_chain ... ok
[INFO] [stdout] test parser::tests::parse_flow ... ok
[INFO] [stdout] test parser::tests::parse_match_with_type_pattern ... ok
[INFO] [stdout] test parser::tests::parse_match_expr ... ok
[INFO] [stdout] test parser::tests::parse_error_location ... ok
[INFO] [stdout] test parser::tests::parse_tool_mcp_shorthand ... ok
[INFO] [stdout] test span::tests::source_map_round_trip ... ok
[INFO] [stdout] test parser::tests::parse_type_alias ... ok
[INFO] [stdout] test parser::tests::parse_tool_mcp_handler ... ok
[INFO] [stdout] test parser::tests::parse_pipeline ... ok
[INFO] [stdout] test parser::tests::parse_record_literal_with_variable ... ok
[INFO] [stdout] test parser::tests::parse_recovers_multiple_errors ... ok
[INFO] [stdout] test parser::tests::parse_schema ... ok
[INFO] [stdout] test parser::tests::parse_record_literal ... ok
[INFO] [stdout] test span::tests::span_len_and_empty ... ok
[INFO] [stdout] test span::tests::span_merge ... ok
[INFO] [stdout] test template::tests::render_multiple_directives ... ok
[INFO] [stdout] test template::tests::render_repeat_expands ... ok
[INFO] [stdout] test template::tests::render_directive_simple ... ok
[INFO] [stdout] test template::tests::render_sections ... ok
[INFO] [stdout] test template::tests::render_simple_fields ... ok
[INFO] [stdout] test parser::tests::parse_test_decl ... ok
[INFO] [stdout] test template::tests::render_directive_with_defaults ... ok
[INFO] [stdout] test template::tests::render_field_no_description ... ok
[INFO] [stdout] test template::tests::render_mixed_template ... ok
[INFO] [stdout] test interpreter::env::tests::pop_global_panics - should panic ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-b0c784f87694065f)
[INFO] [stdout] test checker::scope::tests::duplicate_define ... ok
[INFO] [stdout] test interpreter::tests::binop_comparison ... ok
[INFO] [stdout] test interpreter::tests::env_expression_missing_var_fails ... ok
[INFO] [stdout] test interpreter::tests::prompt_interpolation_unknown_var_preserved ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 154 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test permission_violation_caught ... ok
[INFO] [stdout] test hello_agent_end_to_end ... ok
[INFO] [stdout] test type_checking_catches_unknown_types ... ok
[INFO] [stdout] test research_flow_end_to_end ... ok
[INFO] [stdout] test full_program_with_all_constructs ... ok
[INFO] [stdout] test tool_with_handler_parses ... ok
[INFO] [stdout] test multiple_errors_collected ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/pact_dispatch-5698294cb7828f00)
[INFO] [stdout] 
[INFO] [stdout] running 155 tests
[INFO] [stdout] test audit::tests::default_trait ... ok
[INFO] [stdout] test audit::tests::all_event_types_serialize ... ok
[INFO] [stdout] test audit::tests::clear_removes_all_entries ... ok
[INFO] [stdout] test audit::tests::filter_by_agent ... ok
[INFO] [stdout] test audit::tests::filter_by_flow ... ok
[INFO] [stdout] test audit::tests::filter_returns_empty_for_unknown ... ok
[INFO] [stdout] test audit::tests::error_entry_sets_success_false ... ok
[INFO] [stdout] test audit::tests::log_multiple_entries ... ok
[INFO] [stdout] test audit::tests::log_single_entry ... ok
[INFO] [stdout] test audit::tests::json_roundtrip ... ok
[INFO] [stdout] test audit::tests::timestamp_is_iso8601 ... ok
[INFO] [stdout] test audit::tests::summary_basic ... ok
[INFO] [stdout] test audit::tests::json_serialization ... ok
[INFO] [stdout] test cache::tests::cache_clear ... ok
[INFO] [stdout] test cache::tests::cache_get_set ... ok
[INFO] [stdout] test cache::tests::cache_miss ... ok
[INFO] [stdout] test cache::tests::parse_duration_days ... ok
[INFO] [stdout] test cache::tests::parse_duration_hours ... ok
[INFO] [stdout] test cache::tests::parse_duration_invalid ... ok
[INFO] [stdout] test cache::tests::parse_duration_minutes ... ok
[INFO] [stdout] test cache::tests::parse_duration_seconds ... ok
[INFO] [stdout] test client::tests::parse_sse_message_done ... ok
[INFO] [stdout] test client::tests::parse_sse_message_done_tool_use ... ok
[INFO] [stdout] test client::tests::parse_sse_content_block_stop ... ok
[INFO] [stdout] test client::tests::parse_sse_missing_data_returns_none ... ok
[INFO] [stdout] test client::tests::parse_sse_input_json_delta ... ok
[INFO] [stdout] test client::tests::parse_sse_text_block_start_returns_none ... ok
[INFO] [stdout] test client::tests::parse_sse_text_delta ... ok
[INFO] [stdout] test client::tests::parse_sse_tool_use_start ... ok
[INFO] [stdout] test client::tests::parse_sse_unknown_event_returns_none ... ok
[INFO] [stdout] test audit::tests::summary_empty_logger ... ok
[INFO] [stdout] test convert::tests::format_tool_call ... ok
[INFO] [stdout] test convert::tests::format_tool_call_no_args ... ok
[INFO] [stdout] test convert::tests::null_roundtrip ... ok
[INFO] [stdout] test convert::tests::roundtrip_list ... ok
[INFO] [stdout] test convert::tests::roundtrip_record ... ok
[INFO] [stdout] test executor::tests::builtin_echo ... ok
[INFO] [stdout] test convert::tests::roundtrip_string ... ok
[INFO] [stdout] test executor::tests::builtin_noop ... ok
[INFO] [stdout] test convert::tests::roundtrip_int ... ok
[INFO] [stdout] test executor::tests::handler_permissions_http_get ... ok
[INFO] [stdout] test executor::tests::handler_permissions_builtin ... ok
[INFO] [stdout] test executor::tests::extract_params_from_json ... ok
[INFO] [stdout] test executor::tests::handler_permissions_http_post ... ok
[INFO] [stdout] test executor::tests::handler_permissions_mcp ... ok
[INFO] [stdout] test executor::tests::handler_permissions_shell ... ok
[INFO] [stdout] test executor::tests::interpolate_no_match_preserved ... ok
[INFO] [stdout] test executor::tests::interpolate_shell_escapes_values ... ok
[INFO] [stdout] test executor::tests::interpolate_params ... ok
[INFO] [stdout] test executor::tests::builtin_unknown_fails ... ok
[INFO] [stdout] test executor::tests::parse_mcp_handler ... ok
[INFO] [stdout] test executor::tests::parse_unknown_format_fails ... ok
[INFO] [stdout] test executor::tests::redact_short_values_preserved ... ok
[INFO] [stdout] test executor::tests::redact_long_values_hidden ... ok
[INFO] [stdout] test audit::tests::concurrent_logging ... ok
[INFO] [stdout] test executor::tests::parse_builtin ... ok
[INFO] [stdout] test executor::tests::parse_http_get ... ok
[INFO] [stdout] test executor::tests::shell_escape_basic ... ok
[INFO] [stdout] test executor::tests::parse_mcp_handler_missing_slash_fails ... ok
[INFO] [stdout] test mcp_client::tests::parse_jsonrpc_response_no_result_no_error ... ok
[INFO] [stdout] test mcp_client::tests::parse_sse_transport_string ... ok
[INFO] [stdout] test executor::tests::parse_shell ... ok
[INFO] [stdout] test mcp_client::tests::sse_integration_handshake ... ignored
[INFO] [stdout] test executor::tests::shell_escape_injection_attempt ... ok
[INFO] [stdout] test mcp_client::tests::pool_from_empty_program ... ok
[INFO] [stdout] test mcp_client::tests::pool_from_program_with_connect ... ok
[INFO] [stdout] test mcp_client::tests::pool_with_sse_transport_config ... ok
[INFO] [stdout] test mcp_client::tests::substitute_env_vars_missing ... ok
[INFO] [stdout] test mcp_client::tests::substitute_env_vars_plain ... ok
[INFO] [stdout] test mcp_client::tests::substitute_env_vars_with_env ... ok
[INFO] [stdout] test mediation::tests::authorized_tool_passes ... ok
[INFO] [stdout] test mcp_client::tests::parse_jsonrpc_response_success ... ok
[INFO] [stdout] test executor::tests::shell_escape_single_quotes ... ok
[INFO] [stdout] test mediation::tests::credit_card_allowed_with_pay_permission ... ok
[INFO] [stdout] test mcp_client::tests::parse_jsonrpc_response_error ... ok
[INFO] [stdout] test mediation::tests::credit_card_patterns ... ok
[INFO] [stdout] test mediation::tests::mcp_handler_with_permission_passes ... ok
[INFO] [stdout] test mediation::tests::handler_http_get_without_net_read_rejected ... ok
[INFO] [stdout] test mediation::tests::invalid_input_type_rejected ... ok
[INFO] [stdout] test mediation::tests::mediation_error_display ... ok
[INFO] [stdout] test mediation::tests::mcp_parent_permission_covers_server ... ok
[INFO] [stdout] test mediation::tests::empty_output_with_return_type_rejected ... ok
[INFO] [stdout] test mediation::tests::non_empty_output_passes ... ok
[INFO] [stdout] test mediation::tests::handler_shell_with_sh_exec_passes ... ok
[INFO] [stdout] test mediation::tests::mcp_handler_without_permission_rejected ... ok
[INFO] [stdout] test mediation::tests::parent_permission_covers_child ... ok
[INFO] [stdout] test mediation::tests::missing_permission_rejected ... ok
[INFO] [stdout] test mediation::tests::scope_violation_data_storage ... ok
[INFO] [stdout] test executor::tests::parse_http_post ... ok
[INFO] [stdout] test mediation::tests::credit_card_leak_detected ... ok
[INFO] [stdout] test mediation::tests::normal_output_passes_all_checks ... ok
[INFO] [stdout] test mediation::tests::scope_violation_sending ... ok
[INFO] [stdout] test mediation::tests::sending_claim_detection ... ok
[INFO] [stdout] test mediation::tests::storage_claim_detection ... ok
[INFO] [stdout] test mediation::tests::system_prompt_leak_detected ... ok
[INFO] [stdout] test mediation::tests::system_prompt_leak_patterns ... ok
[INFO] [stdout] test mediation::tests::text_block_passes_validation ... ok
[INFO] [stdout] test ollama::tests::build_prompt_multiple_args ... ok
[INFO] [stdout] test mediation::tests::unauthorized_tool_rejected ... ok
[INFO] [stdout] test ollama::tests::build_prompt_no_args ... ok
[INFO] [stdout] test ollama::tests::build_prompt_formats_correctly ... ok
[INFO] [stdout] test ollama::tests::parse_stream_chunk ... ok
[INFO] [stdout] test ollama::tests::parse_response_json ... ok
[INFO] [stdout] test openai::tests::build_prompt_no_args ... ok
[INFO] [stdout] test openai::tests::from_env_missing_key ... ok
[INFO] [stdout] test ollama::tests::parse_stream_chunk_done ... ok
[INFO] [stdout] test openai::tests::parse_response_empty_choices ... ok
[INFO] [stdout] test openai::tests::parse_response_json ... ok
[INFO] [stdout] test openai::tests::build_prompt_formats_correctly ... ok
[INFO] [stdout] test openai::tests::build_prompt_multiple_args ... ok
[INFO] [stdout] test providers::tests::json_parse_valid ... ok
[INFO] [stdout] test providers::tests::json_parse_invalid ... ok
[INFO] [stdout] test openai::tests::parse_stream_chunk ... ok
[INFO] [stdout] test providers::tests::registry_has_fs_providers ... ok
[INFO] [stdout] test providers::tests::provider_info_has_permission ... ok
[INFO] [stdout] test openai::tests::parse_stream_chunk_no_content ... ok
[INFO] [stdout] test providers::tests::registry_has_http_providers ... ok
[INFO] [stdout] test providers::tests::registry_has_search_providers ... ok
[INFO] [stdout] test providers::tests::registry_list_all ... ok
[INFO] [stdout] test providers::tests::registry_list_namespace ... ok
[INFO] [stdout] test providers::tests::registry_unknown_returns_none ... ok
[INFO] [stdout] test providers::tests::time_now_works ... ok
[INFO] [stdout] test rate_limit::tests::agent_under_limit_passes ... ok
[INFO] [stdout] test providers::tests::unknown_provider_errors ... ok
[INFO] [stdout] test rate_limit::tests::agent_at_limit_rejected ... ok
[INFO] [stdout] test rate_limit::tests::default_config_has_sensible_values ... ok
[INFO] [stdout] test rate_limit::tests::error_display_messages ... ok
[INFO] [stdout] test rate_limit::tests::flow_exceeding_token_limit_rejected ... ok
[INFO] [stdout] test rate_limit::tests::different_agents_tracked_independently ... ok
[INFO] [stdout] test rate_limit::tests::flow_token_check_is_prospective ... ok
[INFO] [stdout] test rate_limit::tests::reset_clears_all_counters ... ok
[INFO] [stdout] test rate_limit::tests::unknown_agent_has_zero_calls ... ok
[INFO] [stdout] test rate_limit::tests::global_limit_enforced ... ok
[INFO] [stdout] test rate_limit::tests::usage_summary_reflects_state ... ok
[INFO] [stdout] test tool_loop::tests::execute_tool_without_handler_returns_simulated ... ok
[INFO] [stdout] test tool_loop::tests::extract_text_empty ... ok
[INFO] [stdout] test tool_loop::tests::validate_output_repeat_present ... ok
[INFO] [stdout] test rate_limit::tests::flow_under_token_limit_passes ... ok
[INFO] [stdout] test tool_loop::tests::extract_text_from_mixed_content ... ok
[INFO] [stdout] test tool_loop::tests::validate_output_section_present ... ok
[INFO] [stdout] test tool_loop::tests::validate_output_field_present ... ok
[INFO] [stdout] test rate_limit::tests::concurrent_access_is_safe ... ok
[INFO] [stdout] test types::tests::deserialize_tool_use_response ... ok
[INFO] [stdout] test types::tests::tool_result_error ... ok
[INFO] [stdout] test types::tests::deserialize_text_response ... ok
[INFO] [stdout] test types::tests::tool_result_success ... ok
[INFO] [stdout] test cache::tests::cache_expiry ... ok
[INFO] [stdout] test ollama::tests::from_env_uses_defaults ... ok
[INFO] [stdout] test client::tests::client_with_custom_base_url ... ok
[INFO] [stdout] test ollama::tests::generate_url_construction ... ok
[INFO] [stdout] test ollama::tests::new_creates_dispatcher ... ok
[INFO] [stdout] test ollama::tests::generate_url_custom_base ... ok
[INFO] [stdout] test ollama::tests::from_env_reads_custom_values ... ok
[INFO] [stdout] test openai::tests::new_creates_dispatcher ... ok
[INFO] [stdout] test client::tests::client_requires_api_key ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 154 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.58s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/dispatch_integration.rs (/opt/rustwide/target/debug/deps/dispatch_integration-7ef52cb3ab404da7)
[INFO] [stdout] 
[INFO] [stdout] running 42 tests
[INFO] [stdout] test convert_roundtrip_bool ... ok
[INFO] [stdout] test convert_roundtrip_null ... ok
[INFO] [stdout] test convert_roundtrip_string ... ok
[INFO] [stdout] test convert_roundtrip_int ... ok
[INFO] [stdout] test convert_roundtrip_float ... ok
[INFO] [stdout] test cache_miss_returns_none ... ok
[INFO] [stdout] test cache_clear_removes_all ... ok
[INFO] [stdout] test convert_tool_result_to_json ... ok
[INFO] [stdout] test cache_overwrite_value ... ok
[INFO] [stdout] test cache_set_and_get ... ok
[INFO] [stdout] test error_unknown_provider_not_in_registry ... ok
[INFO] [stdout] test convert_roundtrip_record ... ok
[INFO] [stdout] test error_invalid_handler_format ... ok
[INFO] [stdout] test executor_builtin_echo ... ok
[INFO] [stdout] test error_provider_fs_write_missing_content_param ... ok
[INFO] [stdout] test error_provider_json_parse_missing_input ... ok
[INFO] [stdout] test error_provider_fs_read_missing_path_param ... ok
[INFO] [stdout] test executor_builtin_echo_text_key ... ok
[INFO] [stdout] test error_provider_fs_glob_missing_pattern ... ok
[INFO] [stdout] test error_http_handler_missing_url ... ok
[INFO] [stdout] test error_unknown_provider_capability ... ok
[INFO] [stdout] test convert_roundtrip_nested_list_in_record ... ok
[INFO] [stdout] test convert_agent_ref_to_json ... ok
[INFO] [stdout] test convert_roundtrip_list ... ok
[INFO] [stdout] test error_unknown_builtin_handler ... ok
[INFO] [stdout] test error_provider_fs_write_missing_path_param ... ok
[INFO] [stdout] test mediation_sensitive_data_leak_detected ... ok
[INFO] [stdout] test mediation_unauthorized_tool_caught ... ok
[INFO] [stdout] test mediation_scope_violation_detected ... ok
[INFO] [stdout] test mediation_full_program_agent_with_tools ... ok
[INFO] [stdout] test mediation_missing_permission_caught ... ok
[INFO] [stdout] test provider_fs_read_temp_file ... ok
[INFO] [stdout] test mediation_invalid_input_type_caught ... ok
[INFO] [stdout] test executor_builtin_json ... ok
[INFO] [stdout] test provider_fs_glob_pattern ... ok
[INFO] [stdout] test executor_shell_echo ... ok
[INFO] [stdout] test executor_builtin_noop ... ok
[INFO] [stdout] test provider_fs_write_temp_file ... ok
[INFO] [stdout] test provider_time_now ... ok
[INFO] [stdout] test provider_json_parse ... ok
[INFO] [stdout] test executor_shell_with_interpolation ... ok
[INFO] [stdout] test cache_ttl_expiry ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- cache_ttl_expiry stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'cache_ttl_expiry' (4133) panicked at crates/pact-dispatch/tests/dispatch_integration.rs:423:5:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: None
[INFO] [stdout]  right: Some("temp_value")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5747d13227c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5747d13227c1 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5747d13227c1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5747d13227c1 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5747d133ab2a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5747d133ab2a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5747d132769c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5747d132769c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5747d12fdf56 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5747d12fdf56 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5747d13195e9 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5747d0ba1900 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5747d0ba1900 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5747d1319912 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5747d1319912 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5747d12fe002 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5747d12f5539 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5747d12feded - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5747d133b35c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5747d133b1e3 - core[6883ba1bc0fe4ed1]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x5747d0b887c2 - core[6883ba1bc0fe4ed1]::panicking::assert_failed::<core[6883ba1bc0fe4ed1]::option::Option<alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::option::Option<alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5747d0b7f3b1 - dispatch_integration[d665e51da77c702f]::cache_ttl_expiry
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/pact-dispatch/tests/dispatch_integration.rs:423:5
[INFO] [stdout]   22:     0x5747d0b76a47 - dispatch_integration[d665e51da77c702f]::cache_ttl_expiry::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/pact-dispatch/tests/dispatch_integration.rs:416:22
[INFO] [stdout]   23:     0x5747d0b94176 - <dispatch_integration[d665e51da77c702f]::cache_ttl_expiry::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5747d0b94c3b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5747d0b94c3b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5747d0ba2285 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5747d0ba2285 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5747d0ba2285 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   29:     0x5747d0ba2285 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5747d0ba2285 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5747d0ba2285 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5747d0ba2285 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5747d0b9cd34 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5747d0b9cd34 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5747d0ba53d2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5747d0ba53d2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5747d0ba53d2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   38:     0x5747d0ba53d2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5747d0ba53d2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5747d0ba53d2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5747d0ba53d2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5747d132172f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   43:     0x5747d132172f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   44:     0x76094bda3aa4 - <unknown>
[INFO] [stdout]   45:     0x76094be30a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     cache_ttl_expiry
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 41 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `-p pact-dispatch --test dispatch_integration`
[INFO] running `Command { std: "docker" "inspect" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6", kill_on_drop: false }`
[INFO] [stdout] 9639ddcc599179e01a5de42ad247963de235129bf70374abec1b257ddd67baf6
