[INFO] cloning repository https://github.com/BlaineHeffron/foia-search-mcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BlaineHeffron/foia-search-mcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlaineHeffron%2Ffoia-search-mcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlaineHeffron%2Ffoia-search-mcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 963fe988b07b1827faf417ef3e3733df300b2c69
[INFO] testing BlaineHeffron/foia-search-mcp against 1.97.0-beta.6+cargoflags=--release for beta-1.98-release-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBlaineHeffron%2Ffoia-search-mcp" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/BlaineHeffron/foia-search-mcp
[INFO] finished tweaking git repo https://github.com/BlaineHeffron/foia-search-mcp
[INFO] tweaked toml for git repo https://github.com/BlaineHeffron/foia-search-mcp written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/BlaineHeffron/foia-search-mcp on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/BlaineHeffron/foia-search-mcp 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v2.7.0
[INFO] [stderr]   Downloaded socket2 v0.6.3
[INFO] [stderr]   Downloaded futf v0.1.5
[INFO] [stderr]   Downloaded futures-io v0.3.32
[INFO] [stderr]   Downloaded servo_arc v0.3.0
[INFO] [stderr]   Downloaded phf_codegen v0.10.0
[INFO] [stderr]   Downloaded new_debug_unreachable v1.0.6
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.121
[INFO] [stderr]   Downloaded precomputed-hash v0.1.1
[INFO] [stderr]   Downloaded ego-tree v0.6.3
[INFO] [stderr]   Downloaded fallible-streaming-iterator v0.1.9
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.121
[INFO] [stderr]   Downloaded mac v0.1.1
[INFO] [stderr]   Downloaded phf_shared v0.10.0
[INFO] [stderr]   Downloaded ref-cast v1.0.25
[INFO] [stderr]   Downloaded phf_shared v0.11.3
[INFO] [stderr]   Downloaded siphasher v1.0.3
[INFO] [stderr]   Downloaded string_cache_codegen v0.5.4
[INFO] [stderr]   Downloaded phf_codegen v0.11.3
[INFO] [stderr]   Downloaded phf v0.10.1
[INFO] [stderr]   Downloaded cssparser-macros v0.6.1
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.25
[INFO] [stderr]   Downloaded dyn-clone v1.0.20
[INFO] [stderr]   Downloaded phf_generator v0.11.3
[INFO] [stderr]   Downloaded hashlink v0.9.1
[INFO] [stderr]   Downloaded phf_generator v0.10.0
[INFO] [stderr]   Downloaded schemars_derive v1.2.1
[INFO] [stderr]   Downloaded darling_macro v0.23.0
[INFO] [stderr]   Downloaded cfg_aliases v0.2.1
[INFO] [stderr]   Downloaded rustc-hash v2.1.2
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.71
[INFO] [stderr]   Downloaded dtoa-short v0.3.5
[INFO] [stderr]   Downloaded dtoa v1.0.11
[INFO] [stderr]   Downloaded getopts v0.2.24
[INFO] [stderr]   Downloaded fallible-iterator v0.3.0
[INFO] [stderr]   Downloaded phf v0.11.3
[INFO] [stderr]   Downloaded phf_macros v0.11.3
[INFO] [stderr]   Downloaded sha2 v0.10.9
[INFO] [stderr]   Downloaded tendril v0.4.3
[INFO] [stderr]   Downloaded scraper v0.20.0
[INFO] [stderr]   Downloaded serde_derive_internals v0.29.1
[INFO] [stderr]   Downloaded rmcp-macros v0.14.0
[INFO] [stderr]   Downloaded pastey v0.2.2
[INFO] [stderr]   Downloaded markup5ever v0.12.1
[INFO] [stderr]   Downloaded string_cache v0.8.9
[INFO] [stderr]   Downloaded bitflags v2.11.1
[INFO] [stderr]   Downloaded futures-executor v0.3.32
[INFO] [stderr]   Downloaded rustls-pki-types v1.14.1
[INFO] [stderr]   Downloaded web-time v1.1.0
[INFO] [stderr]   Downloaded wasm-streams v0.4.2
[INFO] [stderr]   Downloaded yoke v0.8.2
[INFO] [stderr]   Downloaded quinn-udp v0.5.14
[INFO] [stderr]   Downloaded darling v0.23.0
[INFO] [stderr]   Downloaded selectors v0.25.0
[INFO] [stderr]   Downloaded derive_more v0.99.20
[INFO] [stderr]   Downloaded cssparser v0.31.2
[INFO] [stderr]   Downloaded futures v0.3.32
[INFO] [stderr]   Downloaded tinyvec v1.11.0
[INFO] [stderr]   Downloaded rand v0.8.6
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.121
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.121
[INFO] [stderr]   Downloaded html5ever v0.27.0
[INFO] [stderr]   Downloaded ahash v0.8.12
[INFO] [stderr]   Downloaded darling_core v0.23.0
[INFO] [stderr]   Downloaded mio v1.2.0
[INFO] [stderr]   Downloaded wit-bindgen v0.57.1
[INFO] [stderr]   Downloaded js-sys v0.3.98
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.48
[INFO] [stderr]   Downloaded schemars v1.2.1
[INFO] [stderr]   Downloaded cc v1.2.62
[INFO] [stderr]   Downloaded typenum v1.20.0
[INFO] [stderr]   Downloaded quinn v0.11.9
[INFO] [stderr]   Downloaded rand v0.9.4
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.23
[INFO] [stderr]   Downloaded wasip2 v1.0.3+wasi-0.2.9
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded tower-http v0.6.10
[INFO] [stderr]   Downloaded hyper v1.9.0
[INFO] [stderr]   Downloaded h2 v0.4.14
[INFO] [stderr]   Downloaded webpki-roots v1.0.7
[INFO] [stderr]   Downloaded rmcp v0.14.0
[INFO] [stderr]   Downloaded quinn-proto v0.11.14
[INFO] [stderr]   Downloaded zerocopy v0.8.48
[INFO] [stderr]   Downloaded unicode-width v0.2.2
[INFO] [stderr]   Downloaded rustls v0.23.40
[INFO] [stderr]   Downloaded libc v0.2.186
[INFO] [stderr]   Downloaded web-sys v0.3.98
[INFO] [stderr]   Downloaded tokio v1.52.3
[INFO] [stderr]   Downloaded libsqlite3-sys v0.30.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be
[INFO] running `Command { std: "docker" "start" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", 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" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", 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" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling siphasher v0.3.11
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling servo_arc v0.3.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling rmcp v0.14.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling getopts v0.2.24
[INFO] [stderr]    Compiling pastey v0.2.2
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling ego-tree v0.6.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling html5ever v0.27.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]    Compiling string_cache_codegen v0.5.4
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling phf_codegen v0.11.3
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling markup5ever v0.12.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling cssparser v0.31.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rmcp-macros v0.14.0
[INFO] [stderr]    Compiling hashlink v0.9.1
[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 icu_provider v2.2.0
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling scraper v0.20.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[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 rusqlite v0.32.1
[INFO] [stderr]    Compiling foia-search v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4m 25s
[INFO] running `Command { std: "docker" "inspect" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", 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" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling scraper v0.20.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling foia-search v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 38s
[INFO] running `Command { std: "docker" "inspect" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", 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" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/foia_search-694b8091c4fdcfb7)
[INFO] [stdout] 
[INFO] [stdout] running 284 tests
[INFO] [stdout] test config::status::tests::ocr_status_defaults_to_off_with_no_backend_guidance ... ok
[INFO] [stdout] test config::status::tests::every_source_status_note_mentions_rate_or_query_guidance ... ok
[INFO] [stdout] test config::status::tests::every_source_status_note_mentions_cache_or_persistence_policy ... ok
[INFO] [stdout] test config::status::tests::ocr_status_reports_configured_policy_backend_and_binary_guidance ... ok
[INFO] [stdout] test config::status::tests::ocr_status_reports_tesseract_as_unavailable_not_enabled ... ok
[INFO] [stdout] test config::status::tests::ocr_status_reports_tesseract_unavailable_even_when_fallback_policy_is_off ... ok
[INFO] [stdout] test config::status::tests::source_status_names_follow_registry ... ok
[INFO] [stdout] test config::status::tests::source_status_reports_nara_key_state_and_do_not_persist_policy ... ok
[INFO] [stdout] test config::tests::ocr_backend_defaults_disabled_without_env_values ... ok
[INFO] [stdout] test index::eval_report_tests::eval_report_flags_source_filter_mismatches_without_hiding_results ... ok
[INFO] [stdout] test index::eval_report_tests::eval_report_reads_source_warning_from_nested_and_top_level_metadata_shapes ... ok
[INFO] [stdout] test index::eval_report_tests::eval_report_records_query_order_empty_state_and_shape_parity ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_apply_does_not_mutate_canonical_tables ... ok
[INFO] [stdout] test index::search::tests::local_search_index_delegates_to_backend ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_plan_rewrites_missing_rows ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_keeps_orphans_as_manual_review_without_deleting_them ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_is_clean_when_canonical_and_fts_match ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_reports_stale_rows_when_fields_drift ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_applies_mixed_drift_and_leaves_manual_orphan ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_rewrites_duplicate_rows_to_single_canonical_row ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_reports_orphaned_chunk_fts_rows ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_does_not_mutate_store_rows ... ok
[INFO] [stdout] test index::eval_report_tests::eval_report_integrates_with_sqlite_fts_backend ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_apply_is_idempotent_for_second_apply_of_same_plan ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_returns_error_when_derived_table_is_unreadable ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_reports_missing_chunk_fts_rows ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_reports_duplicate_rows_for_matching_chunk ... ok
[INFO] [stdout] test ingest::chunk::tests::chunking_preserves_page_ranges ... ok
[INFO] [stdout] test ingest::download::tests::cache_key_is_stable_and_source_scoped ... ok
[INFO] [stdout] test ingest::download::tests::source_cache_policy_maps_to_store_policy ... ok
[INFO] [stdout] test index::reconcile_tests::reconcile_sqlite_fts_report_is_stable_and_idempotent ... ok
[INFO] [stdout] test ingest::download_persist::tests::respect_source_headers_no_store_becomes_do_not_persist ... ok
[INFO] [stdout] test index::reconcile_repair_tests::repair_plan_rewrites_stale_rows_from_canonical ... ok
[INFO] [stdout] test ingest::download::tests::cache_control_no_store_disables_cache_entry ... ok
[INFO] [stdout] test index::sqlite_sufficiency_eval_tests::sqlite_sufficiency_eval_reports_empty_corpus_query_as_empty ... ok
[INFO] [stdout] test index::sqlite_fts::tests::search_returns_page_aware_chunk_hits ... ok
[INFO] [stdout] test index::sqlite_fts::tests::search_hit_carries_persisted_document_notes_and_warning_metadata ... ok
[INFO] [stdout] test index::sqlite_fts_eval_tests::sqlite_phase9_baseline_enforces_source_filter_without_shape_regression ... ok
[INFO] [stdout] test index::sqlite_fts::tests::search_preserves_source_filter_parity_through_backend_seam ... ok
[INFO] [stdout] test index::sqlite_fts_eval_tests::sqlite_phase9_baseline_preserves_result_shape_fields_relevant_to_evals ... ok
[INFO] [stdout] test index::sqlite_fts_eval_tests::sqlite_phase9_baseline_keeps_mixed_source_top_k_order_stable ... ok
[INFO] [stdout] test ingest::download_persist::tests::persist_download_deletes_cached_row_for_do_not_persist ... ok
[INFO] [stdout] test ingest::executor_send_tests::async_store_free_executor_boundaries_are_send ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::planning_failure_advances_to_planning_progress ... ok
[INFO] [stdout] test index::sqlite_sufficiency_eval_tests::sqlite_sufficiency_eval_covers_mixed_source_filter_and_shape_contract ... ok
[INFO] [stdout] test index::sqlite_sufficiency_eval_tests::sqlite_sufficiency_eval_uses_deterministic_tie_breaker_for_equal_scores ... ok
[INFO] [stdout] test index::sqlite_sufficiency_eval_tests::sqlite_sufficiency_eval_keeps_mixed_source_top_k_order_stable_across_runs ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::cancellation_before_persistence_interrupts_without_partial_rows ... ok
[INFO] [stdout] test ingest::ocr::tests::ocr_backend_config_defaults_to_disabled_ocrmypdf_settings ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::cancellation_before_asset_provenance_write_keeps_document_rows_resumable ... ok
[INFO] [stdout] test ingest::ocr::tests::ocr_backend_config_parses_explicit_ocrmypdf_backend ... ok
[INFO] [stdout] test ingest::ocr::tests::ocr_backend_config_parses_tesseract_as_unimplemented_backend ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::cancellation_after_source_resolution_is_resumable ... ok
[INFO] [stdout] test ingest::executor_send_tests::full_executor_run_next_future_is_send ... ok
[INFO] [stdout] test index::sqlite_fts_eval_tests::sqlite_phase9_baseline_returns_empty_hits_for_empty_or_sparse_corpora ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::missing_ocrmypdf_binary_returns_unavailable ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::ocrmypdf_cancellation_kills_process ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::invalid_ocrmypdf_output_is_rejected_before_reparse ... ok
[INFO] [stdout] test ingest::pdf_text_tests::embedded_failure_is_rescued_by_ocr_when_enabled ... ok
[INFO] [stdout] test ingest::pdf_text_tests::embedded_pdf_text_with_warnings_keeps_embedded_when_ocr_disabled ... ok
[INFO] [stdout] test ingest::pdf_text_tests::embedded_pdf_text_with_warnings_uses_compatible_ocr_when_enabled ... ok
[INFO] [stdout] test ingest::pdf_text_tests::embedded_pdf_text_without_warnings_does_not_try_ocr ... ok
[INFO] [stdout] test ingest::pdf_text_tests::incompatible_ocr_page_boundaries_keep_embedded_pdf_text ... ok
[INFO] [stdout] test ingest::executor_tests::stale_worker_cannot_record_warning_after_reclaim ... ok
[INFO] [stdout] test ingest::executor_frus_tests::frus_executor_loopback_preserves_official_metadata_and_notes ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::nonzero_ocrmypdf_exit_captures_bounded_stderr ... ok
[INFO] [stdout] test ingest::executor_tests::failed_download_marks_job_failed_and_can_claim_requeued_job ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::extraction_cancelled_error_marks_job_interrupted_not_failed ... ok
[INFO] [stdout] test ingest::pdf_text_tests::ocr_cancellation_is_not_swallowed_as_embedded_fallback ... ok
[INFO] [stdout] test ingest::pdf_text_tests::ocr_policy_parses_only_explicit_opt_in_as_enabled ... ok
[INFO] [stdout] test ingest::pdf_text_tests::ocr_failure_falls_back_to_embedded_pdf_text_and_warnings ... ok
[INFO] [stdout] test ingest::executor_nara_tests::nara_executor_loopback_keeps_do_not_persist_and_metadata_contracts ... ok
[INFO] [stdout] test ingest::pdftotext::tests::missing_binary_returns_explicit_error ... ok
[INFO] [stdout] test ingest::executor_tests::extraction_failure_after_download_leaves_no_partial_local_rows ... ok
[INFO] [stdout] test ingest::reconcile_compare::tests::reconcile_compare_detects_mismatch_and_trailing_content ... ok
[INFO] [stdout] test ingest::reconcile_compare::tests::reconcile_compare_matches_rendered_pages_without_full_file_read ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::ocrmypdf_output_is_reparsed_with_pdftotext ... ok
[INFO] [stdout] test ingest::executor_cancel_tests::cancellation_after_claim_marks_job_interrupted ... ok
[INFO] [stdout] test ingest::pdftotext::tests::cancellation_kills_process_and_returns_cancelled_error ... ok
[INFO] [stdout] test ingest::executor_tests::expired_running_job_reclaims_and_replaces_partial_state ... ok
[INFO] [stdout] test ingest::executor_tests::run_next_ingests_document_asset_pages_chunks_and_warnings ... ok
[INFO] [stdout] test ingest::pdftotext::tests::nonzero_exit_captures_bounded_stderr ... ok
[INFO] [stdout] test ingest::pdftotext::tests::blank_pages_are_preserved_and_warned_for ... ok
[INFO] [stdout] test ingest::reconcile_repair_tests::planner_is_idempotent_and_orders_actions_stably ... ok
[INFO] [stdout] test ingest::pdf_text_tests::incompatible_ocr_page_boundaries_record_durable_job_warning ... ok
[INFO] [stdout] test ingest::reconcile_repair_tests::planner_maps_orphaned_issues_to_manual_review_actions ... ok
[INFO] [stdout] test ingest::reconcile_repair_tests::planner_maps_missing_and_stale_issues_to_rewrite_actions ... ok
[INFO] [stdout] test ingest::reconcile_repair_tests::planner_returns_empty_actions_for_clean_report ... ok
[INFO] [stdout] test ingest::pdftotext::tests::extracts_form_feed_pages_from_external_output ... ok
[INFO] [stdout] test ingest::pdf_text_tests::non_pdf_text_asset_bypasses_ocr_selector ... ok
[INFO] [stdout] test ingest::executor_tests::interrupted_job_preserves_stage_and_progress_then_resumes ... ok
[INFO] [stdout] test ingest::pdftotext::tests::timeout_kills_process_and_returns_timeout_error ... ok
[INFO] [stdout] test ingest::ocr::tests::ocr_backend_config_ignores_unknown_values ... ok
[INFO] [stdout] test ingest::executor_govinfo_tests::govinfo_executor_loopback_persists_metadata_and_plan_contract ... ok
[INFO] [stdout] test ingest::redirect::tests::rejects_loopback_literal ... ok
[INFO] [stdout] test ingest::redirect::tests::rejects_malformed_location ... ok
[INFO] [stdout] test ingest::redirect::tests::rejects_unsafe_cross_host_literals ... ok
[INFO] [stdout] test ingest::redirect::tests::resolves_relative_location ... ok
[INFO] [stdout] test ingest::source_plan::tests::doj_epstein_mixed_media_preserves_sensitive_notes_and_selects_pdf_only ... ok
[INFO] [stdout] test ingest::source_plan::tests::falls_back_to_ocr_text_when_no_pdf_exists ... ok
[INFO] [stdout] test ingest::source_plan::tests::falls_back_to_plain_text_mime_for_other_assets ... ok
[INFO] [stdout] test ingest::source_plan::tests::normalizes_pdf_asset_from_mime_or_url_hint ... ok
[INFO] [stdout] test ingest::source_plan::tests::prefers_pdf_over_ocr_and_preserves_notes ... ok
[INFO] [stdout] test ingest::source_plan::tests::returns_actionable_error_without_ingestible_asset ... ok
[INFO] [stdout] test ingest::source_plan::tests::returns_error_for_invalid_document_key ... ok
[INFO] [stdout] test ingest::source_plan::tests::uses_record_pdf_url_when_asset_list_lacks_pdf ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::falls_back_to_html_only_when_no_document_asset_exists ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::falls_back_to_plain_text_before_html_when_no_pdf_exists ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::govinfo_plan_preserves_notes_warning_policy_and_official_urls ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::preserves_source_ids_without_promoting_them_to_document_keys ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::reports_actionable_error_with_candidate_roles_for_metadata_only_media ... ok
[INFO] [stdout] test ingest::source_plan_asset_tests::selects_pdf_over_images_audio_video_html_and_other_assets ... ok
[INFO] [stdout] test ingest::reconcile_repair_apply_tests::apply_reports_path_mismatch_explicitly ... ok
[INFO] [stdout] test ingest::worker::tests::idle_worker_wait_times_out_without_kick ... ok
[INFO] [stdout] test ingest::worker::tests::kick_wakes_idle_worker_wait_without_poll_timeout ... ok
[INFO] [stdout] test ingest::reconcile_repair_apply_tests::apply_skips_manual_review_without_mutation ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_does_not_delete_canonical_rows_or_blobs ... ok
[INFO] [stdout] test ingest::reconcile_repair_apply_tests::apply_recreates_missing_parent_directories ... ok
[INFO] [stdout] test ingest::worker::tests::shutdown_takes_precedence_over_drained_kicks ... ok
[INFO] [stdout] test ingest::worker_cancel_tests::shutdown_requests_cancellation_before_join ... ok
[INFO] [stdout] test ingest::worker_ocr::tests::effective_ocr_backend_keeps_unimplemented_tesseract_disabled ... ok
[INFO] [stdout] test ingest::worker_ocr::tests::effective_ocr_backend_requires_policy_and_backend_opt_in ... ok
[INFO] [stdout] test ingest::worker_send_tests::queued_worker_run_once_future_is_send ... ok
[INFO] [stdout] test mcp::direct_ingestion_policy::tests::deny_all_never_allows_url_source_ids ... ok
[INFO] [stdout] test mcp::direct_ingestion_policy::tests::fixture_policy_allows_only_configured_source_scheme_host_port_and_path_prefix ... ok
[INFO] [stdout] test mcp::direct_ingestion_policy::tests::fixture_policy_rejects_malformed_entries ... ok
[INFO] [stdout] test mcp::fts_repair_tests::apply_rejects_bad_confirmation_without_mutation ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_detects_missing_expected_artifacts ... ok
[INFO] [stdout] test mcp::fts_repair_tests::apply_rewrites_safe_rows_and_is_idempotent ... ok
[INFO] [stdout] test ingest::reconcile_repair_tests::planner_does_not_mutate_files_or_db_rows ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_detects_orphaned_artifacts ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_handles_absent_artifact_paths ... ok
[INFO] [stdout] test mcp::ingestion_tests::direct_url_and_local_file_inputs_are_actionably_rejected ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_reports_directory_shape_errors ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_detects_stale_expected_artifacts ... ok
[INFO] [stdout] test ingest::reconcile_repair_apply_tests::apply_rewrites_missing_and_stale_derived_artifacts ... ok
[INFO] [stdout] test mcp::fts_repair_tests::bad_confirmation_maps_to_invalid_params ... ok
[INFO] [stdout] test mcp::fts_repair_tests::mcp_apply_does_not_mutate_canonical_tables ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_detects_orphaned_non_file_page_entries ... ok
[INFO] [stdout] test mcp::fts_repair_tests::orphan_rows_remain_manual_review_and_are_not_deleted ... ok
[INFO] [stdout] test mcp::ingestion_tests::source_prefixed_direct_or_path_like_inputs_are_rejected ... ok
[INFO] [stdout] test mcp::ingestion_tests::source_prefixed_direct_urls_require_exact_trusted_path_prefix ... ok
[INFO] [stdout] test mcp::ingestion_tests::source_prefixed_document_id_can_contain_adapter_path_syntax ... ok
[INFO] [stdout] test mcp::fts_repair_tests::report_and_plan_surface_remain_dry_run ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_enqueues_durable_job_for_local_source_prefixed_document ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_remains_direct_deny_even_with_trusted_policy_fixture ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_rejects_unknown_source_with_actionable_local_document_error ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_accepts_local_document_key_and_preserves_revalidation_metadata ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_rejects_unknown_or_non_local_document_before_enqueue ... ok
[INFO] [stdout] test ingest::ocrmypdf_tests::ocrmypdf_timeout_kills_process ... ok
[INFO] [stdout] test mcp::ingestion_tests::source_prefixed_document_id_parses_and_enqueues ... ok
[INFO] [stdout] test ingest::reconcile_tests::reconcile_reports_no_issues_when_artifacts_match_and_is_idempotent ... ok
[INFO] [stdout] test mcp::schema_tests::all_expected_mcp_tools_are_registered_with_metadata ... ok
[INFO] [stdout] test mcp::schema_tests::list_sources_tool_description_names_object_response_shape ... ok
[INFO] [stdout] test mcp::schema_tests::repair_apply_tool_descriptions_name_confirmation_and_manual_review_behavior ... ok
[INFO] [stdout] test mcp::schema_tests::repair_apply_tool_schemas_expose_confirmation_guidance ... ok
[INFO] [stdout] test mcp::schema_tests::search_local_documents_tool_description_names_object_response_shape ... ok
[INFO] [stdout] test mcp::schema_tests::source_bearing_tool_schemas_include_the_central_source_list ... ok
[INFO] [stdout] test mcp::ingestion_tests::trusted_source_prefixed_https_url_is_allowed_only_with_explicit_policy ... ok
[INFO] [stdout] test mcp::source_params::tests::source_parameter_schema_descriptions_list_all_valid_sources ... ok
[INFO] [stdout] test mcp::source_params::tests::source_parameter_schema_descriptions_use_central_source_list ... ok
[INFO] [stdout] test mcp::status::tests::list_sources_entries_remain_compact_source_status_objects ... ok
[INFO] [stdout] test mcp::status::tests::list_sources_output_reports_default_ocr_off_and_no_backend ... ok
[INFO] [stdout] test mcp::status::tests::list_sources_output_reports_enabled_ocr_policy_and_backend ... ok
[INFO] [stdout] test mcp::support_tests::local_document_outputs_source_warning_from_persisted_metadata ... ok
[INFO] [stdout] test mcp::support_tests::local_search_hit_outputs_source_warning_citation_and_terms ... ok
[INFO] [stdout] test mcp::support_tests::local_search_response_includes_guidance_for_empty_unfiltered_results ... ok
[INFO] [stdout] test mcp::status::tests::list_sources_output_serializes_as_object_with_ocr_and_sources ... ok
[INFO] [stdout] test mcp::support_tests::local_search_response_keeps_non_empty_hit_shape_and_no_next_actions ... ok
[INFO] [stdout] test mcp::support_tests::local_search_response_includes_source_specific_guidance_for_filter_miss ... ok
[INFO] [stdout] test mcp::support_tests::local_text_empty_result_includes_guidance_without_body_text ... ok
[INFO] [stdout] test mcp::support_tests::local_text_outputs_source_warning_from_persisted_metadata ... ok
[INFO] [stdout] test mcp::support_tests::text_page_range_accepts_one_based_inclusive_maximum ... ok
[INFO] [stdout] test mcp::support_tests::text_page_range_rejects_missing_bounds_with_actionable_message ... ok
[INFO] [stdout] test mcp::support_tests::text_page_range_rejects_zero_inverted_and_oversized_ranges ... ok
[INFO] [stdout] test mcp::tools::tests::document_locator_preserves_valid_source_and_id ... ok
[INFO] [stdout] test mcp::tools::tests::document_locator_requires_source_prefix_and_source_id ... ok
[INFO] [stdout] test mcp::tools::tests::ingestion_job_response_falls_back_to_target_url_and_stage_action ... ok
[INFO] [stdout] test mcp::tools::tests::ingestion_job_response_includes_document_id_next_actions_and_errors ... ok
[INFO] [stdout] test mcp::tools::tests::local_document_response_parses_metadata_json ... ok
[INFO] [stdout] test mcp::tools::tests::local_document_response_rejects_invalid_metadata_json ... ok
[INFO] [stdout] test mcp::tools::tests::local_document_text_response_includes_page_citations_and_combined_text ... ok
[INFO] [stdout] test ingest::reconcile_repair_apply_tests::apply_second_pass_is_idempotent ... ok
[INFO] [stdout] test mcp::ingestion_tests::refresh_uses_same_direct_ingestion_rejection_before_enqueue ... ok
[INFO] [stdout] test mcp::ingestion_tests::source_prefixed_untrusted_urls_do_not_create_jobs_even_with_policy_fixture ... ok
[INFO] [stdout] test mcp::tools::tests::source_validation_accepts_known_sources_and_rejects_unknown_sources ... ok
[INFO] [stdout] test mcp::tools::tests::text_page_range_accepts_inclusive_bounded_ranges ... ok
[INFO] [stdout] test mcp::tools::tests::text_page_range_rejects_zero_inverted_and_oversized_ranges ... ok
[INFO] [stdout] test mcp::tools::tests::text_page_range_requires_explicit_bounds ... ok
[INFO] [stdout] test model::tests::source_record_response_promotes_warning_and_assets ... ok
[INFO] [stdout] test model::tests::source_warning_helper_accepts_persisted_source_metadata_shape ... ok
[INFO] [stdout] test source_registry_tests::list_sources_notes_are_registered_for_every_runtime_source ... ok
[INFO] [stdout] test source_registry_tests::runtime_source_cache_policies_match_source_status_guidance ... ok
[INFO] [stdout] test ingest::worker::tests::run_once_returns_none_when_no_job_is_available ... ok
[INFO] [stdout] test source_registry_tests::source_names_match_runtime_mcp_and_config_status ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::aaro_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::army_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::cia_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::dia_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::doe_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::doj_epstein_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::doj_foia_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::dtic_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::fbi_vault_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::frus_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::govinfo_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::nara_adapter_cache_policy_remains_do_not_persist ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::navy_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::noaa_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::nsa_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::osd_joint_staff_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::pursue_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::source_adapter_default_cache_policy_is_respect_source_headers ... ok
[INFO] [stdout] test sources::cache_policy_contract_tests::state_adapter_cache_policy_remains_respect_source_headers ... ok
[INFO] [stdout] test sources::cia::tests::parse_document_extracts_title_metadata_and_attachments ... ok
[INFO] [stdout] test sources::cia::tests::parse_search_extracts_document_results ... ok
[INFO] [stdout] test sources::cia::tests::parse_search_uses_next_link_for_cursor ... ok
[INFO] [stdout] test sources::cia::tests::parse_search_handles_nested_result_markup ... ok
[INFO] [stdout] test sources::cia::tests::parse_search_warns_when_shape_changes ... ok
[INFO] [stdout] test sources::cia::tests::rejects_cross_origin_cia_document_urls ... ok
[INFO] [stdout] test sources::doe::live::url::tests::official_url_accepts_opennet_detail_https_only ... ok
[INFO] [stdout] test sources::cia::tests::rejects_non_cia_document_urls ... ok
[INFO] [stdout] test sources::dtic::live::url::tests::parses_accession_from_citation_url ... ok
[INFO] [stdout] test sources::dtic::live::url::tests::rejects_non_official_and_http_urls ... ok
[INFO] [stdout] test sources::frus::live::assets::tests::assets_prefer_tei_then_pdf_then_html_then_ebook ... ok
[INFO] [stdout] test sources::frus::live::url::tests::parses_source_id_from_official_url ... ok
[INFO] [stdout] test sources::frus::live::url::tests::rejects_non_official_urls ... ok
[INFO] [stdout] test sources::govinfo::live::assets::tests::attachments_prefer_pdf_xml_mods_order ... ok
[INFO] [stdout] test sources::govinfo::live::assets::tests::attachments_reject_official_mismatches_and_non_govinfo_hosts ... ok
[INFO] [stdout] test sources::govinfo::live::parse_tests::parse_locator_accepts_ids_urls_and_composites ... ok
[INFO] [stdout] test sources::govinfo::live::parse_tests::summary_record_uses_official_urls_and_preserves_policy_metadata ... ok
[INFO] [stdout] test sources::govinfo::live::parse_tests::search_record_normalization_prefers_result_link_and_notes ... ok
[INFO] [stdout] test sources::nara::tests::converts_offsets_to_documented_page_numbers ... ok
[INFO] [stdout] test sources::nara::tests::cursor_round_trips_offsets ... ok
[INFO] [stdout] test sources::nara::tests::parses_elasticsearch_style_hits ... ok
[INFO] [stdout] test sources::nara::tests::parses_records_and_digital_assets ... ok
[INFO] [stdout] test sources::noaa::live::url::tests::parses_source_id_from_official_view_url ... ok
[INFO] [stdout] test sources::noaa::live::url::tests::rejects_non_official_or_http_urls ... ok
[INFO] [stdout] test sources::redirect_contract_tests::aaro_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::army_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::cia_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::dia_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::doe_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::doj_epstein_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::doj_foia_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::dtic_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::fbi_vault_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::frus_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::govinfo_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::nara_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::navy_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::noaa_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::nsa_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::osd_joint_staff_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::pursue_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test sources::redirect_contract_tests::source_adapter_default_redirect_policy_is_deny ... ok
[INFO] [stdout] test sources::redirect_contract_tests::state_adapter_redirect_policy_remains_deny_by_default ... ok
[INFO] [stdout] test mcp::ingestion_tests::direct_url_and_local_file_rejections_do_not_create_jobs ... ok
[INFO] [stdout] test store::cache::tests::expired_entries_are_not_returned ... ok
[INFO] [stdout] test store::files::tests::concurrent_put_reader_uses_unique_temp_files ... ok
[INFO] [stdout] test store::cache::tests::do_not_persist_entries_are_not_stored ... ok
[INFO] [stdout] test ingest::worker::tests::run_once_marks_claimed_job_failed_when_execution_fails ... ok
[INFO] [stdout] test store::sqlite_tests::document_metadata_can_be_loaded_by_public_id_or_key ... ok
[INFO] [stdout] test store::sqlite_tests::document_key_must_not_be_source_id_or_public_id ... ok
[INFO] [stdout] test store::sqlite_tests::migration_is_idempotent ... ok
[INFO] [stdout] test store::sqlite_tests::ingestion_job_creation_is_idempotent_and_outbox_is_stable ... ok
[INFO] [stdout] test ingest::worker::tests::completed_job_is_not_executed_again ... ok
[INFO] [stdout] test store::sqlite_tests::missing_ingestion_job_returns_typed_error ... ok
[INFO] [stdout] test store::sqlite_tests::unsafe_document_keys_are_rejected ... ok
[INFO] [stdout] test store::sqlite_tests::asset_upsert_returns_stable_row_id ... ok
[INFO] [stdout] test mcp::repair_tests::report_and_plan_surface_remain_dry_run ... ok
[INFO] [stdout] test store::sqlite_tests::page_text_returns_inclusive_ordered_range ... ok
[INFO] [stdout] test store::sqlite_tests::page_text_reports_missing_document_and_missing_pages ... ok
[INFO] [stdout] test store::sqlite_tests::page_text_validates_range ... ok
[INFO] [stdout] test mcp::repair_tests::bad_confirmation_maps_to_invalid_params ... ok
[INFO] [stdout] test ingest::worker::tests::run_once_picks_up_queued_job_after_enqueue ... ok
[INFO] [stdout] test mcp::repair_tests::manual_review_items_are_not_deleted ... ok
[INFO] [stdout] test mcp::tools::tests::search_local_documents_returns_actionable_guidance_for_empty_corpus ... ok
[INFO] [stdout] test mcp::repair_tests::compact_next_actions_are_operator_gated ... ok
[INFO] [stdout] test mcp::repair_tests::apply_requires_confirmation_and_is_idempotent ... ok
[INFO] [stdout] test mcp::tools::tests::search_local_documents_returns_object_shape_for_non_empty_results ... ok
[INFO] [stdout] test mcp::repair_tests::mcp_apply_does_not_mutate_canonical_tables ... ok
[INFO] [stdout] test mcp::tools::tests::search_local_documents_returns_source_specific_guidance_for_filter_miss ... ok
[INFO] [stdout] test mcp::tools::tests::refresh_document_kicks_configured_worker_after_durable_enqueue ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 284 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/foia_search-88a9ab5a0ac4ce0a)
[INFO] [stdout] 
[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] [stderr]      Running tests/aaro_http.rs (/opt/rustwide/target/release/deps/aaro_http-0d1eb7aea98d5e67)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test search_returns_warning_when_no_records_match_query ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test list_assets_orders_pdfs_before_images_and_video ... ok
[INFO] [stdout] test search_reads_uap_records_listing_and_returns_normalized_leads ... ok
[INFO] [stdout] test search_returns_direct_same_origin_pdf_leads_from_listing ... ok
[INFO] [stdout] test get_record_accepts_official_aaro_url ... ok
[INFO] [stdout] test get_record_by_prefixed_slug_parses_detail_and_metadata_assets ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/army_http.rs (/opt/rustwide/target/release/deps/army_http-baad9fb10fc2fbca)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test get_record_by_returned_id_resolves_official_document_url ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test get_record_accepts_official_category_url ... ok
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test search_returns_official_army_reading_room_leads ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cia_http.rs (/opt/rustwide/target/release/deps/cia_http-0b1ea9878f59a207)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test redirect_response_is_denied_without_following_target ... ok
[INFO] [stdout] test http_failure_returns_actionable_fetch_error ... ok
[INFO] [stdout] test http_get_record_fetches_and_parses_detail ... ok
[INFO] [stdout] test http_search_fetches_parses_and_limits_results ... 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] [stderr]      Running tests/dia_http.rs (/opt/rustwide/target/release/deps/dia_http-66f41b54c6256959)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test get_record_direct_fileid_url_returns_single_pdf_asset_without_http ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test get_record_accepts_official_url ... ok
[INFO] [stdout] test get_record_by_prefixed_id_parses_detail_and_orders_assets ... ok
[INFO] [stdout] test search_returns_official_dia_reading_room_leads ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stderr]      Running tests/doe_http.rs (/opt/rustwide/target/release/deps/doe_http-d50ba87f5c115966)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test search_redirect_is_denied ... ok
[INFO] [stdout] test invalid_search_html_reports_source_changed ... ok
[INFO] [stdout] test get_record_accepts_official_url_and_rejects_non_official_url ... ok
[INFO] [stdout] test search_empty_returns_warning_page ... ok
[INFO] [stdout] test get_record_accepts_prefixed_id_and_lists_pdf_first ... ok
[INFO] [stdout] test search_returns_official_doe_opennet_leads ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/doj_epstein_http.rs (/opt/rustwide/target/release/deps/doj_epstein_http-f475415fb95e1bb9)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test redirect_is_denied_for_disclosures_search ... ok
[INFO] [stdout] test search_preserves_direct_media_ids_for_get_record_lookup ... ok
[INFO] [stdout] test get_record_accepts_official_foia_url ... ok
[INFO] [stdout] test get_record_bop_video_classifies_media_and_keeps_pdf_preferred ... ok
[INFO] [stdout] test get_record_data_set_source_id_prefers_pdf_and_preserves_metadata ... ok
[INFO] [stdout] test search_returns_doj_leads_with_sensitive_warning_and_category_provenance ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/doj_foia_http.rs (/opt/rustwide/target/release/deps/doj_foia_http-4d068d5006bd4129)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test direct_legacy_http_asset_url_is_canonicalized_before_return ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test search_includes_official_external_component_link_shape ... ok
[INFO] [stdout] test list_assets_prefers_pdf_then_html_other_roles ... ok
[INFO] [stdout] test get_record_by_source_id_fetches_component_page_and_prefers_pdf_assets ... ok
[INFO] [stdout] test search_returns_component_records_with_oip_provenance ... ok
[INFO] [stdout] test search_includes_fbi_component_link_shape ... ok
[INFO] [stdout] test get_record_official_url_returns_html_asset_when_no_pdf_available ... ok
[INFO] [stdout] test redirect_is_denied_for_oip_index_fetch ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test invalid_component_html_returns_source_changed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/download_cache.rs (/opt/rustwide/target/release/deps/download_cache-3ed1547308739677)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test explicit_same_host_redirect_persists_final_body ... ok
[INFO] [stdout] test respect_source_headers_persists_blob_cache_and_revalidates ... ok
[INFO] [stdout] test http_error_does_not_write_cache_or_blob ... ok
[INFO] [stdout] test redirect_max_hop_limit_is_enforced ... ok
[INFO] [stdout] test relative_redirect_location_is_resolved_and_validated ... ok
[INFO] [stdout] test redirect_without_location_is_denied_without_persisting ... ok
[INFO] [stdout] test redirect_response_is_not_followed_or_persisted ... ok
[INFO] [stdout] test do_not_persist_downloads_blob_but_leaves_cache_empty ... ok
[INFO] [stdout] test cross_host_redirect_requires_explicit_policy ... ok
[INFO] [stdout] test oversized_response_is_rejected_before_persisting ... ok
[INFO] [stdout] test repeated_same_body_downloads_deduplicate_in_file_store ... ok
[INFO] [stderr]      Running tests/dtic_http.rs (/opt/rustwide/target/release/deps/dtic_http-1c4e85709667907a)
[INFO] [stdout] test unsafe_redirect_targets_are_rejected_before_fetch ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test metadata_only_record_does_not_infer_pdf_asset ... ok
[INFO] [stdout] test json_body_returns_source_changed ... ok
[INFO] [stdout] test search_without_accession_returns_guarded_warning_without_http ... ok
[INFO] [stdout] test redirect_response_is_denied_for_citation_fetch ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test list_assets_prefers_pdf_first_and_dedupes ... ok
[INFO] [stdout] test get_record_accepts_official_pdf_url_and_resolves_citation_page ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test get_record_accepts_prefixed_plain_and_official_citation_urls ... ok
[INFO] [stdout] test search_with_accession_query_fetches_official_record_and_warns_about_fragility ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/evals_contract.rs (/opt/rustwide/target/release/deps/evals_contract-14793c5944cdcf8b)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test evals_xml_has_readable_structure_unique_ids_and_current_wording ... ok
[INFO] [stdout] test every_registered_source_has_eval_coverage ... ok
[INFO] [stdout] test repair_direct_ingestion_and_sensitive_source_guardrails_are_covered ... ok
[INFO] [stdout] test repair_eval_cases_pin_explicit_report_plan_apply_contracts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fbi_vault_http.rs (/opt/rustwide/target/release/deps/fbi_vault_http-d078370688fc99be)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test get_record_direct_download_url_returns_single_pdf_asset ... ok
[INFO] [stdout] test get_record_canonicalizes_official_http_vault_url_without_redirect ... ok
[INFO] [stdout] test get_record_accepts_official_vault_url ... ok
[INFO] [stdout] test list_assets_orders_pdf_parts_naturally_before_non_pdf ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test get_record_round_trips_percent_encoded_asset_source_id ... ok
[INFO] [stdout] test get_record_by_prefixed_slug_resolves_multipart_pdf_assets ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test search_returns_vault_records_with_official_provenance ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/frus_http.rs (/opt/rustwide/target/release/deps/frus_http-858e111024927eda)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test catalog_shape_change_returns_source_changed ... ok
[INFO] [stdout] test get_record_accepts_frus_prefixed_id ... ok
[INFO] [stdout] test frus_plan_prefers_pdf_but_preserves_official_urls_notes_and_source_metadata ... ok
[INFO] [stdout] test detail_shape_change_returns_source_changed ... ok
[INFO] [stdout] test get_record_accepts_official_history_state_url ... ok
[INFO] [stdout] test non_official_url_is_rejected_before_http ... ok
[INFO] [stdout] test frus_plan_uses_tei_text_source_when_pdf_asset_is_unavailable ... ok
[INFO] [stdout] test list_assets_prefers_tei_pdf_html_then_epub ... ok
[INFO] [stdout] test redirect_response_is_denied_for_catalog_search ... ok
[INFO] [stdout] test search_catalog_parses_frus_records_and_metadata ... ok
[INFO] [stdout] test search_empty_returns_warning ... ok
[INFO] [stdout] test unexpected_search_html_returns_source_changed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/govinfo_http.rs (/opt/rustwide/target/release/deps/govinfo_http-088b0841d5edbcf8)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test search_requires_api_key_before_http ... ok
[INFO] [stdout] test search_empty_results_returns_warning ... ok
[INFO] [stdout] test search_posts_json_and_normalizes_package_and_granule_results ... ok
[INFO] [stdout] test get_record_accepts_details_url_and_fetches_granule_summary ... ok
[INFO] [stdout] test get_record_fetches_package_summary_for_plain_package_id ... ok
[INFO] [stdout] test search_suppresses_repeat_offset_mark_cursor ... ok
[INFO] [stdout] test invalid_html_body_returns_source_changed ... ok
[INFO] [stdout] test redirect_response_is_denied_for_search_post ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ingest_jobs.rs (/opt/rustwide/target/release/deps/ingest_jobs-5fbd55167ec97149)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test interruption_preserves_resume_stage_and_progress ... ok
[INFO] [stdout] test failed_job_keeps_original_terminal_error_on_replay ... ok
[INFO] [stdout] test progress_is_monotonic_and_warnings_are_deduplicated ... ok
[INFO] [stdout] test expired_running_lease_can_be_reclaimed_for_resume ... ok
[INFO] [stdout] test claims_oldest_queued_job_with_a_lease ... ok
[INFO] [stdout] test wrong_worker_cannot_complete_running_job ... ok
[INFO] [stdout] test specific_claim_is_idempotent_for_same_worker ... ok
[INFO] [stdout] test completion_sets_success_and_clears_lease ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ingest_pipeline.rs (/opt/rustwide/target/release/deps/ingest_pipeline-fe2c98f81ab81264)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test repeated_text_ingestion_replaces_existing_fts_rows ... ok
[INFO] [stdout] test text_ingestion_preserves_pages_and_chunks ... ok
[INFO] [stdout] test text_ingestion_populates_fts_with_page_ranges ... ok
[INFO] [stdout] test empty_text_input_fails_without_partial_document_row ... ok
[INFO] [stdout] test text_ingestion_preserves_blank_pages_between_text_pages ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ingest_worker_restart.rs (/opt/rustwide/target/release/deps/ingest_worker_restart-5de36215ee9f6ddb)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test queued_worker_process_restart_resumes_expired_running_job_without_duplicates ... 
[INFO] [stdout] running 1 test
[INFO] [stdout] test queued_worker_process_restart_replaces_seeded_partial_local_state_without_duplicates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test queued_worker_process_restart_replaces_seeded_partial_local_state_without_duplicates ... 
[INFO] [stdout] running 1 test
[INFO] [stdout] test queued_worker_process_restart_resumes_expired_running_job_without_duplicates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] test queued_worker_process_restart_replaces_seeded_partial_local_state_without_duplicates ... ok
[INFO] [stdout] ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] test queued_worker_process_restart_resumes_expired_running_job_without_duplicates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ingest_worker_restart_support.rs (/opt/rustwide/target/release/deps/ingest_worker_restart_support-bfe86fc2e18adcab)
[INFO] [stdout] 
[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] [stderr]      Running tests/nara_http.rs (/opt/rustwide/target/release/deps/nara_http-bdae094ce76a14ac)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test missing_key_returns_actionable_error_without_http ... ok
[INFO] [stdout] test get_record_fetches_detail_by_naid_url ... ok
[INFO] [stdout] test redirect_response_is_denied_without_following_target ... ok
[INFO] [stdout] test html_response_returns_source_changed_error ... ok
[INFO] [stdout] test search_fetches_json_with_api_key_and_normalizes_records ... ok
[INFO] [stdout] test get_record_returns_error_when_naid_is_missing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/navy_http.rs (/opt/rustwide/target/release/deps/navy_http-0e087f396646bbcc)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test get_record_by_returned_id_resolves_official_pdf_url ... ok
[INFO] [stdout] test get_record_accepts_official_component_url ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test rejects_official_url_outside_documented_family_scope ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test search_returns_official_navy_reading_room_leads ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/noaa_http.rs (/opt/rustwide/target/release/deps/noaa_http-3049b38581df1945)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test get_record_accepts_plain_id_and_official_url ... ok
[INFO] [stdout] test json_body_returns_source_changed ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test get_record_accepts_noaa_prefixed_id_and_parses_detail_metadata ... ok
[INFO] [stdout] test redirect_response_is_denied_for_search_fetch ... ok
[INFO] [stdout] test list_assets_orders_pdf_first_and_dedupes ... ok
[INFO] [stdout] test search_empty_fixture_returns_warning ... ok
[INFO] [stdout] test search_parses_noaa_records_and_dedupes_duplicate_repository_ids ... ok
[INFO] [stdout] test xml_body_returns_source_changed ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/nsa_http.rs (/opt/rustwide/target/release/deps/nsa_http-6345fa1cd7dd54a8)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test get_record_direct_pdf_url_returns_single_pdf_asset_without_http ... ok
[INFO] [stdout] test get_record_by_prefixed_id_parses_detail_and_orders_pdf_assets ... ok
[INFO] [stdout] test get_record_accepts_official_url ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test search_returns_official_nsa_reading_room_leads ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/osd_joint_staff_http.rs (/opt/rustwide/target/release/deps/osd_joint_staff_http-157800fb8b74144d)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test get_record_direct_official_pdf_returns_single_pdf_asset_without_http ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] test get_record_accepts_official_url ... ok
[INFO] [stdout] test get_record_by_prefixed_id_parses_detail_and_orders_assets ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stderr]      Running tests/pursue_http.rs (/opt/rustwide/target/release/deps/pursue_http-2603baf94586a041)
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test search_returns_official_osd_joint_staff_reading_room_leads ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test redirect_is_denied_for_ufo_index_fetch ... ok
[INFO] [stdout] test get_record_release_collects_pdf_image_and_video_assets ... ok
[INFO] [stdout] test release_page_without_assets_returns_source_changed ... ok
[INFO] [stdout] test get_record_asset_url_with_release_hint_keeps_asset_provenance ... ok
[INFO] [stdout] test search_returns_warning_when_no_records_match_query ... ok
[INFO] [stdout] test search_uses_ufo_index_and_csv_and_returns_tranche_records ... ok
[INFO] [stdout] test get_record_accepts_official_release_article_url ... ok
[INFO] [stdout] test get_record_accepts_search_returned_source_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/repair_surface_contracts.rs (/opt/rustwide/target/release/deps/repair_surface_contracts-24587cc2d0f3d30c)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test repair_references_stay_on_operator_facing_surfaces ... ok
[INFO] [stdout] test startup_runtime_and_worker_do_not_reference_repair_surfaces ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/repair_surfaces_worker.rs (/opt/rustwide/target/release/deps/repair_surfaces_worker-38ee7a2756d95e9d)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test queued_worker_reclaims_interrupted_job_without_invoking_repair_surfaces ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/state_http.rs (/opt/rustwide/target/release/deps/state_http-5f2ec5df79c8722d)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test rejects_non_official_url_before_http ... ok
[INFO] [stdout] test get_record_direct_pdf_url_returns_single_pdf_asset_without_http ... ok
[INFO] [stdout] test redirect_is_denied_for_search_fetch ... ok
[INFO] [stdout] test search_no_match_returns_warning ... ok
[INFO] [stdout] test search_returns_official_state_vrr_leads ... ok
[INFO] [stdout] test get_record_by_prefixed_id_parses_detail_and_orders_assets ... ok
[INFO] [stdout] test invalid_html_returns_source_changed ... ok
[INFO] [stdout] test get_record_accepts_official_url ... ok
[INFO] [stdout] test list_assets_prefers_pdfs_before_non_pdf_assets ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests foia_search
[INFO] [stdout] 
[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] running `Command { std: "docker" "inspect" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be", kill_on_drop: false }`
[INFO] [stdout] 57009871a3d71b959e85480842106d4903f127456d9e8d82e5c76c608a4af3be
