[INFO] cloning repository https://github.com/man4460/thclaw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/man4460/thclaw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fman4460%2Fthclaw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fman4460%2Fthclaw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2d3312bf6f91ab3f80d672edbe6817365df75d45
[INFO] testing man4460/thclaw against 1.99.0-beta.8 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fman4460%2Fthclaw" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/man4460/thclaw
[INFO] finished tweaking git repo https://github.com/man4460/thclaw
[INFO] tweaked toml for git repo https://github.com/man4460/thclaw written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/man4460/thclaw on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/man4460/thclaw already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded simd-adler32 v0.3.9
[INFO] [stderr]   Downloaded zopfli v0.8.3
[INFO] [stderr]   Downloaded derive_arbitrary v1.4.2
[INFO] [stderr]   Downloaded arbitrary v1.4.2
[INFO] [stderr]   Downloaded windows-link v0.1.3
[INFO] [stderr]   Downloaded webview2-com v0.38.2
[INFO] [stderr]   Downloaded version-compare v0.2.1
[INFO] [stderr]   Downloaded dpi v0.1.2
[INFO] [stderr]   Downloaded utf-8 v0.7.6
[INFO] [stderr]   Downloaded zip v2.4.2
[INFO] [stderr]   Downloaded cssparser-macros v0.6.1
[INFO] [stderr]   Downloaded gdkx11-sys v0.18.2
[INFO] [stderr]   Downloaded phf_codegen v0.13.1
[INFO] [stderr]   Downloaded phf_shared v0.13.1
[INFO] [stderr]   Downloaded dtoa-short v0.3.5
[INFO] [stderr]   Downloaded toml_edit v0.20.2
[INFO] [stderr]   Downloaded precomputed-hash v0.1.1
[INFO] [stderr]   Downloaded time-core v0.1.8
[INFO] [stderr]   Downloaded windows-result v0.3.4
[INFO] [stderr]   Downloaded proc-macro-crate v2.0.2
[INFO] [stderr]   Downloaded objc2-exception-helper v0.1.1
[INFO] [stderr]   Downloaded new_debug_unreachable v1.0.6
[INFO] [stderr]   Downloaded webview2-com-macros v0.8.1
[INFO] [stderr]   Downloaded time-macros v0.2.27
[INFO] [stderr]   Downloaded num-conv v0.2.1
[INFO] [stderr]   Downloaded jni-sys v0.3.1
[INFO] [stderr]   Downloaded phf_macros v0.13.1
[INFO] [stderr]   Downloaded windows-collections v0.2.0
[INFO] [stderr]   Downloaded serde_spanned v0.6.9
[INFO] [stderr]   Downloaded pango-sys v0.18.0
[INFO] [stderr]   Downloaded heck v0.4.1
[INFO] [stderr]   Downloaded tao-macros v0.1.3
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.2
[INFO] [stderr]   Downloaded gdkx11 v0.18.2
[INFO] [stderr]   Downloaded siphasher v1.0.2
[INFO] [stderr]   Downloaded windows-numerics v0.2.0
[INFO] [stderr]   Downloaded foreign-types-macros v0.2.3
[INFO] [stderr]   Downloaded system-deps v6.2.2
[INFO] [stderr]   Downloaded gtk3-macros v0.18.2
[INFO] [stderr]   Downloaded proc-macro-crate v3.5.0
[INFO] [stderr]   Downloaded rustc-hash v2.1.2
[INFO] [stderr]   Downloaded phf_generator v0.13.1
[INFO] [stderr]   Downloaded markup5ever v0.38.0
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded dlopen2_derive v0.4.3
[INFO] [stderr]   Downloaded nibble_vec v0.1.0
[INFO] [stderr]   Downloaded dlib v0.5.3
[INFO] [stderr]   Downloaded pollster v0.4.0
[INFO] [stderr]   Downloaded zeroize_derive v1.4.3
[INFO] [stderr]   Downloaded windows-version v0.1.7
[INFO] [stderr]   Downloaded windows-core v0.61.2
[INFO] [stderr]   Downloaded windows-strings v0.4.2
[INFO] [stderr]   Downloaded windows-future v0.2.1
[INFO] [stderr]   Downloaded windows-threading v0.1.0
[INFO] [stderr]   Downloaded webkit2gtk-sys v2.0.2
[INFO] [stderr]   Downloaded target-lexicon v0.12.16
[INFO] [stderr]   Downloaded soup3-sys v0.5.0
[INFO] [stderr]   Downloaded gobject-sys v0.18.0
[INFO] [stderr]   Downloaded glib-sys v0.18.1
[INFO] [stderr]   Downloaded javascriptcore-rs-sys v1.1.1
[INFO] [stderr]   Downloaded gdk-pixbuf-sys v0.18.0
[INFO] [stderr]   Downloaded cairo-sys-rs v0.18.2
[INFO] [stderr]   Downloaded atk-sys v0.18.2
[INFO] [stderr]   Downloaded soup3 v0.5.0
[INFO] [stderr]   Downloaded glib-macros v0.18.5
[INFO] [stderr]   Downloaded javascriptcore-rs v1.1.2
[INFO] [stderr]   Downloaded gdk-pixbuf v0.18.5
[INFO] [stderr]   Downloaded cairo-rs v0.18.5
[INFO] [stderr]   Downloaded field-offset v0.3.6
[INFO] [stderr]   Downloaded atk v0.18.2
[INFO] [stderr]   Downloaded raw-window-handle v0.6.2
[INFO] [stderr]   Downloaded num_enum v0.7.6
[INFO] [stderr]   Downloaded num_enum_derive v0.7.6
[INFO] [stderr]   Downloaded toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]   Downloaded toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]   Downloaded dom_query v0.27.0
[INFO] [stderr]   Downloaded tendril v0.5.0
[INFO] [stderr]   Downloaded selectors v0.36.1
[INFO] [stderr]   Downloaded servo_arc v0.4.3
[INFO] [stderr]   Downloaded phf v0.13.1
[INFO] [stderr]   Downloaded dtoa v1.0.11
[INFO] [stderr]   Downloaded html5ever v0.38.0
[INFO] [stderr]   Downloaded string_cache v0.9.0
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.118
[INFO] [stderr]   Downloaded env_home v0.1.0
[INFO] [stderr]   Downloaded curve25519-dalek-derive v0.1.1
[INFO] [stderr]   Downloaded toml v0.8.2
[INFO] [stderr]   Downloaded cfg-expr v0.15.8
[INFO] [stderr]   Downloaded gdk-sys v0.18.2
[INFO] [stderr]   Downloaded webkit2gtk v2.0.2
[INFO] [stderr]   Downloaded pango v0.18.3
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.2
[INFO] [stderr]   Downloaded toml_edit v0.25.11+spec-1.1.0
[INFO] [stderr]   Downloaded http v1.4.0
[INFO] [stderr]   Downloaded x11 v2.21.0
[INFO] [stderr]   Downloaded cssparser v0.36.0
[INFO] [stderr]   Downloaded foreign-types v0.5.0
[INFO] [stderr]   Downloaded foreign-types-shared v0.3.1
[INFO] [stderr]   Downloaded core-graphics-types v0.2.0
[INFO] [stderr]   Downloaded endian-type v0.1.2
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.68
[INFO] [stderr]   Downloaded lru-slab v0.1.2
[INFO] [stderr]   Downloaded native-dialog v0.9.6
[INFO] [stderr]   Downloaded which v7.0.3
[INFO] [stderr]   Downloaded slug v0.1.6
[INFO] [stderr]   Downloaded gio-sys v0.18.1
[INFO] [stderr]   Downloaded gdk v0.18.2
[INFO] [stderr]   Downloaded ndk v0.9.0
[INFO] [stderr]   Downloaded jni v0.21.1
[INFO] [stderr]   Downloaded derive_more v2.1.1
[INFO] [stderr]   Downloaded derive_more-impl v2.1.1
[INFO] [stderr]   Downloaded web_atoms v0.2.4
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.118
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.118
[INFO] [stderr]   Downloaded objc2-web-kit v0.3.2
[INFO] [stderr]   Downloaded hermit-abi v0.5.2
[INFO] [stderr]   Downloaded error-code v3.3.2
[INFO] [stderr]   Downloaded string_cache_codegen v0.6.1
[INFO] [stderr]   Downloaded powerfmt v0.2.0
[INFO] [stderr]   Downloaded wayland-sys v0.31.11
[INFO] [stderr]   Downloaded formatx v0.2.4
[INFO] [stderr]   Downloaded urlencoding v2.1.3
[INFO] [stderr]   Downloaded fd-lock v4.0.4
[INFO] [stderr]   Downloaded wfd v0.1.8
[INFO] [stderr]   Downloaded downcast-rs v1.2.1
[INFO] [stderr]   Downloaded assert-json-diff v2.0.2
[INFO] [stderr]   Downloaded gdkwayland-sys v0.18.2
[INFO] [stderr]   Downloaded dlopen2 v0.8.2
[INFO] [stderr]   Downloaded libloading v0.8.9
[INFO] [stderr]   Downloaded quinn-udp v0.5.14
[INFO] [stderr]   Downloaded dbus-secret-service v4.1.0
[INFO] [stderr]   Downloaded globset v0.4.18
[INFO] [stderr]   Downloaded ed25519 v2.2.3
[INFO] [stderr]   Downloaded entities v1.0.1
[INFO] [stderr]   Downloaded caseless v0.2.2
[INFO] [stderr]   Downloaded cookie v0.18.1
[INFO] [stderr]   Downloaded time v0.3.47
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded clipboard-win v5.4.1
[INFO] [stderr]   Downloaded wayland-scanner v0.31.10
[INFO] [stderr]   Downloaded rustls-pki-types v1.14.1
[INFO] [stderr]   Downloaded versions v7.0.0
[INFO] [stderr]   Downloaded async-stream v0.3.6
[INFO] [stderr]   Downloaded async-stream-impl v0.3.6
[INFO] [stderr]   Downloaded zune-core v0.5.1
[INFO] [stderr]   Downloaded gtk-sys v0.18.2
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.118
[INFO] [stderr]   Downloaded core-graphics v0.25.0
[INFO] [stderr]   Downloaded rfd v0.17.2
[INFO] [stderr]   Downloaded winnow v0.5.40
[INFO] [stderr]   Downloaded objc2-core-foundation v0.3.2
[INFO] [stderr]   Downloaded winnow v1.0.2
[INFO] [stderr]   Downloaded arboard v3.6.1
[INFO] [stderr]   Downloaded gethostname v1.1.0
[INFO] [stderr]   Downloaded comrak v0.29.0
[INFO] [stderr]   Downloaded wry v0.54.4
[INFO] [stderr]   Downloaded gio v0.18.4
[INFO] [stderr]   Downloaded deunicode v1.6.2
[INFO] [stderr]   Downloaded quinn-proto v0.11.14
[INFO] [stderr]   Downloaded fax v0.2.6
[INFO] [stderr]   Downloaded fax_derive v0.2.0
[INFO] [stderr]   Downloaded glib v0.18.5
[INFO] [stderr]   Downloaded ndk-sys v0.6.0+11769913
[INFO] [stderr]   Downloaded fdeflate v0.3.7
[INFO] [stderr]   Downloaded objc2-foundation v0.3.2
[INFO] [stderr]   Downloaded wayland-backend v0.3.15
[INFO] [stderr]   Downloaded quinn v0.11.9
[INFO] [stderr]   Downloaded ignore v0.4.25
[INFO] [stderr]   Downloaded curve25519-dalek v4.1.3
[INFO] [stderr]   Downloaded weezl v0.1.12
[INFO] [stderr]   Downloaded bytemuck v1.25.0
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded uuid v1.23.1
[INFO] [stderr]   Downloaded keyring v3.6.3
[INFO] [stderr]   Downloaded security-framework v2.11.1
[INFO] [stderr]   Downloaded wayland-client v0.31.14
[INFO] [stderr]   Downloaded gtk v0.18.2
[INFO] [stderr]   Downloaded x11rb v0.13.2
[INFO] [stderr]   Downloaded image v0.25.10
[INFO] [stderr]   Downloaded moxcms v0.8.1
[INFO] [stderr]   Downloaded png v0.18.1
[INFO] [stderr]   Downloaded fiat-crypto v0.2.9
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.2
[INFO] [stderr]   Downloaded winsafe v0.0.19
[INFO] [stderr]   Downloaded objc2-ui-kit v0.3.2
[INFO] [stderr]   Downloaded unicode-segmentation v1.13.2
[INFO] [stderr]   Downloaded ed25519-dalek v2.2.0
[INFO] [stderr]   Downloaded zune-jpeg v0.5.15
[INFO] [stderr]   Downloaded js-sys v0.3.95
[INFO] [stderr]   Downloaded rustyline v14.0.0
[INFO] [stderr]   Downloaded dbus v0.9.11
[INFO] [stderr]   Downloaded tiff v0.11.3
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.15
[INFO] [stderr]   Downloaded regex v1.12.3
[INFO] [stderr]   Downloaded wayland-protocols v0.32.12
[INFO] [stderr]   Downloaded tower-http v0.6.8
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded hyper v1.9.0
[INFO] [stderr]   Downloaded h2 v0.4.13
[INFO] [stderr]   Downloaded quick-xml v0.39.2
[INFO] [stderr]   Downloaded nom v8.0.0
[INFO] [stderr]   Downloaded webpki-roots v1.0.7
[INFO] [stderr]   Downloaded x11rb-protocol v0.13.2
[INFO] [stderr]   Downloaded radix_trie v0.2.1
[INFO] [stderr]   Downloaded tao v0.34.8
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] [stderr]   Downloaded rustls v0.23.39
[INFO] [stderr]   Downloaded regex-syntax v0.8.10
[INFO] [stderr]   Downloaded bstr v1.12.1
[INFO] [stderr]   Downloaded web-sys v0.3.95
[INFO] [stderr]   Downloaded pxfm v0.1.29
[INFO] [stderr]   Downloaded tokio v1.52.1
[INFO] [stderr]   Downloaded libdbus-sys v0.2.7
[INFO] [stderr]   Downloaded webview2-com-sys v0.38.2
[INFO] [stderr]   Downloaded windows v0.61.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809
[INFO] running `Command { std: "docker" "start" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", 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" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", 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" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[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 memchr v2.8.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling rustls v0.23.39
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling libdbus-sys v0.2.7
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling cfg_aliases v0.1.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling png v0.18.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 getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling dbus v0.9.11
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling x11rb-protocol v0.13.2
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling iri-string v0.7.12
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling thclaws-core v0.6.9 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling fax_derive v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling fax v0.2.6
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling dbus-secret-service v4.1.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling async-stream v0.3.6
[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 ed25519 v2.2.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[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.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tiff v0.11.3
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s
[INFO] running `Command { std: "docker" "inspect" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", 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" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling thclaws-core v0.6.9 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stdout] warning: unused imports: `assemble` and `collect_turn`
[INFO] [stdout]    --> crates/core/src/providers/ollama_cloud.rs:277:28
[INFO] [stdout]     |
[INFO] [stdout] 277 |     use crate::providers::{assemble, collect_turn};
[INFO] [stdout]     |                            ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::agent::AgentEvent`
[INFO] [stdout]    --> crates/core/src/subagent.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     use crate::agent::AgentEvent;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StreamExt`
[INFO] [stdout]    --> crates/core/src/subagent.rs:164:27
[INFO] [stdout]     |
[INFO] [stdout] 164 |     use futures::{stream, StreamExt};
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_tools_parses_inputSchema` should have a snake case name
[INFO] [stdout]     --> crates/core/src/mcp.rs:1245:14
[INFO] [stdout]      |
[INFO] [stdout] 1245 |     async fn list_tools_parses_inputSchema() {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `list_tools_parses_input_schema`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_body_places_system_in_systemInstruction` should have a snake case name
[INFO] [stdout]    --> crates/core/src/providers/gemini.rs:889:8
[INFO] [stdout]     |
[INFO] [stdout] 889 |     fn build_body_places_system_in_systemInstruction() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `build_body_places_system_in_system_instruction`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 41.29s
[INFO] running `Command { std: "docker" "inspect" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", 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" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]    Compiling thclaws-core v0.6.9 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr] warning: unused imports: `assemble` and `collect_turn`
[INFO] [stderr]    --> crates/core/src/providers/ollama_cloud.rs:277:28
[INFO] [stderr]     |
[INFO] [stderr] 277 |     use crate::providers::{assemble, collect_turn};
[INFO] [stderr]     |                            ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crate::agent::AgentEvent`
[INFO] [stderr]    --> crates/core/src/subagent.rs:159:9
[INFO] [stderr]     |
[INFO] [stderr] 159 |     use crate::agent::AgentEvent;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `StreamExt`
[INFO] [stderr]    --> crates/core/src/subagent.rs:164:27
[INFO] [stderr]     |
[INFO] [stderr] 164 |     use futures::{stream, StreamExt};
[INFO] [stderr]     |                           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list_tools_parses_inputSchema` should have a snake case name
[INFO] [stderr]     --> crates/core/src/mcp.rs:1245:14
[INFO] [stderr]      |
[INFO] [stderr] 1245 |     async fn list_tools_parses_inputSchema() {
[INFO] [stderr]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `list_tools_parses_input_schema`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_body_places_system_in_systemInstruction` should have a snake case name
[INFO] [stderr]    --> crates/core/src/providers/gemini.rs:889:8
[INFO] [stderr]     |
[INFO] [stderr] 889 |     fn build_body_places_system_in_systemInstruction() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `build_body_places_system_in_system_instruction`
[INFO] [stderr] 
[INFO] [stderr] warning: `thclaws-core` (lib test) generated 5 warnings (run `cargo fix --lib -p thclaws-core --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 38.80s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/thclaws_core-74386823111d257c)
[INFO] [stdout] 
[INFO] [stdout] running 535 tests
[INFO] [stdout] test agent_defs::tests::names_lists_all ... ok
[INFO] [stdout] test agent_defs::tests::load_from_file ... ok
[INFO] [stdout] test branding::tests::defaults_are_today_strings ... ok
[INFO] [stdout] test agent_defs::tests::load_md_dir_no_clobber_keeps_existing ... ok
[INFO] [stdout] test agent_defs::tests::parse_agent_md_name_from_filename ... ok
[INFO] [stdout] test agent_defs::tests::missing_file_returns_default ... ok
[INFO] [stdout] test agent_defs::tests::load_md_dir_overrides_json ... ok
[INFO] [stdout] test commands::tests::parse_file_extracts_frontmatter_and_body ... ok
[INFO] [stdout] test agent_defs::tests::parse_agent_md_file ... ok
[INFO] [stdout] test branding::tests::apply_template_substitutes_product ... ok
[INFO] [stdout] test compaction::tests::estimate_message_tokens_counts_text_block ... ok
[INFO] [stdout] test compaction::tests::estimate_message_tokens_sums_blocks ... ok
[INFO] [stdout] test commands::tests::render_substitutes_arguments ... ok
[INFO] [stdout] test commands::tests::render_without_placeholder_appends_args ... ok
[INFO] [stdout] test compaction::tests::compaction_reduces_total_tokens_monotonically ... ok
[INFO] [stdout] test compaction::tests::empty_input_returns_empty ... ok
[INFO] [stdout] test commands::tests::earlier_dir_wins_on_name_collision ... ok
[INFO] [stdout] test compaction::tests::never_drops_below_last_message ... ok
[INFO] [stdout] test compaction::tests::preserves_order ... ok
[INFO] [stdout] test compaction::tests::over_budget_drops_oldest_first ... ok
[INFO] [stdout] test compaction::tests::render_for_summary_formats_messages ... ok
[INFO] [stdout] test config::tests::api_key_honors_env_per_provider ... ok
[INFO] [stdout] test compaction::tests::under_budget_is_unchanged ... ok
[INFO] [stdout] test config::tests::default_config_is_anthropic_sonnet ... ok
[INFO] [stdout] test config::tests::default_serializes_team_enabled_false_not_null ... ok
[INFO] [stdout] test branding::tests::apply_template_leaves_unknown_placeholders_alone ... ok
[INFO] [stdout] test config::tests::partial_settings_fills_defaults ... ok
[INFO] [stdout] test agent::tests::ask_mode_denies_and_surfaces_error_result ... ok
[INFO] [stdout] test config::tests::detect_provider_covers_openai_compat ... ok
[INFO] [stdout] test config::tests::detect_provider_rejects_unknown ... ok
[INFO] [stdout] test config::tests::detect_provider_covers_known_prefixes ... ok
[INFO] [stdout] test config::tests::mcp_servers_loaded_from_json ... ok
[INFO] [stdout] test config::tests::null_team_enabled_upgrades_to_false_on_load ... ok
[INFO] [stdout] test config::tests::permissions_apply_to_config ... ok
[INFO] [stdout] test config::tests::permissions_claude_code_format ... ok
[INFO] [stdout] test agent::tests::max_iterations_short_circuits_runaway_loops ... ok
[INFO] [stdout] test config::tests::permissions_simple_string_format ... ok
[INFO] [stdout] test agent::tests::tool_use_executes_and_continues_next_iteration ... ok
[INFO] [stdout] test context::tests::find_claude_md_finds_file_in_cwd ... ok
[INFO] [stdout] test config::tests::project_config_roundtrip ... ok
[INFO] [stdout] test context::tests::build_system_prompt_omits_empty_base ... ok
[INFO] [stdout] test context::tests::build_system_prompt_with_all_sections ... ok
[INFO] [stdout] test context::tests::build_system_prompt_without_git_or_instructions ... ok
[INFO] [stdout] test context::tests::find_claude_md_picks_up_agents_local_md_override ... ok
[INFO] [stdout] test context::tests::git_info_from_outputs_clean ... ok
[INFO] [stdout] test context::tests::git_info_from_outputs_dirty ... ok
[INFO] [stdout] test context::tests::find_claude_md_walks_up_to_find_agents_md ... ok
[INFO] [stdout] test dotenv::tests::blocked_keys_are_not_loaded ... ok
[INFO] [stdout] test context::tests::find_claude_md_finds_agents_md_at_cwd ... ok
[INFO] [stdout] test context::tests::scan_claude_md_oversize_silent_for_missing_files ... ok
[INFO] [stdout] test context::tests::find_claude_md_includes_both_when_both_exist ... ok
[INFO] [stdout] test context::tests::find_claude_md_walks_up_to_find_ancestor ... ok
[INFO] [stdout] test dotenv::tests::blocked_keys_cover_runtime_hijack_vectors ... ok
[INFO] [stdout] test dotenv::tests::existing_env_takes_precedence ... ok
[INFO] [stdout] test dotenv::tests::load_file_sets_unset_vars ... ok
[INFO] [stdout] test context::tests::scan_claude_md_oversize_flags_big_files ... ok
[INFO] [stdout] test agent::tests::ask_mode_approves_and_runs_mutating_tool ... ok
[INFO] [stdout] test hooks::tests::fire_handles_missing_hook_gracefully ... ok
[INFO] [stdout] test hooks::tests::get_skips_empty_string ... ok
[INFO] [stdout] test endpoints::tests::env_var_for_unknown_provider_is_none ... ok
[INFO] [stdout] test endpoints::tests::status_only_exposes_user_configurable_endpoints ... ok
[INFO] [stdout] test hooks::tests::get_returns_none_for_unconfigured_hooks ... ok
[INFO] [stdout] test context::tests::find_claude_md_picks_up_thclaws_rules_dir ... ok
[INFO] [stdout] test kms::tests::create_is_idempotent ... ok
[INFO] [stdout] test context::tests::git_info_from_cwd_returns_none_for_non_repo ... ok
[INFO] [stdout] test kms::tests::create_rejects_path_traversal ... ok
[INFO] [stdout] test hooks::tests::get_returns_command_for_configured_hook ... ok
[INFO] [stdout] test kms::tests::create_seeds_starter_files ... ok
[INFO] [stdout] test kms::tests::ingest_rejects_reserved_alias ... ok
[INFO] [stdout] test agent::tests::ask_mode_skips_approval_for_read_only_tools ... ok
[INFO] [stdout] test context::tests::find_claude_md_picks_up_thclaws_agents_md ... ok
[INFO] [stdout] test agent::tests::auto_mode_bypasses_approver_entirely ... ok
[INFO] [stdout] test marketplace::tests::baseline_short_descriptions_are_concise ... ok
[INFO] [stdout] test kms::tests::ingest_collides_without_force ... ok
[INFO] [stdout] test marketplace::tests::baseline_parses ... ok
[INFO] [stdout] test marketplace::tests::search_case_insensitive ... ok
[INFO] [stdout] test marketplace::tests::short_line_caps_when_no_sentence_break ... ok
[INFO] [stdout] test marketplace::tests::find_by_exact_name ... ok
[INFO] [stdout] test context::tests::find_claude_md_returns_none_when_absent ... ok
[INFO] [stdout] test marketplace::tests::short_line_prefers_short_description ... ok
[INFO] [stdout] test marketplace::tests::search_ranks_name_above_description ... ok
[INFO] [stdout] test marketplace::tests::short_line_falls_back_to_first_sentence ... ok
[INFO] [stdout] test kms::tests::ingest_copies_file_and_updates_index ... ok
[INFO] [stdout] test agent::tests::tool_error_surfaces_as_tool_result_is_error_and_loop_continues ... ok
[INFO] [stdout] test mcp::tests::jsonrpc_error_response_becomes_provider_error ... ok
[INFO] [stdout] test kms::tests::page_path_rejects_symlink_to_outside ... ok
[INFO] [stdout] test mcp::tests::call_tool_returns_joined_text_content ... ok
[INFO] [stdout] test kms::tests::system_prompt_section_includes_index_text ... ok
[INFO] [stdout] test kms::tests::resolve_rejects_symlink_kms_dir ... ok
[INFO] [stdout] test mcp::tests::list_tools_parses_inputSchema ... ok
[INFO] [stdout] test mcp::tests::call_tool_surfaces_is_error_as_tool_error ... ok
[INFO] [stdout] test mcp::tests::transport_closed_fails_pending_requests_cleanly ... ok
[INFO] [stdout] test memory::tests::get_missing_returns_none ... ok
[INFO] [stdout] test memory::tests::get_reads_single_entry_by_name ... ok
[INFO] [stdout] test kms::tests::page_path_rejects_traversal ... ok
[INFO] [stdout] test kms::tests::list_all_returns_project_then_user ... ok
[INFO] [stdout] test kms::tests::system_prompt_section_skips_missing ... ok
[INFO] [stdout] test memory::tests::list_returns_empty_when_missing ... ok
[INFO] [stdout] test mcp::tests::mcp_tool_impls_tool_trait_and_calls_through ... ok
[INFO] [stdout] test memory::tests::truncate_index_caps_at_200_lines ... ok
[INFO] [stdout] test memory::tests::truncate_index_caps_at_25kb_for_long_lines ... ok
[INFO] [stdout] test memory::tests::list_sorts_by_name ... ok
[INFO] [stdout] test memory::tests::parse_frontmatter_extracts_fields_and_body ... ok
[INFO] [stdout] test memory::tests::parse_frontmatter_missing_fences_returns_body_as_is ... ok
[INFO] [stdout] test memory::tests::parse_frontmatter_unclosed_fence_is_body ... ok
[INFO] [stdout] test model_catalogue::tests::aliases_resolve_to_canonical ... ok
[INFO] [stdout] test model_catalogue::tests::blank_context_falls_through_to_provider_default ... ok
[INFO] [stdout] test kms::tests::resolve_prefers_project_over_user ... ok
[INFO] [stdout] test memory::tests::list_skips_memory_md_index_and_non_md_files ... ok
[INFO] [stdout] test model_catalogue::tests::list_models_for_provider_merges_baseline_and_cache ... ok
[INFO] [stdout] test kms::tests::ingest_rejects_unknown_extension ... ok
[INFO] [stdout] test kms::tests::system_prompt_section_empty_when_no_active ... ok
[INFO] [stdout] test memory::tests::system_prompt_section_omits_when_empty_and_no_index ... ok
[INFO] [stdout] test model_catalogue::tests::list_models_marks_override_rows ... ok
[INFO] [stdout] test memory::tests::truncate_index_short_input_untouched ... ok
[INFO] [stdout] test model_catalogue::tests::bare_model_override_key_works ... ok
[INFO] [stdout] test model_catalogue::tests::override_resolves_alias ... ok
[INFO] [stdout] test model_catalogue::tests::baseline_parses ... ok
[INFO] [stdout] test model_catalogue::tests::schema_2_cache_rejected_after_bump ... ok
[INFO] [stdout] test model_catalogue::tests::wrong_schema_rejected ... ok
[INFO] [stdout] test model_catalogue::tests::source_and_verified_at_round_trip ... ok
[INFO] [stdout] test memory::tests::system_prompt_section_renders_full_bodies ... ok
[INFO] [stdout] test oauth::tests::origin_of_rejects_unparseable_urls ... ok
[INFO] [stdout] test oauth::tests::state_is_high_entropy_and_unique ... ok
[INFO] [stdout] test mcp::tests::initialize_handshake_sends_initialize_and_initialized ... ok
[INFO] [stdout] test oauth::tests::get_validated_rejects_mismatched_authorization_server ... ok
[INFO] [stdout] test model_catalogue::tests::override_beats_user_cache ... ok
[INFO] [stdout] test model_catalogue::tests::lookup_strips_vendor_prefix ... ok
[INFO] [stdout] test permissions::tests::deny_approver_always_denies ... ok
[INFO] [stdout] test permissions::tests::auto_approver_always_allows ... ok
[INFO] [stdout] test permissions::tests::permission_mode_default_is_ask ... ok
[INFO] [stdout] test oauth::tests::get_validated_rejects_legacy_entries_without_issuer ... ok
[INFO] [stdout] test model_catalogue::tests::cache_overrides_baseline ... ok
[INFO] [stdout] test permissions::tests::gui_approver_allow_for_session_sticks ... ok
[INFO] [stdout] test permissions::tests::gui_approver_denies_when_receiver_dropped ... ok
[INFO] [stdout] test permissions::tests::permission_mode_serde_lowercase ... ok
[INFO] [stdout] test model_catalogue::tests::lookup_falls_back_to_global_for_unknown_provider ... ok
[INFO] [stdout] test permissions::tests::allow_for_session_sticks_after_first_call ... ok
[INFO] [stdout] test oauth::tests::save_tightens_parent_dir_to_0700 ... ok
[INFO] [stdout] test permissions::tests::gui_approver_round_trip ... ok
[INFO] [stdout] test plugins::tests::locate_plugin_root_descends_single_wrapper ... ok
[INFO] [stdout] test plugins::tests::registry_roundtrip_upsert_remove ... ok
[INFO] [stdout] test plugins::tests::reads_native_manifest_then_falls_back_to_claude ... ok
[INFO] [stdout] test permissions::tests::scripted_approver_plays_back_queue_and_defaults_to_deny ... ok
[INFO] [stdout] test plugins::tests::is_zip_url_handles_query_and_fragment ... ok
[INFO] [stdout] test agent::tests::text_only_turn_returns_combined_text ... ok
[INFO] [stdout] test model_catalogue::tests::override_can_exceed_catalogue_value ... ok
[INFO] [stdout] test model_catalogue::tests::lookup_finds_exact_model ... ok
[INFO] [stdout] test oauth::tests::save_writes_file_with_0600_permissions ... ok
[INFO] [stdout] test model_catalogue::tests::lookup_falls_back_to_provider_default_and_flags_unknown ... ok
[INFO] [stdout] test model_catalogue::tests::override_removal_falls_back_to_catalogue ... ok
[INFO] [stdout] test model_catalogue::tests::override_strips_vendor_prefix ... ok
[INFO] [stdout] test policy::allowlist::tests::case_insensitive_host_match ... ok
[INFO] [stdout] test plugins::tests::registry_toggle_enabled_persists ... ok
[INFO] [stdout] test policy::allowlist::tests::normalize_strips_dot_git_suffix ... ok
[INFO] [stdout] test policy::allowlist::tests::port_in_url_does_not_break_match ... ok
[INFO] [stdout] test policy::allowlist::tests::url_with_query_and_token_normalizes ... ok
[INFO] [stdout] test policy::tests::iso_handles_offset_by_treating_as_utc ... ok
[INFO] [stdout] test policy::allowlist::tests::host_glob_matches_subdomains ... ok
[INFO] [stdout] test policy::allowlist::tests::no_policy_means_no_policy ... ok
[INFO] [stdout] test policy::tests::fingerprint_mismatch ... ok
[INFO] [stdout] test policy::tests::iso_parses_date_only ... ok
[INFO] [stdout] test policy::tests::past_expiry_is_expired ... ok
[INFO] [stdout] test policy::tests::fingerprint_empty_expected_does_not_match ... ok
[INFO] [stdout] test policy::tests::policy_round_trips_through_json ... ok
[INFO] [stdout] test policy::tests::validate_rejects_sso_enabled_with_empty_issuer ... ok
[INFO] [stdout] test policy::allowlist::tests::mid_segment_glob_works ... ok
[INFO] [stdout] test policy::tests::iso_parses_full_timestamp ... ok
[INFO] [stdout] test policy::tests::fingerprint_exact_match ... ok
[INFO] [stdout] test policy::tests::unparseable_expiry_is_not_treated_as_expired ... ok
[INFO] [stdout] test policy::verify::tests::key_source_file_label_includes_path ... ok
[INFO] [stdout] test policy::tests::validate_rejects_gateway_enabled_with_empty_url ... ok
[INFO] [stdout] test policy::allowlist::tests::empty_allowed_hosts_with_enabled_is_deny_all ... ok
[INFO] [stdout] test policy::allowlist::tests::host_only_pattern_matches_any_path ... ok
[INFO] [stdout] test policy::allowlist::tests::segment_wildcard_matches_one_segment ... ok
[INFO] [stdout] test policy::tests::fingerprint_prefix_match ... ok
[INFO] [stdout] test policy::verify::tests::missing_signature_field_errors_explicitly ... ok
[INFO] [stdout] test policy::verify::tests::no_key_source_with_present_signature_fails_closed ... ok
[INFO] [stdout] test policy::verify::tests::read_pubkey_bytes_rejects_garbage ... ok
[INFO] [stdout] test policy::verify::tests::canonical_payload_sorts_keys_recursively ... ok
[INFO] [stdout] test policy::verify::tests::canonical_payload_strips_signature_field ... ok
[INFO] [stdout] test policy::verify::tests::read_pubkey_bytes_accepts_base64_text ... ok
[INFO] [stdout] test policy::verify::tests::read_pubkey_bytes_accepts_pem_wrapped_text ... ok
[INFO] [stdout] test policy::tests::iso_garbage_is_treated_as_unparseable ... ok
[INFO] [stdout] test prompts::tests::load_falls_back_to_default_when_no_override ... ok
[INFO] [stdout] test prompts::tests::render_leaves_unknown_keys_alone ... ok
[INFO] [stdout] test prompts::tests::render_substitutes_known_keys ... ok
[INFO] [stdout] test policy::verify::tests::malformed_signature_field_errors_explicitly ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_skips_message_cache_when_history_too_short ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_puts_system_at_top_level_and_excludes_from_messages ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_preserves_tool_result_blocks ... ok
[INFO] [stdout] test policy::tests::future_expiry_is_not_expired ... ok
[INFO] [stdout] test prompts::tests::load_applies_branding_to_default_system_prompt ... ok
[INFO] [stdout] test prompts::tests::load_applies_branding_to_product_placeholder ... ok
[INFO] [stdout] test policy::tests::validate_accepts_gateway_disabled_with_empty_url ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_content_block_stop ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_ignores_ping_and_message_stop_marker ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_ignores_event_with_no_data_line ... ok
[INFO] [stdout] test policy::verify::tests::read_pubkey_bytes_accepts_raw_32_bytes ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_caches_second_to_last_message_when_history_long_enough ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_input_json_delta ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_message_delta_with_usage ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_message_start ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_message_cache_is_byte_stable_across_calls ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_text_delta ... ok
[INFO] [stdout] test providers::anthropic::tests::parse_tool_use_start ... ok
[INFO] [stdout] test providers::assemble::tests::implicit_thinking_routes_prefix_to_thinking ... ok
[INFO] [stdout] test providers::assemble::tests::implicit_thinking_detection_is_specific ... ok
[INFO] [stdout] test providers::assemble::tests::implicit_thinking_without_close_stays_in_thinking ... ok
[INFO] [stdout] test providers::assemble::tests::malformed_tool_json_yields_error ... ok
[INFO] [stdout] test providers::assemble::tests::split_think_text_handles_lone_closing_tag ... ok
[INFO] [stdout] test providers::assemble::tests::split_think_text_strips_newlines_across_chunk_boundary ... ok
[INFO] [stdout] test providers::anthropic::tests::build_body_omits_empty_system_and_tools ... ok
[INFO] [stdout] test providers::assemble::tests::two_tool_uses_in_one_turn ... ok
[INFO] [stdout] test providers::assemble::tests::tool_use_accumulates_partial_json ... ok
[INFO] [stdout] test providers::anthropic::tests::stream_end_to_end_with_mock_server ... ok
[INFO] [stdout] test providers::assemble::tests::empty_tool_input_becomes_empty_object ... ok
[INFO] [stdout] test providers::anthropic::tests::stream_surfaces_http_errors ... ok
[INFO] [stdout] test providers::anthropic::tests::stream_with_tool_use_assembles_to_turn_result ... ok
[INFO] [stdout] test providers::assemble::tests::text_only_turn ... ok
[INFO] [stdout] test providers::gateway::tests::is_local_provider_classification ... ok
[INFO] [stdout] test providers::gateway::tests::render_template_combines_multiple_substitutions ... ok
[INFO] [stdout] test providers::gateway::tests::render_template_literal_passthrough ... ok
[INFO] [stdout] test providers::gateway::tests::render_template_sso_placeholder_phase3_is_empty ... ok
[INFO] [stdout] test providers::gateway::tests::render_template_substitutes_env ... ok
[INFO] [stdout] test providers::gateway::tests::render_template_unset_env_produces_empty ... ok
[INFO] [stdout] test policy::verify::tests::canonical_form_normalizes_key_order_for_signing ... ok
[INFO] [stdout] test providers::assemble::tests::text_then_tool_use_in_one_turn ... ok
[INFO] [stdout] test providers::gemini::tests::parse_ignores_events_with_no_data_line ... ok
[INFO] [stdout] test providers::gemini::tests::build_body_places_system_in_systemInstruction ... ok
[INFO] [stdout] test providers::gemini::tests::parse_function_call_emits_complete_tool_use ... ok
[INFO] [stdout] test providers::gemini::tests::build_body_tool_declarations_shape ... ok
[INFO] [stdout] test providers::gemini::tests::messages_to_gemini_text_only_tool_result_skips_inline_data ... ok
[INFO] [stdout] test providers::gemini::tests::parse_text_stream ... ok
[INFO] [stdout] test providers::gemini::tests::messages_to_gemini_user_message_with_image_emits_inline_data ... ok
[INFO] [stdout] test providers::anthropic::tests::list_models_parses_data_array ... ok
[INFO] [stdout] test providers::gemini::tests::think_filter_dims_inside_tags_in_one_chunk ... ok
[INFO] [stdout] test providers::gemini::tests::messages_to_gemini_image_tool_result_emits_inline_data_part ... ok
[INFO] [stdout] test providers::gemini::tests::messages_to_gemini_maps_tool_result_name_via_id_lookup ... ok
[INFO] [stdout] test providers::gemini::tests::think_filter_collapses_models_own_trailing_newlines_after_close ... ok
[INFO] [stdout] test providers::gemini::tests::think_filter_handles_split_open_tag_across_chunks ... ok
[INFO] [stdout] test providers::gemini::tests::list_models_strips_models_prefix ... ok
[INFO] [stdout] test providers::ollama::tests::build_body_strips_prefix_and_sets_stream_true ... ok
[INFO] [stdout] test providers::ollama::tests::messages_to_ollama_system_prepended_and_tool_results_emitted_as_tool_role ... ok
[INFO] [stdout] test providers::gemini::tests::think_filter_does_not_panic_on_multibyte_chars_at_chunk_end ... ok
[INFO] [stdout] test providers::ollama::tests::parse_tool_call_emits_complete_tool_use ... ok
[INFO] [stdout] test providers::ollama::tests::model_name_strips_ollama_prefix ... ok
[INFO] [stdout] test providers::ollama::tests::list_models_from_api_tags ... ok
[INFO] [stdout] test providers::ollama::tests::parse_text_stream_emits_message_start_deltas_and_stop ... ok
[INFO] [stdout] test providers::ollama::tests::stream_end_to_end_text_via_wiremock ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::build_body_sets_think_true_for_non_gpt_oss ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::messages_with_image_attachment ... ok
[INFO] [stdout] test providers::ollama::tests::show_prefers_num_ctx_over_native ... ok
[INFO] [stdout] test providers::ollama::tests::show_falls_back_to_native_context_length ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::build_body_strips_prefix_and_sets_stream_true ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::messages_with_thinking_block ... ok
[INFO] [stdout] test providers::gemini::tests::stream_end_to_end_function_call_via_wiremock ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::messages_with_only_thinking_block ... ok
[INFO] [stdout] test policy::verify::tests::tampered_payload_fails_verification ... ok
[INFO] [stdout] test providers::gemini::tests::stream_end_to_end_text_via_wiremock ... ok
[INFO] [stdout] test providers::ollama::tests::stream_end_to_end_tool_use_via_wiremock ... ok
[INFO] [stdout] test providers::gemini::tests::think_filter_handles_unclosed_thinking_at_eof ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::model_name_strips_prefix ... ok
[INFO] [stdout] test providers::assemble::tests::non_thinking_model_passes_text_through ... ok
[INFO] [stdout] test providers::openai::tests::final_empty_choices_chunk_emits_usage_stop ... ok
[INFO] [stdout] test providers::openai::tests::build_body_maps_tools_to_openai_function_shape ... ok
[INFO] [stdout] test providers::ollama::tests::show_strips_ollama_prefix_from_model_id ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_batched_image_tool_results_emit_tool_messages_back_to_back ... ok
[INFO] [stdout] test providers::ollama_cloud::tests::stream_emits_thinking_delta_for_thinking ... ok
[INFO] [stdout] test policy::verify::tests::round_trip_signature_verifies ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_echoes_reasoning_only_for_thinking_models ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_image_tool_result_emits_synthetic_user_message ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_user_message_with_image_uses_array_content ... ok
[INFO] [stdout] test providers::openai::tests::parse_done_marker_is_noop ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_splits_tool_results_into_tool_role ... ok
[INFO] [stdout] test providers::openai::tests::parse_text_chunk_emits_message_start_and_text_delta ... ok
[INFO] [stdout] test providers::openai::tests::model_uses_reasoning_content_allowlist ... ok
[INFO] [stdout] test providers::openai::tests::parse_two_tool_calls_emits_stop_between_indexes ... ok
[INFO] [stdout] test providers::openai::tests::parse_chunk_emits_thinking_delta_for_reasoning_content ... ok
[INFO] [stdout] test providers::openai::tests::list_models_parses_data_array ... ok
[INFO] [stdout] test policy::verify::tests::key_source_file_acts_as_valid_verification_source ... ok
[INFO] [stdout] test providers::openai::tests::messages_to_openai_text_only_tool_result_skips_synthetic_user ... ok
[INFO] [stdout] test providers::openai::tests::parse_tool_call_streams_and_flushes_stop_on_finish ... ok
[INFO] [stdout] test providers::openai_responses::tests::response_id_captured ... ok
[INFO] [stdout] test repl::tests::completer_tests::hinter_returns_remainder_for_unique_prefix ... ok
[INFO] [stdout] test repl::tests::build_provider_honors_env_keys ... ok
[INFO] [stdout] test repl::tests::completer_tests::hinter_returns_remainder_for_first_match_when_ambiguous ... ok
[INFO] [stdout] test providers::openai_responses::tests::text_delta_emits_message_start_and_text ... ok
[INFO] [stdout] test policy::verify::tests::cross_keypair_signature_does_not_verify ... ok
[INFO] [stdout] test providers::openai_responses::tests::model_id_strips_prefix ... ok
[INFO] [stdout] test providers::tests::resolve_alias_for_provider_stays_in_namespace ... ok
[INFO] [stdout] test providers::tests::detect_gemini_and_gemma_go_to_gemini ... ok
[INFO] [stdout] test providers::openai_responses::tests::function_call_emits_tool_use_events ... ok
[INFO] [stdout] test repl::tests::completer_tests::hinter_silent_for_bare_slash ... ok
[INFO] [stdout] test repl::tests::looks_like_url_classification ... ok
[INFO] [stdout] test repl::tests::parse_slash_config_key_value ... ok
[INFO] [stdout] test repl::tests::completer_tests::slash_completer_lists_all_on_just_slash ... ok
[INFO] [stdout] test repl::tests::parse_slash_config_without_equals_is_unknown ... ok
[INFO] [stdout] test repl::tests::empty_env_var_treated_as_unset ... ok
[INFO] [stdout] test repl::tests::default_model_for_provider_covers_all_supported ... ok
[INFO] [stdout] test repl::tests::parse_slash_help_aliases ... ok
[INFO] [stdout] test repl::tests::parse_slash_mcp ... ok
[INFO] [stdout] test repl::tests::parse_slash_model_captures_arg ... ok
[INFO] [stdout] test repl::tests::parse_slash_mcp_subcommands ... ok
[INFO] [stdout] test repl::tests::parse_slash_memory ... ok
[INFO] [stdout] test repl::tests::completer_tests::hinter_silent_for_non_slash ... ok
[INFO] [stdout] test providers::openai::tests::stream_end_to_end_text_via_wiremock ... ok
[INFO] [stdout] test providers::openai::tests::stream_end_to_end_tool_use_via_wiremock ... ok
[INFO] [stdout] test repl::tests::parse_slash_kms ... ok
[INFO] [stdout] test repl::tests::parse_slash_handles_leading_trailing_whitespace ... ok
[INFO] [stdout] test repl::tests::parse_slash_models_set_context ... ok
[INFO] [stdout] test repl::tests::parse_slash_plugin_marketplace ... ok
[INFO] [stdout] test repl::tests::parse_slash_mcp_marketplace ... ok
[INFO] [stdout] test repl::tests::parse_slash_provider ... ok
[INFO] [stdout] test repl::tests::parse_slash_new_commands ... ok
[INFO] [stdout] test repl::tests::completer_tests::slash_completer_filters_by_prefix ... ok
[INFO] [stdout] test repl::tests::completer_tests::slash_completer_no_match_for_non_slash ... ok
[INFO] [stdout] test repl::tests::parse_slash_model_without_arg_yields_empty_string ... ok
[INFO] [stdout] test repl::tests::parse_slash_providers ... ok
[INFO] [stdout] test repl::tests::parse_slash_models ... ok
[INFO] [stdout] test repl::tests::completer_tests::slash_completer_multiple_matches ... ok
[INFO] [stdout] test repl::tests::completer_tests::slash_completer_no_match_after_first_word ... ok
[INFO] [stdout] test repl::tests::parse_slash_quit_aliases ... ok
[INFO] [stdout] test sandbox::tests::absolute_path_inside_sandbox_allowed ... ok
[INFO] [stdout] test sandbox::tests::deep_new_path_allowed_when_intermediate_dirs_missing ... ok
[INFO] [stdout] test sandbox::tests::absolute_path_outside_denied ... ok
[INFO] [stdout] test sandbox::tests::dotdot_escape_denied ... ok
[INFO] [stdout] test repl::tests::parse_slash_skill_marketplace ... ok
[INFO] [stdout] test repl::tests::parse_slash_rename ... ok
[INFO] [stdout] test repl::tests::parse_slash_skill_install_bare_name ... ok
[INFO] [stdout] test repl::tests::parse_slash_resume_aliases_to_load ... ok
[INFO] [stdout] test repl::tests::parse_slash_sso_subcommands ... ok
[INFO] [stdout] test repl::tests::parse_slash_returns_none_for_plain_text ... ok
[INFO] [stdout] test repl::tests::render_help_lists_commands ... ok
[INFO] [stdout] test sandbox::tests::new_file_outside_denied ... ok
[INFO] [stdout] test repl::tests::parse_slash_save_load_sessions ... ok
[INFO] [stdout] test repl::tests::parse_slash_unknown_command ... ok
[INFO] [stdout] test sandbox::tests::worktree_dotdot_into_workspace_allowed ... ok
[INFO] [stdout] test sandbox::tests::write_allowed_inside_worktree ... ok
[INFO] [stdout] test sandbox::tests::relative_path_resolves_from_cwd_not_root ... ok
[INFO] [stdout] test sandbox::tests::write_denied_inside_thclaws ... ok
[INFO] [stdout] test sandbox::tests::relative_path_resolves_inside_sandbox ... ok
[INFO] [stdout] test secrets::tests::status_lists_known_providers ... ok
[INFO] [stdout] test sandbox::tests::worktree_deep_new_path_allowed ... ok
[INFO] [stdout] test sandbox::tests::subdirectory_access_allowed ... ok
[INFO] [stdout] test sandbox::tests::worktree_absolute_workspace_path_allowed ... ok
[INFO] [stdout] test sandbox::tests::symlink_escape_denied ... ok
[INFO] [stdout] test session::tests::jsonl_format_has_correct_line_structure ... ok
[INFO] [stdout] test sandbox::tests::dotdot_in_non_existing_path_is_normalized_and_denied ... ok
[INFO] [stdout] test session::tests::append_only_adds_new_messages ... ok
[INFO] [stdout] test sandbox::tests::write_allowed_outside_thclaws ... ok
[INFO] [stdout] test sandbox::tests::new_file_in_sandbox_allowed ... ok
[INFO] [stdout] test session::tests::compaction_checkpoint_replays_on_load ... ok
[INFO] [stdout] test session::tests::list_returns_empty_when_store_missing ... ok
[INFO] [stdout] test session::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test session::tests::load_errors_cleanly_on_malformed_json ... ok
[INFO] [stdout] test session::tests::load_errors_on_missing_header ... ok
[INFO] [stdout] test skills::install_tests::derive_name_strips_dot_git_and_path ... ok
[INFO] [stdout] test session::tests::load_errors_on_missing_file ... ok
[INFO] [stdout] test session::tests::latest_returns_most_recent_session ... ok
[INFO] [stdout] test skills::install_tests::derive_name_uses_subpath_leaf ... ok
[INFO] [stdout] test session::tests::resolve_id_prefers_exact_id_then_title ... ok
[INFO] [stdout] test session::tests::rename_appends_event_and_persists ... ok
[INFO] [stdout] test session::tests::save_creates_parent_directories ... ok
[INFO] [stdout] test session::tests::list_sorts_newest_first ... ok
[INFO] [stdout] test session::tests::rename_errors_on_unknown_session ... ok
[INFO] [stdout] test session::tests::new_session_has_fresh_timestamps_and_unique_id ... ok
[INFO] [stdout] test sso::loopback::tests::empty_query_returns_empty_result ... ok
[INFO] [stdout] test sso::loopback::tests::parses_callback_url_decodes_state ... ok
[INFO] [stdout] test sso::loopback::tests::parses_callback_with_code_and_state ... ok
[INFO] [stdout] test skills::tests::skill_tool_returns_content_with_scripts ... ok
[INFO] [stdout] test sso::discovery::tests::parses_doc_without_optional_fields ... ok
[INFO] [stdout] test sso::loopback::tests::malformed_request_doesnt_panic ... ok
[INFO] [stdout] test skills::install_tests::is_zip_url_detects_zip_suffix_with_and_without_query ... ok
[INFO] [stdout] test skills::install_tests::derive_name_works_for_zip_urls ... ok
[INFO] [stdout] test skills::install_tests::parse_git_subpath_extracts_branch_and_subpath ... ok
[INFO] [stdout] test skills::tests::skill_tool_unknown_errors ... ok
[INFO] [stdout] test skills::tests::discover_from_directory ... ok
[INFO] [stdout] test skills::tests::names_sorted ... ok
[INFO] [stdout] test sso::loopback::tests::loopback_bind_assigns_port ... ok
[INFO] [stdout] test session::tests::resolve_id_errors_on_ambiguous_title ... ok
[INFO] [stdout] test sso::discovery::tests::parses_typical_okta_doc ... ok
[INFO] [stdout] test sso::pkce::tests::challenge_is_base64url_no_padding ... ok
[INFO] [stdout] test sso::loopback::tests::url_decode_handles_percent_and_plus ... ok
[INFO] [stdout] test sso::storage::tests::cache_key_distinguishes_issuers ... ok
[INFO] [stdout] test sso::pkce::tests::derive_challenge_matches_rfc_test_vector ... ok
[INFO] [stdout] test sso::pkce::tests::verifier_length_is_within_rfc_range ... ok
[INFO] [stdout] test sso::tests::decode_id_token_claims_handles_padded_base64 ... ok
[INFO] [stdout] test sso::tests::build_session_handles_missing_id_token ... ok
[INFO] [stdout] test sso::pkce::tests::generated_pair_is_self_consistent ... ok
[INFO] [stdout] test sso::storage::tests::expires_within_detects_imminent_expiry ... ok
[INFO] [stdout] test sso::loopback::tests::parses_callback_with_error ... ok
[INFO] [stdout] test sso::storage::tests::is_expired_is_inclusive_at_boundary ... ok
[INFO] [stdout] test sso::storage::tests::session_round_trips_through_json ... ok
[INFO] [stdout] test sso::storage::tests::session_round_trips_with_optional_fields_absent ... ok
[INFO] [stdout] test sso::tests::build_session_extracts_claims_from_id_token ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_reads_named_env_var ... ok
[INFO] [stdout] test sso::tests::decode_id_token_claims_pulls_email_and_sub ... ok
[INFO] [stdout] test sso::tests::decode_id_token_claims_rejects_garbage ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_returns_none_when_unset ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_treats_empty_var_name_as_unset ... ok
[INFO] [stdout] test sso::tests::url_encode_handles_safe_and_unsafe ... ok
[INFO] [stdout] test sso::pkce::tests::fresh_pairs_are_unique ... ok
[INFO] [stdout] test sso::storage::tests::cache_key_is_deterministic ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_reads_inline_literal ... ok
[INFO] [stdout] test sso::storage::tests::cache_key_normalizes_case ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_treats_empty_env_as_unset ... ok
[INFO] [stdout] test subagent::tests::depth_limit_enforced ... ok
[INFO] [stdout] test subagent::tests::unknown_agent_errors ... ok
[INFO] [stdout] test team::tests::lead_resolving_merge_conflict_requires_both_signals ... ok
[INFO] [stdout] test sso::tests::generate_state_is_random_and_url_safe ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_inline_blank_falls_through_to_env ... ok
[INFO] [stdout] test sso::tests::resolve_client_secret_inline_wins_over_env ... ok
[INFO] [stdout] test team::tests::mailbox_write_and_read ... ok
[INFO] [stdout] test team::tests::all_status_lists_agents ... ok
[INFO] [stdout] test team::tests::protocol_message_roundtrip ... ok
[INFO] [stdout] test subagent::tests::named_agent_passed_to_factory ... ok
[INFO] [stdout] test tokens::tests::known_ratio ... ok
[INFO] [stdout] test tokens::tests::total_sums_parts ... ok
[INFO] [stdout] test tokens::tests::unicode_counts_by_chars_not_bytes ... ok
[INFO] [stdout] test team::tests::team_config_legacy_migration ... ok
[INFO] [stdout] test team::tests::task_queue_preassigned_owner ... ok
[INFO] [stdout] test subagent::tests::sub_agent_returns_text ... ok
[INFO] [stdout] test tools::ask::tests::gui_ask_sender_round_trips_answer ... ok
[INFO] [stdout] test tools::bash::tests::bash_requires_approval ... ok
[INFO] [stdout] test team::tests::status_write_and_read ... ok
[INFO] [stdout] test tools::bash::tests::destructive_command_detection ... ok
[INFO] [stdout] test tokens::tests::rounds_up_on_fractional ... ok
[INFO] [stdout] test tokens::tests::single_char_rounds_up_to_one ... ok
[INFO] [stdout] test tools::bash::tests::destructive_expanded_patterns ... ok
[INFO] [stdout] test tools::bash::tests::destructive_piped_interpreters_and_script_sourcing ... ok
[INFO] [stdout] test tokens::tests::empty_is_zero ... ok
[INFO] [stdout] test tools::bash::tests::destructive_find_and_archive ... ok
[INFO] [stdout] test tools::bash::tests::destructive_git_working_tree ... ok
[INFO] [stdout] test tools::bash::tests::destructive_whitespace_normalisation ... ok
[INFO] [stdout] test tools::bash::tests::split_chained_extracts_server_tail ... ok
[INFO] [stdout] test tools::bash::tests::needs_venv_detects_pip_and_python_tools ... ok
[INFO] [stdout] test tools::bash::tests::server_detection_python_entry_points ... ok
[INFO] [stdout] test tools::bash::tests::format_output_combines_parts ... ok
[INFO] [stdout] test tools::bash::tests::missing_command_errors ... ok
[INFO] [stdout] test tools::bash::tests::split_chained_no_server_returns_empty ... ok
[INFO] [stdout] test tools::bash::tests::destructive_windows_equivalents ... ok
[INFO] [stdout] test tools::bash::tests::captures_stderr ... ok
[INFO] [stdout] test tools::bash::tests::nonzero_exit_appended_to_output ... ok
[INFO] [stdout] test tools::bash::tests::lead_forbidden_command_behavior ... ok
[INFO] [stdout] test team::tests::task_queue_create_and_claim ... ok
[INFO] [stdout] test tools::bash::tests::split_chained_single_command_no_split ... ok
[INFO] [stdout] test tools::bash::tests::echoes_stdout ... ok
[INFO] [stdout] test tools::bash::tests::split_chained_multiple_setup_parts ... ok
[INFO] [stdout] test tools::bash::tests::venv_wrap_activates_existing_venv ... ok
[INFO] [stdout] test tools::bash::tests::venv_wrap_activates_for_uvicorn ... ok
[INFO] [stdout] test tools::bash::tests::venv_wrap_creates_venv_when_missing ... ok
[INFO] [stdout] test tools::bash::tests::venv_wrap_skips_when_already_activated ... ok
[INFO] [stdout] test tools::edit::tests::missing_old_string_errors ... ok
[INFO] [stdout] test team::tests::read_unread_and_mark ... ok
[INFO] [stdout] test team::tests::task_queue_claim_next ... ok
[INFO] [stdout] test tools::bash::tests::venv_wrap_skips_non_pip_commands ... ok
[INFO] [stdout] test tools::edit::tests::edits_single_occurrence ... ok
[INFO] [stdout] test tools::bash::tests::teammate_forbidden_command_blocks_cross_branch_reset ... ok
[INFO] [stdout] test tools::bash::tests::stdout_and_stderr_both_captured ... ok
[INFO] [stdout] test tools::bash::tests::honors_cwd_argument ... ok
[INFO] [stdout] test tools::grep::tests::bad_regex_errors ... ok
[INFO] [stdout] test tools::edit::tests::refuses_multiple_without_replace_all ... ok
[INFO] [stdout] test tools::glob::tests::empty_result_for_no_matches ... ok
[INFO] [stdout] test tools::glob::tests::missing_pattern_errors ... ok
[INFO] [stdout] test tools::edit::tests::identical_old_and_new_errors ... ok
[INFO] [stdout] test tools::edit::tests::replace_all_replaces_everything ... ok
[INFO] [stdout] test tools::kms::tests::read_returns_page_contents ... ok
[INFO] [stdout] test tools::grep::tests::finds_matching_lines ... ok
[INFO] [stdout] test tools::glob::tests::results_are_sorted ... ok
[INFO] [stdout] test tools::grep::tests::glob_filter_restricts_files ... ok
[INFO] [stdout] test tools::glob::tests::matches_recursive_rust_files ... ok
[INFO] [stdout] test tools::ls::tests::empty_directory_returns_empty_string ... ok
[INFO] [stdout] test tools::kms::tests::read_resolves_missing_extension ... ok
[INFO] [stdout] test tools::kms::tests::read_unknown_kms_errors ... ok
[INFO] [stdout] test tools::ls::tests::nonexistent_path_errors ... ok
[INFO] [stdout] test tools::read::tests::call_multimodal_sniffs_actual_format_when_extension_lies ... ok
[INFO] [stdout] test tools::grep::tests::respects_gitignore ... ok
[INFO] [stdout] test tools::read::tests::call_multimodal_returns_image_blocks_for_png ... ok
[INFO] [stdout] test tools::ls::tests::marks_subdirectories_with_trailing_slash ... ok
[INFO] [stdout] test tools::ls::tests::lists_immediate_contents_non_recursive ... ok
[INFO] [stdout] test tools::glob::tests::matches_specific_pattern ... ok
[INFO] [stdout] test tools::read::tests::call_text_branch_rejects_image_extension ... ok
[INFO] [stdout] test tools::read::tests::missing_path_errors ... ok
[INFO] [stdout] test tools::tasks::tests::create_and_list ... ok
[INFO] [stdout] test tools::kms::tests::search_returns_empty_for_no_matches ... ok
[INFO] [stdout] test tools::read::tests::reads_whole_file ... ok
[INFO] [stdout] test tools::read::tests::sniff_recognizes_supported_image_formats ... ok
[INFO] [stdout] test tools::tasks::tests::get_by_id ... ok
[INFO] [stdout] test tools::kms::tests::search_returns_page_line_matches ... ok
[INFO] [stdout] test tools::grep::tests::no_matches_returns_empty ... ok
[INFO] [stdout] test tools::read::tests::reads_slice_with_offset_and_limit ... ok
[INFO] [stdout] test tools::glob::tests::respects_gitignore ... ok
[INFO] [stdout] test tools::read::tests::nonexistent_file_errors ... ok
[INFO] [stdout] test tools::tests::registry_dispatches_by_name ... ok
[INFO] [stdout] test tools::read::tests::offset_past_end_returns_empty ... ok
[INFO] [stdout] test tools::todo::tests::missing_todos_field_errors ... ok
[INFO] [stdout] test tools::tasks::tests::get_missing_errors ... ok
[INFO] [stdout] test tools::todo::tests::parse_todos_from_json ... ok
[INFO] [stdout] test tools::tests::registry_unknown_tool_errors ... ok
[INFO] [stdout] test tools::tests::tool_defs_are_sorted_and_complete ... ok
[INFO] [stdout] test tools::tasks::tests::register_adds_four_tools ... ok
[INFO] [stdout] test tools::todo::tests::overwrites_existing_todos ... ok
[INFO] [stdout] test tools::todo::tests::todo_item_markdown_rendering ... ok
[INFO] [stdout] test tools::tasks::tests::update_status ... ok
[INFO] [stdout] test tools::grep::tests::regex_pattern_works ... ok
[INFO] [stdout] test tools::todo::tests::write_todos_creates_markdown ... ok
[INFO] [stdout] test types::tests::to_text_drops_image_blocks_keeps_text ... ok
[INFO] [stdout] test types::tests::content_block_image_serializes_anthropic_native_shape ... ok
[INFO] [stdout] test types::tests::text_block_anthropic_wire_shape ... ok
[INFO] [stdout] test types::tests::tool_result_content_roundtrips_both_shapes ... ok
[INFO] [stdout] test types::tests::message_roundtrip ... ok
[INFO] [stdout] test types::tests::tool_result_blocks_serialize_as_array_anthropic_shape ... ok
[INFO] [stdout] test types::tests::role_serializes_lowercase ... ok
[INFO] [stdout] test types::tests::tool_result_includes_is_error_when_true ... ok
[INFO] [stdout] test types::tests::tool_result_text_serializes_as_string ... ok
[INFO] [stdout] test types::tests::tool_result_skips_is_error_when_false ... ok
[INFO] [stdout] test types::tests::tool_use_block_wire_shape ... ok
[INFO] [stdout] test usage::tests::zero_usage_not_recorded ... ok
[INFO] [stdout] test util::tests::home_dir_returns_something_on_dev_machine ... ok
[INFO] [stdout] test usage::tests::multiple_models ... ok
[INFO] [stdout] test usage::tests::today_str_valid_format ... ok
[INFO] [stdout] test tools::todo::tests::tool_metadata ... ok
[INFO] [stdout] test util::tests::shell_invocation_picks_platform_default ... ok
[INFO] [stdout] test usage::tests::summary_format ... ok
[INFO] [stdout] test util::tests::thclaws_shell_override_works ... ok
[INFO] [stdout] test tools::write::tests::writes_new_file ... ok
[INFO] [stdout] test tools::write::tests::overwrites_existing_file ... ok
[INFO] [stdout] test usage::tests::record_and_read ... ok
[INFO] [stdout] test tools::todo::tests::write_empty_todos ... ok
[INFO] [stdout] test tools::write::tests::creates_parent_directories ... ok
[INFO] [stdout] test tools::write::tests::missing_content_errors ... ok
[INFO] [stdout] test tools::bash::tests::timeout_kills_long_running_commands ... ok
[INFO] [stdout] test tools::bash::tests::timeout_secs_legacy_alias_works ... ok
[INFO] [stdout] test session::tests::sync_bumps_updated_at_and_replaces_messages ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 535 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.28s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/catalogue_seed.rs (/opt/rustwide/target/debug/deps/catalogue_seed-69a55d8463e1e94d)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::civil_from_days_known_dates ... ok
[INFO] [stdout] test tests::openai_filter_keeps_chat_drops_noise ... ok
[INFO] [stdout] test tests::gemini_filter_drops_retired_models ... ok
[INFO] [stdout] test tests::gemini_filter_keeps_chat_drops_noise ... 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 unittests src/bin/app.rs (/opt/rustwide/target/debug/deps/thclaws-c25fd1875e8462de)
[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 unittests src/bin/cli.rs (/opt/rustwide/target/debug/deps/thclaws_cli-d5798e911e45d985)
[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 unittests src/bin/policy_tool.rs (/opt/rustwide/target/debug/deps/thclaws_policy_tool-20bc951c17dcf250)
[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]    Doc-tests thclaws_core
[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" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809", kill_on_drop: false }`
[INFO] [stdout] b0caddaaa4d0e39060b99955746287fe5949c1c1e61bf1cf85cd32096d8a3809
