tribuchet: building on eliza Running phase: unpackPhase unpacking source archive /nix/store/1qhly5217wx78ph44225zc6zd6b1cj4q-source source root is source Executing cargoSetupPostUnpackHook Finished cargoSetupPostUnpackHook Running phase: patchPhase Executing cargoSetupPostPatchHook Validating consistency between /build/source/Cargo.lock and /build/atuin-18.24.4-vendor/Cargo.lock Finished cargoSetupPostPatchHook Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase Running phase: buildPhase Executing cargoBuildHook cargoBuildHook flags: -j 24 --target aarch64-unknown-linux-gnu --offline --profile release --no-default-features --features=ai\,client\,clipboard\,daemon\,pty-proxy\,sync Compiling proc-macro2 v1.0.107 Compiling quote v1.0.47 Compiling unicode-ident v1.0.24 Compiling serde v1.0.229 Compiling libc v0.2.190 Compiling serde_core v1.0.229 Compiling cfg-if v1.0.4 Compiling shlex v2.0.1 Compiling find-msvc-tools v0.1.9 Compiling memchr v2.8.3 Compiling version_check v0.9.5 Compiling pkg-config v0.3.33 Compiling allocator-api2 v0.2.21 Compiling parking_lot_core v0.9.12 Compiling foldhash v0.2.0 Compiling equivalent v1.0.2 Compiling thiserror v2.0.21 Compiling log v0.4.32 Compiling once_cell v1.21.4 Compiling typenum v1.20.1 Compiling futures-core v0.3.34 Compiling itoa v1.0.18 Compiling scopeguard v1.2.0 Compiling vcpkg v0.2.15 Compiling lock_api v0.4.14 Compiling pin-project-lite v0.2.17 Compiling zmij v1.0.23 Compiling stable_deref_trait v1.2.1 Compiling serde_json v1.0.154 Compiling bytes v1.12.1 Compiling autocfg v1.5.1 Compiling heck v0.5.0 Compiling futures-sink v0.3.34 Compiling icu_properties_data v2.2.0 Compiling generic-array v0.14.7 Compiling icu_normalizer_data v2.2.0 Compiling tracing-core v0.1.36 Compiling futures-channel v0.3.34 Compiling hashbrown v0.17.1 Compiling futures-io v0.3.34 Compiling time-core v0.1.9 Compiling futures-task v0.3.34 Compiling slab v0.4.12 Compiling num-conv v0.2.2 Compiling hashbrown v0.16.1 Compiling anyhow v1.0.104 Compiling openssl v0.10.81 Compiling semver v1.0.28 Compiling subtle v2.6.1 Compiling crossbeam-utils v0.8.22 Compiling time-macros v0.2.32 Compiling cmov v0.5.4 Compiling strsim v0.11.1 Compiling zerocopy v0.8.52 Compiling rustc_version v0.4.1 Compiling rustversion v1.0.22 Compiling ctutils v0.4.5 Compiling rustix v1.1.5 Compiling thiserror v1.0.69 Compiling percent-encoding v2.3.2 Compiling ident_case v1.0.1 Compiling const-oid v0.10.2 Compiling unicase v2.9.0 Compiling linux-raw-sys v0.12.1 Compiling syn v2.0.119 Compiling syn v3.0.9 Compiling indexmap v2.14.0 Compiling unicode-width v0.2.2 Compiling base64 v0.22.1 Compiling powerfmt v0.2.0 Compiling getrandom v0.4.3 Compiling num_threads v0.1.7 Compiling hybrid-array v0.4.13 Compiling ryu v1.0.23 Compiling litemap v0.8.2 Compiling writeable v0.6.3 Compiling num-traits v0.2.19 Compiling utf8_iter v1.0.4 Compiling form_urlencoded v1.2.2 Compiling http v1.5.0 Compiling jobserver v0.1.35 Compiling cpufeatures v0.3.0 Compiling getrandom v0.3.4 Compiling regex-syntax v0.8.11 Compiling block-buffer v0.12.1 Compiling crypto-common v0.2.2 Compiling foreign-types-shared v0.1.1 Compiling cc v1.2.64 Compiling foreign-types v0.3.2 Compiling native-tls v0.2.18 Compiling aho-corasick v1.1.4 Compiling unicode-segmentation v1.13.3 Compiling httparse v1.10.1 Compiling rand_core v0.10.1 Compiling tower-service v0.3.3 Compiling openssl-probe v0.2.1 Compiling socket2 v0.6.4 Compiling mio v1.2.1 Compiling logos-codegen v0.15.1 Compiling ahash v0.8.12 Compiling errno v0.3.14 Compiling getrandom v0.2.17 Compiling signal-hook-registry v1.4.8 Compiling cpufeatures v0.2.17 Compiling rand_core v0.6.4 Compiling http-body v1.0.1 Compiling digest v0.11.3 Compiling block-buffer v0.10.4 Compiling crypto-common v0.1.7 Compiling fnv v1.0.7 Compiling atomic-waker v1.1.2 Compiling bitflags v2.13.0 Compiling sha2 v0.11.0 Compiling try-lock v0.2.5 Compiling want v0.3.1 Compiling digest v0.10.7 Compiling tokio v1.54.1 Compiling deranged v0.5.8 Compiling futures-util v0.3.34 Compiling mime_guess v2.0.5 Compiling parking v2.2.1 Compiling zstd-safe v8.2.0 Compiling crc-catalog v2.5.0 Compiling openssl-sys v0.9.117 Compiling zstd-sys v2.1.2+zstd.1.5.7 Compiling same-file v1.0.6 Compiling beef v0.5.2 Compiling httpdate v1.0.3 Compiling lazy_static v1.5.0 Compiling hashlink v0.11.0 Compiling walkdir v2.5.0 Compiling crc v3.4.0 Compiling event-listener v5.4.2 Compiling crossbeam-queue v0.3.12 Compiling sha2 v0.10.9 Compiling http-body-util v0.1.3 Compiling convert_case v0.10.0 Compiling rand_core v0.9.5 Compiling nom v8.0.0 Compiling sync_wrapper v1.0.2 Compiling crc32fast v1.5.0 Compiling rustc-hash v2.1.3 Compiling tinyvec_macros v0.1.1 Compiling unicode-xid v0.2.6 Compiling uuid v1.26.1 Compiling mime v0.3.17 Compiling tower-layer v0.3.3 Compiling sha1_smol v1.0.1 Compiling tinyvec v1.11.0 Compiling regex-automata v0.4.14 Compiling darling_core v0.24.1 Compiling time v0.3.55 Compiling rust-embed-utils v8.12.0 Compiling libsqlite3-sys v0.30.1 Compiling synstructure v0.13.2 Compiling adler2 v2.0.1 Compiling simd-adler32 v0.3.10 Compiling type-map v0.5.1 Compiling atoi v2.0.0 Compiling miniz_oxide v0.8.9 Compiling unicode-normalization v0.1.25 Compiling ppv-lite86 v0.2.21 Compiling chacha20 v0.10.2 Compiling hmac v0.13.0 Compiling spin v0.9.9 Compiling curve25519-dalek v4.1.3 Compiling byteorder v1.5.0 Compiling unicode-properties v0.1.4 Compiling utf8parse v0.2.2 Compiling unicode-bidi v0.3.18 Compiling dotenvy v0.15.7 Compiling self_cell v1.3.0 Compiling inotify-sys v0.1.8 Compiling anstyle-parse v1.0.0 Compiling flume v0.12.0 Compiling rand v0.10.1 Compiling serde_derive v1.0.229 Compiling thiserror-impl v2.0.21 Compiling futures-macro v0.3.34 Compiling hkdf v0.13.0 Compiling flate2 v1.1.9 Compiling futures-executor v0.3.32 Compiling stringprep v0.1.5 Compiling ring v0.17.14 Compiling zerofrom-derive v0.1.7 Compiling yoke-derive v0.8.2 Compiling zerovec-derive v0.11.3 Compiling displaydoc v0.2.6 Compiling zeroize_derive v1.5.0 Compiling tracing-attributes v0.1.31 Compiling tokio-macros v2.7.0 Compiling openssl-macros v0.1.1 Compiling thiserror-impl v1.0.69 Compiling strum_macros v0.28.0 Compiling tokio-stream v0.1.18 Compiling zeroize v1.9.0 Compiling derive_more-impl v2.1.1 Compiling logos-derive v0.15.1 Compiling darling_macro v0.24.1 Compiling regex v1.12.4 Compiling rust-embed-impl v8.12.0 Compiling fluent-syntax v0.12.0 Compiling zerofrom v0.1.8 Compiling sha1 v0.11.0 Compiling yoke v0.8.3 Compiling md-5 v0.11.0 Compiling darling v0.24.1 Compiling compression-core v0.4.34 Compiling zerovec v0.11.6 Compiling zerotrie v0.2.4 Compiling tracing v0.1.44 Compiling inout v0.1.4 Compiling whoami v2.1.1 Compiling cipher v0.4.4 Compiling iana-time-zone v0.1.65 Compiling hex v0.4.3 Compiling colorchoice v1.0.5 Compiling anstyle v1.0.14 Compiling ref-cast v1.0.25 Compiling anstyle-query v1.1.5 Compiling winnow v1.0.3 Compiling signal-hook v0.3.18 Compiling is_terminal_polyfill v1.70.2 Compiling signature v2.2.0 Compiling anstream v1.0.0 Compiling ed25519 v2.2.3 Compiling blake2 v0.10.6 Compiling ref-cast-impl v1.0.25 Compiling rand_chacha v0.3.1 Compiling serde_derive_internals v0.29.1 Compiling tinystr v0.8.3 Compiling potential_utf v0.1.5 Compiling icu_collections v2.2.0 Compiling toml_datetime v1.1.1+spec-1.1.0 Compiling icu_locale_core v2.2.0 Compiling unic-langid-impl v0.9.6 Compiling untrusted v0.9.0 Compiling base64ct v1.8.3 Compiling unic-langid v0.9.6 Compiling toml_parser v1.1.2+spec-1.1.0 Compiling smallvec v1.15.2 Compiling either v1.16.0 Compiling itertools v0.14.0 Compiling icu_provider v2.2.0 Compiling ipnet v2.12.0 Compiling parking_lot v0.12.5 Compiling icu_normalizer v2.2.0 Compiling icu_properties v2.2.0 Compiling toml v0.5.11 Compiling futures-intrusive v0.5.0 Compiling basic-toml v0.1.10 Compiling intl-memoizer v0.5.3 Compiling intl_pluralrules v7.0.2 Compiling fluent-langneg v0.13.1 Compiling serde_urlencoded v0.7.1 Compiling chrono v0.4.45 Compiling i18n-config v0.4.8 Compiling find-crate v0.6.3 Compiling fluent-bundle v0.16.0 Compiling fastrand v2.4.1 Compiling clap_lex v1.1.0 Compiling toml_writer v1.1.1+spec-1.1.0 Compiling derive_more v2.1.1 Compiling idna_adapter v1.2.2 Compiling idna v1.1.0 Compiling prost-derive v0.14.3 Compiling option-ext v0.2.0 Compiling xxhash-rust v0.8.19 Compiling axum-core v0.5.6 Compiling sharded-slab v0.1.7 Compiling dirs-sys v0.5.0 Compiling tempfile v3.27.0 Compiling clap_builder v4.6.7 Compiling url v2.5.8 Compiling fluent v0.17.0 Compiling futures v0.3.32 Compiling schemars_derive v1.2.1 Compiling i18n-embed-impl v0.8.4 Compiling password-hash v0.5.0 Compiling tracing-serde v0.2.0 Compiling sqlx-core v0.9.0 Compiling ed25519-dalek v2.2.0 Compiling rand v0.8.7 Compiling inotify v0.11.4 Compiling chacha20 v0.9.1 Compiling rust-embed v8.12.0 Compiling hmac v0.12.1 Compiling filedescriptor v0.8.3 Compiling universal-hash v0.5.1 Compiling matchers v0.2.0 Compiling iso8601 v0.6.3 Compiling enum_dispatch v0.3.13 Compiling async-trait v0.1.92 Compiling clap_derive v4.6.7 Compiling prost v0.14.3 Compiling notify-types v2.1.0 Compiling serde_path_to_error v0.1.20 Compiling arc-swap v1.9.2 Compiling proc-macro-error-attr3 v3.1.1 Compiling tracing-log v0.2.0 Compiling fs-err v3.3.1 Compiling thread_local v1.1.9 Compiling dyn-clone v1.0.20 Compiling nu-ansi-term v0.50.3 Compiling opaque-debug v0.3.1 Compiling matchit v0.8.4 Compiling arrayvec v0.7.8 Compiling litrs v1.0.0 Compiling poly1305 v0.8.0 Compiling schemars v1.2.1 Compiling proc-macro-error3 v3.1.1 Compiling i18n-embed v0.16.0 Compiling notify v8.2.0 Compiling tracing-subscriber v0.3.23 Compiling atuin-vte v0.15.1 Compiling pbkdf2 v0.12.2 Compiling signal-hook-mio v0.2.5 Compiling argon2 v0.5.3 Compiling dirs v6.0.0 Compiling salsa20 v0.10.2 Compiling aead v0.5.2 Compiling serde_with_macros v3.24.0 Compiling rustls-pki-types v1.14.1 Compiling typed-builder-macro v0.23.2 Compiling strum_macros v0.27.2 Compiling async-stream-impl v0.3.6 Compiling hashbrown v0.14.5 Compiling document-features v0.2.12 Compiling rmp v0.8.15 Compiling siphasher v1.0.3 Compiling sqlx-sqlite v0.9.0 Compiling sqlx-mysql v0.9.0 Compiling sqlx-postgres v0.9.0 Compiling clap v4.6.7 Compiling file-id v0.2.3 Compiling rustc-hash v1.1.0 Compiling async-stream v0.3.6 Compiling tiny-bip39 v2.0.0 Compiling notify-debouncer-full v0.7.0 Compiling phf_shared v0.11.3 Compiling crossterm v0.29.0 Compiling i18n-embed-fl v0.10.1 Compiling crypto_secretbox v0.1.1 Compiling shellexpand v3.1.2 Compiling atuin-vt100 v0.19.2 Compiling tokio-util v0.7.20 Compiling tokio-native-tls v0.3.1 Compiling serde_with v3.24.0 Compiling toml_edit v0.25.12+spec-1.1.0 Compiling typed-builder v0.23.2 Compiling itertools v0.15.0 Compiling secrecy v0.10.3 Compiling pin-project-internal v1.1.13 Compiling h2 v0.4.16 Compiling tower v0.5.3 Compiling strum v0.27.2 Compiling serde_spanned v1.1.1 Compiling bytesize v2.7.0 Compiling sysinfo v0.39.6 Compiling eyre v0.6.14 Compiling glob-match v0.2.1 Compiling colored v3.1.1 Compiling easy-cast v0.5.4 Compiling portable-atomic v1.14.0 Compiling rusty_paseto v0.8.0 Compiling humantime v2.3.0 Compiling tree-sitter-language v0.1.8 Compiling rusty_paserk v0.5.0 Compiling sqlx-macros-core v0.9.0 Compiling pin-project v1.1.13 Compiling toml v1.1.2+spec-1.1.0 Compiling prost-types v0.14.3 Compiling phf_generator v0.11.3 Compiling indenter v0.3.4 Compiling pathdiff v0.2.3 Compiling pulldown-cmark v0.13.5 Compiling prettyplease v0.2.37 Compiling phf_macros v0.11.3 Compiling miette-derive v7.6.0 Compiling darling_core v0.23.0 Compiling castaway v0.2.4 Compiling by_address v1.2.1 Compiling static_assertions v1.1.0 Compiling unicode-width v0.1.14 Compiling foldhash v0.1.5 Compiling config v0.15.25 Compiling palette v0.7.6 Compiling crossbeam-epoch v0.9.20 Compiling phf v0.11.3 Compiling hashbrown v0.15.5 Compiling compact_str v0.9.0 Compiling palette_derive v0.7.6 Compiling miette v7.6.0 Compiling hyper v1.10.1 Compiling unicode-truncate v2.0.1 Compiling hashlink v0.9.1 Compiling sqlx-macros v0.9.0 Compiling strum v0.28.0 Compiling logos v0.15.1 Compiling kasuari v0.4.12 Compiling approx v0.5.1 Compiling console v0.16.3 Compiling lru v0.18.2 Compiling atuin-client v18.24.4 (/build/source/crates/atuin-client) Compiling fixedbitset v0.5.7 Compiling fallible-iterator v0.3.0 Compiling fast-srgb8 v1.0.0 Compiling instability v0.3.12 Compiling darling_macro v0.23.0 Compiling critical-section v1.2.0 Compiling unit-prefix v0.5.2 Compiling fallible-streaming-iterator v0.1.9 Compiling indicatif v0.18.4 Compiling ratatui-core v0.1.2 Compiling petgraph v0.8.3 Compiling pulldown-cmark-to-cmark v22.0.0 Compiling interim v0.2.1 Compiling hyper-util v0.1.20 Compiling darling v0.23.0 Compiling tracing-futures v0.2.5 Compiling rmp-serde v1.3.1 Compiling sql-builder v3.1.1 Compiling serde_regex v1.2.0 Compiling wayland-sys v0.31.10 Compiling indoc v2.0.7 Compiling multimap v0.10.1 Compiling minspan v0.1.5 Compiling downcast-rs v1.2.1 Compiling prost-reflect v0.16.3 Compiling protox-parse v0.9.0 Compiling tonic-build v0.14.6 Compiling prost-build v0.14.3 Compiling wayland-backend v0.3.14 Compiling tree-sitter v0.27.0 Compiling line-clipping v0.3.5 Compiling quick-xml v0.39.4 Compiling wayland-client v0.31.13 Compiling axum v0.8.9 Compiling hyper-tls v0.6.0 Compiling tonic-prost-build v0.14.6 Compiling ratatui-widgets v0.3.2 Compiling hyper-timeout v0.5.2 Compiling compare v0.0.6 Compiling twox-hash v2.1.4 Compiling byteorder-lite v0.1.0 Compiling cfg_aliases v0.1.1 Compiling lz4_flex v0.13.1 Compiling interval-heap v0.0.5 Compiling nix v0.28.0 Compiling wayland-scanner v0.31.9 Compiling crossbeam-skiplist v0.1.3 Compiling sfa v1.0.0 Compiling dashmap v6.2.1 Compiling rand_chacha v0.9.0 Compiling getopts v0.2.24 Compiling quick_cache v0.6.24 Compiling memo-map v0.3.3 Compiling varint-rs v2.2.1 Compiling pulldown-cmark-escape v0.11.0 Compiling byteview v0.10.2 Compiling minijinja v2.18.0 Compiling protox v0.9.1 Compiling rand v0.9.5 Compiling lsm-tree v3.1.10 Compiling gethostname v1.1.0 Compiling metrics v0.24.3 Compiling rand_xoshiro v0.7.0 Compiling tree-sitter-fish v3.6.0 Compiling tree-sitter-bash v0.25.1 Compiling rtoolbox v0.0.3 Compiling os_pipe v1.2.3 Compiling quanta v0.12.6 Compiling minimal-lexical v0.2.1 Compiling x11rb-protocol v0.13.2 Compiling metrics-exporter-prometheus v0.18.1 Compiling sketches-ddsketch v0.3.1 Compiling rmcp v3.3.0 Compiling streaming-iterator v0.1.9 Compiling metrics-util v0.20.1 Compiling nom v7.1.3 Compiling tree_magic_mini v3.2.2 Compiling rpassword v7.5.4 Compiling eye_declare_engine v0.7.1 Compiling ratatui-macros v0.7.2 Compiling lasso v0.7.3 Compiling ratatui-crossterm v0.1.2 Compiling atuin-daemon v18.24.4 (/build/source/crates/atuin-daemon) Compiling tonic v0.14.6 Compiling tree-sitter-powershell v0.26.4 Compiling wayland-protocols v0.32.11 Compiling daemonix v0.1.0 Compiling listenfd v1.0.2 Compiling serial2 v0.2.36 Compiling encoding_rs v0.8.35 Compiling fjall v3.1.10 Compiling pastey v0.2.3 Compiling arraydeque v0.5.1 Compiling atuin-ai v18.24.4 (/build/source/crates/atuin-ai) Compiling shell-words v1.1.1 Compiling atuin-server v18.24.4 (/build/source/crates/atuin-server) Compiling frizbee v0.13.0 Compiling portable-pty v0.9.0 Compiling eventsource-stream v0.2.3 Compiling yaml-rust2 v0.11.1 Compiling ratatui v0.30.2 Compiling atuin-octavo v18.24.4 (/build/source/crates/atuin-octavo) Compiling tonic-prost v0.14.6 Compiling eye_declare v0.7.1 Compiling x11rb v0.13.2 Compiling tui-textarea-2 v0.13.2 Compiling imara-diff v0.2.0 Compiling clap_complete v4.6.11 Compiling chrono-humanize v0.2.3 Compiling clap-couture-derive v0.1.1 Compiling crossbeam-channel v0.5.15 Compiling symlink v0.1.0 Compiling atuin v18.24.4 (/build/source/crates/atuin) Compiling wayland-protocols-wlr v0.3.11 Compiling tracing-appender v0.2.5 Compiling clap_complete_nushell v4.6.1 Compiling clap-couture v0.1.1 Compiling ansi-to-tui v8.0.1 Compiling runtime-format v0.1.3 Compiling wl-clipboard-rs v0.9.3 Compiling norm v0.1.1 Compiling locked-tripwire v0.1.1 Compiling arboard v3.6.1 Compiling zstd v0.14.3 Compiling compression-codecs v0.4.46 Compiling async-compression v0.4.51 Compiling tower-http v0.6.11 Compiling reqwest v0.13.4 Compiling reqwest-middleware v0.5.2 Compiling rusqlite v0.32.1 Compiling sqlx v0.9.0 Compiling atuin-common v18.24.4 (/build/source/crates/atuin-common) Compiling atuin-domain v18.24.4 (/build/source/crates/atuin-domain) Compiling atuin-kv v18.24.4 (/build/source/crates/atuin-kv) Compiling atuin-scripts v18.24.4 (/build/source/crates/atuin-scripts) Compiling atuin-history v18.24.4 (/build/source/crates/atuin-history) Compiling atuin-pty-proxy v18.24.4 (/build/source/crates/atuin-pty-proxy) Compiling atuin-dotfiles v18.24.4 (/build/source/crates/atuin-dotfiles) warning: use of deprecated method `std::sync::atomic::Atomic::::fetch_update`: renamed to `try_update` for consistency --> crates/atuin-daemon/src/output_capture/persistence/blob/fjall/mod.rs:52:38 | 52 | let _ = self.estimated_usage.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { | ^^^^^^^^^^^^ | = note: `#[warn(deprecated)]` on by default help: replace the use of the deprecated method | 52 - let _ = self.estimated_usage.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { 52 + let _ = self.estimated_usage.try_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { | warning: `atuin-daemon` (lib) generated 1 warning (run `cargo fix --lib -p atuin-daemon` to apply 1 suggestion) Finished `release` profile [optimized] target(s) in 7m 22s Executing cargoInstallPostBuildHook Finished cargoInstallPostBuildHook Finished cargoBuildHook buildPhase completed in 7 minutes 23 seconds Running phase: checkPhase Executing cargoCheckHook cargoCheckHook flags: -j 24 --profile release --no-default-features --features=ai\,client\,clipboard\,daemon\,pty-proxy\,sync --target aarch64-unknown-linux-gnu --offline -- --skip=registration --skip=api_client --skip=sync --skip=change_password --skip=multi_user_test --skip=postgres_authenticates_with_the_password_file --skip=deleting_an_account_needs_its_password --skip=operator_creates_resets_and_deletes_a_user --skip=end_history_is_not_starved_by_an_index_reload --skip=a_copy_behind_another_machine_catches_up_as_it_resumes --skip=capture_starts_when_the_config_turns_it_on --skip=continuing_a_diverged_session_carries_one_branch --skip=continuing_in_another_agent_carries_the_conversation --skip=disjoint_concurrent_deletes_leave_the_index_empty --skip=a_session_gone_on_with_elsewhere_catches_up_where_it_came_from::agent_1_Agent__Claude --skip=capture_keeps_the_conversation_and_tool_calls::agent_1_Agent__Claude::capture_tools_1_true --skip=capture_follows_a_transcript_exactly_once_across_restarts::agent_1_Agent__Claude --skip=capture_follows_a_transcript_exactly_once_across_restarts::agent_3_Agent__Copilot --skip=capture_follows_a_transcript_exactly_once_across_restarts::agent_4_Agent__Opencode Compiling tokio v1.54.1 Compiling serde_spanned v1.1.1 Compiling aho-corasick v1.1.4 Compiling winnow v1.0.3 Compiling toml_datetime v1.1.1+spec-1.1.0 Compiling rstest_macros v0.27.0 Compiling glob v0.3.3 Compiling relative-path v1.9.3 Compiling futures-timer v3.0.4 Compiling wait-timeout v0.2.1 Compiling bit-vec v0.8.0 Compiling quick-error v1.2.3 Compiling rand_xorshift v0.4.0 Compiling unarray v0.1.4 Compiling vte v0.15.0 Compiling diff v0.1.13 Compiling yansi v1.0.1 Compiling tracing-tree v0.4.1 Compiling num_cpus v1.17.0 Compiling deadpool-runtime v0.1.4 Compiling assert-json-diff v2.0.2 Compiling toml_edit v0.25.12+spec-1.1.0 Compiling toml v1.1.2+spec-1.1.0 Compiling rusty-fork v0.3.1 Compiling eye_declare_engine v0.7.1 Compiling bit-set v0.8.0 Compiling pretty_assertions v1.4.1 Compiling proptest v1.11.0 Compiling regex-automata v0.4.14 Compiling config v0.15.25 Compiling toml_parser v1.1.2+spec-1.1.0 Compiling proc-macro-crate v3.5.0 Compiling regex v1.12.4 Compiling prost-build v0.14.3 Compiling tonic-prost-build v0.14.6 Compiling atuin-daemon v18.24.4 (/build/source/crates/atuin-daemon) Compiling atuin-octavo v18.24.4 (/build/source/crates/atuin-octavo) Compiling tokio-util v0.7.20 Compiling tokio-native-tls v0.3.1 Compiling async-compression v0.4.51 Compiling eye_declare v0.7.1 Compiling deadpool v0.12.3 Compiling tokio-stream v0.1.18 Compiling h2 v0.4.16 Compiling tower v0.5.3 Compiling rmcp v3.3.0 Compiling rstest v0.27.0 Compiling sqlx-core v0.9.0 Compiling tower-http v0.6.11 Compiling sqlx-sqlite v0.9.0 Compiling sqlx-postgres v0.9.0 Compiling sqlx-mysql v0.9.0 Compiling hyper v1.10.1 Compiling hyper-util v0.1.20 Compiling sqlx v0.9.0 Compiling axum v0.8.9 Compiling hyper-tls v0.6.0 Compiling hyper-timeout v0.5.2 Compiling wiremock v0.6.5 Compiling reqwest v0.13.4 Compiling atuin-common v18.24.4 (/build/source/crates/atuin-common) Compiling reqwest-middleware v0.5.2 Compiling tonic v0.14.6 Compiling tonic-prost v0.14.6 Compiling atuin-domain v18.24.4 (/build/source/crates/atuin-domain) Compiling atuin-client v18.24.4 (/build/source/crates/atuin-client) Compiling atuin-server v18.24.4 (/build/source/crates/atuin-server) Compiling atuin-history v18.24.4 (/build/source/crates/atuin-history) Compiling atuin-kv v18.24.4 (/build/source/crates/atuin-kv) Compiling atuin-scripts v18.24.4 (/build/source/crates/atuin-scripts) Compiling atuin-dotfiles v18.24.4 (/build/source/crates/atuin-dotfiles) Compiling atuin-pty-proxy v18.24.4 (/build/source/crates/atuin-pty-proxy) warning: use of deprecated method `std::sync::atomic::Atomic::::fetch_update`: renamed to `try_update` for consistency --> crates/atuin-daemon/src/output_capture/persistence/blob/fjall/mod.rs:52:38 | 52 | let _ = self.estimated_usage.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { | ^^^^^^^^^^^^ | = note: `#[warn(deprecated)]` on by default help: replace the use of the deprecated method | 52 - let _ = self.estimated_usage.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { 52 + let _ = self.estimated_usage.try_update(Ordering::Relaxed, Ordering::Relaxed, |cur| { | warning: use of deprecated method `std::sync::atomic::Atomic::::fetch_update`: renamed to `try_update` for consistency --> crates/atuin-daemon/src/session_capture/engine/mod.rs:907:22 | 907 | .fetch_update(Ordering::SeqCst, Ordering::SeqCst, |n| n.checked_sub(1)) | ^^^^^^^^^^^^ | help: replace the use of the deprecated method | 907 - .fetch_update(Ordering::SeqCst, Ordering::SeqCst, |n| n.checked_sub(1)) 907 + .try_update(Ordering::SeqCst, Ordering::SeqCst, |n| n.checked_sub(1)) | Compiling atuin-ai v18.24.4 (/build/source/crates/atuin-ai) warning: `atuin-daemon` (lib) generated 1 warning (run `cargo fix --lib -p atuin-daemon` to apply 1 suggestion) Compiling atuin v18.24.4 (/build/source/crates/atuin) warning: use of deprecated method `std::sync::atomic::Atomic::::fetch_update`: renamed to `try_update` for consistency --> crates/atuin/tests/common/agents.rs:172:14 | 172 | LAST.fetch_update(Ordering::SeqCst, Ordering::SeqCst, |last| Some(now.max(last + 1))); | ^^^^^^^^^^^^ | = note: `#[warn(deprecated)]` on by default help: replace the use of the deprecated method | 172 - LAST.fetch_update(Ordering::SeqCst, Ordering::SeqCst, |last| Some(now.max(last + 1))); 172 + LAST.try_update(Ordering::SeqCst, Ordering::SeqCst, |last| Some(now.max(last + 1))); | warning: `atuin` (test "e2e_ai_resume_picker") generated 1 warning (1 duplicate) warning: `atuin-daemon` (lib test) generated 2 warnings (1 duplicate) (run `cargo fix --lib -p atuin-daemon --tests` to apply 1 suggestion) warning: `atuin` (test "e2e_ai_sessions") generated 1 warning (1 duplicate) warning: `atuin` (test "e2e_sync") generated 1 warning (run `cargo fix --test "e2e_sync" -p atuin` to apply 1 suggestion) Finished `release` profile [optimized] target(s) in 7m 17s Running unittests src/main.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin-39a652089b6655d5) running 706 tests test command::client::account::tests::resolve_reads_value_or_stdin::case_1_value ... ok test command::client::ai_sessions::tests::an_answer_is_yes_by_default_and_no_once_input_ends::case_4_ended ... ok test command::client::ai_sessions::tests::an_answer_is_yes_by_default_and_no_once_input_ends::case_2_yes ... ok test command::client::ai_sessions::tests::an_answer_is_yes_by_default_and_no_once_input_ends::case_1_enter ... ok test command::client::ai_sessions::tests::an_answer_is_yes_by_default_and_no_once_input_ends::case_3_no ... ok test command::client::account::login::tests::mnemonic_round_trip ... ok test command::client::config::comment::tests::examples_left_alone::case_03_with_a_dotted_key ... ok test command::client::config::comment::tests::examples_left_alone::case_13_already_set ... ok test command::client::config::comment::tests::examples_left_alone::case_09_among_dotted_keys ... ok test command::client::config::comment::tests::examples_left_alone::case_04_under_a_commented_out_table_header ... ok test command::client::config::comment::tests::examples_left_alone::case_07_under_a_quoted_table_name_with_a_dot ... ok test command::client::config::comment::tests::examples_left_alone::case_01_under_an_array_of_tables ... ok test command::client::config::comment::tests::examples_left_alone::case_12_above_its_table_under_a_commented_out_header ... ok test command::client::config::comment::tests::examples_left_alone::case_11_in_the_next_tables_section ... ok test command::client::config::comment::tests::examples_left_alone::case_02_after_an_array_of_tables ... ok test command::client::config::comment::tests::examples_left_alone::case_10_in_the_previous_tables_section ... ok test command::client::config::comment::tests::examples_left_alone::case_08_after_a_quoted_table_name_with_a_dot ... ok test command::client::config::comment::tests::examples_left_alone::case_06_of_another_table_under_an_indented_commented_out_header ... ok test command::client::config::comment::tests::examples_left_alone::case_05_of_another_table_under_a_commented_out_header ... ok test command::client::config::comment::tests::examples_left_alone::case_15_indented ... ok test command::client::config::comment::tests::examples_left_alone::case_14_already_set_as_a_table ... ok test command::client::config::comment::tests::examples_left_alone::case_16_only_in_prose ... ok test command::client::config::comment::tests::examples_left_alone::case_17_of_a_longer_key ... ok test command::client::config::comment::tests::examples_left_alone::case_18_without_an_equals_sign ... ok test command::client::config::comment::tests::examples_of_a_key_with_a_dot_left_alone ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_01_without_a_description ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_02_below_a_single_hash_comment ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_03_below_an_empty_description ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_04_below_a_description_without_a_space ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_05_below_an_indented_description ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_06_below_another_example ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_07_followed_by_comments ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_08_followed_by_more_examples ... ok test command::client::account::tests::resolve_reads_value_or_stdin::case_3_stdin_crlf ... ok test command::client::account::tests::resolve_reads_value_or_stdin::case_4_stdin_keeps_inner_whitespace ... ok test command::client::account::tests::resolve_reads_value_or_stdin::case_2_stdin ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_09_up_to_a_blank_line ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_10_before_an_indented_key ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_11_without_a_trailing_newline ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_12_without_a_space ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_13_with_two_spaces ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_14_with_a_tab ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_15_of_an_array ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_16_of_an_inline_table ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_17_of_a_multi_line_array ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_18_that_isnt_valid_toml ... ok test command::client::config::comment::tests::inserts_after_the_comment_block::case_19_before_a_later_described_example ... ok test command::client::config::comment::tests::uncomments::case_01_at_the_root ... ok test command::client::config::comment::tests::inserts_ui_columns_after_its_examples_in_the_default_config ... ok test command::client::config::comment::tests::uncomments::case_02_below_several_descriptions_with_extra_whitespace ... ok test command::client::config::comment::tests::uncomments::case_03_with_a_trailing_comment ... ok test command::client::config::comment::tests::uncomments::case_04_before_a_key ... ok test command::client::config::comment::tests::uncomments::case_05_before_a_blank_line ... ok test command::client::config::comment::tests::uncomments::case_06_after_a_blank_line ... ok test command::client::config::comment::tests::uncomments::case_07_among_dotted_keys ... ok test command::client::config::comment::tests::uncomments::case_08_among_nested_dotted_keys_under_a_table ... ok test command::client::config::comment::tests::uncomments::case_09_first_of_examples_around_dotted_keys ... ok test command::client::config::comment::tests::uncomments::case_10_without_a_trailing_newline ... ok test command::client::config::comment::tests::uncomments_under_a_quoted_table_name_with_a_dot ... ok test command::client::config::path::tests::join_takes_any_name::case_1_a_name_with_a_dot ... ok test command::client::config::path::tests::join_takes_any_name::case_2_an_empty_name ... ok test command::client::config::path::tests::parse::case_1_a_key ... ok test command::client::config::path::tests::parse::case_2_a_nested_key ... ok test command::client::config::path::tests::the_root_has_no_components ... ok test command::client::config::tests::set_a_documented_key::case_2_uncommenting_an_example_of_another_type ... ok test command::client::config::tests::new_tables_from_one_update_all_go_after_the_comments ... ok test command::client::config::tests::set_a_documented_key::case_1_uncommenting_an_example ... ok test command::client::config::tests::set_a_documented_key::case_4_inserting_after_an_example_of_another_type ... ok test command::client::config::tests::set_a_documented_key::case_3_inserting_after_an_example ... ok test command::client::config::tests::set_a_documented_key::case_5_already_set_elsewhere ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_03_creates_a_missing_table_after_the_last_tables_comments ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_01_appends_without_disturbing_an_existing_comment ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_02_creates_a_missing_table ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_05_creates_a_missing_table_after_comments_and_a_blank_line ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_04_creates_a_missing_table_after_comments_without_a_trailing_newline ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_06_creates_a_missing_table_after_comments_and_a_line_of_spaces ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_07_creates_a_missing_table_after_root_comments ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_08_creates_missing_nested_tables_after_the_comments ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_09_creates_a_missing_subtable_at_the_end_not_before_the_next_tables_comments ... ok test command::client::config::tests::set_a_key_in_a_new_table_in_the_default_config ... ok test command::client::config::tests::set_adds_a_missing_key_without_touching_existing_content::case_10_lands_above_prose_comments_in_a_table ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_1_comment_above_the_key ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_2_multiline_comment_and_blank_lines_above_the_key ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_3_comment_above_a_root_level_key ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_4_trailing_comment_on_the_value ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_5_compact_spacing_around_equals ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_6_comments_on_a_dotted_key ... ok test command::client::config::tests::set_preserves_formatting_when_overwriting::case_7_comments_around_an_inline_table ... ok test command::client::config::tests::set_rejects::case_4_an_empty_key ... ok test command::client::config::tests::setting_the_same_key_twice_keeps_its_comment ... ok test command::client::halloween::tests::halloween_season::case_1_two_weeks_before ... ok test command::client::halloween::tests::halloween_season::case_3_halloween ... ok test command::client::halloween::tests::halloween_season::case_4_sunday_after_a_saturday_halloween ... ok test command::client::halloween::tests::halloween_season::case_5_monday_after_a_saturday_halloween ... ok test command::client::halloween::tests::halloween_season::case_2_the_day_before_that ... ok test command::client::halloween::tests::halloween_season::case_6_sunday_after_a_friday_halloween ... ok test command::client::halloween::tests::halloween_season::case_7_day_after_a_sunday_halloween ... ok test command::client::halloween::tests::halloween_season::case_8_day_after_a_tuesday_halloween ... ok test command::client::halloween::tests::halloween_season::case_9_spring ... ok test command::client::config::tests::disable_writes::case_5_non_daemon_search ... ok test command::client::config::tests::enable_writes::case_1_daemon ... ok test command::client::config::tests::enable_writes::case_5_threads ... ok test command::client::config::tests::enable_writes::case_3_daemon_already_enabled ... ok test command::client::config::tests::disable_writes::case_1_daemon ... ok test command::client::config::tests::disable_writes::case_2_output_capture ... ok test command::client::config::tests::enable_writes::case_2_output_capture ... ok test command::client::config::tests::disable_writes::case_3_threads ... ok test command::client::config::tests::enable_writes::case_4_output_capture_with_daemon_already_enabled ... ok test command::client::config::tests::set_writes::case_2_replacing_an_invalid_value_with_a_valid_one ... ok test command::client::config::tests::enable_writes::case_6_threads_with_daemon_already_enabled ... ok test command::client::config::tests::set_writes::case_3_preserving_comments_and_unrelated_keys ... ok test command::client::config::tests::disable_writes::case_4_daemon_search ... ok test command::client::config::tests::set_rejects::case_3_another_key_in_the_file_being_invalid ... ok test command::client::config::tests::set_rejects::case_1_an_invalid_value ... ok test command::client::config::tests::set_writes::case_1_a_valid_value ... ok test command::client::config::tests::set_rejects::case_2_a_value_of_the_wrong_type_for_a_new_key ... ok test command::client::config::tests::set_search_mode_in_the_default_config ... ok test command::client::history::tests::normalize_command_cases::case_1_strips_spaces_and_tabs ... ok test command::client::history::tests::make_starting_history_drops_command_with_nul_byte ... ok test command::client::history::tests::parse_fmt_never_panics::case_2_single_command ... ok test command::client::history::tests::parse_fmt_never_panics::case_1_malformed_named_placeholder ... ok test command::client::history::tests::normalize_command_cases::case_2_preserves_single_escaped_trailing_space ... ok test command::client::history::tests::parse_fmt_never_panics::case_3_time_and_command ... ok test command::client::history::tests::normalize_command_cases::case_3_even_backslashes_still_trim ... ok test command::client::history::tests::utc_settings_strip_trailing_whitespace_by_default ... ok test command::client::hook::event::tests::completion_accepts_string_tool_response::case_1_string_tool_response ... ok test command::client::history::tests::test_tail_json_output_contains_history_fields ... ok test command::client::hook::event::tests::malformed_json_is_an_error::case_1_not_json ... ok test command::client::hook::event::tests::malformed_json_is_an_error::case_2_truncated ... ok test command::client::hook::event::tests::parses_agent_event::case_01_pre_tool_use_with_intent ... ok test command::client::hook::event::tests::parses_agent_event::case_02_pre_tool_use_without_description ... ok test command::client::hook::event::tests::parses_agent_event::case_05_null_exit_code_says_none ... ok test command::client::hook::event::tests::parses_agent_event::case_03_post_tool_use_uses_exit_code ... ok test command::client::hook::event::tests::parses_agent_event::case_04_post_tool_use_without_exit_code_says_none ... ok test command::client::hook::event::tests::parses_agent_event::case_06_failure_forces_exit_one_ignoring_response ... ok test command::client::history::tests::test_tail_pretty_output_shows_pending_fields_for_started_events ... ok test command::client::hook::event::tests::parses_agent_event::case_07_failure_with_its_exit_code ... ok test command::client::hook::event::tests::parses_agent_event::case_08_codex_post_tool_use ... ok test command::client::hook::event::tests::parses_agent_event::case_09_non_bash_tool_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_10_missing_tool_use_id_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_11_copilot_pre_tool_use ... ok test command::client::hook::event::tests::parses_agent_event::case_12_copilot_post_tool_use ... ok test command::client::hook::event::tests::parses_agent_event::case_13_copilot_background_start_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_14_copilot_background_end_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_15_copilot_failed_command ... ok test command::client::hook::event::tests::parses_agent_event::case_16_empty_tool_use_id_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_17_empty_command_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_18_command_with_nul_rejected ... ok test command::client::hook::event::tests::parses_agent_event::case_19_command_only_nul_rejected ... ok test command::client::hook::event::tests::parses_agent_event::case_20_missing_tool_input_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_21_null_tool_input_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_22_unknown_event_skipped ... ok test command::client::hook::event::tests::parses_agent_event::case_23_missing_event_skipped ... ok test command::client::hook::event::tests::the_correlation_key_is_the_session_and_the_commands_hash ... ok test command::client::hook::event::tests::well_formed_non_events_are_skipped::case_1_json_but_not_an_object ... ok test command::client::hook::event::tests::well_formed_non_events_are_skipped::case_2_missing_required_fields ... ok test command::client::hook::event::tests::well_formed_non_events_are_skipped::case_3_wrong_typed_tool_use_id ... ok test command::client::hook::tests::every_harness_author_is_a_known_agent ... ok test command::client::mcp::tests::bare_mcp_still_serves ... ok test command::client::config::path::tests::parse_dotted_names ... ok test command::client::output::search::tests::detects_own_search::case_01_bare ... ok test command::client::hook::tests::parse_hook_agent_command ... ok test command::client::hook::tests::parse_hook_install_command::case_2_opencode ... ok test command::client::hook::tests::parse_hook_install_command::case_1_codex ... ok test command::client::hook::tests::parse_hook_install_command::case_3_pi ... ok test command::client::mcp::tests::install_accepts_an_optional_agent::case_2_explicit ... ok test command::client::mcp::tests::install_accepts_an_optional_agent::case_1_all_agents ... ok test command::client::output::search::tests::detects_own_search::case_03_abbreviated_both ... ok test command::client::output::search::tests::detects_own_search::case_04_relative_path ... ok test command::client::init::tests::ai_resume_is_bound_only_when_asked::case_2_asked ... ok test command::client::init::tests::ai_resume_is_bound_only_when_asked::case_1_default ... ok test command::client::output::search::tests::detects_own_search::case_05_absolute_path ... ok test command::client::output::search::tests::detects_own_search::case_02_abbreviated_output ... ok test command::client::output::search::tests::detects_own_search::case_06_quoted_path_with_spaces ... ok test command::client::output::search::tests::detects_own_search::case_07_global_flag_before_subcommand ... ok test command::client::output::search::tests::detects_own_search::case_08_flag_between_subcommands ... ok test command::client::output::search::tests::detects_own_search::case_09_output_other_subcommand ... ok test command::client::hook::event::tests::failure_without_an_exit_code_in_its_error_exits_one ... ok test command::client::output::search::tests::detects_own_search::case_10_other_subcommand ... ok test command::client::output::search::tests::detects_own_search::case_11_not_atuin ... ok test command::client::output::search::tests::detects_own_search::case_12_query_only_contains_it ... ok test command::client::output::search::tests::detects_own_search::case_13_empty ... ok test command::client::init::nu::tests::keybindings_have_unique_names ... ok test command::client::config::comment::tests::enables_each_example_in_the_default_config ... ok test command::client::output::search::writers::tests::empty_result_framing::case_1_array ... ok test command::client::output::search::writers::tests::empty_result_framing::case_2_ndjson ... ok test command::client::output::search::writers::tests::command_is_emitted_raw::case_3_plain ... ok test command::client::output::search::writers::tests::command_is_emitted_raw::case_1_leading_and_trailing_spaces ... ok test command::client::output::search::writers::tests::command_is_emitted_raw::case_2_embedded_tab ... ok test command::client::output::search::writers::tests::json_array_frames_records ... ok test command::client::hook::tests::parse_top_level_hook_command ... ok test command::client::output::search::writers::tests::header_fills_terminal_width::case_3_short_command ... ok test command::client::output::search::writers::tests::header_fills_terminal_width::case_1_success ... ok test command::client::output::search::writers::tests::header_fills_terminal_width::case_2_failure ... ok test command::client::output::search::writers::tests::ndjson_frames_records ... ok test command::client::output::search::writers::tests::ndjson_record_has_expected_fields ... ok test command::client::output::search::writers::tests::output_control_characters_are_escaped::case_1_bell ... ok test command::client::output::search::writers::tests::output_control_characters_are_escaped::case_3_newline ... ok test command::client::output::search::writers::tests::output_control_characters_are_escaped::case_2_quote ... ok test command::client::output::search::writers::tests::output_control_characters_are_escaped::case_4_tab ... ok test command::client::output::search::writers::tests::plain_marks_gaps::case_1_gap_between_windows ... ok test command::client::output::search::writers::tests::plain_marks_gaps::case_2_discarded_middle ... ok test command::client::output::search::writers::tests::plain_renders::case_2_keeps_control_chars ... ok test command::client::output::search::writers::tests::plain_renders::case_1_trims_command_keeps_output ... ok test command::client::output::search::writers::tests::plain_renders::case_3_multi_line ... ok test command::client::output::search::writers::tests::pretty_centers_a_gap_marker ... ok test command::client::output::search::writers::tests::write_output_renders::case_1_single_line ... ok test command::client::hook::event::tests::bash_post_tool_use_reports_exit_code ... ok test command::client::output::search::writers::tests::write_output_renders::case_2_multiple_on_one_line ... ok test command::client::output::search::writers::tests::write_output_renders::case_3_escapes_control_chars ... ok test command::client::output::search::writers::tests::write_output_renders::case_4_all_lines_shown_match_on_second ... ok test command::client::search::inspector::bindings::tests::remapped_and_conditional_keys ... ok test command::client::search::inspector::browser::tests::command_text_is_safe_and_respects_highlighting::case_2 ... ok test command::client::search::engines::daemon::tests::cjk_prefix_highlights_at_correct_bytes ... ok test command::client::search::engines::daemon::tests::long_query_does_not_panic_highlighting ... ok test command::client::scripts::tests::missing_editor_reports_the_command_and_preserves_the_io_error::case_2 ... ok test command::client::search::engines::daemon::tests::accented_command_highlights_unaccented_query ... ok test command::client::search::engines::daemon::tests::multibyte_char_before_match_does_not_shift_highlight ... ok test command::client::scripts::tests::missing_editor_reports_the_command_and_preserves_the_io_error::case_1 ... ok test command::client::search::inspector::browser::tests::output_pages_and_edges ... ok test command::client::search::inspector::browser::tests::output_back_preserves_list_position ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_3 ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_2 ... ok test command::client::search::inspector::output::tests::formatting_only ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_1 ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_5 ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_4 ... ok test command::client::search::inspector::output::tests::non_formatting_controls_are_not_rendered::case_6 ... ok test command::client::search::inspector::tests::success_uses_only_known_exits::case_1 ... ok test command::client::search::inspector::tests::success_uses_only_known_exits::case_2 ... ok test command::client::search::inspector::tests::months_are_chronological ... ok test command::client::search::inspector::tests::success_uses_only_known_exits::case_3 ... ok test command::client::search::inspector::output::tests::styles_survive_wrapping_newlines_and_resize ... ok test command::client::search::inspector::output::tests::dropping_or_replacing_a_capture_cancels_the_request::case_1 ... ok test command::client::search::inspector::output::tests::dropping_or_replacing_a_capture_cancels_the_request::case_2 ... ok test command::client::search::inspector::output::tests::loading_is_nonblocking_and_only_failures_retry::case_2 ... ok test command::client::search::inspector::output::tests::loading_is_nonblocking_and_only_failures_retry::case_1 ... ok test command::client::search::inspector::tests::success_uses_only_known_exits::case_4 ... ok test command::client::hook::event::tests::non_bash_tool_is_always_skipped ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_1_no_preview ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_5_auto_limit_2 ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_2_auto_h2 ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_3_auto_h3 ... ok test command::client::hook::event::tests::bash_pre_tool_use_yields_start ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_6_static_h3 ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_4_auto_one_line ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_8_fixed ... ok test command::client::search::interactive::tests::cd_command_escapes_shell_specific_delimiters::case_1_nu_raw_terminator ... ok test command::client::search::interactive::tests::cd_command_escapes_shell_specific_delimiters::case_2_powershell_quotes ... ok test command::client::search::inspector::browser::tests::command_text_is_safe_and_respects_highlighting::case_1 ... ok test command::client::search::interactive::tests::calc_preview_height_cases::case_7_static_limit_4 ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_1_sh ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_2_bash ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_3_zsh ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_4_fish ... ok test command::client::search::interactive::tests::a_message_for_the_user_shows_until_the_next_key ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_5_nu ... ok test command::client::search::interactive::tests::cd_command_quotes_per_shell::case_6_xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_backslash_in_powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unknown_shell ... ok test command::client::search::inspector::browser::tests::command_header_follows_selection_and_stays_compact::case_1 ... ok test command::client::search::inspector::browser::tests::command_header_follows_selection_and_stays_compact::case_4 ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_3_Shell__Zsh ... ok test command::client::search::inspector::browser::tests::command_header_follows_selection_and_stays_compact::case_2 ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_4_Shell__Fish ... ok test command::client::search::inspector::browser::tests::command_header_follows_selection_and_stays_compact::case_3 ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_01_unknown::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_02_empty::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_3_Shell__Zsh ... ok test command::client::search::inspector::browser::tests::output_wraps_and_scrolls_to_the_end::case_2 ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_5_Shell__Nu ... ok test command::client::search::inspector::browser::tests::output_wraps_and_scrolls_to_the_end::case_1 ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_03_relative::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_3_zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_04_newline::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_05_carriage_return::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_4_fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_06_escape::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_7_powershell ... ok test command::client::search::inspector::browser::tests::views_pivot_on_the_selected_occurrence ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_6_xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_5_nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_07_nul::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_08_next_line::shell_7_Shell__Powershell ... ok test command::client::history::tests::delete_routes_through_the_daemon_only_when_enabled::case_1_daemon_enabled_but_unreachable ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_posix_round_trips ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_09_line_separator::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_1_Shell__Sh ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_1_sh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_2_Shell__Bash ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_3_Shell__Zsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_4_Shell__Fish ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_5_Shell__Nu ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_6_Shell__Xonsh ... ok test command::client::search::interactive::tests::cd_command_rejects_unusable_cwd::case_10_paragraph_separator::shell_7_Shell__Powershell ... ok test command::client::search::interactive::tests::cd_command_lands_in_directory_in_real_shell::case_2_bash ... ok test command::client::search::interactive::tests::execute_cd_selects_entry::case_2_accept_cd_inspector ... ok test command::client::search::interactive::tests::execute_accept_in_inspector_tab ... ok test command::client::search::interactive::tests::execute_accept_nth ... ok test command::client::search::interactive::tests::execute_accept_sets_accept_flag ... ok test command::client::search::interactive::tests::execute_cd_selects_entry::case_1_accept_cd ... ok test command::client::search::interactive::tests::execute_cd_selects_entry::case_4_return_cd_inspector ... ok test command::client::search::interactive::tests::execute_cd_selects_entry::case_3_return_cd ... ok test command::client::search::interactive::tests::execute_clear_context ... ok test command::client::search::interactive::tests::execute_exit_returns_based_on_exit_mode::case_1_return_original ... ok test command::client::search::interactive::tests::execute_copy ... ok test command::client::search::interactive::tests::execute_cycle_search_mode ... ok test command::client::search::interactive::tests::execute_cursor_movement ... ok test command::client::search::interactive::tests::execute_delete ... ok test command::client::search::interactive::tests::execute_editing ... ok test command::client::search::interactive::tests::execute_return_selection_does_not_set_accept ... ok test command::client::search::interactive::tests::execute_enter_prefix_mode ... ok test command::client::search::interactive::tests::execute_exit_returns_based_on_exit_mode::case_2_return_query ... ok test command::client::search::interactive::tests::execute_noop ... ok test command::client::search::interactive::tests::execute_return_original ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_2_select_next_with_invert ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_1_select_next_no_invert ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_3_select_previous_no_invert ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_5_scroll_to_top_with_invert ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_4_scroll_to_top_no_invert ... ok test command::client::search::interactive::tests::execute_vim_mode_change::case_1_enter_normal ... ok test command::client::search::interactive::tests::execute_switch_context ... ok test command::client::search::interactive::tests::execute_scroll_selection::case_6_scroll_to_bottom_no_invert ... ok test command::client::search::interactive::tests::execute_toggle_tab ... ok test command::client::search::interactive::tests::execute_vim_mode_change::case_2_enter_insert ... ok test command::client::search::interactive::tests::execute_vim_search_insert ... ok test command::client::search::interactive::tests::inspector_delete_targets_the_inspected_occurrence ... ok test command::client::search::interactive::tests::inspector_prefix_chord_switches_context ... ok test command::client::search::interactive::tests::inspector_enter_opens_output_and_escape_goes_back ... ok test command::client::search::interactive::tests::inspector_unmatched_key_does_not_edit_search_input ... ok test command::client::search::interactive::tests::keymap_config_return_query ... ok test command::client::search::interactive::tests::prefix_chord_ctrl_a_c_switches_context ... ok test command::client::history::tests::handle_start_respects_strip_setting::case_2_keeps_when_disabled ... ok test command::client::history::tests::handle_start_respects_strip_setting::case_1_strips_by_default ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_8_cd_without_directory ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_9_cd_chained_without_directory ... ok test command::client::search::interactive::tests::state_scroll_up_underflow ... ok test command::client::search::interactive::tests::test_vim_big_g_jump_to_bottom ... ok test command::client::search::interactive::tests::test_vim_ctrl_scroll_clears_pending::c_1___d__ ... ok test command::client::search::interactive::tests::test_vim_ctrl_scroll_clears_pending::c_2___u__ ... ok test command::client::search::interactive::tests::test_accept_keybindings ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_4::invert_1_false ... ok test command::client::search::interactive::tests::context_refresh_preserves_an_occurrence_missing_from_search ... ok test command::client::search::interactive::tests::test_vim_ctrl_scroll_clears_pending::c_4___b__ ... ok test command::client::search::interactive::tests::test_vim_ctrl_scroll_clears_pending::c_3___f__ ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_2::invert_1_false ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_3::invert_2_true ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_3::invert_1_false ... ok test command::client::search::interactive::tests::test_vim_gg_multikey_sequence ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_1::invert_1_false ... ok test command::client::search::interactive::tests::test_vim_g_key_clears_on_other_input ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_1_halloween ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_1::invert_2_true ... ok test command::client::search::keybindings::actions::tests::parse_action::case_01_cursor_left ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_2::invert_2_true ... ok test command::client::search::keybindings::actions::tests::parse_action::case_02_accept ... ok test command::client::search::keybindings::actions::tests::parse_action::case_03_exit ... ok test command::client::search::keybindings::actions::tests::parse_action::case_04_noop ... ok test command::client::search::keybindings::actions::tests::parse_action::case_05_vim_enter_normal ... ok test command::client::search::keybindings::actions::tests::parse_action::case_06_accept_nth_1 ... ok test command::client::search::keybindings::actions::tests::parse_action::case_07_accept_nth_9 ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_2_season_opens ... ok test command::client::search::keybindings::actions::tests::parse_action::case_08_return_selection ... ok test command::client::search::keybindings::actions::tests::parse_action::case_09_return_selection_1 ... ok test command::client::search::keybindings::actions::tests::parse_action::case_10_return_selection_9 ... ok test command::client::search::keybindings::actions::tests::parse_action::case_11_accept_cd ... ok test command::client::search::keybindings::actions::tests::parse_action::case_12_return_cd ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_4_already_the_season_east_of_utc ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_3_day_before_the_season ... ok test command::client::search::keybindings::actions::tests::parse_unknown_action::case_1_unknown_action ... ok test command::client::search::keybindings::actions::tests::parse_unknown_action::case_2_accept_0 ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_5_still_the_season_west_of_utc ... ok test command::client::search::interactive::tests::title_wears_a_pumpkin_in_the_halloween_season::case_6_already_over_east_of_utc ... ok test command::client::search::keybindings::actions::tests::parse_unknown_action::case_3_accept_10 ... ok test command::client::search::keybindings::actions::tests::parse_unknown_action::case_4_return_selection_0 ... ok test command::client::search::keybindings::actions::tests::parse_unknown_action::case_5_return_selection_10 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_1 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_2 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_3 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_4 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_5 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_6 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_7 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_8 ... ok test command::client::search::keybindings::actions::tests::round_trip::case_9 ... ok test command::client::search::inspector::output::tests::styled_wrapping_preserves_text ... ok test command::client::search::keybindings::actions::tests::serde_round_trip::case_1 ... ok test command::client::search::keybindings::actions::tests::serde_round_trip::case_2 ... ok test command::client::search::keybindings::conditions::tests::atom_cursor_at_end ... ok test command::client::search::keybindings::conditions::tests::atom_cursor_at_start ... ok test command::client::search::keybindings::conditions::tests::atom_has_context ... ok test command::client::search::keybindings::conditions::tests::atom_input_empty ... ok test command::client::search::keybindings::conditions::tests::atom_list_at_end ... ok test command::client::search::keybindings::conditions::tests::atom_list_at_start ... ok test command::client::search::keybindings::conditions::tests::atom_no_results_and_has_results ... ok test command::client::search::keybindings::conditions::tests::atom_original_input_empty ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_01_cursor_at_start ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_02_cursor_at_end ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_03_input_empty ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_04_original_input_empty ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_05_list_at_end ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_06_list_at_start ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_07_no_results ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_08_has_results ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_09_has_context ... ok test command::client::search::keybindings::conditions::tests::atom_parse_round_trip::case_10_shell_up_key_binding ... ok test command::client::search::keybindings::conditions::tests::atom_parse_unknown ... ok test command::client::search::keybindings::conditions::tests::atom_shell_up_key_binding ... ok test command::client::search::keybindings::conditions::tests::builder_chain ... ok test command::client::search::keybindings::conditions::tests::display_no_parens_when_not_needed ... ok test command::client::search::keybindings::conditions::tests::display_parens_when_needed ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_1_atom ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_2_not ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_3_and ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_4_or ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_5_parenthesized_or_in_and ... ok test command::client::search::keybindings::conditions::tests::display_round_trip::case_6_parenthesized_and_in_or ... ok test command::client::search::keybindings::conditions::tests::displays_condition::case_1_atom ... ok test command::client::search::keybindings::conditions::tests::displays_condition::case_2_not ... ok test command::client::search::keybindings::conditions::tests::displays_condition::case_3_and ... ok test command::client::search::keybindings::conditions::tests::displays_condition::case_4_or ... ok test command::client::search::keybindings::conditions::tests::eval_and ... ok test command::client::search::keybindings::conditions::tests::eval_complex_nested ... ok test command::client::search::keybindings::conditions::tests::eval_not ... ok test command::client::search::keybindings::conditions::tests::eval_or ... ok test command::client::search::keybindings::conditions::tests::from_atom_into_expr ... ok test command::client::search::keybindings::conditions::tests::parse_whitespace_tolerance ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_1_bare_atom ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_2_negation ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_3_double_negation ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_4_and ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_5_or ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_6_precedence_and_binds_tighter_than_or ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_7_parens_override_precedence ... ok test command::client::search::keybindings::conditions::tests::parses_condition::case_8_complex_nested ... ok test command::client::search::keybindings::conditions::tests::rejects_invalid_condition::case_1_unknown_atom ... ok test command::client::search::keybindings::conditions::tests::rejects_invalid_condition::case_2_trailing_input ... ok test command::client::search::keybindings::conditions::tests::rejects_invalid_condition::case_3_unmatched_paren ... ok test command::client::search::keybindings::conditions::tests::rejects_invalid_condition::case_4_empty ... ok test command::client::search::keybindings::conditions::tests::serde_compound_expression ... ok test command::client::search::keybindings::conditions::tests::serde_round_trip ... ok test command::client::search::keybindings::conditions::tests::serde_simple_atom ... ok test command::client::search::keybindings::defaults::tests::config_override_preserves_unoverridden_keys ... ok test command::client::search::keybindings::defaults::tests::config_conditional_override ... ok test command::client::search::keybindings::defaults::tests::custom_prefix_char ... ok test command::client::search::keybindings::defaults::tests::config_override_replaces_key ... ok test command::client::search::keybindings::defaults::tests::default_alt_numeric_shortcuts ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_02_esc_exits ... ok test command::client::search::keybindings::defaults::tests::emacs_enter_accept_true_uses_accept ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_01_ctrl_c_returns_original ... ok test command::client::search::interactive::tests::unavailable_daemon_fuzzy_retries_with_local_fuzzy ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_03_tab_returns_selection ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_04_enter_returns_selection ... ok test command::client::search::keybindings::defaults::tests::ctrl_n_shortcuts_changes_numeric_modifier ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_05_right_at_end_returns_selection ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_08_left_not_at_start_moves ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_06_right_not_at_end_moves ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_07_left_at_start_exits ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_09_down_at_start_exits ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_10_down_not_at_start_selects_next ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_12_ctrl_d_empty_returns_original ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_11_up_selects_previous ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_14_ctrl_n_selects_next_no_exit_condition ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_13_ctrl_d_nonempty_deletes ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_15_prefix_key_enters_prefix ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_16_home_cursor_start ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_17_alt_backspace_deletes_word_before ... ok test command::client::search::keybindings::defaults::tests::emacs_keymap_resolves::case_18_alt_d_deletes_word_after ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_01_runs ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_02_session ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_03_stats ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_04_output ... ok test command::client::search::keybindings::defaults::tests::from_settings_with_empty_config_equals_defaults ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_05_ctrl_d_deletes ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_06_up_inspects_previous ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_07_down_inspects_next ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_08_esc_exits ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_10_pageup_scrolls ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_09_enter_opens_output ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_11_pagedown_scrolls ... ok test command::client::search::keybindings::defaults::tests::keys_has_non_default_values_detection ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_12_tab_returns_selection ... ok test command::client::search::keybindings::defaults::tests::parse_binding_config_invalid_action ... ok test command::client::search::keybindings::defaults::tests::inspector_keymap_resolves::case_13_prefix_key_enters_prefix ... ok test command::client::search::keybindings::defaults::tests::parse_binding_config_invalid_condition ... ok test command::client::search::keybindings::defaults::tests::parse_conditional_binding_config ... ok test command::client::search::keybindings::defaults::tests::keymap_set_defaults_builds ... ok test command::client::search::keybindings::defaults::tests::parse_simple_binding_config ... ok test command::client::search::keybindings::defaults::tests::prefix_g_from_terminal_events_is_case_sensitive::case_1_g ... ok test command::client::search::keybindings::defaults::tests::keymap_overrides_ignore_keys_section ... ok test command::client::search::keybindings::defaults::tests::keymap_present_resets_to_standard_keys_defaults ... ok test command::client::search::keybindings::defaults::tests::prefix_g_from_terminal_events_is_case_sensitive::case_2_shift_g ... ok test command::client::search::keybindings::defaults::tests::prefix_keymap_resolves::case_1_d_deletes ... ok test command::client::search::keybindings::defaults::tests::original_input_empty_condition_in_config ... ok test command::client::search::keybindings::defaults::tests::prefix_keymap_resolves::case_2_a_cursor_start ... ok test command::client::search::keybindings::defaults::tests::prefix_keymap_resolves::case_3_g_accept_cd ... ok test command::client::search::keybindings::defaults::tests::prefix_keymap_resolves::case_4_shift_g_return_cd ... ok test command::client::search::keybindings::defaults::tests::prefix_keymap_resolves::case_5_unknown_key_returns_none ... ok test command::client::search::keybindings::defaults::tests::shell_up_key_binding_condition_in_config ... ok test command::client::search::keybindings::defaults::tests::vim_insert_keymap_resolves::case_1_inherits_emacs_enter ... ok test command::client::search::keybindings::defaults::tests::vim_insert_keymap_resolves::case_4_inherits_emacs_ctrl_d ... ok test command::client::search::keybindings::defaults::tests::vim_insert_keymap_resolves::case_2_esc_enters_normal ... ok test command::client::search::keybindings::defaults::tests::vim_insert_keymap_resolves::case_3_ctrl_bracket_enters_normal ... ok test command::client::search::keybindings::defaults::tests::vim_normal_enter_accept_true_uses_accept ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_01_j_at_start_exits ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_02_j_not_at_start_selects_next ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_03_k_selects_previous ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_04_i_enters_insert ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_05_slash_search_insert ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_06_gg_scroll_to_top ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_08_numeric_returns_selection ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_07_big_g_scroll_to_bottom ... ok test command::client::search::keybindings::keymap::tests::conditional_first_match_wins ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_09_ctrl_u_half_page_up ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_10_screen_jump_top ... ok test command::client::search::keybindings::keymap::tests::conditional_no_condition_matches_returns_none ... ok test command::client::search::keybindings::keymap::tests::has_sequence_starting_with ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_11_screen_jump_middle ... ok test command::client::search::keybindings::keymap::tests::merge_overrides ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_12_screen_jump_bottom ... ok test command::client::search::keybindings::keymap::tests::merge_preserves_unoverridden ... ok test command::client::search::keybindings::defaults::tests::vim_normal_keymap_resolves::case_13_enter_returns_selection ... ok test command::client::search::keybindings::keymap::tests::no_match_returns_none ... ok test command::client::search::keybindings::keymap::tests::simple_binding_resolves ... ok test command::client::search::syntax::tests::classify_renders::case_01_simple_command ... ok test command::client::search::syntax::tests::classify_renders::case_03_and_list ... ok test command::client::search::syntax::tests::classify_renders::case_02_pipe ... ok test command::client::search::syntax::tests::classify_renders::case_07_comment ... ok test command::client::search::syntax::tests::classify_renders::case_08_comment_no_space ... ok test command::client::search::syntax::tests::classify_renders::case_04_env_assignment ... ok test command::client::search::syntax::tests::classify_renders::case_06_variable_in_string ... ok test command::client::search::syntax::tests::classify_renders::case_05_variables ... ok test command::client::search::syntax::tests::classify_renders::case_13_zsh_uses_bash ... ok test command::client::search::syntax::tests::classify_renders::case_14_nu_plain ... ok test command::client::search::syntax::tests::classify_renders::case_10_fish_subshell ... ok test command::client::search::syntax::tests::classify_renders::case_09_fish_set ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_1___echo__oops__::shell_2_Some___fish___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_1___echo__oops__::shell_3_Some___nu___ ... ok test command::client::search::syntax::tests::classify_renders::case_11_fish_string ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_1___echo__oops__::shell_1_None ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_2___if_12_____::shell_2_Some___fish___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_2___if_12_____::shell_3_Some___nu___ ... ok test command::client::history::tests::delete_routes_through_the_daemon_only_when_enabled::case_2_daemon_disabled ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_3_____::shell_1_None ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_3_____::shell_2_Some___fish___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_2___if_12_____::shell_1_None ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_3_____::shell_3_Some___nu___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_4___echohéllo__::shell_1_None ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_4___echohéllo__::shell_3_Some___nu___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_4___echohéllo__::shell_2_Some___fish___ ... ok test command::client::search::tests::parses_exit_filters::case_1_default::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_1_default::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_1_default::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_2_single::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_2_single::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_2_single::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_3_single_exclusion::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_3_single_exclusion::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_3_single_exclusion::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_4_repeated::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_4_repeated::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_4_repeated::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_5_short::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_5_short::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_5_short::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_6_excluded::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_6_excluded::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_6_excluded::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_7_combined::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_7_combined::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_7_combined::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_8_duplicates::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_8_duplicates::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_8_duplicates::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_exit_filters::case_9_signed::delete_1_None ... ok test command::client::search::tests::parses_exit_filters::case_9_signed::delete_2_Some_____delete___ ... ok test command::client::search::tests::parses_exit_filters::case_9_signed::delete_3_Some_____delete_it_all___ ... ok test command::client::search::tests::parses_query_args::case_1_triple_dash ... ok test command::client::search::tests::parses_query_args::case_2_double_dash_value ... ok test command::client::search::tests::rejects_invalid_exit_filters::flag_1_____exit__::value_1___invalid__ ... ok test command::client::search::tests::rejects_invalid_exit_filters::flag_1_____exit__::value_2___9223372036854775808__ ... ok test command::client::search::tests::rejects_invalid_exit_filters::flag_2_____exclude_exit__::value_1___invalid__ ... ok test command::client::search::tests::rejects_invalid_exit_filters::flag_2_____exclude_exit__::value_2___9223372036854775808__ ... ok test command::client::search::tests::search_author_cli_flag ... ok test command::client::search::tests::search_author_cli_flag_parses_the_special_values ... ok test command::client::tests::debug_redacts_argv_secrets::case_01_login ... ok test command::client::tests::debug_redacts_argv_secrets::case_02_login_key ... ok test command::client::tests::ai_session_is_still_threads ... ok test command::client::tests::debug_redacts_argv_secrets::case_03_login_totp ... ok test command::client::tests::debug_redacts_argv_secrets::case_05_account_login ... ok test command::client::tests::debug_redacts_argv_secrets::case_04_register ... ok test command::client::tests::debug_redacts_argv_secrets::case_06_delete ... ok test command::client::tests::debug_redacts_argv_secrets::case_07_change_current ... ok test command::client::tests::debug_redacts_argv_secrets::case_08_change_new ... ok test command::client::tests::debug_redacts_argv_secrets::case_09_rekey ... ok test command::client::tests::resume_parses_everywhere::case_1_short ... ok test command::client::tests::resume_parses_everywhere::case_3_ai ... ok test command::client::tests::debug_redacts_argv_secrets::case_10_ai_token ... ok test command::client::tests::resume_parses_everywhere::case_2_threads ... ok test command::client::trick_or_treat::tests::graveyard::case_01_long_dead ... ok test command::client::trick_or_treat::tests::graveyard::case_03_too_few_runs ... ok test command::client::trick_or_treat::tests::graveyard::case_02_runs_add_up_across_a_family ... ok test command::client::trick_or_treat::tests::graveyard::case_04_kept_alive_by_a_sibling ... ok test command::client::trick_or_treat::tests::graveyard::case_05_not_quite_a_year ... ok test command::client::trick_or_treat::tests::graveyard::case_07_subcommands_haunt_alone ... ok test command::client::trick_or_treat::tests::graveyard::case_06_prefix_and_env_dropped ... ok test command::client::trick_or_treat::tests::graveyard::case_09_every_program_in_a_pipeline_haunts ... ok test command::client::trick_or_treat::tests::graveyard::case_08_piped_use_keeps_a_program_alive ... ok test command::client::trick_or_treat::tests::tombstone_centres_the_epitaph ... ok test command::client::trick_or_treat::tests::graveyard::case_11_piped_into_itself_counts_once ... ok test command::client::trick_or_treat::tests::graveyard::case_10_stderr_pipe_operator_is_no_ghost ... ok test command::client::trick_or_treat::tests::treat_says_how_often_and_where_it_ran::case_1_once ... ok test command::client::trick_or_treat::tests::graveyard::case_12_a_young_history_buries_sooner ... ok test command::client::trick_or_treat::tests::treat_says_how_often_and_where_it_ran::case_3_imported_without_a_directory ... ok test command::client::trick_or_treat::tests::graveyard::case_13_a_new_history_waits_a_week ... ok test command::client::trick_or_treat::tests::treat_says_how_often_and_where_it_ran::case_2_twice ... ok test command::client::trick_or_treat::tests::treats::case_1_forgotten ... ok test command::client::trick_or_treat::tests::treats::case_2_twice ... ok test command::client::trick_or_treat::tests::treats::case_3_three_times_is_a_habit ... ok test command::client::trick_or_treat::tests::treats::case_4_too_short ... ok test command::client::trick_or_treat::tests::treats::case_5_too_recent ... ok test command::client::trick_or_treat::tests::treats::case_6_failed ... ok test command::client::trick_or_treat::tests::treats::case_7_a_young_history_digs_sooner ... ok test command::client::trick_or_treat::tests::treats::case_8_a_new_history_waits_three_days ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_01_default_prefix ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_02_default_doas ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_03_custom_prefix ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_04_longest_prefix ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_05_empty_prefixes ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_08_whitespace ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_06_unconfigured_prefix ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_07_prefix_only ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_09_empty ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_10_subcommand ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_11_alias ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_14_one_removal ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_12_prefixed_alias ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_13_multiword_prefix_only ... ok test command::client::wrapped::tests::evolution_respects_common_prefix::case_15_partial_word ... ok test command::external::tests::not_found_names_the_subcommand_and_its_binary ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_3_____::shell_4_Some___powershell___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_2___if_12_____::shell_4_Some___powershell___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_4___echohéllo__::shell_4_Some___powershell___ ... ok test command::client::search::syntax::tests::odd_inputs_do_not_panic::cmd_1___echo__oops__::shell_4_Some___powershell___ ... ok test command::client::search::syntax::tests::classify_renders::case_12_powershell ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_6_cd_chained ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_7_cd_chained_untrimmed ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_5_cd_accept ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_4_cd ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_1_command ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_3_command_chained ... ok test command::client::search::interactive::tests::selection_output_maps_entry::case_2_command_accept ... ok test command::client::search::interactive::tests::mouse_navigation_stays_in_the_inspector::case_4::invert_2_true ... ok test command::client::search::interactive::tests::conditional_navigation_crosses_windows_in_both_directions::case_2 ... ok test command::client::search::interactive::tests::conditional_navigation_crosses_windows_in_both_directions::case_1 ... ok test command::client::daemon::tests::start_history_times_out_on_a_daemon_that_never_answers ... ok test result: ok. 706 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s Running tests/e2e_ai_resume_picker.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_ai_resume_picker-2f28739b13ef4b51) running 23 tests test pty::cursor_reports_follow_output_order::split_6_12 ... ok test pty::cursor_reports_follow_output_order::split_5_9 ... ok test pty::cursor_reports_follow_output_order::split_4_7 ... ok test pty::cursor_reports_follow_output_order::split_1_0 ... ok test pty::cursor_reports_follow_output_order::split_7_16 ... ok test pty::cursor_reports_follow_output_order::split_3_5 ... ok test pty::cursor_reports_follow_output_order::split_2_1 ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_4_tests_shells_fish_vi_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_3_tests_shells_fish_default_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_4_tests_shells_fish_vi_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_3_tests_shells_fish_default_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test the_picker_resumes_the_session_chosen::case_1_its_own_agent::enter_accept_1_false ... ok test the_picker_resumes_the_session_chosen::case_1_its_own_agent::enter_accept_2_true ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test the_shell_widget_resumes_the_session_chosen::enter_accept_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test the_picker_resumes_the_session_chosen::case_2_another_agent::enter_accept_1_false ... ok test the_picker_resumes_the_session_chosen::case_2_another_agent::enter_accept_2_true ... ok test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.15s Running tests/e2e_ai_sessions.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_ai_sessions-df5310940faa2124) running 42 tests test capture_applies_the_history_and_output_filters_to_agent_commands ... ok test a_subagent_resumes_as_the_session_it_works_for::agent_2_Agent__Copilot ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_2_codex ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_3_copilot ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_1_claude ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_5_pi ... ok test a_subagent_resumes_as_the_session_it_works_for::agent_1_Agent__Claude ... ok test a_huge_message_reads_back ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_4_opencode ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_6_by_atuin_id ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_7_by_atuin_id_prefix ... ok test a_local_session_resumes_in_its_agent_where_it_ran::case_8_by_short_id ... ok test capture_follows_a_transcript_exactly_once_across_restarts::agent_2_Agent__Codex ... ok test a_renamed_session_is_listed_under_its_new_title ... ok test capture_keeps_the_conversation_and_tool_calls::agent_1_Agent__Claude::capture_tools_2_false ... ok test capture_follows_a_transcript_exactly_once_across_restarts::agent_5_Agent__Pi ... ok test capture_keeps_the_conversation_and_tool_calls::agent_3_Agent__Copilot::capture_tools_1_true ... ok test capture_keeps_the_conversation_and_tool_calls::agent_2_Agent__Codex::capture_tools_2_false ... ok test capture_keeps_the_conversation_and_tool_calls::agent_2_Agent__Codex::capture_tools_1_true ... ok test capture_keeps_the_conversation_and_tool_calls::agent_3_Agent__Copilot::capture_tools_2_false ... ok test the_picker_needs_a_terminal::case_1_no_query ... ok test the_picker_needs_a_terminal::case_2_a_query ... ok test the_picker_needs_a_terminal_to_read_keys_from ... ok test capture_keeps_the_conversation_and_tool_calls::agent_4_Agent__Opencode::capture_tools_1_true ... ok test capture_keeps_the_conversation_and_tool_calls::agent_5_Agent__Pi::capture_tools_1_true ... ok test capture_keeps_the_conversation_and_tool_calls::agent_5_Agent__Pi::capture_tools_2_false ... ok test capture_keeps_the_conversation_and_tool_calls::agent_4_Agent__Opencode::capture_tools_2_false ... ok test forking_a_session_leaves_it_and_links_the_fork::agent_1_Agent__Claude ... ok test forking_a_session_leaves_it_and_links_the_fork::agent_3_Agent__Copilot ... ok test forking_a_session_leaves_it_and_links_the_fork::agent_2_Agent__Codex ... ok test a_session_from_another_machine_restores_as_the_same_session::agent_1_Agent__Claude ... ok test a_session_from_another_machine_restores_as_the_same_session::agent_4_Agent__Pi ... ok test a_session_from_another_machine_restores_as_the_same_session::agent_3_Agent__Copilot ... ok test a_session_from_another_machine_restores_as_the_same_session::agent_2_Agent__Codex ... ok test a_session_gone_on_with_elsewhere_catches_up_where_it_came_from::agent_2_Agent__Copilot ... ok test a_diverged_copy_resumes_only_as_chosen::agent_4_Agent__Pi ... ok test a_diverged_copy_resumes_only_as_chosen::agent_2_Agent__Codex ... ok test a_session_gone_on_with_elsewhere_catches_up_where_it_came_from::agent_3_Agent__Pi ... ok test a_diverged_copy_resumes_only_as_chosen::agent_3_Agent__Copilot ... ok test forking_a_session_leaves_it_and_links_the_fork::agent_4_Agent__Pi ... ok test a_diverged_copy_resumes_only_as_chosen::agent_1_Agent__Claude ... ok test rebuilding_the_index_reproduces_it ... ok test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 26 filtered out; finished in 6.02s Running tests/e2e_capture.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_capture-fb6d038c6fb868a5) running 9 tests test pty::cursor_reports_follow_output_order::split_1_0 ... ok test pty::cursor_reports_follow_output_order::split_4_7 ... ok test pty::cursor_reports_follow_output_order::split_3_5 ... ok test pty::cursor_reports_follow_output_order::split_2_1 ... ok test pty::cursor_reports_follow_output_order::split_5_9 ... ok test pty::cursor_reports_follow_output_order::split_6_12 ... ok test pty::cursor_reports_follow_output_order::split_7_16 ... ok test filtered_commands_leave_no_captured_output::case_1_history_filter ... ok test filtered_commands_leave_no_captured_output::case_2_output_command_filter ... ok test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s Running tests/e2e_daemon.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_daemon-de0409ee4b72ee18) running 14 tests test ai_session_rebuild_without_the_daemon_fails_and_touches_nothing::enabled_2_true::purge_2_true ... ok test ai_session_rebuild_without_the_daemon_fails_and_touches_nothing::enabled_1_false::purge_1_false ... ok test ai_session_rebuild_without_the_daemon_fails_and_touches_nothing::enabled_2_true::purge_1_false ... ok test ai_session_rebuild_without_the_daemon_fails_and_touches_nothing::enabled_1_false::purge_2_true ... ok test foreground_daemon_replaces_a_stale_socket ... ok test history_falls_back_to_local_when_daemon_not_running::hook_1_false ... ok test history_falls_back_to_local_when_daemon_not_running::hook_2_true ... ok test history_end_does_not_autostart_daemon::case_2_cancel ... ok test history_end_does_not_autostart_daemon::case_1_end ... ok test ai_session_rebuild_goes_through_the_daemon ... ok test fresh_daemon_serves_history::case_1_foreground::writers_1_1 ... ok test fresh_daemon_serves_history::case_2_autostart::writers_1_1 ... ok test fresh_daemon_serves_history::case_1_foreground::writers_2_4 ... ok test fresh_daemon_serves_history::case_2_autostart::writers_2_4 ... ok test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s Running tests/e2e_fresh_install.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_fresh_install-b000d267b39f7133) running 25 tests test init_emits_shell_setup::case_2_zsh ... ok test init_emits_shell_setup::case_4_nu ... ok test init_emits_shell_setup::case_3_fish ... ok test init_zsh_registers_hooks ... ok test resolved_paths_print_as_opened::case_1_relative ... ok test resolved_paths_print_as_opened::case_3_log_file ... ok test resolved_paths_print_as_opened::case_2_variable ... ok test resolved_paths_print_as_opened::case_4_socket ... ok test resolved_paths_print_as_opened::case_6_dollar_default ... ok test resolved_paths_print_as_opened::case_5_dollar_data_dir ... ok test atuin_home_holds_a_separate_install::xdg_install_2_true ... ok test fresh_history_list_is_empty_and_bootstraps_data_dir ... ok test existing_xdg_install_is_used_in_place ... ok test init_emits_shell_setup::case_1_bash ... ok test atuin_home_holds_a_separate_install::xdg_install_1_false ... ok test relative_paths_resolve_next_to_config_toml ... ok test version_runs ... ok test data_dir_and_the_paths_in_it_agree::env_var_1_false ... ok test data_dir_and_the_paths_in_it_agree::env_var_2_true ... ok test unusual_path_settings_keep_the_shell_integration::case_2_empty_path ... ok test unusual_path_settings_keep_the_shell_integration::case_3_sqlite_memory ... ok test unusual_path_settings_keep_the_shell_integration::case_1_unset_variable ... ok test unusual_path_settings_keep_the_shell_integration::case_4_sqlite_uri ... ok test key_loads_but_never_generates ... ok test doctor_runs_on_fresh_install ... ok test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s Running tests/e2e_pty.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_pty-6f41b259f94fac19) running 151 tests test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_3_tests_shells_fish_default_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_3_tests_shells_fish_default_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_3_tests_shells_fish_default_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_6_tests_shells_zsh_vi_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_3_tests_shells_fish_default_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_3_tests_shells_fish_default_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test cd_action_extends_command_chain::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_extends_command_chain::setup_3_tests_shells_fish_default_toml ... ok test cd_action_extends_command_chain::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_extends_command_chain::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_extends_command_chain::setup_6_tests_shells_zsh_vi_toml ... ok test cd_action_without_directory_returns_original::setup_1_tests_shells_bash_blesh_toml ... ok test cd_action_without_directory_returns_original::setup_3_tests_shells_fish_default_toml ... ok test cd_action_without_directory_returns_original::setup_4_tests_shells_fish_vi_toml ... ok test cd_action_without_directory_returns_original::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_action_without_directory_returns_original::setup_6_tests_shells_zsh_vi_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_3_tests_shells_fish_default_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_4_tests_shells_fish_vi_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_3_tests_shells_fish_default_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_4_tests_shells_fish_vi_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_3_tests_shells_fish_default_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_4_tests_shells_fish_vi_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_3_tests_shells_fish_default_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_4_tests_shells_fish_vi_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test empty_history_search_can_be_cancelled::setup_1_tests_shells_bash_blesh_toml ... ok test empty_history_search_can_be_cancelled::setup_3_tests_shells_fish_default_toml ... ok test empty_history_search_can_be_cancelled::setup_4_tests_shells_fish_vi_toml ... ok test empty_history_search_can_be_cancelled::setup_5_tests_shells_zsh_emacs_toml ... ok test empty_history_search_can_be_cancelled::setup_6_tests_shells_zsh_vi_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_3_tests_shells_fish_default_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_4_tests_shells_fish_vi_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_3_tests_shells_fish_default_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_4_tests_shells_fish_vi_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test pty::cursor_reports_follow_output_order::split_3_5 ... ok test pty::cursor_reports_follow_output_order::split_2_1 ... ok test pty::cursor_reports_follow_output_order::split_1_0 ... ok test pty::cursor_reports_follow_output_order::split_5_9 ... ok test pty::cursor_reports_follow_output_order::split_4_7 ... ok test pty::cursor_reports_follow_output_order::split_6_12 ... ok test pty::cursor_reports_follow_output_order::split_7_16 ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_1_tests_shells_bash_blesh_toml ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_3_tests_shells_fish_default_toml ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_4_tests_shells_fish_vi_toml ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_5_tests_shells_zsh_emacs_toml ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_6_tests_shells_zsh_vi_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_1_tests_shells_bash_blesh_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_3_tests_shells_fish_default_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_4_tests_shells_fish_vi_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_5_tests_shells_zsh_emacs_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_6_tests_shells_zsh_vi_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_1_tests_shells_bash_blesh_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_3_tests_shells_fish_default_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_4_tests_shells_fish_vi_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_5_tests_shells_zsh_emacs_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_6_tests_shells_zsh_vi_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_1_tests_shells_bash_blesh_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_3_tests_shells_fish_default_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_4_tests_shells_fish_vi_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_5_tests_shells_zsh_emacs_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_6_tests_shells_zsh_vi_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_1_tests_shells_bash_blesh_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_3_tests_shells_fish_default_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_4_tests_shells_fish_vi_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_5_tests_shells_zsh_emacs_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_6_tests_shells_zsh_vi_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_1_tests_shells_bash_blesh_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_3_tests_shells_fish_default_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_4_tests_shells_fish_vi_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_5_tests_shells_zsh_emacs_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_6_tests_shells_zsh_vi_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_1_tests_shells_bash_blesh_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_4_tests_shells_fish_vi_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_3_tests_shells_fish_default_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_5_tests_shells_zsh_emacs_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_6_tests_shells_zsh_vi_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_1_tests_shells_bash_blesh_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_4_tests_shells_fish_vi_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_3_tests_shells_fish_default_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_5_tests_shells_zsh_emacs_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_6_tests_shells_zsh_vi_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_1_tests_shells_bash_blesh_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_3_tests_shells_fish_default_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_4_tests_shells_fish_vi_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_5_tests_shells_zsh_emacs_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_6_tests_shells_zsh_vi_toml ... ok test shell_hooks_record_history::setup_1_tests_shells_bash_blesh_toml ... ok test empty_history_search_can_be_cancelled::setup_2_tests_shells_bash_preexec_toml ... ok test shell_hooks_record_history::setup_3_tests_shells_fish_default_toml ... ok test shell_hooks_record_history::setup_4_tests_shells_fish_vi_toml ... ok test shell_hooks_record_history::setup_5_tests_shells_zsh_emacs_toml ... ok test shell_hooks_record_history::setup_6_tests_shells_zsh_vi_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test selection_returns_for_editing::acceptance_1__true_b__t___::setup_2_tests_shells_bash_preexec_toml ... ok test search_survives_terminal_resize::size_2__12_60_::setup_2_tests_shells_bash_preexec_toml ... ok test shell_hooks_record_history::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_extends_command_chain::setup_2_tests_shells_bash_preexec_toml ... ok test ai_resume_widget_returns_while_a_process_it_left_runs::setup_2_tests_shells_bash_preexec_toml ... ok test search_enter_accepts_and_runs::open_key_1_b__x12__::setup_2_tests_shells_bash_preexec_toml ... ok test search_survives_terminal_resize::size_1__24_80_::setup_2_tests_shells_bash_preexec_toml ... ok test selection_returns_for_editing::acceptance_3__false_b__r___::setup_2_tests_shells_bash_preexec_toml ... ok test selection_preserves_multiline_and_shell_quoting::enter_accept_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test search_enter_accepts_and_runs::open_key_2_b__x1b_A__::setup_2_tests_shells_bash_preexec_toml ... ok test selection_returns_for_editing::acceptance_2__false_b__t___::setup_2_tests_shells_bash_preexec_toml ... ok test cd_default_prefix_bindings::key_2_b__G__::inspect_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_changes_to_entry_directory::action_1___accept_cd__::inspect_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_changes_to_entry_directory::action_2___return_cd__::inspect_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test cd_action_without_directory_returns_original::setup_2_tests_shells_bash_preexec_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test cd_default_prefix_bindings::key_1_b__g__::inspect_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test filter_switching_changes_results::workspace_2_true::setup_2_tests_shells_bash_preexec_toml ... ok test filter_switching_changes_results::workspace_1_false::setup_2_tests_shells_bash_preexec_toml ... ok test result: ok. 151 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s Running tests/e2e_pty_proxy_foreground.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_pty_proxy_foreground-f68d47cd4c155083) running 2 tests test the_proxy_titles_the_terminal_after_the_program_in_the_foreground ... ok test the_proxy_follows_its_shell_between_directories ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s Running tests/e2e_pty_proxy_init.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_pty_proxy_init-81186c09e6a7581a) running 52 tests test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_3_Invocation__LoginPath ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_5_Invocation__RelativePath ... ok test fish_keeps_its_keyboard_however_the_preamble_is_sourced::sourced_2_Sourced__FromFile ... ok test fish_keeps_its_keyboard_however_the_preamble_is_sourced::sourced_1_Sourced__FromPipe ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_2_Invocation__Login ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_1_Invocation__Interactive ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_8_Invocation__File ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_4_Invocation__ShadowedByFunction ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_6_Invocation__Command ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_2___zsh__::invocation_7_Invocation__NamedCommand ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_1_Preamble__Standalone::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_1_Preamble__Standalone::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_1_Preamble__Standalone::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_2_Preamble__Twice::on_path_1_OnPath__Atuin ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_3_Invocation__LoginPath ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_2_Invocation__Login ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_2_Preamble__Twice::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_2_Preamble__Twice::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_3_Preamble__AfterInit::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_3_Preamble__AfterInit::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_2___zsh__::preamble_3_Preamble__AfterInit::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_1_Preamble__Standalone::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_1_Preamble__Standalone::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_2_Preamble__Twice::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_2_Preamble__Twice::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_2_Preamble__Twice::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_1_Preamble__Standalone::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_3_Preamble__AfterInit::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_3_Preamble__AfterInit::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_3___fish__::preamble_3_Preamble__AfterInit::on_path_3_OnPath__FailingShim ... ok test pty::cursor_reports_follow_output_order::split_2_1 ... ok test pty::cursor_reports_follow_output_order::split_7_16 ... ok test pty::cursor_reports_follow_output_order::split_4_7 ... ok test pty::cursor_reports_follow_output_order::split_1_0 ... ok test pty::cursor_reports_follow_output_order::split_5_9 ... ok test pty::cursor_reports_follow_output_order::split_3_5 ... ok test pty::cursor_reports_follow_output_order::split_6_12 ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_7_Invocation__NamedCommand ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_8_Invocation__File ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_6_Invocation__Command ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_1_Preamble__Standalone::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_1_Preamble__Standalone::on_path_2_OnPath__Nothing ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_4_Invocation__ShadowedByFunction ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_1_Invocation__Interactive ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_1_Preamble__Standalone::on_path_1_OnPath__Atuin ... ok test posix_shells_run_their_command_or_file_instead_of_a_proxy::name_1___bash__::invocation_5_Invocation__RelativePath ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_2_Preamble__Twice::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_2_Preamble__Twice::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_3_Preamble__AfterInit::on_path_3_OnPath__FailingShim ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_3_Preamble__AfterInit::on_path_2_OnPath__Nothing ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_2_Preamble__Twice::on_path_1_OnPath__Atuin ... ok test proxy_starts_only_when_atuin_runs_by_name::name_1___bash__::preamble_3_Preamble__AfterInit::on_path_1_OnPath__Atuin ... ok test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s Running tests/e2e_pty_proxy_stdin.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_pty_proxy_stdin-4fe31bf8ed42a0c8) running 1 test test piped_input_runs_through_the_shell_and_then_ends_it ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s Running tests/e2e_sync.rs (target/aarch64-unknown-linux-gnu/release/deps/e2e_sync-cf7027fb6396b640) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s Running tests/pty_proxy_active.rs (target/aarch64-unknown-linux-gnu/release/deps/pty_proxy_active-a10b474499d58927) running 2 tests test the_answer_is_reported_on_stdout ... ok test a_check_that_ran_exits_zero_even_when_the_answer_is_no ... ok test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_ai-32e2b09047ea9745) running 1189 tests test commands::resume::tests::a_session_that_cant_resume_keeps_its_flags::case_1_plain ... ok test commands::resume::tests::a_session_that_cant_resume_keeps_its_flags::case_5_no_terminal_with_a_flag ... ok test commands::resume::tests::a_session_that_cant_resume_keeps_its_flags::case_4_no_terminal ... ok test commands::resume::tests::a_session_that_cant_resume_keeps_its_flags::case_3_as_is ... ok test commands::resume::tests::a_session_that_cant_resume_keeps_its_flags::case_2_branch ... ok test commands::resume::tests::an_id_several_agents_have_is_ambiguous ... ok test commands::resume::tests::a_subagent_named_beside_sessions_is_left_out ... ok test commands::resume::tests::an_ambiguous_id_opens_the_picker_on_its_sessions ... ok test commands::resume::tests::a_flag_on_no_single_session_says_to_be_more_specific ... ok test commands::resume::tests::an_atuin_id_resumes_directly::case_1_whole ... ok test commands::resume::tests::an_atuin_id_resumes_directly::case_2_past_the_timestamp ... ok test commands::resume::tests::catch_up_flags::case_07_branch ... ok test commands::resume::tests::catch_up_flags::case_11_branch_and_in ... ok test commands::resume::tests::catch_up_flags::case_08_fork_from_a_branch ... ok test commands::resume::tests::catch_up_flags::case_02_switch_to_a_branch ... ok test commands::resume::tests::catch_up_flags::case_01_switch ... ok test commands::resume::tests::catch_up_flags::case_04_switch_and_in ... ok test commands::resume::tests::catch_up_flags::case_05_switch_and_as_is ... ok test commands::resume::tests::catch_up_flags::case_09_as_is_and_fork ... ok test commands::resume::tests::catch_up_flags::case_03_switch_and_fork ... ok test commands::resume::tests::catch_up_flags::case_10_as_is_and_branch ... ok test commands::resume::tests::catch_up_flags::case_06_as_is ... ok test commands::resume::tests::control_characters_never_reach_the_terminal_in_a_command::case_1_plain ... ok test commands::resume::tests::control_characters_never_reach_the_terminal_in_a_command::case_2_tab ... ok test commands::resume::tests::control_characters_never_reach_the_terminal_in_a_command::case_3_escape ... ok test commands::resume::tests::control_characters_never_reach_the_terminal_in_a_command::case_4_newline ... ok test commands::resume::tests::errors_keep_their_lines ... ok test commands::resume::tests::continuing_in_its_own_agent_resumes_it ... ok test commands::resume::tests::a_subagent_resumes_the_session_it_works_for::case_1_subagent ... ok test commands::resume::tests::a_subagent_resumes_the_session_it_works_for::case_2_subagent_of_a_fork ... ok test commands::resume::tests::a_subagent_resumes_the_session_it_works_for::case_3_fork ... ok test commands::resume::tests::continuing_by_id_plans_the_new_session ... ok test commands::resume::tests::id_like_queries::case_1 ... ok test commands::resume::tests::id_like_queries::case_3 ... ok test commands::resume::tests::id_like_queries::case_2 ... ok test commands::resume::tests::forking_by_id_plans_the_fork ... ok test commands::resume::tests::id_like_queries::case_5 ... ok test commands::resume::tests::id_like_queries::case_4 ... ok test commands::resume::tests::id_like_queries::case_6 ... ok test commands::resume::tests::id_like_queries::case_7_a_short_id_of_letters ... ok test commands::resume::tests::id_like_queries::case_8_too_short_for_one ... ok test commands::resume::tests::in_takes_claude_code_by_both_names::case_1_listed ... ok test commands::resume::tests::in_takes_claude_code_by_both_names::case_2_synonym ... ok test commands::resume::tests::parses_flags ... ok test commands::resume::tests::the_ambiguous_note_escapes_titles_and_ids ... ok test commands::resume::tests::unique_prefix_and_exact_ids_resume_directly ... ok test commands::session::tests::a_harness_is_named_as_listed::case_1 ... ok test commands::session::tests::a_harness_is_named_as_listed::case_2 ... ok test commands::session::tests::a_harness_is_named_as_listed::case_3 ... ok test commands::session::tests::a_harness_is_named_as_listed::case_5 ... ok test commands::session::tests::a_harness_is_named_as_listed::case_4 ... ok test commands::session::tests::a_harness_is_named_as_listed::case_6 ... ok test commands::session::tests::ambiguous_prefix_is_an_error ... ok test commands::session::tests::an_exact_id_wins_over_the_ids_it_prefixes ... ok test commands::session::tests::an_unknown_harness_name_is_rejected ... ok test commands::session::tests::a_search_query_parses_around_flags::case_2_after_a_flag ... ok test commands::session::tests::a_search_query_parses_around_flags::case_3_hyphen_after_dashes ... ok test commands::session::tests::a_search_query_parses_around_flags::case_1_before_a_flag ... ok test commands::session::tests::an_id_shared_across_harnesses_lists_their_atuin_ids ... ok test commands::session::tests::exact_id_resolves_the_harness_from_the_listing ... ok test commands::session::tests::claude_code_goes_by_both_names::case_2_synonym ... ok test commands::session::tests::claude_code_goes_by_both_names::case_1_listed ... ok test commands::session::tests::harness_arg_maps_to_pb::case_1 ... ok test commands::session::tests::harness_arg_maps_to_pb::case_2 ... ok test commands::session::tests::harness_arg_maps_to_pb::case_3 ... ok test commands::session::tests::color_wraps_only_when_enabled ... ok test commands::session::tests::harness_arg_maps_to_pb::case_4 ... ok test commands::session::tests::harness_name_maps_known_and_unknown::case_1 ... ok test commands::session::tests::harness_name_maps_known_and_unknown::case_2 ... ok test commands::session::tests::harness_name_maps_known_and_unknown::case_3 ... ok test commands::session::tests::header_includes_title_when_present ... ok test commands::session::tests::header_omits_title_when_absent ... ok test commands::session::tests::id_prefix_resolves_a_session ... ok test commands::session::tests::latest_on_empty_is_an_error ... ok test commands::session::tests::latest_picks_the_first_listed ... ok test commands::session::tests::latest_resolves_from_a_single_session ... ok test commands::session::tests::one_line_drops_control_characters ... ok test commands::session::tests::role_label_overrides_the_enum ... ok test commands::session::tests::sanitize_keeps_newlines_and_tabs_for_multiline_bodies ... ok test commands::session::tests::sanitize_neutralizes_terminal_escapes_in_captured_content ... ok test commands::session::tests::session_json_carries_the_parent_relation::case_2_fork ... ok test commands::session::tests::session_json_carries_the_parent_relation::case_1_subagent ... ok test commands::session::tests::session_json_carries_the_parent_relation::case_3_continuation ... ok test commands::session::tests::search_match_json_carries_plain_text_and_match_ranges ... ok test commands::session::tests::session_json_has_a_stable_shape ... ok test commands::session::tests::session_json_names_the_recording_host ... ok test commands::session::tests::show_heads_a_row_with_its_own_role ... ok test commands::session::tests::show_prints_only_rows_with_something_to_read::case_1_empty ... ok test commands::session::tests::show_names_links_by_atuin_id ... ok test commands::session::tests::show_prints_only_rows_with_something_to_read::case_2_blank ... ok test commands::session::tests::show_prints_only_rows_with_something_to_read::case_3_raw ... ok test commands::session::tests::show_prints_only_rows_with_something_to_read::case_5_uncaptured_call ... ok test commands::session::tests::show_prints_only_rows_with_something_to_read::case_4_text ... ok test commands::session::tests::show_prints_tool_text_as_text ... ok test commands::session::tests::summary_falls_through_empty_text_to_the_next_block ... ok test commands::session::tests::summary_labels_a_tool_call ... ok test commands::session::tests::summary_marks_a_tool_result::case_1 ... ok test commands::session::tests::summary_marks_a_tool_result::case_2 ... ok test commands::session::tests::summary_marks_thinking ... ok test commands::session::tests::summary_prefers_text ... ok test commands::session::tests::summary_skips_content_less_messages ... ok test commands::session::tests::tail_render_strips_control_chars_from_tool_name_and_role_label ... ok test commands::session::tests::the_atuin_id_resolves_a_session::case_1_whole ... ok test commands::session::tests::the_atuin_id_resolves_a_session::case_2_past_the_timestamp ... ok test commands::session::tests::the_short_id_resolves_a_session ... ok test commands::session::tests::tool_result_line_is_labelled_tool ... ok test commands::session::tests::unknown_id_is_an_error ... ok test context_window::tests::empty_events_produce_empty_messages ... ok test context_window::tests::group_into_turns_cases::case_1_empty ... ok test context_window::tests::group_into_turns_cases::case_2_single_user ... ok test context_window::tests::group_into_turns_cases::case_3_user_assistant ... ok test context_window::tests::group_into_turns_cases::case_4_two_turns ... ok test context_window::tests::group_into_turns_cases::case_5_tool_calls_same_turn ... ok test context_window::tests::group_into_turns_cases::case_6_system_context_new_turn ... ok test context_window::tests::group_into_turns_cases::case_7_oob_same_turn ... ok test context_window::tests::group_into_turns_cases::case_8_leading_text ... ok test context_window::tests::no_marker_when_no_turns_dropped ... ok test context_window::tests::over_budget_truncates_middle_turns ... ok test context_window::tests::tail_accumulates_multiple_turns_when_budget_allows ... ok test context_window::tests::single_turn_always_returned ... ok test context_window::tests::tool_calls_preserved_through_truncation ... ok test context_window::tests::under_budget_returns_all_messages ... ok test context_window::tests::very_tight_budget_keeps_prefix_and_last_turn ... ok test context_window::tests::tool_use_and_tool_result_never_split ... ok test diff::tests::no_changes_produces_empty_preview ... ok test edit_permissions::tests::expired_grant_is_invalid ... ok test edit_permissions::tests::grant_and_check ... ok test edit_permissions::tests::different_paths_are_independent ... ok test diff::tests::single_line_replacement ... ok test diff::tests::removal_only ... ok test diff::tests::multiline_replacement ... ok test diff::tests::hunk_grouping::case_2_close_merge ... ok test diff::tests::max_line_number_reflects_file_position ... ok test diff::tests::addition_only ... ok test diff::tests::hunk_grouping::case_1_distant_separate ... ok test diff::tests::context_is_limited ... ok test edit_permissions::tests::roundtrip_json ... ok test event_serde::tests::deserialize_errors::case_1_unknown_type ... ok test event_serde::tests::deserialize_errors::case_3_missing_field ... ok test diff::tests::start_line_is_correct_for_later_changes ... ok test event_serde::tests::deserialize_errors::case_2_invalid_json ... ok test event_serde::tests::test_out_of_band_with_command ... ok test event_serde::tests::test_out_of_band_without_command ... ok test event_serde::tests::test_system_context ... ok test event_serde::tests::test_tool_call ... ok test event_serde::tests::test_tool_call_with_nested_input ... ok test event_serde::tests::test_tool_result ... ok test event_serde::tests::test_tool_result_backwards_compat ... ok test event_serde::tests::test_tool_result_error ... ok test event_serde::tests::test_tool_result_remote ... ok test event_serde::tests::test_user_message ... ok test event_serde::tests::text_round_trips::case_1_plain ... ok test event_serde::tests::text_round_trips::case_2_special_chars ... ok test file_tracker::tests::check_not_read ... ok test fsm::tests::dangerous_command_enters_confirmation ... ok test file_tracker::tests::roundtrip_json ... ok test fsm::tests::cancel_closes_picker_instead_of_exiting ... ok test fsm::tests::confirmation_timeout_clears_confirmation ... ok test fsm::tests::cancel_during_streaming_goes_idle ... ok test fsm::tests::cancel_during_turn_with_pending_tools ... ok test fsm::tests::continuation_turn_without_new_tools_goes_idle ... ok test fsm::tests::cancel_clears_timeout_mappings ... ok test fsm::tests::interrupt_propagates_reason_to_preview_and_llm::case_1_timeout ... ok test fsm::tests::interrupt_propagates_reason_to_preview_and_llm::case_2_user_interrupt ... ok test fsm::tests::atuin_output_call_emits_command_lookup_and_stores_result ... ok test fsm::tests::model_list_load_failure_closes_picker_with_message ... ok test fsm::tests::model_list_loaded_after_dismissal_caches_but_keeps_picker_closed ... ok test fsm::tests::model_list_loaded_populates_picker_and_cache ... ok test fsm::tests::model_selected_sets_model_and_persists ... ok test fsm::tests::open_model_picker_fetches_when_uncached ... ok test fsm::tests::open_model_picker_reuses_cache_without_fetching ... ok test fsm::tests::permission_deny_completes_turn_and_continues ... ok test fsm::tests::permission_resolution::case_1_allowed ... ok test file_tracker::tests::record_and_check_fresh ... ok test fsm::tests::permission_resolution::case_2_ask ... ok test file_tracker::tests::update_after_edit_makes_fresh ... ok test fsm::tests::read_tool_does_not_schedule_timeout ... ok test fsm::tests::retry_from_error_starts_new_stream ... ok test fsm::tests::second_execute_confirms_and_exits ... ok test fsm::tests::selected_model_survives_new_session ... ok test fsm::tests::shell_tool_schedules_execution_timeout ... ok test fsm::tests::stale_permission_resolved_after_cancel_is_ignored ... ok test fsm::tests::stale_timeout_after_natural_completion_is_ignored ... ok test fsm::tests::stale_tool_result_after_cancel_is_ignored ... ok test fsm::tests::stream_chunk_accumulates_text ... ok test fsm::tests::stream_done_without_tools_emits_turn_ended ... ok test fsm::tests::stream_done_without_tools_goes_idle ... ok test fsm::tests::stream_error_goes_to_error_state ... ok test fsm::tests::stream_started_transitions_to_streaming ... ok test fsm::tests::stream_tool_call_tracks_tool_and_emits_check_permission ... ok test fsm::tests::suggest_command_emits_turn_ended ... ok test fsm::tests::timeout_fires_before_completion_emits_abort ... ok test fsm::tests::tool_completion_clears_timeout_mapping ... ok test fsm::tests::timeout_respects_llm_specified_duration ... ok test fsm::tests::tool_done_after_stream_done_continues_conversation ... ok test fsm::tests::turn_ended_waits_for_the_continuation_stream ... ok test history_format::tests::attribution_matrix::case_1_known_with_intent ... ok test fsm::tests::unknown_tool_alongside_real_tool_waits_for_both ... ok test fsm::tests::tool_done_before_stream_done_stays_in_turn ... ok test fsm::tests::user_interrupt_clears_timeout_mappings_for_aborted_tools ... ok test fsm::tests::unknown_tool_call_gets_error_result ... ok test history_format::tests::attribution_matrix::case_2_known_no_intent ... ok test history_format::tests::attribution_matrix::case_4_empty_author_with_intent ... ok test history_format::tests::attribution_matrix::case_5_user_no_intent ... ok test history_format::tests::attribution_matrix::case_3_unknown_author_with_intent ... ok test fsm::tests::user_submit_starts_turn ... ok test history_format::tests::search_results_clip_long_commands ... ok test history_format::tests::formats_history_search_result ... ok test history_format::tests::formats_last_command ... ok test fsm::tests::user_submit_dismisses_loading_picker ... ok test mcp::tests::server_info_carries_instructions ... ok test mcp::tests::unknown_arguments_are_rejected ... ok test mcp::tests::output_search_schema_is_derived_from_the_call_struct ... ok test mcp::tests::tool_definitions_list_all_tools_as_read_only ... ok test mcp::tests::ai_session_search_schema_matches_the_parser ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_02_or_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_01_triple_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_03_mixed_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_05_semicolons ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_08_backtick_in_echo ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_06_nested_dollar ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_07_deeply_nested ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_09_mixed_substitutions ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_10_subshell_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_11_nested_subshells ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_13_var_assignment_no_command ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_14_var_assignment_in_pipeline ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_12_brace_group ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_15_if_then_else ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_17_for_loop ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_18_while_loop ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_16_elif_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_04_long_pipeline ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_19_case_statement ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_20_redirect_out ... ok test permissions::rule::tests::rejects_invalid_rule::case_2_trailing_junk ... ok test permissions::rule::tests::rejects_invalid_rule::case_1_unclosed_paren ... ok test permissions::rule::tests::parses_valid_rule::case_4_shell_with_space ... ok test permissions::rule::tests::parses_valid_rule::case_3_glob_scope ... ok test permissions::rule::tests::parses_valid_rule::case_5_nested_parens ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_21_redirect_append ... ok test permissions::rule::tests::parses_valid_rule::case_1_bare_tool ... ok test permissions::rule::tests::parses_valid_rule::case_2_wildcard_scope ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_26_function_with_subshell ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_27_empty_string ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_23_redirect_in_pipeline ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_28_whitespace_only ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_22_here_string ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_24_process_substitution ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_25_function_def ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_29_single_command_no_args ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_30_single_quotes ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_31_double_quotes ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_32_escaped_spaces ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_34_background_job ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_33_dollar_var ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_35_background_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_36_docker_build_and_run ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_37_git_rebase_interactive ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_38_find_with_exec ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_39_curl_pipe_sh ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_40_xargs ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_41_npm_script_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_42_make_with_redirect ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_43_sudo_chain ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_44_here_doc_with_subcommand ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_45_eval_with_command ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_46_exec_replace ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_47_source_script ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_48_fish_simple ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_49_fish_pipe ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_51_fish_or ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_53_fish_command_substitution ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_52_fish_not ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_50_fish_and ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_54_fish_nested_substitution ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_55_fish_begin_end ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_56_fish_if_statement ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_57_fish_while_loop ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_58_fish_for_loop ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_59_fish_switch ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_60_fish_function_def ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_61_fish_redirect ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_62_fish_redirect_append ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_63_fish_here_string ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_64_fish_curl_pipe ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_66_fish_double_pipe ... ok test commands::resume::tests::continuing_by_id_follows_a_branch::case_2_by_head ... ok test commands::resume::tests::continuing_by_id_follows_a_branch::case_3_none_named ... ok test commands::resume::tests::forking_by_id_forks_from_a_branch::case_1_the_newest ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_67_fish_empty ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_68_fish_whitespace ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_65_fish_double_ampersand ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_70_backtick_substitution ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_71_subshell ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_69_command_substitution ... ok test commands::session::tests::search_match_json_ranges_come_from_the_search::case_1_all ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_72_for_loop_unquoted ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_73_if_statement ... ok test commands::session::tests::search_match_json_ranges_come_from_the_search::case_2_any ... ok test commands::resume::tests::continuing_by_id_follows_a_branch::case_1_by_host ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_75_fish_command_substitution_date ... ok test permissions::shell::adversarial::strips_var_assignments_keeping_full_command::case_1_single_var_assignment ... ok test permissions::shell::adversarial::strips_var_assignments_keeping_full_command::case_3_variable_assignment_excluded ... ok test permissions::shell::adversarial::extracts_subcommand_names::case_74_nested_substitution ... ok test permissions::shell::adversarial::strips_var_assignments_keeping_full_command::case_2_multiple_var_assignments ... ok test permissions::shell::adversarial::strips_var_assignments_keeping_full_command::case_4_variable_assignment_multiple ... ok test permissions::shell::tests::parse_contains_names::case_2_fallback_or ... ok test permissions::shell::tests::parse_contains_names::case_1_fish_conditional ... ok test permissions::shell::tests::parse_exact::case_1_simple ... ok test permissions::shell::tests::parse_exact::case_2_pipeline ... ok test permissions::shell::tests::parse_exact::case_3_chaining ... ok test permissions::shell::tests::parse_exact::case_4_semicolon ... ok test permissions::shell::tests::parse_exact::case_5_fish_simple ... ok test permissions::shell::tests::parse_exact::case_6_fallback_amp_pipe ... ok test permissions::shell::tests::parse_exact::case_7_fallback_pipe ... ok test permissions::shell::tests::scope_matching::case_01_wildcard_star ... ok test permissions::shell::tests::scope_matching::case_02_git_commit_prefix ... ok test permissions::shell::tests::scope_matching::case_03_git_push_prefix_no_match ... ok test permissions::shell::tests::scope_matching::case_04_git_push_bare_no_match ... ok test file_tracker::tests::check_stale_after_modification ... ok test permissions::shell::tests::scope_matching::case_05_npm_prefix ... ok test permissions::shell::tests::scope_matching::case_06_npm_test_bare ... ok test permissions::shell::tests::scope_matching::case_07_git_commit_bare_deny ... ok test permissions::shell::tests::scope_matching::case_08_git_commit_bare_allow ... ok test permissions::shell::tests::scope_matching::case_09_npm_test_exact_allow ... ok test permissions::shell::tests::scope_matching::case_10_ls_word_boundary ... ok test permissions::shell::tests::scope_matching::case_11_cat_word_boundary_no_match ... ok test permissions::shell::tests::scope_matching::case_12_lsof_word_boundary ... ok test permissions::shell::tests::scope_matching::case_13_ls_glob_prefix ... ok test permissions::shell::tests::scope_matching::case_14_ls_exact ... ok test permissions::shell::tests::scope_matching::case_15_cat_exact_no_match ... ok test permissions::shell::tests::scope_matching::case_16_middle_wildcard_amend ... ok test permissions::shell::tests::scope_matching::case_17_middle_wildcard_commit_amend ... ok test permissions::shell::tests::scope_matching::case_18_middle_wildcard_push_amend_no_match ... ok test permissions::shell::tests::scope_matching::case_19_middle_wildcard_zero_words ... ok test permissions::shell::tests::scope_matching::case_20_leading_wildcard_alpine ... ok test permissions::shell::tests::scope_matching::case_21_leading_wildcard_ubuntu_no_match ... ok test permissions::shell::tests::scope_matching::case_22_multiple_wildcards ... ok test permissions::shell::tests::scope_matching::case_23_multiple_wildcards_no_match ... ok test permissions::shell::tests::scope_matching::case_24_s01_empty_scope ... ok test permissions::shell::tests::scope_matching::case_25_s03_only_wildcard_space_star ... ok test permissions::shell::tests::scope_matching::case_26_s04_glob_matches_empty ... ok test permissions::shell::tests::scope_matching::case_27_s05_middle_wildcard_empty_match ... ok test permissions::shell::tests::scope_matching::case_28_s06_consecutive_wildcards ... ok test permissions::shell::tests::scope_matching::case_29_s07_lower_wildcard_no_match ... ok test permissions::shell::tests::scope_matching::case_30_s07_upper_wildcard ... ok test permissions::shell::tests::scope_matching::case_31_s07_lower_bare_no_match ... ok test permissions::shell::tests::scope_matching::case_32_s07_upper_bare ... ok test permissions::shell::tests::scope_matching::case_33_s07_upper_bare_strict_no_match ... ok test permissions::shell::tests::scope_matching::case_34_s08_multi_word_exact_no_subcommand ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_1_git_repository ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_2_plain_directory ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_3_outside_home ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_4_home ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_5_home_as_git_repository ... ok test permissions::writer::tests::project_scope_is_never_the_home_directory::case_6_subdirectory_of_home ... ok test permissions::writer::tests::project_scope_without_a_known_home_or_cwd ... ok test commands::resume::tests::forking_by_id_forks_from_a_branch::case_3_by_head ... ok test commands::resume::tests::resuming_by_id_catches_up_or_says_what_to_choose ... ok test commands::resume::tests::switching_by_id_switches_the_copy_or_says_why_not ... ok test commands::resume::tests::forking_by_id_forks_from_a_branch::case_2_by_host ... ok test permissions::writer::tests::project_scope_sees_through_symlinks ... ok test resume_tui::catchup::tests::a_selector_is_the_shortest_start_no_other_branch_shares::case_1_uuid ... ok test resume_tui::catchup::tests::a_selector_is_the_shortest_start_no_other_branch_shares::case_2_sharing_a_long_start ... ok test resume_tui::catchup::tests::a_selector_is_the_shortest_start_no_other_branch_shares::case_3_a_start_of_another ... ok test resume_tui::catchup::tests::a_choice_says_why::case_1_live ... ok test resume_tui::catchup::tests::a_copy_is_classified_against_the_head::case_1_at_the_head ... ok test resume_tui::catchup::tests::a_choice_says_why::case_3_diverged ... ok test resume_tui::catchup::tests::a_choice_says_why::case_4_refused ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_1_this ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_2_host ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_3_full_host_id ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_4_id ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_5_unknown_host ... ok test resume_tui::catchup::tests::a_copy_is_classified_against_the_head::case_2_behind ... ok test resume_tui::catchup::tests::branches_are_picked_by_host_or_id::case_6_ambiguous_id ... ok test resume_tui::catchup::tests::a_copy_is_classified_against_the_head::case_7_on_another_branch ... ok test resume_tui::catchup::tests::a_copy_is_classified_against_the_head::case_5_rewound_here_past_the_head ... ok test resume_tui::catchup::tests::a_twig_off_the_heads_line_fast_forwards::case_3_a_summary ... ok test resume_tui::catchup::tests::a_twig_off_the_heads_line_fast_forwards::case_4_in_order ... ok test resume_tui::clock::tests::beside_a_date::case_1 ... ok test resume_tui::clock::tests::beside_a_date::case_2 ... ok test resume_tui::catchup::tests::branches_say_what_they_add_and_when ... ok test resume_tui::clock::tests::beside_a_date::case_3 ... ok test resume_tui::clock::tests::beside_a_date::case_4 ... ok test resume_tui::clock::tests::beside_a_date::case_5 ... ok test resume_tui::catchup::tests::forks_bring_the_rows_off_the_tree_on_their_branch::case_2_the_newest ... ok test resume_tui::clock::tests::day_headings::case_1_today ... ok test resume_tui::clock::tests::day_headings::case_2_yesterday ... ok test resume_tui::clock::tests::day_headings::case_3_this_week ... ok test resume_tui::clock::tests::day_headings::case_4_this_year ... ok test resume_tui::clock::tests::day_headings::case_5_last_year ... ok test resume_tui::clock::tests::days_are_local ... ok test resume_tui::clock::tests::phrase::case_1 ... ok test resume_tui::clock::tests::phrase::case_2 ... ok test resume_tui::catchup::tests::forks_bring_the_rows_off_the_tree_on_their_branch::case_1_a_head ... ok test resume_tui::clock::tests::phrase::case_3 ... ok test resume_tui::clock::tests::short::case_01_just_now ... ok test resume_tui::clock::tests::short::case_02_future ... ok test resume_tui::clock::tests::short::case_03_a_minute ... ok test resume_tui::clock::tests::short::case_04_minutes ... ok test resume_tui::clock::tests::short::case_05_an_hour ... ok test resume_tui::clock::tests::short::case_06_hours ... ok test resume_tui::catchup::tests::forks_start_from_a_heads_rows::case_1_a_head ... ok test resume_tui::clock::tests::short::case_07_today ... ok test resume_tui::clock::tests::short::case_08_early_today ... ok test resume_tui::clock::tests::short::case_09_yesterday ... ok test resume_tui::catchup::tests::forks_start_from_a_heads_rows::case_2_the_newest ... ok test resume_tui::clock::tests::short::case_10_yesterday_morning ... ok test resume_tui::clock::tests::short::case_11_this_week ... ok test resume_tui::clock::tests::short::case_12_six_days ... ok test resume_tui::clock::tests::short::case_13_a_week ... ok test resume_tui::clock::tests::short::case_14_this_year ... ok test resume_tui::clock::tests::short::case_15_last_year ... ok test resume_tui::clock::tests::times_within_a_day::case_1_recent ... ok test resume_tui::clock::tests::times_within_a_day::case_2_earlier_today ... ok test resume_tui::clock::tests::times_within_a_day::case_3_another_day ... ok test resume_tui::keymap::tests::ctrl_d_returns_original_only_on_empty_input ... ok test resume_tui::keymap::tests::esc_exits_emacs_but_enters_normal_mode_from_insert ... ok test resume_tui::catchup::tests::forks_start_from_a_heads_rows::case_3_one_way ... ok test resume_tui::keymap::tests::shared_bindings_match_the_history_search ... ok test resume_tui::keymap::tests::vim_normal_has_gg_sequence_and_plain_letters_are_unbound_in_emacs ... ok test resume_tui::markdown::tests::allocation_gives_every_part_a_line_first::case_1 ... ok test resume_tui::markdown::tests::allocation_gives_every_part_a_line_first::case_2 ... ok test resume_tui::keymap::tests::fork_keys_are_free_and_shared ... ok test resume_tui::keymap::tests::preview_keys_are_shared_and_free ... ok test resume_tui::keymap::tests::enter_resumes_whatever_enter_accept_says ... ok test resume_tui::keymap::tests::ctrl_t_cycles_the_agent_everywhere::case_3 ... ok test resume_tui::keymap::tests::ctrl_t_cycles_the_agent_everywhere::case_2 ... ok test resume_tui::keymap::tests::ctrl_t_cycles_the_agent_everywhere::case_1 ... ok test resume_tui::markdown::tests::allocation_gives_every_part_a_line_first::case_3 ... ok test resume_tui::markdown::tests::allocation_gives_every_part_a_line_first::case_4 ... ok test resume_tui::markdown::tests::allocation_gives_every_part_a_line_first::case_5 ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_01_plain_text ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_03_inline_code ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_02_bold ... ok test resume_tui::markdown::tests::blank_lines_collapse ... ok test resume_tui::markdown::tests::headings_emphasis_and_code_are_styled_not_marked_up ... ok test resume_tui::markdown::tests::code_blocks_keep_their_whitespace_and_are_cut_not_wrapped ... ok test resume_tui::markdown::tests::flat_rendering_runs_blocks_onto_one_line ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_04_code_block ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_05_list_item ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_06_heading ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_07_link_text ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_08_escaped ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_09_entity ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_10_table ... ok test resume_tui::markdown::tests::highlights_follow_the_text_through_the_markup::case_11_cjk ... ok test resume_tui::markdown::tests::highlights_keep_the_markdown_style_underneath ... ok test resume_tui::markdown::tests::highlights_on_markup_alone_mark_nothing ... ok test resume_tui::markdown::tests::links_show_their_target_when_asked ... ok test resume_tui::markdown::tests::list_items_hang_under_their_markers ... ok test resume_tui::markdown::tests::long_text_is_cut_to_the_budget_with_an_ellipsis ... ok test resume_tui::markdown::tests::plain_wrap_ellipsizes_its_last_line ... ok test resume_tui::markdown::tests::quotes_get_a_gutter ... ok test resume_tui::markdown::tests::tables_align_and_shrink_to_fit ... ok test resume_tui::markdown::tests::long_texts_render_their_top_the_same_as_the_whole::case_4_blank_heavy ... ok test resume_tui::markdown::tests::unterminated_fences_run_to_the_end ... ok test resume_tui::panel::tests::forks_are_counted_once_read::case_1_not_read ... ok test resume_tui::panel::tests::forks_are_counted_once_read::case_2_none ... ok test resume_tui::panel::tests::forks_are_counted_once_read::case_3_one ... ok test resume_tui::panel::tests::forks_are_counted_once_read::case_4_two ... ok test resume_tui::panel::tests::human_counts::case_1 ... ok test resume_tui::panel::tests::human_counts::case_2 ... ok test resume_tui::panel::tests::human_counts::case_3 ... ok test resume_tui::panel::tests::human_counts::case_4 ... ok test resume_tui::panel::tests::human_counts::case_5 ... ok test resume_tui::markdown::tests::long_texts_render_their_top_the_same_as_the_whole::case_3_setext ... ok test resume_tui::panel::tests::inspect_breaks_the_tokens_down::case_1_cached ... ok test resume_tui::panel::tests::inspect_breaks_the_tokens_down::case_2_reasoning ... ok test resume_tui::panel::tests::place_leaves_out_what_goes_without_saying::case_1_here ... ok test resume_tui::panel::tests::place_leaves_out_what_goes_without_saying::case_2_detached ... ok test resume_tui::panel::tests::place_leaves_out_what_goes_without_saying::case_3_elsewhere ... ok test resume_tui::panel::tests::place_leaves_out_what_goes_without_saying::case_4_no_branch ... ok test resume_tui::panel::tests::tokens_skip_what_was_not_reported ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_1_finished ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_2_finished_by_any_whitespace ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_3_still_typing ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_4_after_a_token ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_5_only_tokens ... ok test resume_tui::query::tests::a_trailing_space_finishes_the_last_word::case_6_only_space ... ok test resume_tui::query::tests::agent_and_its_short_form_parse_the_same::case_1 ... ok test resume_tui::query::tests::agent_and_its_short_form_parse_the_same::case_2 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_01 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_02 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_03 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_04 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_05 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_06 ... ok test resume_tui::markdown::tests::long_texts_render_their_top_the_same_as_the_whole::case_2_code ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_07 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_08 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_09 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_10 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_11 ... ok test resume_tui::markdown::tests::long_texts_render_their_top_the_same_as_the_whole::case_1_paragraphs ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_12 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_13 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_14 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_15 ... ok test resume_tui::markdown::tests::windows_grow_without_moving ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_16 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_17 ... ok test resume_tui::query::tests::alt_a_cycles_the_harness_token::case_18 ... ok test resume_tui::query::tests::alt_a_round_trips ... ok test resume_tui::query::tests::backslash_makes_a_word_literal ... ok test resume_tui::query::tests::empty_values_are_pending ... ok test resume_tui::query::tests::h_is_no_longer_a_token ... ok test resume_tui::query::tests::harness_tokens::case_01 ... ok test resume_tui::query::tests::harness_tokens::case_02 ... ok test resume_tui::query::tests::harness_tokens::case_03 ... ok test resume_tui::query::tests::harness_tokens::case_04 ... ok test resume_tui::query::tests::harness_tokens::case_05 ... ok test resume_tui::query::tests::harness_tokens::case_06 ... ok test resume_tui::query::tests::harness_tokens::case_07 ... ok test resume_tui::query::tests::harness_tokens::case_08 ... ok test resume_tui::query::tests::harness_tokens::case_09 ... ok test resume_tui::query::tests::harness_tokens::case_10 ... ok test resume_tui::query::tests::harness_tokens::case_11 ... ok test resume_tui::query::tests::harness_tokens::case_12 ... ok test resume_tui::query::tests::harness_tokens::case_13 ... ok test resume_tui::query::tests::later_scalar_tokens_win ... ok test resume_tui::query::tests::multibyte_ranges_are_char_boundaries ... ok test resume_tui::query::tests::plain_text_is_the_query ... ok test resume_tui::query::tests::tokens_are_parsed_out_anywhere ... ok test resume_tui::query::tests::unknown_harness_is_an_invalid_token_and_ignored ... ok test resume_tui::reader::tests::runs_of_tool_calls_fold_into_one_line ... ok test resume_tui::reader::tests::atuin_tool_calls_read_by_what_they_do ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_1_the_message_matched ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_2_a_call_in_a_run ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_3_text_before_its_calls ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_4_a_message_without_the_query ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_5_the_snippet_quoted ... ok test resume_tui::reader::tests::the_reader_opens_at_the_match::case_6_a_word_of_the_query ... ok test resume_tui::rebuild::tests::the_status_says_how_far_it_has_got::case_1_progress ... ok test resume_tui::rebuild::tests::the_status_says_how_far_it_has_got::case_2_nothing_to_replay ... ok test resume_tui::render::tests::a_fork_goes_under_its_roots_day::case_1_top_down ... ok test resume_tui::render::tests::a_fork_goes_under_its_roots_day::case_2_bottom_up ... ok test resume_tui::render::tests::every_width_fills_the_row_title_first::shape_1_ONE_LINE ... ok test resume_tui::render::tests::every_width_fills_the_row_title_first::shape_2_TWO_LINE ... ok test resume_tui::render::tests::every_width_fills_the_row_title_first::shape_3_BY_DAY ... ok test resume_tui::render::tests::headings_and_titles_read_top_down_either_way_up ... ok test resume_tui::render::tests::message_counts_fit_their_column::case_1 ... ok test resume_tui::render::tests::message_counts_fit_their_column::case_2 ... ok test resume_tui::render::tests::only_a_listed_fork_marks_its_root_live::case_1_subagent ... ok test resume_tui::render::tests::only_a_listed_fork_marks_its_root_live::case_2_fork ... ok test resume_tui::render::tests::only_a_listed_fork_marks_its_root_live::case_3_old_fork ... ok test resume_tui::render::tests::the_title_takes_the_rest::case_1_wide ... ok test resume_tui::render::tests::the_title_takes_the_rest::case_2_full_80 ... ok test resume_tui::render::tests::the_title_takes_the_rest::case_3_split_120 ... ok test resume_tui::rebuild::tests::an_unreachable_daemon_says_nothing ... ok test resume_tui::resumer::tests::a_checkout_named_twice_resumes_where_the_current_directory_is::case_1_in_the_first ... ok test resume_tui::resumer::tests::a_checkout_named_twice_resumes_where_the_current_directory_is::case_2_in_the_second ... ok test resume_tui::resumer::tests::a_checkout_named_twice_resumes_where_the_current_directory_is::case_3_in_neither ... ok test permissions::writer::tests::writes_expected_content::case_2_append_existing ... ok test permissions::writer::tests::writes_expected_content::case_4_deny ... ok test permissions::walker::tests::the_global_file_is_not_also_a_project_file::case_1_global ... ok test permissions::walker::tests::the_global_file_is_not_also_a_project_file::case_2_project ... ok test permissions::writer::tests::does_not_duplicate_existing_rule ... ok test permissions::writer::tests::writes_expected_content::case_1_create_allow ... ok test permissions::writer::tests::writes_expected_content::case_3_inline_table ... ok test resume_tui::resumer::tests::a_codex_fork_reads_the_original_where_it_is::case_2_here ... ok test resume_tui::resumer::tests::a_codex_fork_reads_the_original_where_it_is::case_1_missing ... ok test resume_tui::rebuild::tests::the_watch_follows_the_rebuild_until_it_ends ... ok test resume_tui::resumer::tests::a_branch_no_longer_a_head_is_not_swapped_for_another ... ok test resume_tui::catchup::tests::a_copy_switches_to_a_head_on_another_line::case_3_its_own_line ... ok test resume_tui::resumer::tests::a_choice_offers_to_switch_only_a_copy_that_loses_nothing::case_1_diverged ... ok test resume_tui::catchup::tests::a_copy_switches_to_no_head_of_several_unless_named::case_2_named ... ok test resume_tui::resumer::tests::a_choice_offers_to_switch_only_a_copy_that_loses_nothing::case_2_pi ... ok test resume_tui::catchup::tests::a_copy_is_classified_against_the_head::case_8_behind_on_the_other_branch ... ok test resume_tui::catchup::tests::a_copy_switches_to_a_head_on_another_line::case_1_the_newest_on_another_line ... ok test resume_tui::catchup::tests::a_twig_off_the_heads_line_fast_forwards::case_1_a_tool_result ... ok test resume_tui::catchup::tests::a_copy_switches_to_a_head_on_another_line::case_2_named ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_1_not_here ... ok test resume_tui::catchup::tests::a_copy_switches_to_no_head_of_several_unless_named::case_1_none_named ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_3_behind ... ok test resume_tui::resumer::tests::a_copy_moved_by_reading_it_resumes_where_it_is_now ... ok test resume_tui::resumer::tests::a_copy_not_here_is_not_switched ... ok test resume_tui::catchup::tests::a_copy_switches_to_a_head_on_another_line::case_4_behind_on_its_line ... ok test resume_tui::catchup::tests::a_copy_switches_to_a_head_on_another_line::case_6_gone ... ok test resume_tui::catchup::tests::a_twig_off_the_heads_line_fast_forwards::case_2_a_tool_result_in_pi ... ok test resume_tui::resumer::tests::a_copy_gone_since_it_was_located_is_restored ... ok test resume_tui::resumer::tests::a_choice_offers_to_switch_only_a_copy_that_loses_nothing::case_5_opencode ... ok test resume_tui::resumer::tests::a_harness_not_installed_here_says_so ... ok test resume_tui::resumer::tests::a_harness_that_cant_rehydrate_says_so ... ok test resume_tui::resumer::tests::a_choice_offers_to_switch_only_a_copy_that_loses_nothing::case_3_live ... ok test resume_tui::resumer::tests::a_fork_is_a_new_session_of_its_own_harness ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_5_behind_and_maybe_live ... ok test resume_tui::resumer::tests::a_local_session_without_its_transcript_is_planned_as_a_restore ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_2_at_the_head ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_4_behind_and_live ... ok test resume_tui::resumer::tests::a_path_template_plans_a_restore_and_resumes_the_restored_transcript ... ok test resume_tui::resumer::tests::a_path_template_target_is_offered_and_resumes_the_written_session ... ok test resume_tui::resumer::tests::a_pi_fork_names_the_original_by_its_file::case_1_missing ... ok test resume_tui::resumer::tests::a_pi_fork_names_the_original_by_its_file::case_2_here ... ok test resume_tui::resumer::tests::a_plan_says_whether_an_agent_here_has_the_session_open::case_2_live ... ok test resume_tui::resumer::tests::a_plan_says_whether_an_agent_here_has_the_session_open::case_1_not_live ... ok test resume_tui::resumer::tests::a_plan_says_whether_an_agent_here_has_the_session_open::case_3_unknown ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_7_diverged ... ok test resume_tui::resumer::tests::a_remote_session_is_planned_as_a_restore ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_8_diverged_at_the_newest ... ok test resume_tui::resumer::tests::a_relative_template_program_is_found_from_the_sessions_directory ... ok test resume_tui::resumer::tests::a_copy_here_is_caught_up_or_offered_a_choice::case_6_live_at_the_head ... ok test resume_tui::resumer::tests::a_copy_that_cant_be_caught_up_leaves_the_choice ... ok test resume_tui::resumer::tests::a_session_on_disk_resumes_directly ... ok test resume_tui::resumer::tests::a_session_restored_before_resumes_directly::remote_1_true ... ok test resume_tui::resumer::tests::a_session_restored_before_resumes_directly::remote_2_false ... ok test resume_tui::resumer::tests::a_refused_append_leaves_the_choice::case_2_changed ... ok test resume_tui::resumer::tests::a_refused_append_leaves_the_choice::case_1_unsupported ... ok test resume_tui::resumer::tests::a_session_is_continued_along_one_branch::case_3_diverged_named ... ok test resume_tui::resumer::tests::a_refused_append_leaves_the_choice::case_4_maybe_live ... ok test resume_tui::resumer::tests::a_session_is_continued_along_one_branch::case_2_diverged ... ok test resume_tui::resumer::tests::a_refused_append_leaves_the_choice::case_3_id_taken ... ok test resume_tui::resumer::tests::an_empty_session_is_not_continued::target_1_HarnessKind__Codex ... ok test resume_tui::resumer::tests::a_session_is_continued_along_one_branch::case_1_one_way ... ok test resume_tui::resumer::tests::an_empty_session_is_not_continued::target_2_HarnessKind__Copilot ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_3_one_way_named ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_2_one_way_by_the_picker ... ok test resume_tui::resumer::tests::an_empty_session_is_not_continued::target_3_HarnessKind__Opencode ... ok test resume_tui::resumer::tests::an_empty_session_is_not_continued::target_4_HarnessKind__Pi ... ok test resume_tui::resumer::tests::finds_programs_on_path ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_1_one_way ... ok test resume_tui::resumer::tests::an_empty_session_is_not_forked::harness_1_HarnessKind__ClaudeCode ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_5_diverged_by_the_picker ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_4_diverged ... ok test resume_tui::resumer::tests::a_session_not_here_is_restored_along_one_branch::case_6_diverged_named ... ok test resume_tui::resumer::tests::an_empty_session_is_not_forked::harness_2_HarnessKind__Codex ... ok test resume_tui::resumer::tests::an_empty_session_is_not_forked::harness_3_HarnessKind__Copilot ... ok test resume_tui::resumer::tests::a_switch_writes_the_rows_that_go_with_the_branch ... ok test resume_tui::resumer::tests::finds_programs_on_path_and_by_path_on_unix ... ok test resume_tui::resumer::tests::an_empty_session_is_not_forked::harness_4_HarnessKind__Opencode ... ok test resume_tui::resumer::tests::shell_line_quotes_the_directory ... ok test resume_tui::resumer::tests::an_empty_session_is_not_forked::harness_5_HarnessKind__Pi ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_copy_works::case_2_where_the_copy_worked_but_gone ... ok test resume_tui::resumer::tests::continuing_writes_a_new_session_of_the_target ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_session_works_here::case_1_mapped_agent_there ... ok test resume_tui::resumer::tests::only_other_installed_harnesses_are_offered ... ok test resume_tui::resumer::tests::restoring_writes_the_transcript_and_plans_resuming_it::case_1_written ... ok test resume_tui::resumer::tests::a_copy_that_cant_be_switched_is_not_offered_the_switch ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_copy_works::case_3_no_directory_recorded ... ok test resume_tui::resumer::tests::restoring_writes_the_transcript_and_plans_resuming_it::case_2_already_there ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_session_works_here::case_2_mapped_agent_elsewhere ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_1_exists ... ok test resume_tui::resumer::tests::the_program_to_check_is_relative_to_the_plans_directory ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_2_same_repo_subdir ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_3_same_repo_gone_subdir ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_session_works_here::case_3_unknown_agent_anywhere ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_4_same_repo_root ... ok test resume_tui::select::tests::a_drag_selects_text::case_1_in_a_row ... ok test resume_tui::select::tests::a_drag_selects_text::case_2_backwards ... ok test resume_tui::select::tests::a_drag_selects_text::case_3_across_rows ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_5_same_repo_dir_named_like_it ... ok test resume_tui::select::tests::a_drag_selects_text::case_4_past_the_area ... ok test resume_tui::select::tests::a_drag_selects_text::case_5_a_click ... ok test resume_tui::select::tests::a_drag_selects_text::case_6_blanks ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_6_other_repo ... ok test resume_tui::select::tests::the_selection_is_reversed ... ok test resume_tui::select::tests::the_shared_indent_is_left_out ... ok test resume_tui::resumer::tests::resumes_where_it_ran_or_nearest_here::case_7_unknown ... ok test resume_tui::resumer::tests::an_agent_is_looked_for_where_the_copy_works::case_1_where_the_copy_works ... ok test resume_tui::resumer::tests::unsupported_sessions_and_subagents_are_not_resumable ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_01_the_newest_it_can ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_02_named ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_09_changed ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_06_live ... ok test resume_tui::resumer::tests::a_switched_copy_fast_forwards_as_its_branch_grows ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_03_codex ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_07_maybe_live ... ok test resume_tui::sidecar::tests::a_trailing_space_finishes_the_typed_word::case_3_finished_whole_word ... ok test resume_tui::resumer::tests::the_append_looks_for_an_agent_where_the_session_works ... ok test resume_tui::sidecar::tests::a_childs_match_finds_the_root_with_highlights ... ok test resume_tui::sidecar::tests::only_this_hosts_sessions_have_their_repo_looked_up ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_08_live_by_the_time_it_writes ... ok test resume_tui::sidecar::tests::groups_children_under_their_root ... ok test resume_tui::state::tests::a_narrowed_workspace_stays_workspace::case_1_text ... ok test resume_tui::state::tests::a_narrowed_workspace_stays_workspace::case_3_an_agent ... ok test resume_tui::state::tests::a_narrowed_workspace_stays_workspace::case_2_a_chip ... ok test resume_tui::sidecar::tests::a_trailing_space_finishes_the_typed_word::case_1_still_typing ... ok test resume_tui::state::tests::a_pinned_session_stays_first_until_the_query_changes ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_10_codex_in_several_rollouts ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_11_opencode ... ok test resume_tui::state::tests::an_empty_workspace_opens_on_every_session_once ... ok test resume_tui::markdown::tests::never_panics_or_overflows ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_13_behind_on_that_branch ... ok test resume_tui::sidecar::tests::a_trailing_space_finishes_the_typed_word::case_2_finished ... ok test resume_tui::sidecar::tests::previews_and_ids ... ok test resume_tui::resumer::tests::switching_writes_the_copy_out_along_the_branch_or_nothing::case_12_on_that_branch ... ok test resume_tui::sidecar::tests::the_host_mode_keeps_this_hosts_unrecorded_sessions ... ok test resume_tui::state::tests::forks_sit_beneath_their_root_bottom_up ... ok test resume_tui::state::tests::panes_scroll_within_their_text ... ok test resume_tui::state::tests::forgetting_unanswered_requests_keeps_the_selected_sessions ... ok test resume_tui::state::tests::keys_map_to_outcomes ... ok test resume_tui::state::tests::modes_resolve_to_filters ... ok test resume_tui::sidecar::tests::the_preview_skips_a_tail_without_text ... ok test resume_tui::state::tests::ctrl_t_rewrites_the_input ... ok test resume_tui::sidecar::tests::a_continuation_is_shown_by_its_prompt_not_its_marker ... ok test resume_tui::state::tests::stale_generations_are_dropped_and_the_old_list_kept ... ok test resume_tui::state::tests::refresh_keeps_the_selection_and_reloads_live_previews ... ok test resume_tui::state::tests::the_last_preview_is_held_until_the_next_is_read ... ok test resume_tui::state::tests::ctrl_r_cycles_available_modes ... ok test resume_tui::state::tests::the_picker_opens_on::case_1_unset ... ok test resume_tui::state::tests::the_picker_opens_on::case_2_workspace ... ok test resume_tui::state::tests::the_picker_opens_on::case_4_branch_on_a_detached_head ... ok test resume_tui::state::tests::the_picker_opens_on::case_5_branch_outside_a_repo ... ok test resume_tui::state::tests::the_picker_opens_on::case_3_workspace_outside_a_repo ... ok test resume_tui::state::tests::typing_inserts_and_navigation_respects_invert ... ok test resume_tui::state::tests::the_sessions_an_id_names_stay_first_until_the_query_changes ... ok test resume_tui::state::tests::unchanged_filter_does_not_search_again ... ok test resume_tui::state::tests::workspace_picked_with_ctrl_r_never_falls_back ... ok test resume_tui::state::tests::vim_modes ... ok test resume_tui::sidecar::tests::ungrouped_lists_forks_but_not_subagents ... ok test resume_tui::tests::a_continuation_in_the_tree_says_where_it_went_on ... ok test resume_tui::tests::a_click_with_nothing_drawn_selects_nothing ... ok test resume_tui::tests::a_catch_up_nobody_waits_on_is_dropped::case_2_failed ... ok test resume_tui::tests::a_catch_up_nobody_waits_on_is_dropped::case_1_ready ... ok test resume_tui::tests::a_continuation_picked_supersedes_a_waiting_original::fork_1_false ... ok test resume_tui::tests::a_continuation_picked_supersedes_a_waiting_original::fork_2_true ... ok test resume_tui::tests::a_key_that_does_not_search_keeps_a_waiting_resume ... ok test resume_tui::tests::a_copy_here_is_caught_up_then_resumed ... ok test resume_tui::tests::a_picked_fork_is_written_then_resumed ... ok test resume_tui::sidecar::tests::untitled_sessions_are_titled_from_their_first_prompt ... ok test resume_tui::tests::a_refresh_does_not_drop_a_waiting_resume::case_1_plan ... ok test resume_tui::tests::a_refresh_does_not_drop_a_waiting_resume::case_2_restore ... ok test resume_tui::tests::a_pick_acts_on_the_session_the_chooser_opened_on ... ok test resume_tui::tests::a_restore_dropped_for_another_sessions_is_asked_for_again ... ok test resume_tui::tests::a_session_open_here_preselects_the_fork::case_1_open_but_quiet ... ok test resume_tui::tests::a_chooser_the_list_cant_hold_is_a_popup ... ok test resume_tui::tests::a_session_from_another_machine_is_restored_first ... ok test resume_tui::tests::a_chooser_opened_to_edit_edits ... ok test resume_tui::tests::a_session_open_here_preselects_the_fork::case_2_written_to_lately_but_closed ... ok test resume_tui::tests::a_capped_list_says_so ... ok test resume_tui::tests::a_clipped_chooser_keeps_the_selected_line_in_sight ... ok test resume_tui::tests::a_superseded_continuation_is_not_taken_for_the_newer_one ... ok test resume_tui::tests::a_long_query_keeps_the_scope_in_sight ... ok test resume_tui::tests::a_drag_copies_the_text_under_it ... ok test resume_tui::tests::an_accept_always_gets_its_plan ... ok test resume_tui::tests::an_original_chosen_supersedes_a_continuation::by_enter_1_false::fork_1_false ... ok test resume_tui::tests::a_written_continuation_resumes_or_edits_its_new_session ... ok test resume_tui::tests::an_abandoned_restore_does_not_run ... ok test resume_tui::tests::a_drag_over_the_side_pane_copies_its_text ... ok test resume_tui::tests::an_original_chosen_supersedes_a_continuation::by_enter_2_true::fork_2_true ... ok test resume_tui::tests::an_original_chosen_supersedes_a_continuation::by_enter_1_false::fork_2_true ... ok test resume_tui::tests::an_original_chosen_supersedes_a_continuation::by_enter_2_true::fork_1_false ... ok test resume_tui::tests::details_wait_while_the_selection_moves_fast ... ok test resume_tui::tests::changing_the_search_drops_a_waiting_resume::case_2_mode ... ok test resume_tui::tests::changing_the_search_drops_a_continuation ... ok test resume_tui::tests::changing_the_search_drops_a_waiting_resume::case_1_typing ... ok test resume_tui::tests::an_empty_scope_has_no_search_to_clear ... ok test resume_tui::tests::a_rebuild_in_progress_is_said_in_the_status_row ... ok test resume_tui::tests::host_ids_compare_in_one_form::case_1_hyphenated ... ok test resume_tui::tests::host_ids_compare_in_one_form::case_2_simple ... ok test resume_tui::tests::host_ids_compare_in_one_form::case_3_upper ... ok test resume_tui::tests::ctrl_x_opens_the_chooser_on_the_fork ... ok test resume_tui::tests::enter_and_tab_in_the_expanded_forks_resume_the_fork ... ok test resume_tui::tests::chips_alone_matching_nothing_say_so ... ok test resume_tui::tests::a_session_with_nothing_to_fork_never_picks_the_fork::empty_2_true ... ok test resume_tui::tests::an_untitled_session_says_so ... ok test resume_tui::tests::a_session_with_nothing_to_fork_never_picks_the_fork::empty_1_false ... ok test resume_tui::tests::full_frame_has_history_search_chrome ... ok test resume_tui::tests::an_original_that_cant_resume_is_dimmed_and_passed_over ... ok test resume_tui::tests::compact_and_inline_heights ... ok test resume_tui::tests::only_the_user_moving_away_drops_a_waiting_resume ... ok test resume_tui::tests::inspect_explains_unresumable_sessions ... ok test resume_tui::tests::inspect_says_a_remote_session_is_restored ... ok test resume_tui::tests::opens_on_every_session ... ok test resume_tui::tests::inspect_tab_shows_metadata_command_and_children ... ok test resume_tui::tests::overflowing_lists_get_a_scrollbar ... ok test resume_tui::tests::invert_puts_the_input_on_top ... ok test resume_tui::tests::inspect_collapses_a_long_children_list ... ok test resume_tui::tests::f_selects_the_fork_under_the_original ... ok test resume_tui::tests::match_highlights_are_bold ... ok test resume_tui::tests::coming_back_opens_the_reader_at_the_match_again ... ok test resume_tui::tests::a_choice_offers_to_switch_the_copy_to_another_branch ... ok test resume_tui::tests::no_results_say_so ... ok test resume_tui::tests::rows_show_the_title_then_the_agent_and_where ... ok test resume_tui::tests::preview_shows_first_prompt_match_and_last_reply ... ok test resume_tui::tests::other_hosts_rows_look_like_this_hosts ... ok test resume_tui::sidecar::tests::the_stamp_moves_only_when_the_database_is_written ... ok test resume_tui::tests::the_chooser_offers_the_original_first_then_the_others ... ok test resume_tui::tests::the_fork_is_preselected_over_an_original_that_shouldnt_resume::case_1_cant_resume ... ok test resume_tui::tests::the_chooser_opens_down_from_the_title::invert_2_true ... ok test resume_tui::tests::the_automatic_strip_height_only_grows ... ok test resume_tui::tests::the_fork_is_preselected_over_an_original_that_shouldnt_resume::case_2_running_here ... ok test resume_tui::tests::the_chooser_opens_when_there_is_a_choice ... ok test resume_tui::tests::the_fork_is_preselected_over_an_original_that_shouldnt_resume::case_4_only_a_child_running_here ... ok test resume_tui::tests::the_fork_is_preselected_over_an_original_that_shouldnt_resume::case_3_running_elsewhere ... ok test resume_tui::tests::the_chooser_opens_down_from_the_title::invert_1_false ... ok test resume_tui::tests::the_fork_is_preselected_over_an_original_that_shouldnt_resume::case_5_idle ... ok test resume_tui::tests::a_refresh_keeps_the_frame_as_it_was ... ok test resume_tui::tests::resizing_keeps_the_reader_where_it_was ... ok test resume_tui::tests::the_detail_pane_counts_the_forks ... ok test resume_tui::tests::a_choice_offers_the_copy_as_it_is_and_a_fork_per_head::case_1_live ... ok test resume_tui::tests::the_chooser_header_names_what_enter_picks ... ok test resume_tui::tests::a_choice_offers_the_copy_as_it_is_and_a_fork_per_head::case_2_diverged ... ok test resume_tui::tests::the_chooser_says_a_session_was_recently_used ... ok test resume_tui::tests::the_keys_scroll_the_preview_showing::case_1_strip ... ok test resume_tui::tests::the_top_day_stays_in_sight ... ok test resume_tui::tests::the_detail_pane_and_inspect_render_markdown ... ok test resume_tui::tests::the_preview_never_blanks_between_selections ... ok test resume_tui::tests::the_keys_scroll_the_preview_showing::case_3_inspect ... ok test resume_tui::tests::the_preview_says_what_forked_off_a_session ... ok test resume_tui::tests::the_detail_pane_reads_the_whole_conversation_from_the_match ... ok test resume_tui::tests::the_wheel_scrolls_the_pane_under_it::case_2_inline ... ok test resume_tui::tests::growing_the_terminal_with_the_chooser_open_on_the_oldest::invert_1_false ... ok test resume_tui::tests::the_wheel_scrolls_the_pane_under_it::case_1_fullscreen ... ok test resume_tui::tests::the_keys_scroll_the_preview_showing::case_2_side ... ok test resume_tui::title::tests::derives::case_01_plain ... ok test resume_tui::title::tests::derives::case_02_first_sentence ... ok test resume_tui::tests::growing_the_terminal_with_the_chooser_open_on_the_oldest::invert_2_true ... ok test resume_tui::title::tests::derives::case_03_brief_after_setup ... ok test resume_tui::tests::the_scope_always_shows ... ok test resume_tui::tests::tokens_render_as_chips::case_1 ... ok test resume_tui::title::tests::derives::case_04_only_setup ... ok test resume_tui::title::tests::derives::case_05_role_that_is_the_task ... ok test resume_tui::title::tests::derives::case_06_labels_and_rules ... ok test resume_tui::title::tests::derives::case_07_only_a_role ... ok test resume_tui::title::tests::derives::case_08_read_first ... ok test resume_tui::title::tests::derives::case_09_title_line ... ok test resume_tui::title::tests::derives::case_10_system_block ... ok test resume_tui::title::tests::derives::case_11_unclosed_tag ... ok test resume_tui::title::tests::derives::case_12_greeting ... ok test resume_tui::title::tests::derives::case_13_greeting_inline ... ok test resume_tui::title::tests::derives::case_14_markdown ... ok test resume_tui::title::tests::derives::case_15_snake_case ... ok test resume_tui::title::tests::derives::case_16_question_split ... ok test resume_tui::title::tests::derives::case_17_eg_isnt_a_sentence ... ok test resume_tui::title::tests::derives::case_18_paths ... ok test resume_tui::title::tests::derives::case_19_a_lone_word ... ok test resume_tui::title::tests::derives::case_20_yoyoyo ... ok test resume_tui::tests::the_strip_scrolls_through_the_parts_in_full ... ok test resume_tui::title::tests::derives::case_21_slash_command ... ok test resume_tui::title::tests::derives::case_22_slash_then_text ... ok test resume_tui::title::tests::derives::case_23_greeting_only ... ok test resume_tui::title::tests::derives::case_24_empty ... ok test resume_tui::title::tests::derives::case_25_whitespace ... ok test resume_tui::title::tests::highlights_match_word_starts ... ok test resume_tui::tests::tokens_render_as_chips::case_2 ... ok test resume_tui::tests::a_match_outside_the_conversation_shows_over_it ... ok test resume_tui::title::tests::long_titles_are_cut ... ok test resume_tui::worker::tests::a_later_plan_for_another_session_never_drops_an_accept ... ok test resume_tui::tests::vim_normal_highlights_the_whole_row ... ok test resume_tui::worker::tests::a_superseded_continuation_never_starts::case_2_cancelled ... ok test resume_tui::worker::tests::a_superseded_continuation_never_starts::case_1_replaced ... ok test resume_tui::tests::the_reader_spins_until_the_transcript_is_read ... ok test resume_tui::worker::tests::a_superseded_fork_never_starts::case_1_fork_cancelled ... ok test resume_tui::worker::tests::a_superseded_fork_never_starts::case_2_fork_replaced ... ok test resume_tui::worker::tests::a_superseded_continuation_never_starts::case_3_replaced_then_cancelled ... ok test resume_tui::worker::tests::a_superseded_fork_never_starts::case_3_fork_replaces ... ok test resume_tui::worker::tests::searches_skip_the_preview_queue_and_passed_over_previews_are_dropped ... ok test resume_tui::worker::tests::nothing_queued_runs_once_the_picker_is_gone ... ok test resume_tui::worker::tests::answers_searches_previews_children_and_plans ... ok test shell::tests::shell_init::case_1_zsh ... ok test shell::tests::shell_init::case_2_bash ... ok test shell::tests::shell_init::case_3_fish ... ok test skills::frontmatter::tests::parses_frontmatter_fields::case_1_basic ... ok test skills::frontmatter::tests::body_with_triple_dashes ... ok test skills::frontmatter::tests::multiline_folded_description ... ok test skills::frontmatter::tests::parses_frontmatter_fields::case_3_empty ... ok test skills::frontmatter::tests::parses_frontmatter_fields::case_2_no_frontmatter ... ok test skills::frontmatter::tests::parses_frontmatter_fields::case_4_missing_fields ... ok test resume_tui::tests::untitled_shows_everywhere ... ok test skills::frontmatter::tests::parses_frontmatter_fields::case_5_unknown_fields ... ok test skills::tests::budget_packing ... ok test skills::tests::budget_overflow ... ok test skills::tests::disabled_skills_excluded_from_server ... ok test skills::tests::first_paragraph_cases::case_1 ... ok test skills::tests::first_paragraph_cases::case_2 ... ok test skills::tests::first_paragraph_cases::case_3 ... ok test skills::tests::first_paragraph_cases::case_4 ... ok test session::tests::test_persist_server_session_id ... ok test session::tests::test_archive ... ok test skills::tests::has_server_visible_skills ... ok test skills::tests::sanitize_name_cases::case_1 ... ok test skills::tests::sanitize_name_cases::case_2 ... ok test skills::tests::sanitize_name_cases::case_3 ... ok test session::tests::test_incremental_persist ... ok test session::tests::test_parent_chain_integrity ... ok test session::tests::test_create_new_and_persist ... ok test skills::tests::substitute_arguments_cases::case_1_replaces_placeholder ... ok test skills::tests::substitute_arguments_cases::case_2_multiple_occurrences ... ok test skills::tests::substitute_arguments_cases::case_3_appends_when_no_placeholder ... ok test resume_tui::tests::wide_terminals_split_the_list_and_a_detail_pane ... ok test skills::tests::substitute_arguments_cases::case_4_no_args_no_placeholder ... ok test skills::tests::substitute_arguments_cases::case_5_no_args_clears_placeholder ... ok test skills::walker::tests::missing_directories_handled ... ok test session::tests::test_create_and_resume ... ok test skills::tests::end_to_end_discover ... ok test snapshots::tests::format_iso8601_produces_valid_format ... ok test snapshots::tests::sanitize_backslash_encoded ... ok test skills::walker::tests::discovers_global_skills ... ok test snapshots::tests::sanitize_no_collision_between_similar_paths ... ok test skills::walker::tests::discovers_project_skills ... ok test snapshots::tests::sanitize_path_cases::case_1_absolute ... ok test skills::walker::tests::discovers_nested_skills ... ok test snapshots::tests::sanitize_path_cases::case_2_preserves_percent ... ok test snapshots::tests::sanitize_path_cases::case_3_relative ... ok test snapshots::tests::sanitize_result_is_flat_filename ... ok test snapshots::tests::atomic_write_creates_parent_dirs ... ok test snapshots::tests::atomic_write_creates_file ... ok test skills::walker::tests::the_global_dir_is_not_also_a_project_dir::case_1_global ... ok test snapshots::tests::atomic_write_overwrites_existing ... ok test snapshots::tests::atomic_write_preserves_permissions ... ok test skills::walker::tests::the_global_dir_is_not_also_a_project_dir::case_2_project ... ok test skills::walker::tests::project_comes_before_global ... ok test snapshots::tests::snapshot_creates_file_and_manifest ... ok test snapshots::tests::snapshot_is_idempotent ... ok test snapshots::tests::snapshot_store_loads_existing_manifest ... ok test snapshots::tests::snapshot_multiple_files ... ok test store::tests::test_create_and_get_session ... ok test store::tests::test_archive_session ... ok test tools::output::get::tests::atuin_output_formats_lines_like_read_file ... ok test store::tests::test_find_resumable_by_git_root ... ok test store::tests::test_append_and_load_events ... ok test tools::output::get::tests::atuin_output_marks_the_gap_left_by_a_discarded_middle ... ok test tools::output::get::tests::atuin_output_numbers_a_tail_only_request_from_the_end ... ok test tools::output::get::tests::atuin_output_ranges_are_optional ... ok test tools::output::get::tests::atuin_output_parses_line_ranges ... ok test tools::output::get::tests::atuin_output_rejects_unknown_arguments ... ok test tools::output::get::tests::atuin_output_renders_a_blank_line_instead_of_widening_the_gap ... ok test tools::output::search::tests::parses_and_clamps_context::case_1_default ... ok test store::tests::test_find_resumable_does_not_mutate ... ok test tools::output::search::tests::parses_and_clamps_context::case_2_explicit ... ok test tools::output::search::tests::parses_and_clamps_context::case_3_zero_is_matching_lines_only ... ok test store::tests::test_events_ordered_chronologically ... ok test store::tests::test_find_resumable_no_match_different_dir ... ok test tools::output::search::tests::parses_and_clamps_context::case_4_clamped_high ... ok test tools::output::search::tests::parses_and_clamps_context::case_5_null_context ... ok test store::tests::test_find_resumable_session ... ok test store::tests::test_get_nonexistent_session ... ok test tools::output::search::tests::parses_terms_and_clamps_limit::case_1_default ... ok test store::tests::test_find_resumable_skips_archived ... ok test tools::output::search::tests::parses_terms_and_clamps_limit::case_2_clamped_high ... ok test tools::output::search::tests::parses_terms_and_clamps_limit::case_3_clamped_low ... ok test tools::output::search::tests::parses_terms_and_clamps_limit::case_4_null_limit ... ok test tools::output::search::tests::rejects_missing_or_blank_terms::case_1_missing ... ok test tools::output::search::tests::rejects_missing_or_blank_terms::case_2_no_terms ... ok test tools::output::search::tests::rejects_missing_or_blank_terms::case_3_empty ... ok test tools::output::search::tests::rejects_missing_or_blank_terms::case_4_blank ... ok test tools::output::search::tests::rejects_missing_or_blank_terms::case_5_not_a_list ... ok test store::tests::test_update_server_session_id ... ok test tools::session::caller::tests::a_lone_other_session_stops_being_hidden_once_the_callers_own_appears ... ok test tools::session::caller::tests::a_run_just_before_this_one_is_not_a_candidate ... ok test tools::session::caller::tests::a_run_that_finished_just_before_the_server_started_is_not_the_callers ... ok test tools::session::caller::tests::ambiguity_hides_nothing ... ok test tools::session::caller::tests::maps_client_names_to_harnesses::case_1_claude ... ok test tools::session::caller::tests::maps_client_names_to_harnesses::case_2_codex ... ok test tools::session::caller::tests::maps_client_names_to_harnesses::case_3_opencode ... ok test store::tests::test_usage_cache_roundtrip ... ok test tools::session::caller::tests::maps_client_names_to_harnesses::case_4_cursor ... ok test tools::session::caller::tests::own_session_matches_harness_and_id::case_1_same_session ... ok test tools::session::caller::tests::own_session_matches_harness_and_id::case_2_same_id_other_harness ... ok test tools::session::caller::tests::own_session_matches_harness_and_id::case_3_other_id ... ok test tools::session::caller::tests::picks_the_single_session_started_with_the_server_in_its_directory ... ok test tools::session::list::tests::defaults ... ok test tools::session::list::tests::since_bounds::case_1 ... ok test tools::session::list::tests::since_bounds::case_2 ... ok test tools::session::list::tests::since_bounds::case_3 ... ok test tools::session::list::tests::since_bounds::case_4 ... ok test tools::session::list::tests::since_bounds_across_dst::case_1 ... ok test tools::session::list::tests::since_bounds_across_dst::case_2 ... ok test tools::session::read::tests::a_filtered_read_of_an_empty_session_says_so ... ok test tools::session::read::tests::a_filtered_page_counts_and_pages_by_matches ... ok test tools::session::read::tests::a_clip_marker_does_not_hide_a_cut_match ... ok test tools::session::read::tests::a_greek_match_gets_its_snippet::case_1_upper ... ok test tools::session::read::tests::a_greek_match_gets_its_snippet::case_2_final_sigma ... ok test tools::session::read::tests::a_greek_match_gets_its_snippet::case_3_medial_sigma ... ok test tools::session::read::tests::a_partial_filtered_page_says_more_match ... ok test tools::session::read::tests::a_long_single_message_comes_in_windows ... ok test tools::session::read::tests::a_match_cut_from_a_long_message_gets_a_snippet ... ok test tools::session::read::tests::a_partial_transcript_omits_the_total ... ok test tools::session::read::tests::a_query_finds_boolean_tool_arguments ... ok test tools::session::read::tests::a_query_finds_what_an_edit_changed::case_1_path ... ok test tools::session::read::tests::a_query_finds_what_an_edit_changed::case_2_changed_line ... ok test tools::session::read::tests::a_query_ignores_markup::case_1_json_key ... ok test tools::session::read::tests::a_query_ignores_markup::case_2_thinking_label ... ok test tools::session::read::tests::a_page_ends_early_at_its_character_budget ... ok test tools::session::read::tests::a_query_ignores_markup::case_3_error_mark ... ok test tools::session::read::tests::a_query_matches_tool_output_and_says_when_nothing_does ... ok test tools::session::read::tests::a_query_shows_only_messages_with_every_word ... ok test tools::session::read::tests::a_single_message_read_shows_the_whole_error ... ok test tools::session::read::tests::blank_filters_are_no_filter::case_1_null ... ok test tools::session::read::tests::blank_filters_are_no_filter::case_2_blank ... ok test tools::session::read::tests::captured_tool_input_and_output_are_shown_not_folded ... ok test tools::session::read::tests::empty_rows_do_not_use_up_the_limit ... ok test tools::session::read::tests::long_text_is_clipped_unless_full ... ok test tools::session::read::tests::a_snippet_finds_the_match_after_chars_that_grow_when_lowercased ... ok test tools::session::read::tests::negative_start_counts_from_the_end ... ok test tools::session::read::tests::negative_start_skips_trailing_empty_rows ... ok test tools::session::read::tests::out_of_range_starts_clamp::case_1_out_of_range_positive ... ok test tools::session::read::tests::out_of_range_starts_clamp::case_2_out_of_range_negative ... ok test tools::session::read::tests::pages_skip_empty_rows_but_keep_their_numbers ... ok test tools::session::read::tests::rejects_an_unknown_role ... ok test tools::session::read::tests::roles_skim_what_the_person_said ... ok test tools::session::read::tests::summaries_and_errors_are_shown ... ok test tools::session::read::tests::the_header_bounds_the_children_it_names ... ok test tools::session::read::tests::tool_input_leads_with_what_it_did::case_1_command ... ok test tools::session::read::tests::tool_input_leads_with_what_it_did::case_2_file ... ok test tools::session::read::tests::tool_input_leads_with_what_it_did::case_3_codex_argv ... ok test tools::session::read::tests::tool_input_leads_with_what_it_did::case_4_other ... ok test tools::session::read::tests::uncaptured_tool_activity_folds_into_one_line ... ok test tools::session::search::tests::loosens_only_when_no_message_anywhere_has_every_word ... ok test tools::session::search::tests::parses_each_harness::case_1_claude_code ... ok test tools::session::search::tests::parses_each_harness::case_2_codex ... ok test tools::session::search::tests::parses_each_harness::case_3_opencode ... ok test tools::session::search::tests::parses_each_harness::case_4_pi ... ok test tools::session::search::tests::parses_terms_and_clamps_limit::case_1_default ... ok test tools::session::search::tests::parses_terms_and_clamps_limit::case_2_clamped_high ... ok test tools::session::search::tests::parses_terms_and_clamps_limit::case_3_clamped_low ... ok test tools::session::search::tests::parses_terms_and_clamps_limit::case_4_null_limit ... ok test tools::session::search::tests::rejects_invalid_input::case_1_missing ... ok test tools::session::search::tests::rejects_invalid_input::case_2_no_terms ... ok test tools::session::search::tests::rejects_invalid_input::case_3_blank ... ok test tools::session::search::tests::rejects_invalid_input::case_4_unknown_harness ... ok test tools::session::search::tests::rejects_invalid_input::case_5_uncapturable_harness ... ok test tools::session::search::tests::renders_a_hit_with_harness_time_title_directory_and_snippet ... ok test tools::session::tests::a_root_that_is_the_parent_is_named_once ... ok test tools::session::tests::a_summary_names_links_by_atuin_id ... ok test tools::session::tests::blank_cwd_is_no_filter ... ok test tools::session::tests::elsewhere_note_puts_the_same_project_first ... ok test tools::session::tests::relation_names_the_parent_kind::case_1_subagent ... ok test tools::session::tests::relation_names_the_parent_kind::case_2_fork ... ok test tools::session::tests::relation_names_the_parent_kind::case_3_continuation ... ok test tools::session::tests::resolve_cwd_expands_home ... ok test tools::session::tests::resolve_cwd_normalises::case_1_absolute ... ok test tools::session::tests::resolve_cwd_normalises::case_2_trailing_dot ... ok test tools::session::tests::resolve_cwd_normalises::case_3_whitespace ... ok test tools::session::tests::subagents_are_children_not_known_to_be_forks::case_1_subagent ... ok test tools::session::tests::subagents_are_children_not_known_to_be_forks::case_2_fork ... ok test tools::session::tests::subagents_are_children_not_known_to_be_forks::case_3_continuation ... ok test tools::tests::all_covered_by_non_shell_tool_unchanged ... ok test tools::tests::atuin_history_author_and_failure_filters_parse ... ok test tools::tests::atuin_history_filter_modes_are_optional::case_1_omitted ... ok test tools::tests::atuin_history_filter_modes_are_optional::case_2_null ... ok test tools::tests::atuin_history_filter_modes_reject_non_arrays ... ok test tools::tests::atuin_history_rejects_unknown_arguments ... ok test tools::tests::bare_pattern_asymmetry ... ok test tools::tests::edit::edit_error::case_1_no_match ... ok test tools::tests::edit::edit_error::case_2_multiple_without_replace_all ... ok test tools::tests::edit_integration::permission_cache_grant_and_check ... ok test tools::tests::edit::edit_error::case_3_empty_old_string ... ok test tools::tests::edit::edit_error::case_4_preserves_on_no_match ... ok test tools::tests::edit_tool_rule_name::case_1_edit_uses_write ... ok test tools::tests::edit::error_file_does_not_exist ... ok test tools::tests::edit_tool_rule_name::case_2_edit_rejects_read ... ok test tools::tests::filter_mode_names_round_trip ... ok test tools::tests::edit::error_file_not_read ... ok test tools::tests::fuzzy_matches_fill_after_substring_ones::case_1_fills ... ok test tools::tests::fuzzy_matches_fill_after_substring_ones::case_2_stops_at_size ... ok test resume_tui::tests::a_worktree_is_its_own_workspace_and_branch ... ok test tools::tests::fuzzy_matches_fill_after_substring_ones::case_3_exact_fills_the_page ... ok test tools::tests::edit::edit_success::case_3_multiline ... ok test tools::tests::read_scope_glob::case_1_wildcard_star ... ok test tools::tests::matches_rule_still_uses_any_semantics ... ok test tools::tests::edit::edit_success::case_1_single ... ok test tools::tests::read_scope_glob::case_2_extension_glob_matches ... ok test tools::tests::edit::edit_success::case_2_replace_all ... ok test tools::tests::read_scope_glob::case_3_extension_glob_rejects ... ok test tools::tests::read_scope_glob::case_4_unix_absolute_glob_matches ... ok test tools::tests::read_scope_glob::case_5_unix_absolute_glob_rejects ... ok test tools::tests::read_scope_glob::case_6_unix_double_star_matches ... ok test tools::tests::read_scope_glob::case_7_unix_double_star_rejects ... ok test tools::tests::read_tool_rule_name::case_1_read_rule_none ... ok test tools::tests::read_tool_rule_name::case_2_write_implies_read ... ok test tools::tests::relative_multi_segment_glob::case_1 ... ok test tools::tests::relative_multi_segment_glob::case_2 ... ok test tools::tests::shell_all_covered_by::case_1_git_scope_allows ... ok test tools::tests::shell_all_covered_by::case_2_git_scope_rejects_npm ... ok test tools::tests::shell_all_covered_by::case_3_compound_all_covered ... ok test tools::tests::edit_integration::second_edit_without_reread ... ok test tools::tests::shell_all_covered_by::case_4_compound_partially_covered ... ok test tools::tests::shell_all_covered_by::case_5_unscoped_covers_all ... ok test tools::tests::shell_all_covered_by::case_6_wildcard_covers_all ... ok test tools::tests::substring_matches_rank_by_tightness ... ok test tools::tests::write_tool_rule_name::case_1_write_rule_none ... ok test tools::tests::edit_integration::full_read_snapshot_edit_cycle ... ok test tools::tests::write_tool_rule_name::case_2_read_does_not_imply_write ... ok test tools::tests::edit_integration::snapshot_only_created_once_per_file ... ok test tools::tests::write::error_path_is_directory ... ok test tools::tests::write::write_over_existing::case_1_rejects_without_overwrite ... ok test tui::app::tests::builtin_takes_precedence_over_skill_with_same_name ... ok test tools::tests::write::creates_new_file ... ok test tools::tests::write::creates_parent_directories ... ok test tools::tests::write::write_over_existing::case_2_overwrites_with_flag ... ok test tui::app::tests::esc_exits_with_cancel ... ok test tui::app::tests::ctrl_j_inserts_newline ... ok test tui::app::tests::cancelled_turn_shows_no_responded_line ... ok test tui::app::tests::esc_mid_stream_cancels_generation ... ok test tui::app::tests::allowed_read_tool_executes_inline ... ok test tui::app::tests::exit_erases_the_input_box ... ok test tui::app::tests::denying_resolves_the_tool_without_executing ... ok test tui::app::tests::ctrl_c_interrupts_from_the_moment_a_shell_spawns ... ok test tui::app::tests::init_submits_the_initial_prompt_and_pushes_the_turn ... ok test tui::app::tests::esc_closes_the_picker_without_exiting ... ok test tui::app::tests::allowing_starts_execution_with_an_interrupt_handle ... ok test tui::app::tests::enter_submits_and_pushes_the_user_turn ... ok test tui::app::tests::recall_does_nothing_without_user_messages ... ok test tui::app::tests::resume_notice_renders_above_turns ... ok test tui::app::tests::permission_prompt_renders_and_replaces_input ... ok test tui::app::tests::shift_enter_inserts_newline ... ok test tui::app::tests::permission_cursor_moves_and_wraps ... ok test tui::app::tests::skill_dispatches_even_when_registered_for_autocomplete ... ok test tui::app::tests::finished_shell_releases_ctrl_c_back_to_quit ... ok test tui::app::tests::model_picker_flow_selects_a_model ... ok test tui::app::tests::status_bar_shows_usage_over_threshold ... ok test tui::app::tests::new_session_notice_renders ... ok test tui::app::tests::slash_suggestions_and_tab_accept ... ok test tui::app::tests::suggested_command_key::case_1_blank_enter_executes ... ok test tui::app::tests::stream_error_offers_retry ... ok test tui::app::tests::tail_renders_conversation_turns ... ok test tui::app::tests::responded_line_replaces_the_spinner_on_done ... ok test tui::app::tests::suggested_command_key::case_2_tab_inserts ... ok test tui::app::tests::tip_hangs_off_the_spinner_while_streaming ... ok test tui::app::tests::tips_disabled_in_settings_suppresses_the_tip_line ... ok test tui::app::tests::submit_resets_recall_to_the_newest_message ... ok test tui::app::tests::recall_includes_slash_commands_and_skills ... ok test tui::app::tests::typing_does_not_reach_the_editor_while_picking ... ok test tui::app::tests::streaming_text_renders_live_and_seals_on_done ... ok test tui::app::tests::usage_snapshot_is_stored ... ok test tui::recall::tests::back_walks_newest_to_oldest_then_stops ... ok test tui::recall::tests::back_with_no_messages_is_a_noop ... ok test tui::recall::tests::forward_returns_to_the_draft ... ok test tui::recall::tests::reset_forgets_position_and_draft ... ok test tui::recall::tests::stale_index_clamps_to_the_newest_message ... ok test tui::app::tests::typing_renders_in_the_editor ... ok test tui::tips::tests::tips_have_unique_ids ... ok test tui::tips::tests::rotation_walks_in_order_and_wraps ... ok test tui::tips::tests::disabled_setting_suppresses_all_tips ... ok test tui::tips::tests::irrelevant_tips_are_skipped ... ok test tui::view::tests::always_allow_in_project_is_not_offered_for_the_home_directory::case_1_workspace ... ok test tui::tips::tests::send_cwd_tip_respects_both_config_spellings ... ok test tui::app::tests::up_moves_the_cursor_before_it_recalls ... ok test tui::view::tests::always_allow_in_project_is_not_offered_for_the_home_directory::case_2_directory ... ok test tui::app::tests::up_recalls_previous_messages_and_down_restores_the_draft ... ok test tui::view::tests::always_allow_in_project_is_not_offered_for_the_home_directory::case_3_home ... ok test tui::view::tests::edits_are_offered_the_same_options_in_every_scope::scope_1_ProjectScope__Workspace ... ok test tui::view::tests::edits_are_offered_the_same_options_in_every_scope::scope_2_ProjectScope__Directory ... ok test tui::view::tests::edits_are_offered_the_same_options_in_every_scope::scope_3_ProjectScope__Home ... ok test tui::view::tests::elapsed_formats_by_magnitude ... ok test tui::app::tests::typing_disarms_command_execution ... ok test tui::view::trunc::tests::command_spinner_fits_untruncated_when_room ... ok test tui::view::trunc::tests::done_command_spinner_shows_both_ends ... ok test tui::app::tests::response_after_new_session_survives_stream_end ... ok test tui::view::trunc::tests::fit_middle_elides_the_middle ... ok test tui::view::trunc::tests::fit_middle_exact::case_1_keeps_short_commands ... ok test tui::view::trunc::tests::fit_middle_exact::case_2_flattens_multiline ... ok test tui::view::trunc::tests::running_command_spinner_reserves_marker_columns ... ok test tui::tools_exec::tests::shell_stream_interrupt_still_delivers_outcome ... ok test tui::view::trunc::tests::truncated_line_elides_value_not_prefix ... ok test tui::view::trunc::tests::truncated_line_fits_untruncated_when_room ... ok test usage::tests::as_percentage_uses_higher_limited_bucket ... ok test usage::tests::cache_key_distinguishes_tokens ... ok test usage::tests::deserializes_server_payload ... ok test usage::tests::format_reset_delta_cases::case_1_days ... ok test usage::tests::format_reset_delta_cases::case_2_hours ... ok test usage::tests::format_reset_delta_cases::case_3_minutes ... ok test usage::tests::format_reset_delta_cases::case_4_sub_minute ... ok test tools::tests::edit::error_file_modified_since_read ... ok test usage::tests::snapshot_roundtrips_through_json ... ok test user_context::interpolate::tests::interpolate_cases::case_3_preserves_plain ... ok test user_context::interpolate::tests::parse_commands_cases::case_1_double_backtick ... ok test user_context::interpolate::tests::parse_commands_cases::case_2_block ... ok test user_context::interpolate::tests::parse_commands_cases::case_3_regular_ignored ... ok test user_context::interpolate::tests::parse_commands_cases::case_4_bang_not_adjacent ... ok test user_context::interpolate::tests::parse_commands_cases::case_5_mixed ... ok test user_context::interpolate::tests::parse_inline_command ... ok test tools::tests::edit_integration::external_modification_between_edits ... ok test tui::tools_exec::tests::shell_stream_yields_previews_then_outcome ... ok test user_context::tests::cache_serves_stale_until_invalidated ... ok test user_context::walker::tests::the_global_file_is_not_also_a_project_file::case_1_global ... ok test user_context::interpolate::tests::interpolate_cases::case_2_block ... ok test user_context::walker::tests::the_global_file_is_not_also_a_project_file::case_2_project ... ok test user_context::interpolate::tests::interpolate_cases::case_1_inline ... ok test user_context::interpolate::tests::interpolate_failed_command_shows_error ... ok test user_context::interpolate::tests::interpolate_cases::case_4_multiple ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_3_UiStyle__Compact::invert_1_false ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_1_UiStyle__Auto::invert_1_false ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_1_UiStyle__Auto::invert_2_true ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_2_UiStyle__Full::invert_1_false ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_3_UiStyle__Compact::invert_2_true ... ok test resume_tui::tests::tiny_terminals_draw_without_panicking::style_2_UiStyle__Full::invert_2_true ... ok test resume_tui::tests::rows_fit_every_width::global_2_true ... ok test resume_tui::tests::the_list_never_cuts_a_row_or_doubles_a_heading::invert_2_true ... ok test resume_tui::tests::rows_fit_every_width::global_1_false ... ok test resume_tui::tests::the_list_never_cuts_a_row_or_doubles_a_heading::invert_1_false ... ok test resume_tui::tests::a_long_session_opens_at_its_match_without_rendering_it_all ... ok test resume_tui::markdown::tests::odd_input_does_not_panic ... ok test user_context::tests::slow_gather_does_not_overwrite_concurrent_result ... ok test user_context::tests::invalidate_during_gather_is_not_lost ... ok test result: ok. 1189 passed; 0 failed; 0 ignored; 0 measured; 11 filtered out; finished in 0.64s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_client-a45a7b06b84ab5d9) running 974 tests test ai_session::database::heads::tests::a_hosts_rows_before_its_first_node_go_with_its_branch::case_2_host_1s ... ok test ai_session::database::heads::tests::a_hosts_rows_before_its_first_node_go_with_its_branch::case_1_host_2s ... ok test ai_session::database::heads::tests::a_compaction_cycle_stays_on_the_line::case_1_in_order ... ok test ai_session::database::heads::tests::a_branchs_rows_hold_what_goes_with_it::case_4_no_node ... ok test ai_session::database::heads::tests::a_branchs_rows_hold_what_goes_with_it::case_2_host_1s ... ok test ai_session::database::heads::tests::a_compaction_cycle_stays_on_the_line::case_2_below_stamped_earlier ... ok test ai_session::database::heads::tests::a_branchs_rows_hold_what_goes_with_it::case_3_before_the_split ... ok test ai_session::database::heads::tests::a_branchs_rows_hold_what_goes_with_it::case_5_not_stored ... ok test ai_session::database::heads::tests::a_branchs_rows_hold_what_goes_with_it::case_1_host_2s ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_4_on_another_line ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_1_behind ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_2_behind_past_rows_merged_into_the_tip ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_7_empty ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_5_went_on_here ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_3_up_to_date ... ok test ai_session::database::heads::tests::a_fast_forward_takes_the_patches_beside_the_line::case_4_up_to_date ... ok test ai_session::database::heads::tests::a_fast_forward_takes_the_patches_beside_the_line::case_1_behind_the_call ... ok test ai_session::database::heads::tests::a_fast_forward_keeps_the_lines_order ... ok test ai_session::database::heads::tests::a_fast_forward_takes_the_patches_beside_the_line::case_2_at_the_call ... ok test ai_session::database::heads::tests::a_copy_fast_forwards_only_along_the_heads_line::case_6_rewound_here ... ok test ai_session::database::heads::tests::a_fast_forward_takes_the_patches_beside_the_line::case_3_holding_the_patch ... ok test ai_session::database::heads::tests::claude_code_heads::case_01_linear ... ok test ai_session::database::heads::tests::a_patch_beside_the_line_goes_with_its_calls_branch::case_2_the_other ... ok test ai_session::database::heads::tests::claude_code_heads::case_02_tool_calls_continued ... ok test ai_session::database::heads::tests::a_patch_beside_the_line_goes_with_its_calls_branch::case_1_its_branch ... ok test ai_session::database::heads::tests::claude_code_heads::case_03_tool_calls_ended ... ok test ai_session::database::heads::tests::claude_code_heads::case_04_reply_beside_a_newer_tool_result ... ok test ai_session::database::heads::tests::claude_code_heads::case_05_rewind ... ok test ai_session::database::heads::tests::claude_code_heads::case_06_two_hosts ... ok test ai_session::database::heads::tests::claude_code_heads::case_07_carried_on_past_a_rewind ... ok test ai_session::database::heads::tests::claude_code_heads::case_08_second_host_below_a_tool_row ... ok test ai_session::database::heads::tests::claude_code_heads::case_09_rewind_below_a_tool_row ... ok test ai_session::database::heads::tests::claude_code_heads::case_10_carried_on_below_a_tool_row ... ok test ai_session::database::heads::tests::claude_code_heads::case_12_missing_parent ... ok test ai_session::database::heads::tests::claude_code_heads::case_11_content_addressed_off_the_tree ... ok test ai_session::database::heads::tests::claude_code_heads::case_13_missing_parent_follows_its_host ... ok test ai_session::database::heads::tests::claude_code_heads::case_14_missing_parent_first_on_its_host ... ok test ai_session::database::heads::tests::codex_heads::case_1_one_line ... ok test ai_session::database::heads::tests::codex_heads::case_2_two_hosts_continue_one_row ... ok test ai_session::database::heads::tests::codex_heads::case_3_old_rows_in_time_order ... ok test ai_session::database::heads::tests::codex_heads::case_4_old_rows_follow_their_host ... ok test ai_session::database::heads::tests::codex_heads::case_5_old_rows_then_two_hosts ... ok test ai_session::database::heads::tests::copilot_heads::case_2_old_rows_follow_their_host ... ok test ai_session::database::heads::tests::copilot_heads::case_1_old_rows_then_two_hosts ... ok test ai_session::database::heads::tests::odd_sessions_keep_one_head::case_2_only_content_addressed ... ok test ai_session::database::heads::tests::odd_sessions_keep_one_head::case_1_header ... ok test ai_session::database::heads::tests::odd_sessions_keep_one_head::case_3_cycle ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_1_handed_on ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_2_interleaved ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_3_tool_row_between ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_4_late_tool_row ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_5_tool_row_opens_a_side ... ok test ai_session::database::heads::tests::opencode_parts_where_hosts_interleave::case_6_three_hosts ... ok test ai_session::database::heads::tests::rows_for_a_branch_of_nodes_are_its_path::case_2_opencode ... ok test ai_session::database::heads::tests::rows_for_a_branch_of_nodes_are_its_path::case_1_codex ... ok test ai_session::database::heads::tests::rows_for_a_branch_of_nodes_are_its_path::case_3_claude_code ... ok test ai_session::database::heads::tests::heads_hold_their_invariants ... ok test ai_session::database::tests::a_duplicate_row_settles_on_the_smaller_id ... ok test ai_session::database::tests::a_child_of_unknown_kind_is_not_counted ... ok test ai_session::database::tests::a_call_counts_once_at_its_largest_usage ... ok test ai_session::database::tests::a_continuation_from_a_slow_clock_follows_its_parent ... ok test ai_session::database::heads::tests::a_stored_sessions_branches_and_their_paths ... ok test ai_session::database::tests::a_child_passing_the_filter_brings_its_root ... ok test ai_session::database::tests::a_host_filter_selects_sessions::case_1_one ... ok test ai_session::database::tests::a_host_filter_selects_sessions::case_2_several_sessions ... ok test ai_session::database::tests::a_read_only_open_never_creates_the_file ... ok test ai_session::database::tests::a_host_filter_selects_sessions::case_3_before_the_limit ... ok test ai_session::database::tests::a_host_filter_selects_sessions::case_4_with_the_unrecorded ... ok test ai_session::database::tests::a_chatty_session_never_crowds_out_others ... ok test ai_session::database::tests::a_childs_match_counts_toward_its_root ... ok test ai_session::database::tests::a_copy_is_listed_under_its_original ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_3_opencode_fork ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_1_codex_subagent ... ok test ai_session::database::tests::a_page_appends_nothing_after_an_invalidation ... ok test ai_session::database::tests::a_parent_learned_late_outranks_a_copy_link ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_2_codex_fork ... ok test ai_session::database::tests::a_host_filter_selects_sessions::case_5_the_unrecorded_before_the_limit ... ok test ai_session::database::tests::a_parent_learned_late_by_a_non_holder_joins_the_holders_counts::reversed_1_false ... ok test ai_session::database::tests::a_late_parent_adopts_its_waiting_children ... ok test ai_session::database::tests::a_parent_cycle_groups_under_its_least_member::order_3__1_3_0_2_ ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_4_claude_fork ... ok test ai_session::database::tests::a_match_in_a_child_names_the_child ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_1_every_term ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_2_one_term_short ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_5_claude_subagent ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_3_whole_word ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_4_any_term ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_5_any_prefix ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_6_typed_prefix ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_7_no_term ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_8_phrase ... ok test ai_session::database::tests::a_title_matches_the_query_alone::case_9_phrase_in_order ... ok test ai_session::database::tests::a_parent_cycle_groups_under_its_least_member::order_1__0_1_2_3_ ... ok test ai_session::database::tests::a_parent_cycle_groups_under_its_least_member::order_2__3_2_1_0_ ... ok test ai_session::database::tests::a_parent_learned_late_by_a_non_holder_joins_the_holders_counts::reversed_2_true ... ok test ai_session::database::tests::a_parent_cycle_groups_under_its_least_member::order_4__2_0_3_1_ ... ok test ai_session::database::tests::a_replayed_row_fills_in_a_missing_host ... ok test ai_session::database::tests::a_rows_provider_is_kept::provider_2_Some___openai_codex___ ... ok test ai_session::database::tests::a_rows_provider_is_kept::provider_1_None ... ok test ai_session::database::tests::a_session_converts_to_one_to_rehydrate ... ok test ai_session::database::tests::a_session_keeps_how_it_relates_to_its_parent ... ok test ai_session::database::tests::a_renamed_session_is_searchable_by_its_new_title ... ok test ai_session::database::tests::a_title_match_outranks_a_body_match ... ok test ai_session::database::tests::a_summary_is_reply_text ... ok test ai_session::database::tests::a_resumed_copy_counts_shared_calls_once ... ok test ai_session::database::tests::an_atuin_id_or_its_prefix_finds_a_session::case_1_whole ... ok test ai_session::database::tests::an_atuin_id_or_its_prefix_finds_a_session::case_4_odd_length ... ok test ai_session::database::tests::a_title_propagates_to_earlier_rows_only_when_it_changes ... ok test ai_session::database::tests::an_atuin_id_or_its_prefix_finds_a_session::case_2_past_the_timestamp ... ok test ai_session::database::tests::an_atuin_id_or_its_prefix_finds_a_session::case_3_only_the_timestamp ... ok test ai_session::database::tests::an_empty_query_lists_sessions_newest_first::case_1_empty ... ok test ai_session::database::tests::an_empty_query_lists_sessions_newest_first::case_2_whitespace ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_1_plain ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_3_underscore_is_literal ... ok test ai_session::database::tests::an_empty_search_by_role_returns_sessions_with_such_a_message::case_2_tool ... ok test ai_session::database::tests::an_empty_search_by_role_returns_sessions_with_such_a_message::case_1_user ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_2_percent_is_literal ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_5_case_matters ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_4_exact ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_6_nothing ... ok test ai_session::database::tests::content_blocks_tell_tool_output_as_the_content_does ... ok test ai_session::database::tests::an_out_of_range_timestamp_reads_as_the_nearest_in_range::case_2_stored_late ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_8_the_last_code_point ... ok test ai_session::database::tests::an_out_of_range_timestamp_reads_as_the_nearest_in_range::case_1_appended ... ok test ai_session::database::tests::an_id_prefix_is_not_a_pattern::case_7_empty ... ok test ai_session::database::tests::an_out_of_range_timestamp_reads_as_the_nearest_in_range::case_3_stored_early ... ok test ai_session::database::tests::any_term_search_matches_some_words_and_prefixes ... ok test ai_session::database::tests::every_kind_of_block_has_its_own_bit ... ok test ai_session::database::tests::any_term_preview_windows_around_a_late_prefix_match ... ok test ai_session::database::tests::checkpoint_round_trips_and_the_latest_write_wins ... ok test ai_session::database::tests::contains_message_reflects_presence ... ok test ai_session::database::tests::append_is_idempotent_on_native_triple ... ok test ai_session::database::tests::compressed_message_is_searchable ... ok test ai_session::database::tests::degenerate_queries_yield_no_results_without_error::case_2_operator_soup ... ok test ai_session::database::tests::content_z_round_trips_compressed_message ... ok test ai_session::database::tests::degenerate_queries_yield_no_results_without_error::case_1_punctuation_only ... ok test ai_session::database::tests::continuations_in_other_harnesses_group_under_the_original::reversed_2_true ... ok test ai_session::database::tests::duplicate_append_does_not_double_index ... ok test ai_session::database::tests::continuations_in_other_harnesses_group_under_the_original::reversed_1_false ... ok test ai_session::database::tests::children_are_the_group_under_a_root ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_01_whole_token ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_02_no_substring_matches ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_03_folded_like_the_index ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_04_phrase_across_words ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_05_every_term ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_06_stray_markers_are_stripped ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_07_typed_prefix_marks_the_whole_token ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_08_typed_only_the_last_term_a_prefix ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_09_typed_finished_term_is_whole ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_10_any_prefix_marks_the_whole_token ... ok test ai_session::database::tests::filters_select_sessions::case_1_host ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_11_any_term ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_12_any_every_term_a_prefix ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_13_any_phrase_last_token_a_prefix ... ok test ai_session::database::tests::highlights_mark_what_the_index_matched::case_14_words_of_a_term_are_a_phrase ... ok test ai_session::database::tests::filters_select_sessions::case_4_directory_is_exact ... ok test ai_session::database::tests::filters_select_sessions::case_5_branch ... ok test ai_session::database::tests::filters_select_sessions::case_3_root_workspace ... ok test ai_session::database::tests::filters_select_sessions::case_2_workspace_is_a_path_prefix ... ok test ai_session::database::tests::filters_select_sessions::case_6_model_substring_any_case ... ok test ai_session::database::tests::a_read_only_open_refuses_another_schema::case_1_uninitialized ... ok test ai_session::database::tests::filters_select_sessions::case_8_all_must_hold ... ok test ai_session::database::tests::filters_select_sessions::case_7_harness ... ok test ai_session::database::tests::fts5_operators_in_the_query_are_matched_literally ... ok test ai_session::database::tests::a_recorded_parent_kind_decides_the_kind_and_the_group_size::case_6_codex_continuation ... ok test ai_session::database::tests::last_reply_is_the_newest_assistant_text_whatever_the_arrival_order ... ok test ai_session::database::tests::last_message_is_the_newest_by_timestamp ... ok test ai_session::database::tests::huge_usage_never_breaks_a_sessions_totals ... ok test ai_session::database::tests::links_resolve_to_atuin_ids_when_read ... ok test ai_session::database::tests::forgetting_an_original_relinks_its_copies ... ok test ai_session::database::tests::prefix_successors::case_1_ascii ... ok test ai_session::database::tests::prefix_successors::case_2_empty ... ok test ai_session::database::tests::list_filters_by_activity_since::case_1_all ... ok test ai_session::database::tests::prefix_successors::case_3_last_code_point ... ok test ai_session::database::tests::prefix_successors::case_4_only_the_last_code_point ... ok test ai_session::database::tests::forgetting_a_host_removes_only_its_sessions ... ok test ai_session::database::tests::prefix_successors::case_5_skips_surrogates ... ok test ai_session::database::tests::holders_entering_a_parent_cycle_at_different_members_count_once::order_1__0_1_2_3_4_ ... ok test ai_session::database::tests::list_filters_by_activity_since::case_2_inclusive ... ok test ai_session::database::tests::holders_entering_a_parent_cycle_at_different_members_count_once::order_2__4_3_2_1_0_ ... ok test ai_session::database::tests::holders_entering_a_parent_cycle_at_different_members_count_once::order_3__3_0_4_1_2_ ... ok test ai_session::database::tests::list_filters_by_activity_since::case_3_none ... ok test ai_session::database::tests::list_is_newest_first ... ok test ai_session::database::tests::holders_entering_a_parent_cycle_at_different_members_count_once::order_4__1_4_0_3_2_ ... ok test ai_session::database::tests::matches_collapse_to_one_hit_per_session ... ok test ai_session::database::tests::a_read_only_open_reads_beside_the_writer ... ok test ai_session::database::tests::preview_parts_use_the_session_time_index ... ok test ai_session::database::tests::messages_come_back_in_order ... ok test ai_session::database::tests::preview_parts_without_a_reply_or_a_session ... ok test ai_session::database::tests::preview_parts_order_messages_at_one_time_by_id ... ok test ai_session::database::tests::rows_disagreeing_on_the_id_settle_on_the_smaller::reversed_1_false ... ok test ai_session::database::tests::recency_breaks_equal_relevance ... ok test ai_session::database::tests::same_timestamp_orders_by_capture_id_not_source_id ... ok test ai_session::database::tests::rows_disagreeing_on_the_id_settle_on_the_smaller::reversed_2_true ... ok test ai_session::database::tests::preview_parts_read_only_the_first_prompt_and_the_last_reply_with_text ... ok test ai_session::database::tests::search_finds_a_message_by_its_text ... ok test ai_session::database::tests::roots_only_lists_each_group_once_with_its_size ... ok test ai_session::database::tests::search_filters_by_harness ... ok test ai_session::database::tests::search_can_leave_out_subagents::case_2_roots_only ... ok test ai_session::database::tests::search_can_leave_out_subagents::case_1_flat ... ok test ai_session::database::tests::a_read_only_open_refuses_another_schema::case_2_outdated ... ok test ai_session::database::tests::search_highlights_the_title_and_snippet::case_1_all ... ok test ai_session::database::tests::a_read_only_open_refuses_another_schema::case_3_unknown ... ok test ai_session::database::tests::search_highlights_the_title_and_snippet::case_3_typed ... ok test ai_session::database::tests::search_highlights_the_title_and_snippet::case_2_any ... ok test ai_session::database::tests::search_in_matches_windows_subdirectories ... ok test ai_session::database::tests::search_in_filters_by_directory_and_its_children_only ... ok test ai_session::database::tests::search_in_uses_the_session_directory_not_the_message_one ... ok test ai_session::database::tests::search_matches_only_messages_from_the_roles_asked_for::case_1_user ... ok test ai_session::database::tests::search_limit_bounds_the_number_of_sessions ... ok test ai_session::database::tests::a_newer_builds_sidecar_is_kept ... ok test ai_session::database::tests::search_matches_only_messages_from_the_roles_asked_for::case_3_tool ... ok test ai_session::database::tests::search_matches_only_messages_from_the_roles_asked_for::case_2_assistant ... ok test ai_session::database::tests::a_sidecar_from_another_build_is_refused ... ok test ai_session::database::tests::search_matches_only_messages_from_the_roles_asked_for::case_4_harness ... ok test ai_session::database::tests::search_matches_reasoning_tool_calls_and_metadata ... ok test ai_session::database::tests::search_matches_the_files_a_patch_changed ... ok test ai_session::database::tests::search_preview_folds_diacritics_like_the_index ... ok test ai_session::database::tests::search_matches_only_messages_from_the_roles_asked_for::case_5_user_or_tool ... ok test ai_session::database::tests::search_preview_finds_phrases_across_words ... ok test ai_session::database::tests::search_preview_contains_the_matched_term ... ok test ai_session::database::tests::the_blocks_migration_empties_the_projection_for_a_rebuild ... ok test ai_session::database::tests::search_preview_leaves_out_message_metadata ... ok test ai_session::database::tests::search_preview_matches_whole_tokens_not_substrings ... ok test ai_session::database::tests::session_preview_and_last_reply_are_clipped ... ok test ai_session::database::tests::search_preview_windows_around_a_late_match ... ok test ai_session::database::tests::search_reports_the_matched_message_index ... ok test ai_session::database::tests::search_preview_is_char_bounded ... ok test ai_session::database::tests::structural_rows_are_not_counted_as_messages ... ok test ai_session::database::tests::started_at_tracks_earliest_message ... ok test ai_session::database::tests::source_ids_with_prefix_lists_only_matching_rows ... ok test ai_session::database::tests::text_interned_by_a_failed_page_is_stored_again ... ok test ai_session::database::tests::the_schema_version_is_the_newest_migration ... ok test ai_session::database::tests::the_capturing_host_is_kept_on_rows_and_sessions ... ok test ai_session::database::tests::the_end_of_an_atuin_id_finds_a_session::case_3_too_short ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_2_partial_after_a_whole_term ... ok test ai_session::database::tests::the_end_of_an_atuin_id_finds_a_session::case_1_short ... ok test ai_session::database::tests::the_provider_migration_keeps_the_projection ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_1_partial_last_term ... ok test ai_session::model::tests::a_copied_session_is_a_fork ... ok test ai_session::database::tests::the_end_of_an_atuin_id_finds_a_session::case_2_shortest ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_1_claude ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_2_codex ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_3_opencode ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_4_pi ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_5_copilot ... ok test ai_session::model::tests::a_kind_has_harness_tools_only_when_atuin_knows_the_harness::case_6_unknown ... ok test ai_session::model::tests::a_minted_id_is_a_fresh_v7_at_the_start ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_1_empty ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_2_odd_length ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_3_upper ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_4_whole ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_4_only_the_last_term_is_a_prefix ... ok test ai_session::model::tests::a_parent_kind_round_trips::case_3_fork ... ok test ai_session::model::tests::a_parent_kind_round_trips::case_1_none ... ok test ai_session::model::tests::a_parent_kind_round_trips::case_2_subagent ... ok test ai_session::model::tests::a_parent_kind_round_trips::case_4_continuation ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_5_other ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_6_hyphenated ... ok test ai_session::database::tests::the_conversation_leaves_out_a_message_it_cant_decode_and_keeps_the_rest_in_place ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_3_finished_term ... ok test ai_session::model::tests::a_recorded_kind_decides::case_1_codex_subagent ... ok test ai_session::model::tests::a_prefix_names_the_ids_it_starts::case_7_too_long ... ok test ai_session::model::tests::a_recorded_kind_decides::case_2_codex_fork ... ok test ai_session::model::tests::a_recorded_kind_decides::case_3_opencode_fork ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_4_whole ... ok test ai_session::model::tests::a_recorded_kind_decides::case_4_claude_fork_named_like_an_agent ... ok test ai_session::model::tests::a_recorded_kind_decides::case_5_pi_continuation ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_5_too_short ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_1_short ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_2_shortest ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_6_other ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_3_upper ... ok test ai_session::model::tests::a_suffix_names_the_ids_it_ends::case_7_not_hex ... ok test ai_session::model::tests::a_v0_record_is_no_longer_read ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_7_two_characters_are_a_prefix ... ok test ai_session::model::tests::a_v2_record_reads_without_a_provider ... ok test ai_session::model::tests::an_unknown_parent_kind_reads_as_none ... ok test ai_session::model::tests::an_unknown_version_is_refused ... ok test ai_session::model::tests::harness_kind_covers_every_known_harness ... ok test ai_session::database::tests::the_newest_row_decides_the_title ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_5_partial_phrase ... ok test ai_session::model::tests::omp_messages_are_v3::case_1_pi ... ok test ai_session::database::tests::the_last_term_matches_as_a_prefix::case_6_a_lone_character_is_a_whole_token ... ok test ai_session::model::tests::omp_messages_are_v3::case_2_omp ... ok test ai_session::model::tests::omp_messages_are_v3::case_3_continued_from_omp ... ok test ai_session::model::tests::omp_messages_are_v3::case_4_with_a_provider ... ok test ai_session::model::tests::the_v2_layout_is_pinned ... ok test ai_session::database::tests::updated_at_tracks_last_message_not_capture_time ... ok test ai_session::database::tests::usage_absence_round_trips_as_none ... ok test ai_session::database::tests::unicode_tokens_are_searchable ... ok test ai_session::store::tests::a_patch_round_trips ... ok test ai_session::database::tests::unrelated_claimants_rank_by_start_then_id::case_2_tie_goes_to_the_smaller_id ... ok test ai_session::database::tests::unrelated_claimants_rank_by_start_then_id::case_1_earlier_start_wins ... ok test ai_session::store::tests::a_watermark_never_moves_across_an_invalidation ... ok test ai_session::store::tests::a_record_the_key_cannot_decrypt_holds_the_watermark_below_it ... ok test ai_session::store::tests::a_series_rewritten_under_the_watermark_is_replayed_from_the_start ... ok test ai_session::database::tests::only_a_harness_given_turn_id_links_copies ... ok test ai_session::store::tests::build_reconstructs_sidecar_from_all_records ... ok test ai_session::store::tests::beside_capture_rows_replayed_after_a_forget_are_not_new ... ok test ai_session::store::tests::a_malformed_watermark_is_replaced::case_3_text_idx ... ok test ai_session::store::tests::a_malformed_watermark_is_replaced::case_1_bad_record_id ... ok test ai_session::store::tests::a_malformed_watermark_is_replaced::case_2_negative_idx ... ok test ai_session::store::tests::a_session_is_on_the_host_of_its_earliest_row::case_1_started_on_the_lower_host ... ok test ai_session::store::tests::beside_capture_a_reprojection_never_forgets_this_hosts_rows ... ok test ai_session::store::tests::a_session_is_on_the_host_of_its_earliest_row::case_2_started_on_the_higher_host ... ok test ai_session::store::tests::build_records_the_host_each_record_came_from ... ok test ai_session::store::tests::an_invalidation_mid_reproject_starts_it_over ... ok test ai_session::store::tests::a_reprojection_invalidated_every_pass_is_incomplete ... ok test ai_session::store::tests::build_recovers_session_title_from_message_records ... ok test ai_session::store::tests::push_then_read_back_one_message ... ok test ai_session::store::tests::build_skips_api_request_blob_rows ... ok test ai_session::store::tests::a_v0_record_is_skipped::written_with_2_Key__from__1u832__ ... ok test ai_session::store::tests::resetting_keeps_capture_checkpoints ... ok test ai_session::store::tests::a_v0_record_is_skipped::written_with_1_key__ ... ok test ai_session::store::tests::forgetting_a_host_replays_the_hosts_that_added_to_its_sessions ... ok test ai_session::store::tests::a_hole_in_a_series_holds_the_watermark_below_it ... ok test ai_session::store::tests::a_hole_at_the_start_of_a_series_holds_the_watermark ... ok test database::test::closest_db_mode_maps_every_search_mode::case_2_full_text ... ok test database::test::closest_db_mode_maps_every_search_mode::case_1_prefix ... ok test ai_session::store::tests::an_authentic_but_undecodable_record_is_skipped ... ok test ai_session::store::tests::reproject_replays_only_records_past_the_watermark ... ok test ai_session::store::tests::forgetting_a_host_removes_its_rows_from_other_hosts_sessions ... ok test database::test::db_search_mode_round_trips_through_search_mode::case_1_prefix ... ok test ai_session::store::tests::record_body_roundtrips ... ok test database::test::closest_db_mode_maps_every_search_mode::case_3_fuzzy ... ok test database::test::closest_db_mode_maps_every_search_mode::case_4_daemon_fuzzy_degrades_to_fuzzy ... ok test database::test::db_search_mode_round_trips_through_search_mode::case_2_full_text ... ok test database::test::db_search_mode_round_trips_through_search_mode::case_3_fuzzy ... ok test database::test::missing_migration_becomes_incompatible_version_guidance ... ok test database::test::other_migration_errors_pass_through_unchanged ... ok test database::test::session_start_time_tolerates_hostile_session_ids::case_2_not_a_uuid ... ok test ai_session::store::tests::an_unknown_record_kind_holds_the_watermark_below_it ... ok test database::test::session_start_time_tolerates_hostile_session_ids::case_3_out_of_range_timestamp ... ok test ai_session::store::tests::cleared_watermark_replays_everything ... ok test database::test::session_start_time_tolerates_hostile_session_ids::case_1_a_real_v7_session ... ok test ai_session::store::tests::purged_records_leave_the_sidecar_once_reset ... ok test ai_session::store::tests::invalidating_a_sidecar_on_disk_forces_a_full_replay ... ok test database::test::inspector_history_preserves_occurrences_and_scope ... ok test ai_session::tests::legacy_sidecar_moves_to_threads_db ... ok test database::test::inspector_stats_match_live_runs ... ok test ai_session::store::tests::watermark_never_passes_a_failed_append_and_the_replay_is_idempotent ... ok test ai_session::database::tests::only_a_harness_given_turn_id_shares_usage_across_unrelated_sessions ... ok test ai_session::database::tests::a_deep_chain_is_one_group ... ok test database::test::inspector_windows_are_bounded ... ok test database::test::author_filter_treats_a_colonless_agent_hostname_as_human ... ok test database::test::test_list_range_is_inclusive ... ok test database::test::author_filter_treats_a_placeholder_user_agent_hostname_as_human ... ok test database::test::test_load_active_missing_ids_are_omitted ... ok test database::test::test_load_active_returns_only_requested_rows ... ok test database::test::author_filter_treats_an_unknown_kind_as_unstated ... ok test database::test::command_runs_aggregate_live_rows_per_command_by_author ... ok test database::test::test_load_active_empty_never_reaches_sqlite ... ok test database::test::test_paged_basic ... ok test database::test::test_paged_empty ... ok test database::test::test_search_authors::case_2_all_user ... ok test database::test::test_search_authors::case_1_all ... ok test database::test::test_load_active_skips_soft_deleted ... ok test database::test::test_search_exit_filters::case_01_default::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_01_default::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_01_default::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_paged_include_deleted ... ok test database::test::test_search_authors::case_4_claude_code ... ok test database::test::test_search_exit_filters::case_02_single::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_02_single::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_03_single_exclusion::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_03_single_exclusion::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_02_single::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_authors::case_3_all_agent ... ok test database::test::test_search_exit_filters::case_03_single_exclusion::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_04_include_union::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_04_include_union::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_05_exclude_multiple::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_05_exclude_multiple::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_05_exclude_multiple::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_04_include_union::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_06_overlap::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_06_overlap::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_06_overlap::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_07_all_excluded::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_07_all_excluded::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_07_all_excluded::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_authors::case_6_unknown_author ... ok test database::test::test_search_authors_when_the_user_is_named_after_an_agent::case_1_all_user ... ok test ai_session::store::tests::reproject_takes_the_capture_lock_for_this_hosts_records ... ok test database::test::test_search_authors::case_5_claude_code_or_codex ... ok test database::test::test_search_exit_filters::case_08_duplicates::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_09_sentinel::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_08_duplicates::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_09_sentinel::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_08_duplicates::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_09_sentinel::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_11_unknown::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_10_only_failed::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_11_unknown::mode_2_DbSearchMode__Prefix ... ok test database::test::test_search_exit_filters::case_10_only_failed::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters::case_10_only_failed::mode_1_DbSearchMode__FullText ... ok test database::test::test_search_exit_filters::case_11_unknown::mode_3_DbSearchMode__Fuzzy ... ok test database::test::test_search_exit_filters_before_deduplication::include_duplicates_2_true ... ok test database::test::test_search_exit_filters_before_deduplication::include_duplicates_1_false ... ok test database::test::test_search_authors_when_the_user_is_named_after_an_agent::case_2_all_agent ... ok test database::test::test_search_before_after::case_4_window_entirely_after_the_item ... ok test database::test::test_search_exit_filters_deletion_selection ... ok test database::test::test_search_before_after::case_3_before_bound_is_exclusive ... ok test database::test::test_search_before_after::case_5_window_entirely_before_the_item ... ok test database::test::test_search_before_after::case_2_after_bound_is_exclusive ... ok test database::test::test_search_before_after::case_1_window_spans_the_item ... ok test database::test::test_search_authors_when_the_user_is_named_after_an_agent::case_3_by_name ... ok test database::test::test_search_before_after::case_6_no_date_filter ... ok test database::test::test_load_active_chunks_past_sqlite_param_limit ... ok test database::test::test_search_fulltext::case_01_matches_command ... ok test database::test::test_search_fulltext::case_02_matches_arg ... ok test database::test::test_search_fulltext::case_03_matches_multiple_words ... ok test database::test::test_search_fulltext::case_06_regex_anchored_end ... ok test database::test::test_search_fulltext::case_04_no_match ... ok test database::test::test_search_fulltext::case_05_regex_anchored_start ... ok test database::test::test_search_fulltext::case_07_regex_negated_no_match ... ok test database::test::test_search_fuzzy::case_02_adjacent_terms_no_space ... ok test database::test::test_search_fulltext::case_13_regex_wildcard ... ok test database::test::test_search_fulltext::case_08_regex_mixed_with_plain_term ... ok test database::test::test_search_fulltext::case_11_regex_triple_slash ... ok test database::test::test_search_fulltext::case_09_regex_single_slash ... ok test database::test::test_search_fuzzy::case_01_term_with_trailing_slash ... ok test database::test::test_search_fulltext::case_12_plain_query_looks_like_regex ... ok test database::test::test_search_fulltext::case_10_regex_double_slash ... ok test database::test::test_search_fuzzy::case_05_typo_no_match ... ok test database::test::test_search_fuzzy::case_04_partial_match ... ok test database::test::test_search_fuzzy::case_03_short_terms ... ok test database::test::test_search_fuzzy::case_06_wrong_order_no_match ... ok test database::test::test_search_fuzzy::case_08_bare_space_matches_all ... ok test database::test::test_search_fuzzy::case_07_concatenated_terms ... ok test database::test::test_search_fuzzy::case_09_starts_with ... ok test database::test::test_search_fuzzy::case_12_negated_starts_with ... ok test database::test::test_search_fuzzy::case_11_ends_with ... ok test database::test::test_search_fuzzy::case_10_exact_word ... ok test database::test::test_search_fuzzy::case_15_term_and_negated_term ... ok test database::test::test_search_fuzzy::case_14_negated_ends_with ... ok test database::test::test_search_fuzzy::case_17_term_and_negated_starts_with ... ok test database::test::test_search_fuzzy::case_22_regex_character_class ... ok test database::test::test_search_fuzzy::case_20_case_insensitive_match ... ok test database::test::test_search_fuzzy::case_19_or_with_and_term ... ok test database::test::test_search_fuzzy::case_13_negated_term ... ok test database::test::test_search_fuzzy::case_16_starts_with_and_negated_ends_with ... ok test database::test::test_search_fuzzy::case_23_regex_combined_with_fuzzy_term ... ok test database::test::test_search_fuzzy::case_21_regex_anchored_start ... ok test database::test::test_search_fuzzy::case_18_or_exact_terms ... ok test database::test::test_search_fuzzy_operator ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_2_plain_two_terms ... ok test database::test::test_search_fuzzy_trailing_space::case_2_trailing_space ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_1_plain_single_term ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_3_trailing_space ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_5_end_anchor ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_4_extra_middle_space ... ok test database::test::test_search_fuzzy_trailing_space::case_1_no_trailing_space ... ok test database::test::test_search_interactive_only_modes_rank_like_fuzzy::case_1_daemon_fuzzy ... ok test database::test::test_search_include_duplicates::case_2_without_duplicates_collapses_to_newest_row ... ok test database::test::test_search_prefix::case_1_matches_prefix ... ok test database::test::test_search_include_duplicates::case_1_with_duplicates_counts_every_execution ... ok test database::test::test_search_fuzzy_prioritizes_contiguous_match::case_6_negated_term ... ok test database::test::test_search_prefix::case_3_trailing_whitespace ... ok test history::store::tests::a_database_error_aborts_the_build ... ok test database::test::test_search_reordered_fuzzy ... ok test history::store::tests::build_skips_rows_the_store_deletes ... ok test history::store::tests::a_run_of_creates_is_one_bulk_write ... ok test history::store::tests::interleaved_creates_and_deletes_keep_their_order ... ok test history::store::tests::test_serialize_deserialize::case_1_create ... ok test database::test::test_search_prefix::case_2_not_a_prefix ... ok test history::store::tests::test_serialize_deserialize::case_2_delete ... ok test history::tests::author_kind_variants_and_from_repr_agree ... ok test history::tests::an_all_author_filter_matches_everyone ... ok test history::tests::capture_infers_agent_kind_from_an_explicit_author::case_1_known_agent_name ... ok test history::tests::capture_infers_agent_kind_from_an_explicit_author::case_4_explicit_kind_wins ... ok test history::tests::deserialize_across_versions::case_1_from_v0::decode_as_1_Version__Zero ... ok test history::tests::deserialize_across_versions::case_1_from_v0::decode_as_2_Version__One ... ok test history::tests::capture_infers_agent_kind_from_an_explicit_author::case_2_agent_name_is_the_username ... ok test history::tests::capture_infers_agent_kind_from_an_explicit_author::case_3_human_name ... ok test history::tests::deserialize_across_versions::case_1_from_v0::decode_as_3_Version__Two ... ok test history::tests::deserialize_across_versions::case_2_from_v1::decode_as_1_Version__Zero ... ok test history::tests::deserialize_across_versions::case_2_from_v1::decode_as_2_Version__One ... ok test history::tests::deserialize_across_versions::case_2_from_v1::decode_as_3_Version__Two ... ok test history::tests::deserialize_across_versions::case_3_from_v2::decode_as_2_Version__One ... ok test history::tests::deserialize_across_versions::case_3_from_v2::decode_as_3_Version__Two ... ok test history::tests::deserialize_across_versions::case_3_from_v2::decode_as_1_Version__Zero ... ok test history::tests::deserialize_v2_written_without_author_kind ... ok test history::store::tests::missing_and_undecodable_ids_are_skipped ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_2_agent_name_is_the_username ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_1_agent_name_on_another_users_machine ... ok test history::tests::disable_secrets ... ok test history::store::tests::test_history_skips_corrupt_records ... ok test history::store::tests::delete_batch_appends_ordered_tombstones ... ok test history::store::tests::test_incremental_build_returns_created_histories ... ok test database::test::test_search_shells::case_2_bash ... ok test database::test::test_search_shells::case_3_bash_unknown ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_3_plain_user ... ok test database::test::test_search_rejects_unparsable_date_filter::case_2_after ... ok test database::test::test_search_rejects_unparsable_date_filter::case_1_before ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_4_hostname_without_a_username ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_5_colonless_hostname_is_the_agent_name ... ok test database::test::test_search_shells::case_1_all ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_6_stated_agent ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_7_stated_user ... ok test history::tests::serialize_deserialize_roundtrip::case_1_basic ... ok test history::tests::serialize_deserialize_roundtrip::case_2_deleted ... ok test history::tests::serialize_deserialize_roundtrip::case_3_with_author_and_intent ... ok test history::tests::is_agent_uses_the_username_when_no_kind_was_stated::case_8_stated_agent_with_a_human_name ... ok test history::tests::known_agents_include_pi ... ok test history::tests::should_save_respects_privacy::case_2_leading_space ... ok test history::tests::should_save_respects_privacy::case_3_empty ... ok test history::tests::the_all_user_filter_excludes_agents ... ok test hub::tests::browser_with_a_local_display::case_1_x11 ... ok test history::tests::should_save_respects_privacy::case_5_secret_dir ... ok test hub::tests::browser_with_a_local_display::case_2_wayland ... ok test history::tests::should_save_respects_privacy::case_6_psql ... ok test hub::tests::no_browser_on_headless_unix ... ok test hub::tests::debug_omits_the_auth_code ... ok test hub::tests::no_browser_over_ssh::case_1_ssh_connection ... ok test hub::tests::no_browser_over_ssh::case_2_ssh_tty ... ok test import::bash::test::parse_strictly_sorted::case_1_no_timestamps ... ok test import::bash::test::parse_strictly_sorted::case_2_partial_timestamps ... ok test import::bash::test::parse_with_timestamps ... ok test import::bash::test::timestamp_near_range_start_does_not_panic_on_backfill ... ok test import::nu_histdb::test::corrupt_rows_degrade::case_1_valid ... ok test import::nu_histdb::test::corrupt_rows_degrade::case_2_out_of_range_timestamp ... ok test import::fish::test::parse_out_of_range_timestamp ... ok test import::nu_histdb::test::corrupt_rows_degrade::case_3_invalid_utf8_command ... ok test import::fish::test::parse_complex ... ok test import::powershell::test::imports_commands::case_2_crlf ... ok test import::powershell::test::imports_commands::case_1_lf ... ok test import::replxx::test::skips_invalid_utf8_line ... ok test import::powershell::test::test_timestamps ... ok test import::replxx::test::parse_complex ... ok test import::xonsh::tests::out_of_range_timestamp_falls_back_to_epoch ... ok test import::resh::test::single_entry_timestamp_and_duration::case_4_clock_skew ... ok test import::resh::test::single_entry_timestamp_and_duration::case_1_zero_duration ... ok test import::resh::test::single_entry_timestamp_and_duration::case_3_corrupt_after ... ok test import::resh::test::single_entry_timestamp_and_duration::case_2_corrupt_before ... ok test import::resh::test::out_of_range_timestamp_falls_back_to_epoch ... ok test import::bash::test::timestamp_near_range_end_does_not_panic_on_increment ... ok test history::tests::should_save_respects_privacy::case_4_stripe_key ... ok test database::test::test_search_shells::case_5_unknown ... ok test database::test::test_search_shells::case_6_fish ... ok test history::tests::should_save_respects_privacy::case_1_normal ... ok test database::test::test_search_shells::case_4_bash_zsh ... ok test database::test::test_search_shells::case_7_fish_unknown ... ok test import::xonsh::tests::test_hist_dir_xonsh ... ok test database::test::test_search_timezone_before_after::case_2_bare_string_uses_configured_offset ... ok test import::xonsh_sqlite::tests::out_of_range_timestamp_falls_back_to_epoch ... ok test import::xonsh_sqlite::tests::test_db_path_xonsh ... ok test import::zsh::test::parse_extended_simple::case_1_zero_duration ... ok test import::zsh::test::parse_extended_simple::case_2_multi_semicolon ... ok test import::zsh::test::parse_extended_simple::case_3_unicode_command ... ok test import::zsh::test::parse_extended_simple::case_4_trailing_newline_escape ... ok test import::zsh::test::parse_malformed_extended_lines::case_1_no_colon ... ok test import::zsh::test::parse_malformed_extended_lines::case_2_no_semicolon ... ok test import::zsh::test::parse_malformed_extended_lines::case_3_out_of_range_time ... ok test import::zsh::test::parse_malformed_extended_lines::case_4_duration_saturates ... ok test import::zsh::test::test_parse_file ... ok test import::zsh::test::test_parse_metafied ... ok test import::xonsh_sqlite::tests::test_import ... ok test import::zsh::test::timestamp_near_range_start_does_not_panic_on_backfill ... ok test import::zsh_histdb::test::duration_saturates_instead_of_overflowing ... ok test ordering::tests::reorder_ranks::case_1_nonmatch_sorts_last ... ok test ordering::tests::reorder_ranks::case_2_matches_by_span ... ok test meta::tests::logged_in_with_either_session::case_2_hub ... ok test plugin::tests::test_get_install_message ... ok test packfile::record::tests::pack_ia_serialization_is_stable::case_1 ... ok test plugin::tests::test_registry_creation ... ok test plugin::tests::test_get_plugin ... ok test meta::tests::test_latest_version ... ok test meta::tests::test_get_set_delete ... ok test meta::tests::memory_store_skips_file_migration ... ok test meta::tests::test_session_crud ... ok test meta::tests::test_host_id_generation_and_stability ... ok test meta::tests::test_version_check_time ... ok test meta::tests::legacy_files_are_migrated_from_the_given_data_dir ... ok test database::test::test_search_timezone_before_after::case_1_explicit_offset_wins ... ok test record::sqlite_store::tests::create_db ... ok test import::zsh::test::timestamp_near_range_end_does_not_panic_on_increment ... ok test record::decode::tests::a_panic_in_decode_is_raised_to_the_caller - should panic ... ok test record::sqlite_store::tests::append_a_bunch ... ok test packfile::packer::tests::packs_multiple_and_leaves_remainder ... ok test import::zsh_histdb::test::test_env_vars ... ok test record::sqlite_store::tests::last ... ok test record::sqlite_store::tests::get_record ... ok test record::sqlite_store::tests::first ... ok test import::zsh_histdb::test::test_import ... ok test record::sqlite_store::tests::len ... ok test settings::daemon::unix_tests::a_socket_dir_reachable_by_others_is_rejected::case_1_group_readable ... ok test settings::daemon::unix_tests::a_socket_dir_reachable_by_others_is_rejected::case_2_other_readable ... ok test record::sqlite_store::tests::len_tag ... ok test record::sqlite_store::tests::len_different_tags ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_01_unconfigured ... ok test record::sqlite_store::tests::first_gap_finds_the_contiguous_frontier ... ok test settings::daemon::unix_tests::a_socket_dir_reachable_by_others_is_rejected::case_3_world_writable ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_02_unconfigured_without_runtime_dir ... ok test settings::daemon::unix_tests::a_symlinked_socket_dir_is_rejected ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_03_systemd ... ok test settings::daemon::unix_tests::default_socket_dir_is_created_privately_then_reused ... ok test settings::daemon::unix_tests::no_directory_is_created_for_a_user_defined_socket ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_04_systemd_without_runtime_dir ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_05_configured ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_06_configured_with_systemd ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_07_tmpdir_set ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_08_tmpdir_set_without_runtime_dir ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_09_tmpdir_set_with_systemd ... ok test settings::daemon::unix_tests::socket_paths_are_tried_in_priority_order::case_10_tmpdir_set_and_configured ... ok test settings::daemon::unix_tests::the_default_socket_lives_in_a_per_uid_tmp_dir::case_1_default_tmp_dir ... ok test settings::daemon::unix_tests::the_default_socket_lives_in_a_per_uid_tmp_dir::case_2_tmpdir_set ... ok test settings::db_location::tests::an_absolute_db_file_is_kept ... ok test settings::daemon::unix_tests::the_existing_socket_is_the_first_one_present::case_1_none_exist ... ok test settings::db_location::tests::db_location_deserializes::case_1_relative ... ok test settings::db_location::tests::db_location_deserializes::case_2_unset_variable ... ok test settings::db_location::tests::db_location_deserializes::case_3_memory ... ok test settings::db_location::tests::db_location_deserializes::case_4_sqlite_uri ... ok test settings::daemon::unix_tests::the_existing_socket_is_the_first_one_present::case_3_only_the_envless_fallback_exists ... ok test settings::db_location::tests::db_location_deserializes::case_5_file_uri ... ok test settings::daemon::unix_tests::the_existing_socket_is_the_first_one_present::case_2_only_the_runtime_fallback_exists ... ok test settings::db_location::tests::db_location_deserializes::case_6_variable_holding_a_uri ... ok test settings::disk_usage_limit::tests::an_absolute_limit_never_touches_the_filesystem ... ok test settings::disk_usage_limit::tests::converts_from_its_parts ... ok test settings::disk_usage_limit::tests::deserializes_from_text_or_an_integer::case_1_text_unlimited ... ok test settings::disk_usage_limit::tests::deserializes_from_text_or_an_integer::case_2_text_percent ... ok test settings::disk_usage_limit::tests::deserializes_from_text_or_an_integer::case_3_text_size ... ok test settings::disk_usage_limit::tests::deserializes_from_text_or_an_integer::case_4_integer_bytes ... ok test settings::disk_usage_limit::tests::displays_the_text_form::case_1_unlimited ... ok test settings::disk_usage_limit::tests::displays_the_text_form::case_2_size ... ok test record::sqlite_store::tests::reads_legacy_text_rows_and_new_blob_rows ... ok test settings::daemon::unix_tests::the_existing_socket_is_the_first_one_present::case_4_runtime_fallback_beats_envless ... ok test settings::disk_usage_limit::tests::displays_the_text_form::case_3_percent ... ok test settings::disk_usage_limit::tests::parses_every_form::case_01_unlimited ... ok test settings::disk_usage_limit::tests::parses_every_form::case_02_unlimited_is_case_insensitive ... ok test settings::disk_usage_limit::tests::parses_every_form::case_03_unlimited_with_whitespace ... ok test settings::disk_usage_limit::tests::parses_every_form::case_04_percent ... ok test settings::disk_usage_limit::tests::parses_every_form::case_05_percent_with_whitespace ... ok test settings::disk_usage_limit::tests::parses_every_form::case_06_percent_above_the_disk ... ok test settings::disk_usage_limit::tests::parses_every_form::case_07_fractional_percent ... ok test settings::disk_usage_limit::tests::parses_every_form::case_08_size ... ok test settings::disk_usage_limit::tests::parses_every_form::case_09_binary_size ... ok test settings::disk_usage_limit::tests::display_round_trips ... ok test settings::disk_usage_limit::tests::parses_every_form::case_10_size_with_fraction ... ok test settings::daemon::unix_tests::the_existing_socket_is_the_first_one_present::case_5_all_exist ... ok test settings::disk_usage_limit::tests::parses_every_form::case_11_bare_bytes ... ok test settings::disk_usage_limit::tests::rejects_a_negative_percent ... ok test settings::disk_usage_limit::tests::rejects_an_invalid_size::case_1_empty ... ok test settings::disk_usage_limit::tests::rejects_an_invalid_size::case_2_unknown_unit ... ok test settings::disk_usage_limit::tests::rejects_an_invalid_size::case_3_misspelt_unlimited ... ok test settings::disk_usage_limit::tests::rejects_other_json_values::case_1_negative ... ok test settings::disk_usage_limit::tests::rejects_other_json_values::case_2_bool ... ok test settings::disk_usage_limit::tests::rejects_other_json_values::case_3_bad_text ... ok test settings::disk_usage_limit::tests::resolves_against_a_disk_size::case_1_unlimited_has_no_bound ... ok test settings::disk_usage_limit::tests::resolves_against_a_disk_size::case_2_bytes_are_absolute ... ok test settings::disk_usage_limit::tests::resolves_against_a_disk_size::case_3_bytes_are_not_clamped_to_the_disk ... ok test settings::disk_usage_limit::tests::resolves_against_a_disk_size::case_4_percent_is_a_share_of_the_disk ... ok test settings::output::tests::effective_limits_returns_the_configured_limits_when_enabled ... ok test settings::output::tests::effective_limits_uses_defaults_when_disabled ... ok test settings::shells::tests::deserialize::case_5_empty_array ... ok test settings::shells::tests::deserialize::case_4_array_with_duplicates ... ok test settings::shells::tests::deserialize::case_2_auto ... ok test settings::shells::tests::deserialize::case_1_all ... ok test settings::shells::tests::deserialize::case_3_array ... ok test settings::shells::tests::all_and_the_empty_array_are_the_same_value ... ok test settings::shells::tests::deserialize::case_6_invalid_string ... ok test settings::shells::tests::serialize::case_2_all ... ok test settings::shells::tests::serialize::case_1_auto ... ok test settings::shells::tests::serialize::case_3_empty_array ... ok test settings::shells::tests::serialize::case_4_array ... ok test settings::shells::tests::to_filter::case_01_all_bash ... ok test settings::shells::tests::to_filter::case_02_all_none ... ok test settings::shells::tests::to_filter::case_03_auto_bash ... ok test settings::shells::tests::to_filter::case_04_auto_none ... ok test settings::disk_usage_limit::tests::serde_round_trips ... ok test settings::shells::tests::to_filter::case_05_fixed_bash_zsh ... ok test settings::shells::tests::to_filter::case_06_fixed_bash_unknown_zsh ... ok test settings::shells::tests::to_filter::case_07_fixed_bash_zsh_none ... ok test settings::shells::tests::to_filter::case_08_fixed_empty_bash ... ok test settings::shells::tests::to_filter::case_09_fixed_empty_none ... ok test settings::shells::tests::to_filter::case_10_auto_empty ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_03_record_store_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_01_data_dir ... ok test settings::tests::a_data_dir_with_a_dollar_in_its_name_loads ... ok test record::sqlite_store::tests::push_batch_unique_is_all_or_nothing ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_02_db_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_04_key_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_05_pidfile_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_06_logs_dir ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_07_search_log_file ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_08_daemon_log_file ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_09_ai_log_file ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_10_kv_db_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_12_meta_db_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_13_ai_db_path ... ok test settings::tests::a_path_setting_with_an_unset_variable_loads_as_written::case_11_scripts_db_path ... ok test settings::tests::ai_endpoint_protocol_resolution::case_2_auto_api_address ... ok test settings::tests::ai_endpoint_protocol_resolution::case_1_auto_hub_address ... ok test settings::tests::ai_endpoint_protocol_resolution::case_3_auto_third_party_address ... ok test settings::tests::ai_endpoint_protocol_resolution::case_4_auto_localhost ... ok test settings::tests::ai_endpoint_protocol_resolution::case_5_explicit_hub_overrides_address ... ok test settings::tests::an_empty_path_setting_is_its_default::key_02___db_path__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_03___record_store_path__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_05___daemon_pidfile_path__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_04___key_path__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_06___logs_dir__ ... ok test import::xonsh::tests::test_import ... ok test settings::tests::an_empty_path_setting_is_its_default::key_01___data_dir__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_07___logs_search_file__ ... ok test settings::tests::ai_endpoint_protocol_resolution::case_6_explicit_oss_overrides_address ... ok test settings::tests::can_parse_offset_timezone_spec::case_01_plus_two_digit_hours ... ok test settings::tests::can_parse_offset_timezone_spec::case_02_minus_two_digit_hours ... ok test settings::tests::can_parse_offset_timezone_spec::case_03_plus_hours_minutes ... ok test settings::tests::can_parse_offset_timezone_spec::case_04_minus_hours_minutes ... ok test settings::tests::builder_with_data_dir_uses_custom_paths ... ok test settings::tests::can_parse_offset_timezone_spec::case_05_plus_single_digit_hour ... ok test settings::tests::can_parse_offset_timezone_spec::case_06_minus_single_digit_hour ... ok test settings::tests::an_empty_path_setting_is_its_default::key_08___logs_daemon_file__ ... ok test settings::tests::can_parse_offset_timezone_spec::case_07_plus_single_digit_hour_minutes ... ok test settings::tests::an_empty_path_setting_is_its_default::key_10___kv_db_path__ ... ok test settings::tests::an_empty_path_setting_is_its_default::key_09___logs_ai_file__ ... ok test settings::tests::can_parse_offset_timezone_spec::case_08_minus_single_digit_hour_minutes ... ok test settings::tests::an_empty_path_setting_is_its_default::key_11___scripts_db_path__ ... ok test settings::tests::can_parse_offset_timezone_spec::case_09_plus_fully_qualified ... ok test settings::tests::can_parse_offset_timezone_spec::case_10_minus_fully_qualified ... ok test settings::tests::an_empty_path_setting_is_its_default::key_12___meta_db_path__ ... ok test settings::tests::can_parse_offset_timezone_spec::case_11_plus_zero_hour_minutes ... ok test settings::tests::can_parse_offset_timezone_spec::case_12_minus_zero_hour_minutes ... ok test settings::tests::an_empty_path_setting_is_its_default::key_13___ai_db_path__ ... ok test settings::tests::can_parse_offset_timezone_spec::case_13_plus_with_seconds ... ok test settings::tests::can_parse_offset_timezone_spec::case_14_minus_with_seconds ... ok test settings::tests::data_dir_prefers_the_configured_one::case_1_configured ... ok test settings::tests::data_dir_prefers_the_configured_one::case_2_unset ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_1_db_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_1_db_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_1_db_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_2_record_store_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_2_record_store_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_3_kv_db_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_2_record_store_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_3_kv_db_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_3_kv_db_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_4_scripts_db_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_4_scripts_db_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_4_scripts_db_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_5_meta_db_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::default_addresses_parse ... ok test settings::tests::effective_search_mode_matches_requested::case_1 ... ok test settings::tests::effective_search_mode_matches_requested::case_2 ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_5_meta_db_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_5_meta_db_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_6_ai_db_path::value_1____memory___ ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_6_ai_db_path::value_2___sqlite____tmp_history_db__ ... ok test settings::tests::effective_search_mode_matches_requested::case_3 ... ok test settings::tests::effective_search_mode_matches_requested::case_4 ... ok test settings::tests::database_paths_take_sqlite_urls_as_written::case_6_ai_db_path::value_3___file_history_dbmodememory__ ... ok test settings::tests::effective_search_mode_matches_requested::case_5 ... ok test settings::tests::keymap_config_deserializes_vim_normal ... ok test settings::tests::keymap_config_deserializes_simple_binding ... ok test settings::tests::keymap_config_deserializes_conditional_binding ... ok test settings::tests::environment_overrides_the_config_file::case_2_file_without_env ... ok test settings::tests::environment_overrides_the_config_file::case_1_env_overrides_the_file ... ok test settings::tests::keymap_config_is_empty_when_default ... ok test settings::tests::keymap_config_mixed_modes ... ok test settings::tests::legacy_ai_session_settings_are_read_as_threads ... ok test settings::tests::output_command_filter_is_kept_with_capture_off::case_1_enabled ... ok test settings::tests::output_command_filter_matches_the_command_line::case_1_anchored ... ok test settings::tests::output_command_filter_matches_the_command_line::case_2_anchor_holds ... ok test settings::tests::output_command_filter_matches_the_command_line::case_3_unanchored ... ok test settings::tests::negative_session_continue_minutes_disables_resume ... ok test settings::tests::output_command_filter_matches_the_command_line::case_5_omitted ... ok test settings::tests::example_config_empty_tables_change_nothing ... ok test settings::tests::rejects_timezone_spec_without_leading_sign::case_1_bare_hour ... ok test settings::tests::rejects_timezone_spec_without_leading_sign::case_2_bare_hour_minutes ... ok test settings::tests::output_command_filter_is_kept_with_capture_off::case_2_disabled ... ok test settings::tests::output_command_filter_matches_the_command_line::case_4_any_of_several ... ok test settings::tests::redact_patterns_reject_an_invalid_expression ... ok test settings::tests::output_command_filter_rejects_an_invalid_expression ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_01_data_dir::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_01_data_dir::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_02_db_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_03_record_store_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_02_db_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_03_record_store_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_04_key_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_04_key_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_05_socket_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_05_socket_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_06_pidfile_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_06_pidfile_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_07_logs_dir::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_07_logs_dir::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_08_kv_db_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_09_scripts_db_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_08_kv_db_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_09_scripts_db_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_10_meta_db_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_10_meta_db_path::config_dir_1____config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_11_ai_db_path::config_dir_2___config__ ... ok test settings::tests::relative_paths_resolve_next_to_config_toml::case_11_ai_db_path::config_dir_1____config__ ... ok test settings::tests::requested_search_mode_parses_correctly::case_3 ... ok test settings::tests::requested_search_mode_parses_correctly::case_1 ... ok test settings::tests::requested_search_mode_parses_correctly::case_2 ... ok test settings::tests::requested_search_mode_parses_correctly::case_4 ... ok test settings::tests::requested_search_mode_parses_correctly::case_5 ... ok test settings::tests::security_settings_default_to_the_built_in_rules ... ok test settings::tests::skim_is_requested_but_resolves_to_fuzzy ... ok test settings::tests::threads_defaults_resolve ... ok test settings::tests::socket_path_loads_leniently::case_2_unset_variable ... ok test settings::tests::socket_path_loads_leniently::case_1_empty ... ok test settings::tests::skim_shell_up_key_binding_resolves_to_fuzzy ... ok test settings::tests::threads_default_off_with_tools ... ok test settings::tests::threads_settings_win_over_legacy_ones ... ok test settings::tests::validate_accepts::case_1_valid_config ... ok test settings::tests::validate_accepts::case_3_plain_data_dir ... ok test settings::tests::validate_accepts::case_4_path_with_an_unset_variable ... ok test settings::tests::validate_accepts::case_6_sqlite_url ... ok test settings::tests::validate_accepts::case_5_empty_path ... ok test settings::tests::validate_rejects::case_2_value_of_the_wrong_type ... ok test settings::tests::validate_rejects::case_1_invalid_enum_variant ... ok test settings::tests::validate_rejects::case_3_invalid_nested_value ... ok test settings::tests::workspace_filter_selection::case_2_not_in_git_context ... ok test settings::threads::tests::empty_table_uses_defaults ... ok test settings::tests::workspace_filter_selection::case_1_in_git_context ... ok test settings::tests::validate_rejects::case_4_more_than_one_expanding_column ... ok test settings::tests::workspace_filter_selection::case_3_workspaces_disabled ... ok test settings::watcher::tests::reloads_on_writes_creates_and_renames_onto_the_file ... ok test settings::threads::tests::parses_every_field ... ok test settings::tests::validate_accepts::case_2_empty_config ... ok test theme::theme_tests::parses_color_string::case_1_palette_name ... ok test theme::theme_tests::parses_color_string::case_2_hex ... ok test theme::theme_tests::parses_color_string::case_3_at_named ... ok test theme::theme_tests::debug_theme_logs::debug_2_false ... ok test theme::theme_tests::parses_color_string::case_4_at_rgb ... ok test theme::theme_tests::parses_color_string::case_5_at_ansi ... ok test theme::theme_tests::rejects_at_prefixed_color_string::case_1_bare_at ... ok test theme::theme_tests::rejects_at_prefixed_color_string::case_2_wrong_case ... ok test theme::theme_tests::rejects_at_prefixed_color_string::case_3_malformed_name ... ok test theme::theme_tests::rejects_at_prefixed_color_string::case_4_ansi_out_of_range ... ok test theme::theme_tests::debug_theme_logs::debug_1_true ... ok test theme::theme_tests::rejects_color_string::case_1_empty ... ok test theme::theme_tests::rejects_color_string::case_2_not_in_palette_word ... ok test theme::theme_tests::rejects_color_string::case_3_not_in_palette_phrase ... ok test theme::theme_tests::rejects_color_string::case_4_not_in_palette_digits ... ok test theme::theme_tests::rejects_color_string::case_5_hex_too_short ... ok test settings::tests::zero_log_retention_is_accepted ... ok test theme::theme_tests::rejects_color_string::case_6_hex_too_long ... ok test theme::theme_tests::rejects_color_string::case_7_hex_not_hex ... ok test theme::theme_tests::test_can_create_theme ... ok test theme::theme_tests::test_can_fallback_when_meaning_missing ... ok test theme::theme_tests::test_can_get_colors_via_convenience_functions ... ok test theme::theme_tests::test_can_load_builtin_theme::case_1_autumn ... ok test theme::theme_tests::test_can_load_builtin_theme::case_2_pumpkin ... ok test theme::theme_tests::test_no_fallbacks_are_circular ... ok test theme::theme_tests::test_can_use_parent_theme_for_fallbacks ... ok test tui::cursor::cursor_tests::back ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_1_from_start_to_end_of_aaa ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_2_from_within_aaa_to_end_of_aaa ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_3_from_gap_skips_parens_to_end_of_bbb ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_5_non_ascii_from_start_to_test ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_6_non_ascii_from_emoji_to_test ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_7_trailing_multibyte ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_8_empty_string ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_2_from_trailing_space_to_start_of_bbb ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_3_from_start_of_bbb_to_start_of_aaa ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_1_from_end_of_string_to_start_of_bbb ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_4_from_start_of_aaa_to_string_start ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_5_non_ascii_from_test_to_start ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_6_non_ascii_from_emoji_to_start ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_7_trailing_multibyte ... ok test tui::cursor::cursor_tests::emacs_get_prev_word_pos::case_8_empty_string ... ok test tui::cursor::cursor_tests::emacs_get_next_word_pos::case_4_from_after_bbb_to_end_of_string ... ok test tui::cursor::cursor_tests::insert ... ok test tui::cursor::cursor_tests::left ... ok test tui::cursor::cursor_tests::pop ... ok test tui::cursor::cursor_tests::right ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_01_from_string_start_to_start_of_aaa ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_02_from_within_leading_spaces_to_start_of_aaa ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_03_from_start_of_aaa_to_first_parens_block ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_04_from_first_parens_block_to_start_of_bbb ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_05_from_start_of_bbb_to_second_parens_block ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_06_from_second_parens_block_to_end_of_string ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_07_non_ascii_from_start_to_hi ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_08_non_ascii_from_hi_to_emoji ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_09_non_ascii_from_emoji_to_paren ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_10_trailing_multibyte ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_11_boundary_at_last_char ... ok test tui::cursor::cursor_tests::subl_get_next_word_pos::case_12_empty_string ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_01_from_end_of_string_to_second_parens_block ... ok test record::sqlite_store::tests::push_record ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_02_from_second_parens_block_to_start_of_bbb ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_03_from_start_of_bbb_to_first_parens_block ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_04_from_first_parens_block_to_start_of_aaa ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_05_from_start_of_aaa_to_string_start ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_06_non_ascii_from_hi_to_start ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_07_non_ascii_from_paren_to_after_hi ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_08_trailing_multibyte ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_09_boundary_at_first_char ... ok test tui::cursor::cursor_tests::subl_get_prev_word_pos::case_10_empty_string ... ok test tui::key::tests::display_exact::case_1 ... ok test tui::key::tests::display_exact::case_2 ... ok test tui::key::tests::display_exact::case_3 ... ok test tui::key::tests::display_exact::case_4 ... ok test tui::key::tests::display_exact::case_5 ... ok test tui::key::tests::display_exact::case_6 ... ok test tui::key::tests::display_round_trip::s_01___ctrl_c__ ... ok test tui::key::tests::display_round_trip::s_02___alt_f__ ... ok test tui::key::tests::display_round_trip::s_03___enter__ ... ok test tui::key::tests::display_round_trip::s_04___G__ ... ok test tui::key::tests::display_round_trip::s_05___tab__ ... ok test tui::key::tests::display_round_trip::s_06___pageup__ ... ok test tui::key::tests::display_round_trip::s_07___f1__ ... ok test tui::key::tests::display_round_trip::s_08___f12__ ... ok test tui::key::tests::display_round_trip::s_09___ctrl_f5__ ... ok test tui::key::tests::display_round_trip::s_10___alt_f10__ ... ok test tui::key::tests::display_round_trip::s_11___insert__ ... ok test tui::key::tests::display_round_trip::s_12___super_a__ ... ok test tui::key::tests::display_round_trip::s_13___gg__ ... ok test tui::key::tests::from_event_cases::case_1_ctrl_c ... ok test tui::key::tests::from_event_cases::case_2_enter ... ok test tui::key::tests::from_event_cases::case_3_upper_g ... ok test tui::key::tests::from_event_cases::case_4_super_a ... ok test tui::key::tests::from_event_cases::case_5_f1 ... ok test tui::key::tests::from_event_cases::case_6_f12_ctrl ... ok test tui::key::tests::from_event_cases::case_7_insert ... ok test tui::key::tests::from_event_cases::case_8_backtab ... ok test tui::key::tests::from_event_cases::case_9_backtab_ctrl ... ok test tui::key::tests::from_event_matches_parsed::case_1 ... ok test tui::key::tests::from_event_matches_parsed::case_2 ... ok test tui::key::tests::from_event_matches_parsed::case_3 ... ok test tui::key::tests::from_event_matches_parsed::case_4 ... ok test tui::key::tests::from_event_matches_parsed::case_5 ... ok test tui::key::tests::parse_errors::case_1 ... ok test tui::key::tests::parse_errors::case_2 ... ok test tui::key::tests::parse_errors::case_3 ... ok test tui::key::tests::parse_errors::case_4 ... ok test tui::key::tests::parse_multi_key_sequence ... ok test tui::key::tests::parse_single_key::case_01_char_a ... ok test tui::key::tests::parse_single_key::case_02_enter ... ok test tui::key::tests::parse_single_key::case_03_esc ... ok test tui::key::tests::parse_single_key::case_04_tab ... ok test tui::key::tests::parse_single_key::case_05_space ... ok test tui::key::tests::parse_single_key::case_06_ctrl_c ... ok test tui::key::tests::parse_single_key::case_07_alt_f ... ok test tui::key::tests::parse_single_key::case_08_ctrl_alt_x ... ok test tui::key::tests::parse_single_key::case_09_upper_g ... ok test tui::key::tests::parse_single_key::case_10_ctrl_lbracket ... ok test tui::key::tests::parse_single_key::case_11_question ... ok test tui::key::tests::parse_single_key::case_12_slash ... ok test tui::key::tests::parse_single_key::case_13_super_a ... ok test tui::key::tests::parse_single_key::case_14_super_ctrl_c ... ok test tui::key::tests::parse_single_key::case_15_super_g ... ok test tui::key::tests::parse_single_key::case_16_f1 ... ok test tui::key::tests::parse_single_key::case_17_f12_upper ... ok test tui::key::tests::parse_single_key::case_18_ctrl_f5 ... ok test tui::key::tests::parse_single_key::case_19_f24 ... ok test tui::key::tests::parse_single_key::case_20_insert ... ok test tui::key::tests::parse_single_key::case_21_ins ... ok test tui::key::tests::parse_single_key::case_22_ctrl_insert ... ok test tui::key::tests::super_aliases_parse_equal::input_1___super_a__ ... ok test tui::key::tests::super_aliases_parse_equal::input_2___cmd_a__ ... ok test tui::key::tests::super_aliases_parse_equal::input_3___win_a__ ... ok test record::sqlite_store::tests::verify_purge_and_rekey_skip_plaintext_packfile_manifests ... ok test record::sqlite_store::tests::re_encrypt ... ok test settings::tests::every_path_setting_has_a_default ... ok test settings::tests::security_settings_load ... ok test record::decode::tests::decodes_every_record_in_order ... ok test record::sqlite_store::tests::push_batch_unique_rolls_back_across_chunks ... ok test record::sqlite_store::tests::append_a_big_bunch ... ok test history::store::tests::creates_are_split_into_bounded_batches ... ok test database::test::test_search_bench_dupes ... ok test packfile::packer::tests::packing_tiles_a_maximal_prefix ... ok test packfile::packer::tests::packing_is_idempotent_and_monotonic ... ok test ai_session::database::tests::grouping_does_not_depend_on_arrival_order ... ok test ai_session::database::tests::a_content_derived_call_counts_once_per_lineage ... ok test ai_session::database::tests::shared_calls_are_attributed_the_same_in_any_order ... ok test ai_session::database::tests::copies_group_under_their_original_in_any_order ... ok test meta::tests::waits_out_another_process_committing_slowly ... ok test result: ok. 974 passed; 0 failed; 0 ignored; 0 measured; 59 filtered out; finished in 7.01s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_common-e1e3ce15da5d2420) running 3430 tests test ansi::tests::empty_input_is_empty_regardless_of_size::rows_2_nz_24_::cols_1_nz_1_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_1_nz_1_::cols_1_nz_1_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_1_nz_1_::cols_2_nz_80_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_2_nz_24_::cols_2_nz_80_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_1_nz_1_::cols_3_nz_u16__MAX_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_3_nz_u16__MAX_::cols_1_nz_1_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_3_nz_u16__MAX_::cols_3_nz_u16__MAX_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_3_nz_u16__MAX_::cols_2_nz_80_ ... ok test ansi::tests::empty_input_is_empty_regardless_of_size::rows_2_nz_24_::cols_3_nz_u16__MAX_ ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_07_consecutive_crlfs ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_05_crlf_between_text ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_01_empty ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_08_trailing_cr ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_03_crlf ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_02_bare_lf ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_06_consecutive_bare_lfs ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_04_bare_lf_between_text ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_09_leading_cr ... ok test ansi::tests::onlcr_matches_the_byte_at_a_time_implementation::case_10_crlf_then_bare_lf ... ok test ansi::tests::onlcr_never_yields_an_empty_chunk ... ok test ansi::tests::renders_expected_plain_text::case_2_empty ... ok test ansi::tests::long_lines_wrap_at_the_column_boundary ... ok test ansi::tests::trailing_blank_lines_are_trimmed ... ok test ansi::tests::output_still_on_the_alternate_screen_is_returned ... ok test ansi::tests::renders_expected_plain_text::case_1_plain ... ok test ansi::tests::renders_expected_plain_text::case_3_single_backspace ... ok test ansi::tests::renders_expected_plain_text::case_4_backspace_storm ... ok test ansi::tests::renders_expected_plain_text::case_7_carriage_return_rewrite ... ok test ansi::tests::alternate_screen_output_is_dropped_once_it_is_left ... ok test ansi::tests::wide_character_on_a_one_column_screen ... ok test ansi::tests::interior_and_leading_blank_lines_are_kept ... ok test ansi::tests::renders_expected_plain_text::case_9_tab_expands_to_spaces ... ok test ansi::tests::row_padding_is_trimmed_but_wrapped_spaces_are_kept ... ok test ansi::tests::renders_expected_plain_text::case_6_utf8_after_backspace ... ok test ansi::tests::renders_expected_plain_text::case_8_bare_lf_is_newline ... ok test db::sqlite::fts::tests::any_expression_ors_prefix_terms::case_1_single ... ok test db::sqlite::fts::tests::any_expression_ors_prefix_terms::case_2_many ... ok test ansi::tests::rows_scrolled_off_the_screen_are_still_returned::case_3_taller_than_the_output ... ok test ansi::tests::rows_scrolled_off_the_screen_are_still_returned::case_1_one_row ... ok test ansi::tests::rows_scrolled_off_the_screen_are_still_returned::case_2_shorter_than_the_output ... ok test ansi::tests::renders_expected_plain_text::case_5_ansi_and_percent_marker ... ok test db::sqlite::fts::tests::any_expression_ors_prefix_terms::case_4_quote ... ok test db::sqlite::fts::tests::any_expression_ors_prefix_terms::case_5_blank ... ok test db::sqlite::fts::tests::any_expression_ors_prefix_terms::case_3_phrase ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_1_single_term ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_2_terms_are_anded ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_3_words_of_a_term_are_a_phrase ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_4_embedded_quote_is_doubled ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_5_surrounding_whitespace_trimmed ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_6_blank_term_is_skipped ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_7_operator_char_kept_literal ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_8_no_terms_is_none ... ok test db::sqlite::fts::tests::match_expression_escapes_each_term::case_9_whitespace_only_is_none ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_6_whitespace_only_is_none ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_4_embedded_quote_is_doubled ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_5_empty_is_none ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_2_only_the_last_term ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_3_trailing_whitespace_finishes_the_term ... ok test db::sqlite::fts::tests::prefix_match_expression_prefixes_the_last_term::case_1_single_term ... ok test db::sqlite::fts::tests::prefix_match_expression_runs_against_fts5::case_2_partial_phrase ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_5_two_matches_case_preserved ... ok test db::sqlite::fts::tests::prefix_match_expression_runs_against_fts5::case_5_operator_soup ... ok test db::sqlite::fts::tests::bind_match_query_neutralizes_fts5_operators ... ok test db::sqlite::fts::tests::prefix_match_expression_runs_against_fts5::case_4_punctuation_only ... ok test db::sqlite::fts::tests::highlight_of_an_unmatched_column_yields_no_ranges ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_1_start_of_body ... ok test db::sqlite::fts::tests::prefix_match_expression_runs_against_fts5::case_3_finished_term_is_not_a_prefix ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_3_multibyte_prefix ... ok test db::sqlite::fts::tests::prefix_match_expression_runs_against_fts5::case_1_partial_token ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_6_stray_source_marker ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_4_multibyte_match ... ok test db::sqlite::fts::tests::highlight_round_trips_through_fts5::case_2_middle_of_body ... ok test db::sqlite::observe::driver::tests::mutate_detects_insert_update_delete ... ok test db::sqlite::observe::driver::tests::mutate_ignores_value_preserving_write ... ok test db::sqlite::observe::driver::tests::append_tails_reserved_word_identifiers ... ok test db::sqlite::observe::driver::tests::append_without_identity_never_rewinds ... ok test db::sqlite::tests::quote_ident_misspelled_column_is_an_error ... ok test db::sqlite::tests::quote_ident_round_trips::case_1_backtick ... ok test db::sqlite::tests::quote_ident_round_trips::case_2_double_quote ... ok test db::sqlite::tests::quote_ident_round_trips::case_3_statement_breakout ... ok test db::tests::banned_pattern_classifies::case_01_bare_star ... ok test db::tests::banned_pattern_classifies::case_02_many_spaces_star ... ok test db::tests::banned_pattern_classifies::case_03_tab_star ... ok test db::tests::banned_pattern_classifies::case_04_newline_star ... ok test db::tests::banned_pattern_classifies::case_05_qualified_star ... ok test db::tests::banned_pattern_classifies::case_06_star_amongst_columns ... ok test db::tests::banned_pattern_classifies::case_07_alter ... ok test db::tests::banned_pattern_classifies::case_08_alter_upper ... ok test db::tests::banned_pattern_classifies::case_09_explicit ... ok test db::tests::banned_pattern_classifies::case_10_count_star ... ok test db::tests::banned_pattern_classifies::case_11_pragma ... ok test db::sqlite::observe::driver::tests::from_now_anchors_on_the_newest_row::case_1_rowid_reused ... ok test db::sqlite::observe::driver::tests::slow_consumer_loses_no_rows ... ok test db::sqlite::observe::driver::tests::append_tail_emits_new_rows_in_order ... ok test db::sqlite::observe::driver::tests::a_query_error_surfaces_and_the_tail_takes_the_table_up_again ... ok test db::sqlite::observe::driver::tests::from_now_anchors_on_the_newest_row::case_2_wiped ... ok test db::tests::banned_pattern_classifies::case_13_insert ... ok test db::sqlite::observe::tests::handle_forwards_stream_items ... ok test db::sqlite::observe::driver::tests::concurrent_writers_no_loss ... ok test db::tests::banned_pattern_classifies::case_12_scalar_fn ... ok test db::tests::banned_pattern_classifies::case_14_migration_only_add ... ok test db::sqlite::observe::driver::tests::replay_controls_preexisting_rows::case_1_from_now ... ok test db::sqlite::observe::driver::tests::replay_controls_preexisting_rows::case_2_all ... ok test db::tests::db_url_as_str_matches_view::case_3_sqlite ... ok test db::tests::db_url_debug_redacts_passwords::case_4_sqlite ... ok test db::sqlite::observe::driver::tests::append_rewinds_when_delivered_rows_are_deleted_and_their_rowids_reused ... ok test db::tests::db_url_rejects_unknown_scheme::case_1_redis ... ok test db::tests::a_qualified_star_is_always_rejected ... ok test db::tests::db_url_as_str_matches_view::case_2_mysql ... ok test db::tests::db_url_rejects_unknown_scheme::case_2_bare ... ok test db::tests::db_url_as_str_matches_view::case_1_postgres ... ok test db::tests::db_url_debug_redacts_passwords::case_3_postgres_no_password ... ok test db::tests::db_url_debug_redacts_passwords::case_2_mysql_password ... ok test db::tests::db_url_debug_redacts_passwords::case_1_postgres_password ... ok test db::tests::db_url_serde_round_trips_through_the_real_connection_string ... ok test db::tests::sqlite_url_reaches_sqlx_byte_for_byte::case_1_path ... ok test db::tests::sqlite_url_reaches_sqlx_byte_for_byte::case_2_memory ... ok test db::tests::a_bare_star_selector_is_always_rejected ... ok test dirs::tests::ai_items_do_without_a_home_dir_given_xdg_config_home::child_3___skills_foo_SKILL_md__ ... ok test dirs::tests::ai_items_do_without_a_home_dir_given_xdg_config_home::child_2___TERMINAL_md__ ... ok test dirs::tests::ai_items_do_without_a_home_dir_given_xdg_config_home::child_1___permissions_ai_toml__ ... ok test dirs::tests::atuin_home_converts_to_its_path::case_1_set ... ok test dirs::tests::atuin_home_converts_to_its_path::case_2_default ... ok test db::tests::explicit_columns_survive_add_column::case_1_add_one ... ok test db::tests::explicit_columns_survive_add_column::case_2_add_several ... ok test dirs::tests::an_old_home_scoped_ai_file_is_not_the_global_one::item_1___permissions_ai_toml__ ... ok test dirs::tests::an_old_home_scoped_ai_file_is_not_the_global_one::item_2___TERMINAL_md__ ... ok test dirs::tests::atuin_theme_dir_is_ignored_for_other_items::child_1___config_toml__ ... ok test ansi::tests::onlcr_agrees_with_the_byte_at_a_time_implementation ... ok test dirs::tests::an_old_home_scoped_ai_file_is_not_the_global_one::item_3___skills__ ... ok test dirs::tests::atuin_theme_dir_is_ignored_for_other_items::child_2___TERMINAL_md__ ... ok test dirs::tests::atuin_theme_dir_is_ignored_for_other_items::child_3___skills_foo_SKILL_md__ ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_1____themes________::atuin_home_set_1_false::in_home_1_false ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_1____themes________::atuin_home_set_2_true::in_home_2_true ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_1____themes________::atuin_home_set_2_true::in_home_1_false ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_1____themes________::atuin_home_set_1_false::in_home_2_true ... ok test ansi::tests::onlcr_is_idempotent ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_2____themes_dark_toml_____dark_toml___::atuin_home_set_1_false::in_home_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_2____themes_dark_toml_____dark_toml___::atuin_home_set_2_true::in_home_1_false ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_2____themes_dark_toml_____dark_toml___::atuin_home_set_1_false::in_home_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::atuin_theme_dir_is_used_only_without_atuin_home_or_its_themes::__destruct_1_2____themes_dark_toml_____dark_toml___::atuin_home_set_2_true::in_home_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test db::sqlite::observe::driver::tests::mutate_stream_reconstructs_final_state ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test db::sqlite::observe::driver::tests::append_stream_is_a_strictly_ascending_run ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test ansi::tests::all_rows_are_returned_however_short_the_screen ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test db::tests::explicit_column_lists_are_allowed ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test ansi::tests::to_plain_text_is_idempotent_on_clean_single_line ... ok test db::sqlite::observe::driver::tests::append_replay_all_crosses_page_boundary ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_1____config_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_2____server_toml___true_false_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_3____themes_dark_toml___false_true_false_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_4____permissions_ai_toml___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_5____TERMINAL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_1_false::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_1_false::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_1_Install__AtuinHomeSet::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_2_Install__Legacy::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_1_false::in_legacy_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_1___config_toml__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_looked_up_in_priority_order::__destruct_1_6____skills_foo_SKILL_md___false_false_true_::config_dir_set_2_true::in_config_dir_2_true::install_3_Install__Migrated::in_home_2_true::in_legacy_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_2___server_toml__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_3___TERMINAL_md__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_path_does_without_a_home_dir_where_it_can::case_1_atuin_config_dir ... ok test dirs::tests::config_path_does_without_a_home_dir_where_it_can::case_2_atuin_theme_dir ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_4___permissions_ai_toml__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_5___skills__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test dirs::tests::test_atuin_home ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_1_false::in_new_1_false::migrated_1_false ... ok test dirs::tests::test_atuin_home_absolute ... ok test dirs::tests::test_atuin_home_empty ... ok test dirs::tests::test_atuin_home_relative ... ok test dirs::tests::test_legacy_config_dir ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_1_false::in_new_1_false::migrated_2_true ... ok test dirs::tests::test_legacy_config_dir_xdg ... ok test dirs::tests::config_path_panics_without_a_home_dir_as_a_last_resort - should panic ... ok test dirs::tests::test_legacy_config_dir_xdg_empty ... ok test dirs::tests::test_legacy_data_dir ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_1_false::in_new_2_true::migrated_1_false ... ok test dirs::tests::test_legacy_data_dir_xdg ... ok test dirs::tests::test_legacy_data_dir_xdg_empty ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_1_false::in_new_2_true::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_2_true::in_new_1_false::migrated_1_false ... ok test docs::tests::this_build_resolves_to_a_published_version ... ok test dirs::tests::empty_atuin_theme_dir_is_unset ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_2_true::in_new_1_false::migrated_2_true ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_2_true::in_new_2_true::migrated_1_false ... ok test dirs::tests::config_items_are_resolved_independently::item_6___themes__::in_legacy_2_true::in_new_2_true::migrated_2_true ... ok test docs::tests::urls_are_absolute_and_versioned ... ok test dirs::tests::config_path_rejects_non_items::case_2_absolute - should panic ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_2_stable_patch_one ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_4_stable_large ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_1_stable_patch_zero ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_3_stable_major_bump ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_5_prerelease_beta ... ok test dirs::tests::config_path_rejects_non_items::case_1_empty - should panic ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_6_prerelease_beta_older ... ok test docs::tests::version_segment_maps_release_to_docs_segment::case_7_prerelease_rc ... ok test dirs::tests::config_path_rejects_non_items::case_3_parent - should panic ... ok test encryption::paseto_v4::test::decode_blank_key_is_error_not_panic::case_1_empty ... ok test encryption::paseto_v4::test::decode_blank_key_is_error_not_panic::case_2_whitespace ... ok test encryption::paseto_v4::test::decodes_supported_key_encoding::case_2_canonical ... ok test encryption::paseto_v4::test::decodes_supported_key_encoding::case_1_legacy_v11 ... ok test dirs::tests::legacy_data_dir_is_shadowed_once_atuin_home_has_one::xdg_data_1_false ... ok test dirs::tests::legacy_config_is_shadowed_once_atuin_home_has_one ... ok test dirs::tests::missing_config_avoids_hiding_the_home_config::item_1___config_toml__ ... ok test dirs::tests::legacy_data_dir_is_shadowed_once_atuin_home_has_one::xdg_data_2_true ... ok test dirs::tests::missing_config_avoids_hiding_the_home_config::item_2___server_toml__ ... ok test encryption::paseto_v4::test::encrypted_data_wire_format_is_stable ... ok test encryption::paseto_v4::test::key_encodes_to_canonical_form ... ok test dirs::tests::missing_uncreated_item_resolves_to_atuin_home ... ok test dirs::tests::nested_config_paths_are_resolved_by_their_top_level_item ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_1_empty ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_2_plaintext_manifest ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_3_token_with_footer ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_4_not_base64 ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_5_non_canonical_base64 ... ok test dirs::tests::unconfigured_data_dir_is_new_by_default ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_anything_not_in_wire_form::case_6_cek_wrong_shape ... ok test dirs::tests::unconfigured_data_dir_ignores_legacy_when_atuin_home_is_set ... ok test encryption::paseto_v4::test::encrypted_bytes_refuse_reformatted_cek_json ... ok test encryption::paseto_v4::test::encrypted_bytes_round_trip_and_shrink ... ok test env::tests::a_mock_starts_out_empty ... ok test env::tests::dropping_the_mock_uninstalls_it ... ok test dirs::tests::unconfigured_data_dir_avoids_hiding_the_home_data_dir ... ok test env::tests::non_unicode_values_are_reported_like_std ... ok test dirs::tests::unconfigured_data_dir_is_legacy_when_only_legacy_exists ... ok test env::tests::the_real_environment_is_read_without_a_mock ... ok test env::tests::set_and_removed_variables_are_read_from_the_mock ... ok test env::tests::var_abspath_ignores_relative_paths::case_1_absolute ... ok test env::tests::var_abspath_ignores_relative_paths::case_2_relative ... ok test env::tests::var_abspath_ignores_relative_paths::case_3_empty ... ok test dirs::tests::unconfigured_data_dir_is_new_when_both_exist ... ok test env::tests::var_nonempty_treats_empty_as_unset::case_1_empty ... ok test env::tests::var_nonempty_treats_empty_as_unset::case_2_nonempty ... ok test filter::tests::all_filter_contains_everything ... ok test filter::tests::all_filter_has_no_items ... ok test filter::tests::compare_with_a_non_all_filter::case_1 ... ok test filter::tests::compare_with_a_non_all_filter::case_2 ... ok test filter::tests::compare_with_a_non_all_filter::case_3 ... ok test filter::tests::compare_with_a_non_all_filter::case_4 ... ok test filter::tests::compare_with_a_non_all_filter::case_5 ... ok test filter::tests::compare_with_a_non_all_filter::case_6 ... ok test filter::tests::compare_with_a_non_all_filter::case_7 ... ok test filter::tests::compare_with_an_all_filter::case_1 ... ok test filter::tests::compare_with_an_all_filter::case_2 ... ok test filter::tests::compare_with_an_all_filter::case_3 ... ok test filter::tests::contains_only_listed_items::case_1 ... ok test filter::tests::contains_only_listed_items::case_2 ... ok test filter::tests::contains_only_listed_items::case_3 ... ok test filter::tests::contains_only_listed_items::case_4 ... ok test filter::tests::contains_only_listed_items::case_5 ... ok test filter::tests::contains_only_listed_items::case_6 ... ok test filter::tests::from_list_of_a_mut_slice_sorts_and_dedupes::case_1 ... ok test filter::tests::from_list_of_a_mut_slice_sorts_and_dedupes::case_2 ... ok test filter::tests::from_list_of_a_mut_slice_sorts_and_dedupes::case_3 ... ok test filter::tests::an_all_filter_contains_everything ... ok test filter::tests::from_list_of_a_mut_slice_sorts_and_dedupes::case_4 ... ok test filter::tests::from_list_of_a_mut_slice_sorts_and_dedupes::case_5 ... ok test filter::tests::from_list_of_none_is_an_all_filter ... ok test filter::tests::from_list_rejects_an_empty_list ... ok test filter::tests::from_list_sorts_and_dedupes ... ok test filter::tests::into_list_returns_the_sorted_items ... ok test encryption::paseto_v4::test::key_file_is_owner_only::preexisting_2_true ... ok test encryption::paseto_v4::test::key_file_is_owner_only::preexisting_1_false ... ok test fs::lock::tests::test_open_creates_file_and_parents::mode_1_LockMode__Shared ... ok test fs::lock::tests::test_open_creates_file_and_parents::mode_2_LockMode__Exclusive ... ok test fs::lock::tests::test_open_without_create::mode_1_LockMode__Shared ... ok test fs::lock::tests::test_open_without_create::mode_2_LockMode__Exclusive ... ok test fs::lock::tests::test_try_open_contention::case_1_shared_shared ... ok test encryption::paseto_v4::test::overwrite_path_replaces_an_existing_key ... ok test filter::tests::an_all_filter_compares_equal_only_to_none ... ok test fs::lock::tests::test_try_open_contention::case_2_shared_exclusive ... ok test fs::lock::tests::test_try_open_contention::case_3_exclusive_shared ... ok test fs::lock::tests::test_try_open_contention::case_4_exclusive_exclusive ... ok test encryption::paseto_v4::test::try_write_path_leaves_no_temporary_files ... ok test filter::tests::slice_and_vec_views_preserve_the_items ... ok test fs::tree_watcher::poller::tests::observe_content_event_forgets_vanished_file::case_1_data ... ok test fs::tree_watcher::poller::tests::observe_content_event_forgets_vanished_file::case_2_metadata ... ok test fs::lock::tests::test_wait_contention::case_1_shared_shared ... ok test fs::tree_watcher::poller::tests::observe_content_event_ignores_the_root ... ok test fs::tests::a_file_that_appears_meanwhile_is_never_replaced ... ok test fs::tree_watcher::poller::tests::observe_content_event_signals_change::case_1_data ... ok test fs::tests::write_new_writes_a_new_file_and_never_replaces_one ... ok test fs::tree_watcher::poller::tests::observe_content_event_signals_change::case_2_metadata ... ok test filter::tests::into_list_returns_the_items ... ok test fs::tree_watcher::poller::tests::observe_content_event_signals_change::case_3_any ... ok test filter::tests::from_list_sorts_dedupes_and_rejects_empty_lists ... ok test fs::tests::replace_moves_a_whole_new_file_into_place_only_if_unchanged::case_2_changed ... ok test fs::tree_watcher::poller::tests::observe_content_event_signals_change::case_4_close_write ... ok test fs::tree_watcher::poller::tests::observe_create_event_observes_only_existing::case_1 ... ok test fs::tests::replace_moves_a_whole_new_file_into_place_only_if_unchanged::case_1_unchanged ... ok test fs::tree_watcher::poller::tests::observe_create_event_observes_only_existing::case_2 ... ok test fs::tree_watcher::poller::tests::observe_remove_event_forgets ... ok test fs::tree_watcher::poller::tests::observe_rename_any_forgets_moved_out_file ... ok test fs::tree_watcher::poller::tests::observe_rename_any_observes_moved_in_file ... ok test fs::tree_watcher::poller::tests::observe_rename_both_moves_the_file ... ok test filter::tests::contains_agrees_with_the_item_set ... ok test filter::tests::mut_slice_storage_agrees_with_vec_storage ... ok test filter::tests::compare_matches_set_equality ... ok test fs::tree_watcher::tests::content_mark_written_within::case_1_fresh ... ok test fs::tree_watcher::tests::content_mark_written_within::case_2_at_window ... ok test fs::tree_watcher::tests::content_mark_written_within::case_3_past_window ... ok test fs::tree_watcher::tests::content_mark_written_within::case_4_future ... ok test fs::tree_watcher::tests::content_mark_written_within::case_5_far_future ... ok test fs::tree_watcher::tests::content_mark_written_within::case_6_unknown ... ok test fs::tree_watcher::poller::tests::a_new_directory_yields_the_files_already_in_it::case_2_moved_in ... ok test fs::tree_watcher::poller::tests::a_new_directory_yields_the_files_already_in_it::case_3_renamed ... ok test filter::tests::equality_is_set_equality ... ok test fs::tree_watcher::poller::tests::a_new_directory_yields_the_files_already_in_it::case_1_created ... ok test fs::tree_watcher::tests::created_file_is_yielded ... ok test fs::tree_watcher::tests::periodic_scan_reconciles_when_events_are_delayed::case_1_appearance ... ok test fs::tree_watcher::tests::dropping_the_watcher_closes_every_stat ... ok test fs::tree_watcher::tests::watch_rejects_bad_root::case_1_missing_root ... ok test fs::tree_watcher::tracker::tests::forget_closes_the_stat ... ok test fs::tree_watcher::tracker::tests::forget_tree_drops_subtree::case_1_of_a_directory ... ok test fs::tree_watcher::tests::watch_rejects_bad_root::case_2_file_root ... ok test fs::tree_watcher::tests::recursion_controls_nested_files::case_1 ... ok test fs::tree_watcher::tracker::tests::forget_tree_drops_subtree::case_2_of_a_path_with_no_entry ... ok test fs::tree_watcher::tracker::tests::forget_tree_of_a_file_removes_only_that_entry::case_1_tracked ... ok test fs::tree_watcher::tracker::tests::forget_tree_of_a_file_removes_only_that_entry::case_2_rejected ... ok test fs::tree_watcher::tracker::tests::mark_change_updates_the_stat_in_place ... ok test fs::tree_watcher::tests::only_regular_files_are_yielded ... ok test fs::tree_watcher::tracker::tests::observe_fingerprint_kind_change_from_dir_drops_descendants::case_1_accepted ... ok test fs::tree_watcher::tracker::tests::observe_fingerprint_kind_change_from_dir_drops_descendants::case_2_rejected ... ok test fs::tree_watcher::tracker::tests::observe_fingerprint_re_yields_a_file_after_a_kind_change ... ok test fs::tree_watcher::tracker::tests::observe_fingerprint_yields_a_file_once ... ok test fs::tree_watcher::tracker::tests::reconcile_adds_and_removes ... ok test fs::tree_watcher::tracker::tests::reconcile_keeps_nodes_under_unreadable_dir ... ok test fs::tree_watcher::tracker::tests::reconcile_prunes_removed_subtree_descendants ... ok test fs::tree_watcher::tracker::tests::reconcile_repairs_kind_swap ... ok test fs::tree_watcher::tracker::tests::reconcile_signals_mark_change ... ok test fs::tree_watcher::tracker::tests::reconcile_without_prune_keeps_missing ... ok test fs::tree_watcher::tracker::tests::rejected_files_are_re_offered_and_not_recorded ... ok test fs::tree_watcher::tracker::tests::written_within_selects_tracked_files_inside_the_window ... ok test fs::tree_watcher::walk::tests::poll_of_unreadable_root_prunes_nothing ... ok test fs::tree_watcher::walk::tests::scan_does_not_follow_symlinked_dirs ... ok test fs::tree_watcher::walk::tests::scan_reports_incomplete_on_unreadable_root ... ok test fs::tree_watcher::walk::tests::scan_recursion_controls_descent::case_1 ... ok test fs::tree_watcher::walk::tests::scan_recursion_controls_descent::case_2 ... ok test futures::stream::chunked::tests::collects_from_an_iterator_of_chunks ... ok test futures::stream::chunked::tests::constructors_pull_lazily ... ok test futures::stream::chunked::tests::dropping_midstream_drops_every_item_exactly_once ... ok test futures::stream::chunked::tests::empty_yields_no_chunks_not_one_empty_chunk ... ok test futures::stream::chunked::tests::forwards_pending_and_the_upstream_wake ... ok test futures::stream::chunked::tests::from_error_is_one_err_chunk ... ok test futures::stream::chunked::tests::items_resumes_across_a_pending_chunk_boundary ... ok test futures::stream::chunked::tests::items_yields_a_nameable_stream_type ... ok test futures::stream::chunked::tests::map_and_items_move_owned_elements_without_cloning ... ok test futures::stream::chunked::tests::chunk_views_agree ... ok test futures::stream::chunked::tests::map_closure_panic_surfaces_at_the_offending_chunks_poll ... ok test futures::stream::chunked::tests::map_runs_closure_lazily_once_per_item ... ok test futures::stream::chunked::tests::map_transforms_per_item_and_keeps_chunk_boundaries::case_1 ... ok test futures::stream::chunked::tests::map_transforms_per_item_and_keeps_chunk_boundaries::case_2 ... ok test futures::stream::chunked::tests::stream_keeps_empty_chunks_items_flattens_them::case_1 ... ok test futures::stream::chunked::tests::stream_keeps_empty_chunks_items_flattens_them::case_2 ... ok test futures::stream::chunked::tests::stream_keeps_empty_chunks_items_flattens_them::case_3 ... ok test futures::stream::chunked::tests::stream_keeps_empty_chunks_items_flattens_them::case_4 ... ok test futures::stream::chunked::tests::stream_keeps_empty_chunks_items_flattens_them::case_5 ... ok test futures::stream::chunked::tests::map_commutes_with_items ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_1 ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_2 ... ok test futures::stream::chunked::tests::items_flattens_under_arbitrary_pending ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_4 ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_3 ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_5 ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_6 ... ok test futures::stream::chunked::tests::try_collect_gathers_ok_or_short_circuits_first_error::case_7 ... ok test futures::stream::chunked::tests::try_collect_short_circuits_before_a_pending_tail ... ok test futures::stream::merge::tests::joins_by_key_across_differing_item_types ... ok test futures::stream::merge::tests::by_variant_matches_itertools_under_a_custom_order ... ok test futures::stream::merge::tests::matches_itertools_merge_join_by ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_1 ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_2 ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_3 ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_4 ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_5 ... ok test futures::stream::merge::tests::merges_two_sorted_streams::case_6 ... ok test futures::stream::merge::tests::stops_reading_after_the_first_error ... ok test futures::stream::merge::tests::surfaces_the_first_error::case_1_left_first ... ok test futures::stream::merge::tests::surfaces_the_first_error::case_2_left_mid ... ok test futures::stream::merge::tests::surfaces_the_first_error::case_3_right_first ... ok test futures::stream::merge::tests::surfaces_the_first_error::case_4_right_mid ... ok test futures::stream::tests::chunks_match_expected::case_1_empty ... ok test futures::stream::tests::chunks_match_expected::case_2_single ... ok test futures::stream::tests::chunks_match_expected::case_4_alternating_keys ... ok test futures::stream::tests::chunks_match_expected::case_3_max_one_splits_every_item ... ok test futures::stream::tests::chunks_match_expected::case_5_run_exactly_max ... ok test futures::stream::tests::chunks_match_expected::case_6_run_longer_than_max ... ok test futures::stream::tests::chunks_match_expected::case_8_split_run_then_key_change ... ok test futures::stream::tests::chunks_match_expected::case_7_mixed ... ok test futures::stream::tests::chunks_match_expected::case_9_huge_max ... ok test futures::stream::tests::full_chunk_emits_without_peeking_past_the_bound ... ok test futures::stream::tests::groups_by_key_not_value ... ok test futures::stream::tests::groups_owned_items_by_projected_key::case_1 ... ok test fs::tree_watcher::tests::truncate_signals_smaller_size ... ok test fs::tree_watcher::tracker::tests::reconcile_with_rejections_keeps_one_stat_per_tracked_file ... ok test futures::stream::tests::groups_owned_items_by_projected_key::case_2 ... ok test futures::stream::tests::items_are_borrowed_for_keying_and_moved_into_chunks_never_cloned ... ok test futures::stream::tests::key_is_invoked_per_peek_and_per_chunk_target::case_1 ... ok test futures::stream::tests::key_is_invoked_per_peek_and_per_chunk_target::case_2 ... ok test futures::stream::tests::key_is_invoked_per_peek_and_per_chunk_target::case_3 ... ok test futures::stream::tests::key_is_invoked_per_peek_and_per_chunk_target::case_4 ... ok test futures::stream::tests::key_panic_surfaces_on_the_poll_that_peeks_the_offending_item ... ok test futures::stream::tests::pending_then_closed_empty_source_yields_nothing ... ok test fs::tree_watcher::tests::append_signals_change_via_events ... ok test futures::stream::tests::split_run_stays_grouped_by_key ... ok test futures::stream::tests::sub_max_run_withheld_until_a_differing_key_is_peeked ... ok test futures::stream::tests::grouping_is_invariant_to_upstream_readiness ... ok test futures::tests::retry_blocking_breaks_after::case_1_first_attempt ... ok test futures::tests::second_attempt_waits_for_the_backoff ... ok test futures::stream::tests::holds_invariants ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_1_member_assigned ... ok test futures::stream::tests::key_tagged_invariants ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_3_shadowed_by_parameter ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_2_shadowed_in_block ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_4_passed_elsewhere ... ok test futures::tests::retry_blocking_breaks_after::case_2_after_retries ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_6_incremented ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_5_pushed ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_7_changed_in_template ... ok test harnesstools::access::script::tests::a_name_that_may_change_is_not_whole::case_8_reassigned_in_template ... ok test harnesstools::access::script::tests::a_stray_closer_ends_the_read::case_1_paren_in_object ... ok test harnesstools::access::script::tests::a_stray_closer_ends_the_read::case_2_bracket_in_object ... ok test harnesstools::access::script::tests::a_stray_closer_ends_the_read::case_3_paren_in_list ... ok test harnesstools::access::script::tests::a_stray_closer_ends_the_read::case_4_brace_in_list ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_1_single_quotes ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_2_hex_and_unicode ... ok test fs::lock::tests::test_wait_contention::case_2_shared_exclusive ... ok test fs::lock::tests::test_wait_contention::case_4_exclusive_exclusive ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_3_continuation ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_7_joined ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_8_comments ... ok test fs::lock::tests::test_wait_contention::case_3_exclusive_shared ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_1_computed_member ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_3_interpolation ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_4_reassigned ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_5_joined_with_other ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_6_indexed ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_7_passed_on ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_01_regex_after_if ... ok test harnesstools::access::script::tests::a_quoted_command_reads_back ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_02_regex_after_block ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_03_division_after_increment ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_04_regex_after_empty_block ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_05_open_string ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_06_open_comment ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_07_tools_in_a_string ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_4_nested ... ok test harnesstools::access::script::tests::what_is_not_literal_is_not_whole::case_2_unknown_name ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_5_shorthand ... ok test harnesstools::access::script::tests::arguments_are_read_as_literals::case_6_named ... ok test fs::lock::tests::test_wait_after_release ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_08_escaped_tools ... ok test db::sqlite::info::tests::query_version_waits_out_a_schema_lock ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_09_escaped_tools_braced ... ok test futures::stream::chunked::tests::streams_are_send_and_drive_by_reference ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_10_escaped_name ... ok test harnesstools::access::script::tests::what_may_be_misread_is_not_whole::case_11_escaped_shadow ... ok test harnesstools::access::tests::a_call_not_a_script_is_one_access::case_2_exec_with_arguments ... ok test harnesstools::access::tests::what_a_call_touches::case_03_codex_exec ... ok test harnesstools::access::tests::what_a_call_touches::case_01_claude_bash ... ok test harnesstools::access::tests::a_call_not_a_script_is_one_access::case_1_other_tool ... ok test harnesstools::access::tests::what_a_call_touches::case_02_codex_argv ... ok test harnesstools::access::tests::what_a_call_touches::case_04_claude_read ... ok test harnesstools::access::tests::what_a_call_touches::case_05_opencode_read ... ok test harnesstools::access::tests::what_a_call_touches::case_06_grep ... ok test harnesstools::access::tests::what_a_call_touches::case_07_claude_write ... ok test harnesstools::access::tests::what_a_call_touches::case_08_pi_edit ... ok test harnesstools::access::tests::what_a_call_touches::case_09_mcp_write ... ok test harnesstools::access::tests::what_a_call_touches::case_10_patch_freeform ... ok test harnesstools::access::tests::what_a_call_touches::case_11_patch_object ... ok test harnesstools::access::tests::what_a_call_touches::case_13_redirect ... ok test harnesstools::access::tests::what_a_call_touches::case_14_redirect_attached ... ok test harnesstools::access::tests::what_a_call_touches::case_15_heredoc ... ok test harnesstools::access::tests::what_a_call_touches::case_16_tee ... ok test harnesstools::access::tests::what_a_call_touches::case_12_patch_by_shell ... ok test harnesstools::access::tests::what_a_call_touches::case_17_descriptor ... ok test harnesstools::access::tests::what_a_call_touches::case_18_opencode_patch ... ok test harnesstools::access::tests::what_a_call_touches::case_19_other ... ok test harnesstools::access::tests::what_a_call_touches::case_20_uncaptured ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_1_joined_list ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_2_split_joined ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_3_template_of_pieces ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_4_appended ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_5_computed_workdir ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_6_patch_interpolated ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_7_indexed ... ok test harnesstools::access::tests::what_a_script_runs_is_known_only_read_whole::case_8_literal ... ok test harnesstools::access::tests::what_a_script_touches::case_1_one_command ... ok test harnesstools::access::tests::what_a_script_touches::case_2_quoted_keys_and_escapes ... ok test harnesstools::access::tests::what_a_script_touches::case_3_parallel ... ok test harnesstools::access::tests::what_a_script_touches::case_4_template ... ok test harnesstools::access::tests::what_a_script_touches::case_5_patch_by_name ... ok test harnesstools::access::tests::what_a_script_touches::case_6_regex_holding_a_quote ... ok test harnesstools::access::tests::what_a_script_touches::case_7_no_tools ... ok test harnesstools::ccode::rehydrate::tests::a_compaction_starts_a_new_tree ... ok test harnesstools::ccode::rehydrate::tests::a_cycle_closed_by_clock_skew_is_cut ... ok test harnesstools::ccode::rehydrate::tests::a_result_without_a_patch_keeps_its_text ... ok test harnesstools::ccode::rehydrate::tests::a_system_line_with_text_above_attachments_is_no_boundary ... ok test harnesstools::ccode::rehydrate::tests::an_edits_result_gets_its_record_back::case_1_edit ... ok test harnesstools::ccode::rehydrate::tests::an_edits_result_gets_its_record_back::case_2_write ... ok test harnesstools::ccode::rehydrate::tests::an_edits_result_gets_its_record_back::case_3_multi_edit ... ok test harnesstools::ccode::rehydrate::tests::an_edits_result_gets_its_record_back::case_4_created ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_1_same_directory::pwd_with_slash_1_false ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_1_same_directory::pwd_with_slash_2_true ... ok test harnesstools::ccode::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_4_compacted ... ok test harnesstools::ccode::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_1_session1 ... ok test harnesstools::ccode::rehydrate::tests::long_project_directories_are_shortened_with_a_hash ... ok test harnesstools::ccode::rehydrate::tests::project_directories_are_named_as_claude_code_names_them::case_1_root ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_2_subdirectory::pwd_with_slash_1_false ... ok test harnesstools::ccode::rehydrate::tests::project_directories_are_named_as_claude_code_names_them::case_2_punctuation ... ok test harnesstools::ccode::rehydrate::tests::project_directories_are_named_as_claude_code_names_them::case_3_trailing_separator ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_2_subdirectory::pwd_with_slash_2_true ... ok test harnesstools::ccode::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_2_session2 ... ok test harnesstools::ccode::rehydrate::tests::refuses_ids_that_are_not_file_names::case_1_bad_id ... ok test harnesstools::ccode::rehydrate::tests::refuses_ids_that_are_not_file_names::case_2_empty ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_3_elsewhere::pwd_with_slash_1_false ... ok test harnesstools::ccode::rehydrate::tests::calls_keep_their_turn_usage_and_model ... ok test harnesstools::ccode::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_3_session3 ... ok test harnesstools::ccode::rehydrate::tests::never_overwrites_a_transcript ... ok test harnesstools::ccode::rehydrate::tests::line_directories_have_no_trailing_separator::case_3_elsewhere::pwd_with_slash_2_true ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_1_lone_high_surrogate_at_the_end ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_2_lone_high_surrogate_before_text ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_3_two_high_surrogates ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_4_lone_low_surrogate ... ok test harnesstools::ccode::rehydrate::tests::the_tree_is_relinked_whatever_the_order ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_6_invalid_utf8 ... ok test harnesstools::ccode::session::tests::a_line_claude_code_reads_is_read::case_5_byte_order_mark ... ok test harnesstools::ccode::session::tests::a_line_nothing_repairs_keeps_its_error ... ok test futures::tests::retry_blocking_gives_up_after_timeout ... ok test harnesstools::ccode::rehydrate::tests::thinking_and_server_tools_are_dropped_and_the_tree_relinked ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_3_shell ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_2_created ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_1_edit ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_4_text ... ok test harnesstools::ccode::session::tests::a_compaction_that_kept_messages_follows_the_line_before_it::resumed_after_1_0 ... ok test harnesstools::ccode::session::tests::a_compaction_that_kept_messages_follows_the_line_before_it::resumed_after_3_4 ... ok test harnesstools::ccode::session::tests::a_compaction_that_kept_messages_follows_the_line_before_it::resumed_after_2_2 ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_5_unknown_patch_shape ... ok test harnesstools::ccode::session::tests::an_edits_record_keeps_its_patch::case_6_path_not_text ... ok test harnesstools::ccode::session::tests::a_compaction_that_kept_messages_reads_as_one_line ... ok test harnesstools::ccode::session::tests::api_error_line_is_an_error_not_a_synthetic_model ... ok test harnesstools::ccode::session::tests::api_request_blob_is_no_message::case_1_user ... ok test harnesstools::ccode::session::tests::api_request_blob_is_no_message::case_2_assistant ... ok test harnesstools::ccode::session::tests::api_request_blob_is_no_message::case_3_system ... ok test harnesstools::ccode::session::tests::away_recap_is_a_summary_of_its_own_role ... ok test harnesstools::ccode::session::tests::cache_write_falls_back_to_the_lifetime_split::case_2_split_only ... ok test harnesstools::ccode::session::tests::cache_write_falls_back_to_the_lifetime_split::case_1_total ... ok test harnesstools::ccode::session::tests::cache_write_falls_back_to_the_lifetime_split::case_3_neither ... ok test harnesstools::ccode::session::tests::compact_boundary_keeps_its_logical_parent ... ok test harnesstools::ccode::session::tests::a_transcript_is_read_as_claude_code_reads_it ... ok test harnesstools::ccode::session::tests::compact_summary_is_a_summary::case_1 ... ok test harnesstools::ccode::session::tests::compact_summary_is_a_summary::case_2 ... ok test harnesstools::ccode::session::tests::compact_summary_is_the_models_summary::case_1_current ... ok test harnesstools::ccode::session::tests::compact_summary_is_the_models_summary::case_2_no_summary_tags ... ok test harnesstools::ccode::session::tests::compact_summary_is_the_models_summary::case_3_older ... ok test harnesstools::ccode::session::tests::compact_summary_is_the_models_summary::case_4_unknown_wrapper ... ok test harnesstools::ccode::session::tests::compaction_lines_are_system::case_1 ... ok test harnesstools::ccode::session::tests::compaction_lines_are_system::case_2 ... ok test harnesstools::ccode::session::tests::enrichment_is_none_when_the_harness_did_not_provide_it ... ok test harnesstools::ccode::session::tests::exposes_parent_line_parent_session_and_turn ... ok test harnesstools::ccode::session::tests::forked_line_names_the_session_it_was_forked_from ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_1_meta ... ok test harnesstools::ccode::session::tests::image_blocks_drop_their_bytes ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_2_task_notification ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_3_peer ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_4_command_output ... ok test fs::tree_watcher::tracker::tests::reconcile_entries_always_equal_truth ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_6_fork_directive ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_7_subagent_meta ... ok test harnesstools::ccode::session::tests::injected_user_line_is_system::case_5_interrupt ... ok test harnesstools::ccode::session::tests::interrupt_lines_end_the_turn::case_1 ... ok test harnesstools::ccode::session::tests::interrupt_lines_end_the_turn::case_3 ... ok test harnesstools::ccode::session::tests::interrupt_lines_end_the_turn::case_2 ... ok test harnesstools::ccode::session::tests::listener_reports_not_found_for_a_missing_root ... ok test harnesstools::ccode::session::tests::maps_stop_reason_vocabulary::case_1 ... ok test harnesstools::ccode::session::tests::local_command_record_is_user_text ... ok test harnesstools::ccode::session::tests::listener_opens_an_existing_root ... ok test harnesstools::ccode::session::tests::maps_stop_reason_vocabulary::case_2 ... ok test harnesstools::ccode::session::tests::maps_stop_reason_vocabulary::case_3 ... ok test harnesstools::ccode::session::tests::maps_stop_reason_vocabulary::case_4 ... ok test harnesstools::ccode::session::tests::maps_stop_reason_vocabulary::case_5 ... ok test harnesstools::ccode::session::tests::events_resume_each_session_from_its_checkpoint ... ok test harnesstools::ccode::session::tests::events_yields_messages_tagged_with_their_session ... ok test harnesstools::ccode::session::tests::existing_skips_files_that_are_not_transcripts ... ok test harnesstools::ccode::session::tests::events_read_a_transcript_written_just_before_since_at_once ... ok test harnesstools::ccode::session::tests::mock_session_compaction ... ok test harnesstools::ccode::session::tests::mock_session_calls_keep_their_turn_and_usage ... ok test harnesstools::ccode::session::tests::mock_session_tool_result_is_a_tool_line ... ok test harnesstools::ccode::session::tests::messages_streams_each_turn_of_a_session_file ... ok test harnesstools::ccode::session::tests::mock_session_user_text_is_each_prompt_once ... ok test harnesstools::ccode::session::tests::normalizes_a_user_string_message ... ok test harnesstools::ccode::session::tests::normalizes_assistant_enrichment_fields ... ok test harnesstools::ccode::session::tests::normalizes_assistant_tool_use_blocks ... ok test harnesstools::ccode::session::tests::queue_operation_has_no_content::case_1_enqueue ... ok test harnesstools::ccode::session::tests::queue_operation_has_no_content::case_2_remove ... ok test harnesstools::ccode::session::tests::queue_operation_is_not_user_text::case_1 ... ok test harnesstools::ccode::session::tests::normalizes_a_real_redacted_session::case_4 ... ok test harnesstools::ccode::session::tests::queue_operation_is_not_user_text::case_2 ... ok test harnesstools::ccode::session::tests::queue_operation_is_not_user_text::case_3 ... ok test harnesstools::ccode::session::tests::queued_harness_message_is_system::case_1_task_notification ... ok test harnesstools::ccode::session::tests::queued_harness_message_is_system::case_2_meta ... ok test harnesstools::ccode::session::tests::queued_prompt_is_user_text::case_2_prompt_mode ... ok test harnesstools::ccode::session::tests::normalizes_a_real_redacted_session::case_1 ... ok test harnesstools::ccode::session::tests::queued_prompt_is_user_text::case_1_origin_human ... ok test harnesstools::ccode::session::tests::queued_prompt_is_user_text::case_3_coordinator ... ok test harnesstools::ccode::session::tests::queued_prompt_is_user_text::case_4_peer ... ok test harnesstools::ccode::session::tests::normalizes_a_real_redacted_session::case_3 ... ok test harnesstools::ccode::session::tests::rejected_tool_call_feedback_is_the_users::case_1_with_feedback ... ok test harnesstools::ccode::session::tests::rejected_tool_call_feedback_is_the_users::case_2_without_feedback ... ok test harnesstools::ccode::session::tests::rejected_tool_call_feedback_is_the_users::case_3_blank_feedback ... ok test harnesstools::ccode::session::tests::response_aborted_mid_stream_is_aborted ... ok test harnesstools::ccode::session::tests::retried_api_error_keeps_what_went_wrong ... ok test harnesstools::ccode::session::tests::safeguard_notice_is_kept::case_1_refusal ... ok test harnesstools::ccode::session::tests::normalizes_a_real_redacted_session::case_2 ... ok test harnesstools::ccode::session::tests::server_tool_blocks_are_tool_calls ... ok test harnesstools::ccode::session::tests::split_line_without_thinking_gains_no_reasoning_block::case_1_tool_use ... ok test harnesstools::ccode::session::tests::split_line_without_thinking_gains_no_reasoning_block::case_2_text ... ok test harnesstools::ccode::session::tests::summary_line_exposes_its_title ... ok test harnesstools::ccode::session::tests::subagent_task_prompt_is_user_text ... ok test harnesstools::ccode::session::tests::teammate_message_is_system ... ok test harnesstools::ccode::session::tests::thinking_line_carries_the_calls_thinking_tokens::case_1_final_usage::kind_1___thinking__ ... ok test harnesstools::ccode::session::tests::thinking_line_carries_the_calls_thinking_tokens::case_1_final_usage::kind_2___redacted_thinking__ ... ok test harnesstools::ccode::session::tests::thinking_line_carries_the_calls_thinking_tokens::case_2_opening_usage::kind_1___thinking__ ... ok test harnesstools::ccode::session::tests::thinking_line_carries_the_calls_thinking_tokens::case_2_opening_usage::kind_2___redacted_thinking__ ... ok test harnesstools::ccode::session::tests::title_lines_expose_the_title::case_1 ... ok test harnesstools::ccode::session::tests::title_lines_expose_the_title::case_2 ... ok test harnesstools::ccode::session::tests::title_lines_expose_the_title::case_3 ... ok test harnesstools::ccode::session::tests::title_lines_expose_the_title::case_4 ... ok test harnesstools::ccode::session::tests::tool_result_line_is_the_tools::case_1_tool_result ... ok test harnesstools::ccode::session::tests::tool_result_line_is_the_tools::case_2_without_tool_use_result ... ok test harnesstools::ccode::session::tests::tool_result_line_is_the_tools::case_3_split_image ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_1_session ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_2_legacy_subagent ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_3_subagent ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_4_workflow_agent ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_5_workflow_journal ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_6_session_sidecar ... ok test harnesstools::ccode::session::tests::subagent_parent_is_the_session_that_spawned_it::case_1_nested ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_7_at_the_root ... ok test harnesstools::ccode::session::tests::subagent_parent_is_the_session_that_spawned_it::case_3_no_metadata ... ok test harnesstools::ccode::session::tests::transcripts_are_the_sessions::case_8_not_jsonl ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_01_stdout ... ok test harnesstools::ccode::session::tests::subagent_parent_is_the_session_that_spawned_it::case_2_top_level ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_02_stderr ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_03_bash_output ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_05_slash_command_without_args ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_04_slash_command ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_06_bash_input ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_07_inline_output ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_08_unclosed_output ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_09_system_reminder ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_10_ide_opened_file ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_11_ide_selection ... ok test fs::tree_watcher::tests::append_signals_change_when_events_are_delayed::case_1_content_poll ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_12_reminder_only ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_13_not_a_known_tag ... ok test harnesstools::ccode::session::tests::user_text_is_what_the_user_typed::case_14_memory_note ... ok test harnesstools::ccode::tests::the_config_dir_is_dot_claude_unless_overridden ... ok test fs::tree_watcher::tests::rename_moves_the_file ... ok test harnesstools::codex::hook_trust::tests::hashes_are_codexs::case_1_pre_dev ... ok test harnesstools::codex::hook_trust::tests::hashes_are_codexs::case_2_post_dev ... ok test harnesstools::codex::hook_trust::tests::hashes_are_codexs::case_3_pre ... ok test fs::tree_watcher::tests::deleted_file_closes_its_stat ... ok test harnesstools::codex::hook_trust::tests::hashes_are_codexs::case_4_post ... ok test harnesstools::ccode::session::tests::watch_emits_sessions_as_files_appear ... ok test harnesstools::codex::hook_trust::tests::a_config_trust_cant_be_recorded_in_is_refused::case_1_not_toml ... ok test harnesstools::codex::hook_trust::tests::a_config_trust_cant_be_recorded_in_is_refused::case_2_state_not_a_table ... ok test harnesstools::ccode::tests::hooks_install_under_claude_config_dir ... ok test harnesstools::codex::hook_trust::tests::atuins_hooks_are_trusted_where_they_are::case_1_tables ... ok test harnesstools::codex::hook_trust::tests::atuins_hooks_are_trusted_where_they_are::case_2_inline ... ok test harnesstools::codex::hook_trust::tests::the_key_names_hooks_json_in_codexs_real_home ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_names_the_configured_provider::case_1_configured ... ok test harnesstools::codex::rehydrate::tests::a_patch_comes_back_as_its_file_changes::case_1_call ... ok test harnesstools::codex::rehydrate::tests::a_compaction_comes_back_as_codex_writes_it::case_2_unreadable ... ok test harnesstools::codex::rehydrate::tests::a_compaction_comes_back_as_codex_writes_it::case_1_readable ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_names_the_configured_provider::case_2_default ... ok test harnesstools::codex::rehydrate::tests::a_patch_comes_back_as_its_file_changes::case_2_script ... ok test harnesstools::codex::rehydrate::tests::an_archived_rollout_counts_as_existing ... ok test harnesstools::codex::rehydrate::tests::an_id_codex_would_not_read_back_is_refused::case_1_not_a_uuid ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_recaptures_as_the_same_rows::case_3_legacy_forked_subagent ... ok test harnesstools::codex::rehydrate::tests::an_id_codex_would_not_read_back_is_refused::case_2_a_path ... ok test harnesstools::codex::rehydrate::tests::an_existing_rollout_is_never_replaced ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_recaptures_as_the_same_rows::case_4_forked_subagent ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_recaptures_as_the_same_rows::case_1_paginated_with_compaction ... ok test harnesstools::codex::rehydrate::tests::turns_are_written_for_codex_to_show ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_1_released ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_2_newer ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_3_prerelease ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_4_first_prerelease ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_5_major ... ok test harnesstools::codex::rehydrate::tests::the_rollout_is_written_whole_and_in_place ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_6_before_records ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_7_old ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_8_development_build ... ok test harnesstools::codex::rehydrate::tests::call_id_and_token_count_keys_come_back ... ok test harnesstools::codex::session::tests::a_codex_version_tells_whether_it_records_usage::case_9_unreadable ... ok test harnesstools::codex::rehydrate::tests::a_rehydrated_rollout_recaptures_as_the_same_rows::case_2_custom_tools_and_records ... ok test harnesstools::codex::rehydrate::tests::notes_join_the_message_before_them_or_take_the_calls_id ... ok test harnesstools::codex::session::tests::a_commands_exit_code_is_in_its_rollout::case_1_failed ... ok test harnesstools::codex::session::tests::a_commands_exit_code_is_in_its_rollout::case_3_a_patch ... ok test harnesstools::codex::session::tests::a_commands_exit_code_is_in_its_rollout::case_2_succeeded ... ok test harnesstools::codex::session::tests::a_commands_exit_code_is_in_its_rollout::case_4_unknown ... ok test harnesstools::codex::session::tests::a_forked_subagent_keeps_only_its_own_history ... ok test harnesstools::codex::session::tests::a_fork_keeps_its_own_session_meta ... ok test harnesstools::codex::session::tests::a_compaction_keeps_its_summary ... ok test harnesstools::codex::rehydrate::tests::usage_recaptures_with_its_counts_and_turn ... ok test harnesstools::codex::session::tests::a_pre_envelope_rollout_is_read ... ok test harnesstools::codex::session::tests::a_legacy_forked_subagent_counts_only_its_own_call ... ok test harnesstools::codex::session::tests::a_resumed_reader_still_hides_inherited_history ... ok test harnesstools::codex::session::tests::a_resumed_read_follows_the_checkpointed_line ... ok test harnesstools::codex::rehydrate::tests::a_rollout_the_index_cant_be_pointed_at_is_left_in_place ... ok test harnesstools::codex::session::tests::a_resumed_reader_knows_its_codex_records_usage ... ok test harnesstools::codex::session::tests::a_reverted_rollout_continues_its_history_base::case_1_from_the_first_rollout ... ok test harnesstools::codex::session::tests::a_reverted_rollout_continues_its_history_base::case_2_from_an_earlier_revert ... ok test harnesstools::codex::session::tests::a_real_rollout_counts_each_recorded_call_once ... ok test harnesstools::codex::session::tests::a_resumed_reader_still_knows_usage_is_recorded::case_1_from_its_checkpoint ... ok test harnesstools::codex::session::tests::a_resumed_reader_still_knows_usage_is_recorded::case_2_from_a_stale_checkpoint ... ok test harnesstools::codex::session::tests::a_rollout_name_carries_its_session::case_1_current ... ok test harnesstools::codex::session::tests::a_rollout_name_carries_its_session::case_2_date_only ... ok test harnesstools::codex::session::tests::a_rollout_name_carries_its_session::case_3_reverted ... ok test harnesstools::codex::session::tests::a_rollout_reports_each_call_once::case_1_legacy ... ok test harnesstools::codex::session::tests::a_rewritten_rollout_forgets_what_its_old_lines_said::case_1_truncated ... ok test harnesstools::codex::session::tests::a_rewritten_rollout_forgets_what_its_old_lines_said::case_2_replaced ... ok test harnesstools::codex::session::tests::a_reverted_rollout_follows_where_it_continues::case_1_from_the_first_rollout ... ok test harnesstools::codex::session::tests::a_reverted_rollout_follows_where_it_continues::case_2_from_an_earlier_revert ... ok test harnesstools::codex::session::tests::a_thread_name_is_named_by_the_user::case_1_named ... ok test harnesstools::codex::session::tests::a_thread_name_is_named_by_the_user::case_2_cleared ... ok test harnesstools::codex::session::tests::a_thread_name_titles_the_session::case_1 ... ok test harnesstools::codex::session::tests::a_thread_name_titles_the_session::case_2 ... ok test harnesstools::codex::session::tests::a_user_shell_command_keeps_the_command_not_its_output ... ok test harnesstools::codex::session::tests::a_voice_transcript_segment_is_conversation::case_1_user ... ok test harnesstools::codex::session::tests::a_voice_transcript_segment_is_conversation::case_2_assistant ... ok test harnesstools::codex::session::tests::a_rollout_reports_each_call_once::case_2_modern ... ok test harnesstools::codex::session::tests::an_agent_message_is_kept_without_its_ciphertext::case_1_new_task ... ok test harnesstools::codex::session::tests::an_agent_message_is_kept_without_its_ciphertext::case_2_final_answer ... ok test harnesstools::codex::session::tests::an_agent_message_is_kept_without_its_ciphertext::case_3_inter_agent_communication ... ok test harnesstools::codex::session::tests::a_rollout_reports_each_call_once::case_3_resumed ... ok test harnesstools::codex::session::tests::an_applied_patch_keeps_its_file_changes::case_1_legacy ... ok test harnesstools::codex::session::tests::a_scripts_failures_and_patches_are_its_calls ... ok test harnesstools::codex::session::tests::an_applied_patch_keeps_its_file_changes::case_2_legacy_without_status ... ok test harnesstools::codex::session::tests::an_applied_patch_keeps_its_file_changes::case_3_paginated ... ok test harnesstools::codex::session::tests::an_applied_patch_keeps_its_file_changes::case_4_declined ... ok test harnesstools::codex::session::tests::an_applied_patch_keeps_its_file_changes::case_5_failed_item ... ok test harnesstools::codex::session::tests::an_atuin_fork_names_the_segment_it_forked::case_1_a_segment_of_the_thread ... ok test harnesstools::codex::session::tests::an_atuin_fork_names_the_segment_it_forked::case_2_another_threads ... ok test harnesstools::codex::session::tests::an_image_generation_keeps_its_prompt_not_its_image ... ok test harnesstools::codex::session::tests::bookkeeping_keeps_no_row::case_1 ... ok test harnesstools::codex::session::tests::bookkeeping_keeps_no_row::case_2 ... ok test harnesstools::codex::session::tests::bookkeeping_keeps_no_row::case_3 ... ok test harnesstools::codex::session::tests::bookkeeping_keeps_no_row::case_4 ... ok test harnesstools::codex::session::tests::compacted_summary_is_kept::case_1_readable ... ok test harnesstools::codex::session::tests::compacted_summary_is_kept::case_2_encrypted ... ok test harnesstools::codex::session::tests::compaction_output_is_not_a_reply ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_1 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_2 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_3 ... ok test harnesstools::codex::session::tests::an_event_goes_to_the_call_that_ran_it ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_4 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_5 ... ok test harnesstools::codex::rehydrate::tests::a_restore_forgets_codexs_history_of_the_rollout_gone ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_6 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_7 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_8 ... ok test harnesstools::codex::session::tests::contextual_user_messages_are_system::case_9 ... ok test harnesstools::codex::session::tests::developer_role_is_system ... ok test harnesstools::codex::session::tests::enrichment_is_none_when_the_harness_did_not_provide_it ... ok test harnesstools::codex::session::tests::id_less_tool_output_does_not_collide_with_its_call::case_1 ... ok test harnesstools::codex::session::tests::id_less_tool_output_does_not_collide_with_its_call::case_2 ... ok test harnesstools::codex::session::tests::listener_reports_not_found_for_a_missing_root ... ok test harnesstools::codex::session::tests::legacy_token_count_usage_is_captured ... ok test harnesstools::codex::session::tests::copied_snapshots_count_only_where_nothing_recorded_them::case_1_recording_codex ... ok test harnesstools::codex::session::tests::copied_snapshots_count_only_where_nothing_recorded_them::case_2_older_codex ... ok test harnesstools::codex::session::tests::normalizes_a_codex_assistant_message ... ok test harnesstools::codex::session::tests::normalizes_a_codex_custom_tool_call ... ok test harnesstools::codex::session::tests::normalizes_a_codex_function_call ... ok test harnesstools::codex::session::tests::a_compressed_rollout_reads_as_its_plain_file ... ok test harnesstools::codex::session::tests::other_tool_calls_normalize_to_tool_use::case_1 ... ok test harnesstools::codex::session::tests::other_tool_calls_normalize_to_tool_use::case_2 ... ok test harnesstools::codex::session::tests::existing_includes_archived_threads ... ok test harnesstools::codex::session::tests::other_tool_calls_normalize_to_tool_use::case_3 ... ok test harnesstools::codex::session::tests::other_tool_calls_normalize_to_tool_use::case_4 ... ok test harnesstools::codex::session::tests::messages_streams_turns_from_a_rollout_file ... ok test harnesstools::codex::session::tests::other_tool_outputs_answer_their_call::case_1 ... ok test harnesstools::codex::session::tests::other_tool_outputs_answer_their_call::case_2 ... ok test harnesstools::codex::rehydrate::tests::a_left_rollout_is_pointed_at_on_the_next_restore ... ok test harnesstools::codex::session::tests::prefix_contains_finds_a_needle_across_chunks ... ok test harnesstools::codex::session::tests::prefix_contains_stops_at_the_end::case_1 ... ok test harnesstools::codex::session::tests::normalizes_a_real_redacted_session::case_1 ... ok test harnesstools::codex::session::tests::repeated_token_count_snapshots_name_one_turn ... ok test harnesstools::codex::session::tests::session_meta_git_branch_is_read ... ok test harnesstools::codex::session::tests::per_call_usage_adds_up_to_the_running_total::case_2_compacted_with_empty_snapshots ... ok test harnesstools::codex::session::tests::session_meta_names_its_parent::case_1_fork ... ok test harnesstools::codex::session::tests::prefix_contains_stops_at_the_end::case_2 ... ok test harnesstools::codex::session::tests::prefix_contains_stops_at_the_end::case_3 ... ok test harnesstools::codex::session::tests::session_meta_names_its_parent::case_2_spawned ... ok test harnesstools::codex::session::tests::session_meta_names_its_parent::case_3_legacy_spawn ... ok test harnesstools::codex::session::tests::session_meta_names_its_parent::case_4_spawned_with_history ... ok test harnesstools::codex::session::tests::token_count_after_a_usage_record_has_no_usage ... ok test harnesstools::codex::session::tests::token_count_without_new_tokens_has_no_usage::case_1 ... ok test harnesstools::codex::session::tests::token_count_without_new_tokens_has_no_usage::case_2 ... ok test harnesstools::codex::session::tests::token_usage_record_exposes_usage ... ok test harnesstools::codex::session::tests::tool_call_and_output_have_distinct_ids_despite_shared_call_id ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_01_exec_ok ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_02_exec_failed ... ok test harnesstools::codex::session::tests::per_call_usage_adds_up_to_the_running_total::case_1_recorded ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_03_unified_ok ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_04_unified_killed ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_05_unified_still_running ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_06_output_quotes_a_failure ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_07_output_quotes_a_success ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_08_json_ok ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_09_json_failed ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_10_json_output_quotes_a_failure ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_11_legacy_metadata ... ok test harnesstools::codex::session::tests::tool_output_error_is_derived_from_exit_code::case_12_plain_text ... ok test harnesstools::codex::session::tests::turn_aborted_events_end_the_turn::case_1 ... ok test harnesstools::codex::session::tests::turn_aborted_events_end_the_turn::case_2 ... ok test harnesstools::codex::session::tests::turn_context_exposes_model_and_cwd ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_1 ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_2 ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_3 ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_4_task_complete_failed ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_5_task_complete_context_window ... ok test harnesstools::codex::session::tests::turn_failures_report_an_error::case_6_task_complete_ok ... ok test harnesstools::codex::session::tests::typed_user_messages_stay_user_turns::case_1 ... ok test harnesstools::codex::session::tests::typed_user_messages_stay_user_turns::case_2 ... ok test harnesstools::codex::session::tests::typed_user_messages_stay_user_turns::case_3 ... ok test harnesstools::codex::session::tests::usage_input_excludes_cache_writes ... ok test harnesstools::codex::session::tests::usage_input_excludes_cached_input ... ok test harnesstools::codex::session::tests::usage_record_is_keyed_by_its_response ... ok test harnesstools::codex::session::tests::watch_emits_sessions_as_files_appear ... ok test harnesstools::continuation::tests::a_continuations_marker_is_not_carried_on::target_1_CLAUDE ... ok test harnesstools::continuation::tests::a_continuations_marker_is_not_carried_on::target_2_CODEX ... ok test harnesstools::continuation::tests::a_continuations_marker_is_not_carried_on::target_3_COPILOT ... ok test harnesstools::continuation::tests::a_continuations_marker_is_not_carried_on::target_4_OPENCODE ... ok test harnesstools::continuation::tests::a_continuations_marker_is_not_carried_on::target_5_PI ... ok test harnesstools::continuation::tests::a_conversation_opening_with_a_reply_gets_a_user_turn_first ... ok test harnesstools::codex::state_db::tests::no_index_or_no_row_leaves_it_to_codex ... ok test harnesstools::continuation::tests::a_long_conversation_starts_where_it_fits ... ok test harnesstools::continuation::tests::a_marker_names_both_ids ... ok test harnesstools::continuation::tests::a_pasted_marker_is_no_link::case_1_first_line_only ... ok test harnesstools::continuation::tests::a_pasted_marker_is_no_link::case_2_more_after ... ok test harnesstools::continuation::tests::a_pasted_marker_is_no_link::case_3_other_rest ... ok test harnesstools::continuation::tests::a_typed_marker_is_no_link ... ok test harnesstools::continuation::tests::an_away_recap_is_not_carried_over ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_1_no_messages::target_1_CLAUDE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_1_no_messages::target_2_CODEX ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_1_no_messages::target_3_COPILOT ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_1_no_messages::target_4_OPENCODE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_1_no_messages::target_5_PI ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_2_only_injected::target_1_CLAUDE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_2_only_injected::target_2_CODEX ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_2_only_injected::target_3_COPILOT ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_2_only_injected::target_4_OPENCODE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_2_only_injected::target_5_PI ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_3_only_blank::target_1_CLAUDE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_3_only_blank::target_2_CODEX ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_3_only_blank::target_3_COPILOT ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_3_only_blank::target_4_OPENCODE ... ok test harnesstools::continuation::tests::an_empty_session_is_not_continued::case_3_only_blank::target_5_PI ... ok test harnesstools::continuation::tests::an_unreadable_compaction_starts_the_conversation ... ok test harnesstools::continuation::tests::calls_become_notes_and_turns_merge ... ok test harnesstools::continuation::tests::calls_carry_over_in_the_targets_rows::case_1_claude ... ok test harnesstools::continuation::tests::calls_carry_over_in_the_targets_rows::case_2_codex ... ok test harnesstools::continuation::tests::calls_carry_over_in_the_targets_rows::case_3_opencode ... ok test harnesstools::continuation::tests::calls_carry_over_in_the_targets_rows::case_4_pi ... ok test harnesstools::continuation::tests::calls_that_cant_be_carried_become_notes ... ok test harnesstools::continuation::tests::each_model_call_is_a_step_and_the_assistant_ends ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_1_CLAUDE::target_1_CLAUDE ... ok test harnesstools::codex::state_db::tests::the_row_is_pointed_at_the_new_rollout::case_3_from_another_one ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_1_CLAUDE::target_2_CODEX ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_1_CLAUDE::target_3_COPILOT ... ok test harnesstools::codex::state_db::tests::the_row_is_pointed_at_the_new_rollout::case_2_from_a_deleted_one ... ok test harnesstools::codex::state_db::tests::the_row_is_pointed_at_the_new_rollout::case_1_from_what_it_continues ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_2_CODEX::target_2_CODEX ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_1_CLAUDE::target_4_OPENCODE ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_1_CLAUDE::target_5_PI ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_2_CODEX::target_3_COPILOT ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_2_CODEX::target_1_CLAUDE ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_2_CODEX::target_4_OPENCODE ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_2_CODEX::target_5_PI ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_3_COPILOT::target_3_COPILOT ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_3_COPILOT::target_1_CLAUDE ... ok test harnesstools::codex::state_db::tests::a_threads_history_is_forgotten ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_3_COPILOT::target_2_CODEX ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_3_COPILOT::target_4_OPENCODE ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_3_COPILOT::target_5_PI ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_4_OPENCODE::target_4_OPENCODE ... ok test harnesstools::access::script::tests::a_name_read_many_times_reads_whole ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_5_PI::target_2_CODEX ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_5_PI::target_1_CLAUDE ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_5_PI::target_3_COPILOT ... ok test harnesstools::continuation::tests::markers_read_back::case_1_claude::atuin_id_1_Some_ATUIN_ID_ ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_5_PI::target_5_PI ... ok test harnesstools::continuation::tests::markers_read_back::case_1_claude::atuin_id_2_None ... ok test harnesstools::continuation::tests::markers_read_back::case_2_opencode::atuin_id_1_Some_ATUIN_ID_ ... ok test harnesstools::continuation::tests::markers_read_back::case_2_opencode::atuin_id_2_None ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_1_typed_prompt ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_5_PI::target_4_OPENCODE ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_2_unknown_harness ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_3_path_id ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_4_not_first_line ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_5_unclosed_atuin_id ... ok test harnesstools::continuation::tests::opencode_writes_each_step_as_a_message ... ok test harnesstools::continuation::tests::other_text_is_no_marker::case_6_other_aside ... ok test harnesstools::continuation::tests::repeated_notes_are_counted ... ok test harnesstools::continuation::tests::rows_chain_where_the_target_keeps_a_tree::case_1 ... ok test harnesstools::continuation::tests::rows_chain_where_the_target_keeps_a_tree::case_2 ... ok test harnesstools::continuation::tests::rows_chain_where_the_target_keeps_a_tree::case_3 ... ok test harnesstools::continuation::tests::rows_chain_where_the_target_keeps_a_tree::case_4 ... ok test harnesstools::continuation::tests::summaries_are_short::case_1 ... ok test harnesstools::continuation::tests::summaries_are_short::case_2 ... ok test harnesstools::continuation::tests::summaries_are_short::case_3 ... ok test harnesstools::continuation::tests::summaries_are_short::case_4 ... ok test harnesstools::continuation::tests::the_prompts_before_a_cut_leave_out_a_marker ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_1_CLAUDE::target_1_CLAUDE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_1_CLAUDE::target_3_COPILOT ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_1_CLAUDE::target_2_CODEX ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_2_CODEX::target_1_CLAUDE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_1_CLAUDE::target_5_PI ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_2_CODEX::target_2_CODEX ... ok test harnesstools::codex::session::tests::a_large_commands_exit_code_is_found ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_2_CODEX::target_3_COPILOT ... ok test fs::tree_watcher::tests::append_signals_change_when_events_are_delayed::case_2_scan ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_3_COPILOT::target_1_CLAUDE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_2_CODEX::target_5_PI ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_4_OPENCODE::target_1_CLAUDE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_3_COPILOT::target_3_COPILOT ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_4_OPENCODE::target_2_CODEX ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_4_OPENCODE::target_3_COPILOT ... ok test fs::tree_watcher::tests::periodic_scan_reconciles_when_events_are_delayed::case_2_disappearance ... ok test harnesstools::continuation::tests::every_pair_continues_in_the_targets_shape::source_4_OPENCODE::target_5_PI ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_4_OPENCODE::target_4_OPENCODE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_3_COPILOT::target_5_PI ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_3_COPILOT::target_2_CODEX ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_5_PI::target_1_CLAUDE ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_5_PI::target_2_CODEX ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_5_PI::target_5_PI ... ok test harnesstools::continuation::tools::tests::call_ids_are_ones_the_apis_take_and_unique ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_5_PI::target_3_COPILOT ... ok test harnesstools::continuation::tools::tests::calls_translate::case_01_claude_to_opencode ... ok test harnesstools::continuation::tools::tests::calls_translate::case_02_codex_to_claude ... ok test harnesstools::continuation::tools::tests::calls_translate::case_03_codex_within ... ok test harnesstools::continuation::tools::tests::calls_translate::case_04_codex_elsewhere ... ok test harnesstools::continuation::tools::tests::calls_translate::case_05_codex_argv ... ok test harnesstools::continuation::tools::tests::calls_translate::case_06_claude_to_codex ... ok test harnesstools::continuation::tools::tests::calls_translate::case_07_read ... ok test harnesstools::continuation::tools::tests::calls_translate::case_08_edit_to_pi ... ok test harnesstools::continuation::tools::tests::calls_translate::case_09_pi_edit ... ok test harnesstools::continuation::tools::tests::calls_translate::case_10_replace_all_kept_foreign ... ok test harnesstools::continuation::tools::tests::calls_translate::case_11_multi_edit_kept_foreign ... ok test harnesstools::continuation::tools::tests::calls_translate::case_12_codex_item_name ... ok test harnesstools::continuation::tools::tests::calls_translate::case_13_glob_to_pi ... ok test harnesstools::continuation::tools::tests::calls_translate::case_14_grep ... ok test harnesstools::continuation::tools::tests::calls_translate::case_15_read_to_codex ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_1_CLAUDE::target_4_OPENCODE ... ok test harnesstools::continuation::tools::tests::calls_translate::case_16_mcp ... ok test harnesstools::continuation::tools::tests::calls_translate::case_17_patch_freeform ... ok test harnesstools::continuation::tools::tests::calls_translate::case_18_odd_name ... ok test harnesstools::continuation::tools::tests::calls_translate::case_19_claude_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_20_read_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_21_whole_read_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_22_read_from_an_offset_kept_foreign_by_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_23_read_of_a_limit_kept_foreign_by_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_24_whole_read_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_25_copilot_view_to_claude ... ok test harnesstools::continuation::tools::tests::calls_translate::case_26_write_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_27_copilot_create_to_pi ... ok test harnesstools::continuation::tools::tests::calls_translate::case_28_edit_to_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_29_copilot_edit_to_claude ... ok test harnesstools::continuation::tools::tests::calls_translate::case_30_replace_all_kept_foreign_by_copilot ... ok test harnesstools::continuation::tools::tests::calls_translate::case_31_grep_kept_foreign_by_copilot ... ok test harnesstools::continuation::tools::tests::outputs_become_text::case_1_string ... ok test harnesstools::continuation::tools::tests::outputs_become_text::case_2_blocks ... ok test harnesstools::continuation::tools::tests::outputs_become_text::case_3_uncaptured ... ok test harnesstools::continuation::tools::tests::outputs_become_text::case_4_structured ... ok test harnesstools::copilot::rehydrate::tests::a_call_id_too_long_for_the_api_is_shortened ... ok test harnesstools::copilot::rehydrate::tests::a_row_of_several_results_is_several_events ... ok test harnesstools::copilot::rehydrate::tests::a_marker_is_a_prompt_the_user_did_not_type ... ok test harnesstools::copilot::rehydrate::tests::a_fork_names_the_original_in_its_start ... ok test harnesstools::copilot::rehydrate::tests::a_session_already_there_is_not_written_over ... ok test harnesstools::copilot::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_2_compacted ... ok test harnesstools::copilot::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_1_task_and_edit ... ok test harnesstools::copilot::rehydrate::tests::a_title_reads_back_as_it_was_written ... ok test harnesstools::copilot::session::tests::a_compaction_is_a_summary_and_a_rename_only_the_sidecar ... ok test harnesstools::copilot::session::tests::a_compaction_that_changed_nothing_is_skipped::case_1_failed ... ok test harnesstools::copilot::session::tests::a_compaction_that_changed_nothing_is_skipped::case_2_not_applied ... ok test harnesstools::copilot::rehydrate::tests::the_log_opens_with_its_start_and_the_sidecar_names_it ... ok test harnesstools::copilot::session::tests::a_failed_command_is_an_ok_result_with_its_exit_in_the_output ... ok test harnesstools::copilot::rehydrate::tests::uncaptured_calls_become_notes ... ok test harnesstools::copilot::session::tests::a_reply_that_reasoned_carries_a_marker_with_its_tokens ... ok test harnesstools::copilot::session::tests::assistant_message_holds_its_calls_and_usage ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_1_log ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_2_sidecar ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_3_lock ... ok test harnesstools::copilot::session::tests::a_missing_sidecar_names_nothing ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_4_nested ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_5_operation_lock ... ok test harnesstools::copilot::session::tests::event_logs_are_the_sessions::case_6_at_root ... ok test harnesstools::copilot::session::tests::existing_lists_subagents_after_their_parent ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_1_memory ... ok test harnesstools::copilot::session::tests::existing_lists_every_session_under_the_root ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_2_system_prompt ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_3_folder_trust ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_4_turn ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_5_permission ... ok test harnesstools::copilot::session::tests::injected_rows_are_skipped::case_6_empty_prompt ... ok test harnesstools::copilot::session::tests::a_subagent_is_a_child_session_over_the_same_log ... ok test harnesstools::copilot::session::tests::lanes_are_found_by_call_or_interaction ... ok test harnesstools::copilot::session::tests::keeps_the_parents_conversation_and_skips_the_subagents ... ok test harnesstools::copilot::session::tests::messages_carry_the_sessions_directory_and_branch ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_5_PI::target_4_OPENCODE ... ok test harnesstools::copilot::session::tests::locate_finds_the_log_by_id ... ok test harnesstools::copilot::session::tests::session_id_is_the_directory_name ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_1_generated ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_2_named ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_4_OPENCODE::target_1_CLAUDE ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_3_quoted ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_4_escaped ... ok test harnesstools::copilot::session::tests::rows_name_the_row_before_them_in_their_lane ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_5_single_quoted ... ok test harnesstools::copilot::session::tests::sidecar_names_the_session::case_6_unnamed ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_4_OPENCODE::target_3_COPILOT ... ok test harnesstools::copilot::session::tests::usage_takes_the_cached_input_out::case_1_shrunk ... ok test harnesstools::copilot::session::tests::usage_takes_the_cached_input_out::case_2_missing ... ok test harnesstools::copilot::tests::a_subagent_is_not_resumable_on_its_own ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_4_OPENCODE::target_2_CODEX ... ok test harnesstools::copilot::tests::is_found_by_its_names ... ok test harnesstools::copilot::session::tests::tool_results_name_their_call_and_an_edit_its_patch ... ok test harnesstools::copilot::tests::resumes_by_id_from_anywhere ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_4_OPENCODE::target_5_PI ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_2_CODEX::target_4_OPENCODE ... ok test harnesstools::copilot::session::tests::resuming_from_a_checkpoint_keeps_the_state_before_it ... ok test harnesstools::continuation::tests::the_target_reads_back_the_conversation_and_its_parent::source_3_COPILOT::target_4_OPENCODE ... ok test harnesstools::fork::tests::a_fork_reads_back_as_the_original_linked_as_its_fork::harness_1_CLAUDE ... ok test harnesstools::copilot::session::tests::the_sidecars_name_is_a_row_of_its_own ... ok test harnesstools::fork::tests::a_fork_of_a_codex_segment_continues_its_history::base_here_2_false ... ok test harnesstools::json_hooks::tests::add_hook_entries_keeps_an_installed_entry_in_place ... ok test harnesstools::json_hooks::tests::add_hook_entries_replaces_legacy_commands_without_duplicates ... ok test harnesstools::json_hooks::tests::hook_command_quotes_posix_executable_paths::case_1_plain ... ok test harnesstools::json_hooks::tests::hook_command_quotes_posix_executable_paths::case_2_apostrophe ... ok test harnesstools::fork::tests::a_fork_reads_back_as_the_original_linked_as_its_fork::harness_3_COPILOT ... ok test harnesstools::json_hooks::tests::hook_command_quotes_posix_executable_paths::case_3_metacharacters ... ok test harnesstools::fork::tests::a_fork_reads_back_as_the_original_linked_as_its_fork::harness_2_CODEX ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_2_absolute ... ok test harnesstools::fork::tests::a_fork_of_a_codex_segment_continues_its_history::base_here_1_true ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_1_bare ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_4_wrapper ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_3_windows_suffix ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_5_backup ... ok test harnesstools::json_hooks::tests::recognizes_only_atuin_executables::case_6_different_harness ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_1 ... ok test harnesstools::fork::tests::a_fork_reads_back_as_the_original_linked_as_its_fork::harness_5_PI ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_2 ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_3 ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_4 ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_5 ... ok test harnesstools::mcp::tests::detection_respects_config_overrides::case_6 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_2 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_3 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_1 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_4 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_5 ... ok test harnesstools::mcp::tests::detects_existing_config_files::case_6 ... ok test harnesstools::note::tests::long_inputs_are_cut ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_01_claude_bash ... ok test harnesstools::mcp::tests::launch_path_takes_atuin_only_from_absolute_path_entries::case_1_absolute_entry ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_02_claude_write ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_03_claude_read ... ok test harnesstools::mcp::tests::launch_path_takes_atuin_only_from_absolute_path_entries::case_2_relative_entry ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_04_claude_grep ... ok test harnesstools::mcp::tests::opencode_gets_a_new_config ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_05_claude_glob ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_06_claude_task ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_07_codex_shell ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_08_codex_argv ... ok test harnesstools::mcp::tests::opencode_keeps_a_linked_config_linked ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_09_codex_exec ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_10_codex_patch ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_11_codex_plan ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_12_opencode_edit ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_13_opencode_patch ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_14_pi_read ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_15_pi_ls ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_16_captured_bash ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_17_captured_exec ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_18_captured_edit ... ok test harnesstools::mcp::tests::opencode_keeps_the_rest_of_its_config ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_19_captured_patch ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_20_captured_task ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_21_captured_other ... ok test harnesstools::note::tests::notes_name_the_call_and_its_key_input::case_22_mcp ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_3_runner ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_5_bare_diff ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_6_read ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_7_glob ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_8_none ... ok test harnesstools::note::tests::repeated_notes_are_counted ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_1_edit ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_4_older_filediff ... ok test harnesstools::opencode::rehydrate::tests::a_calls_metadata_reads_as_its_patch::case_2_apply_patch ... ok test harnesstools::fork::tests::a_fork_from_a_tip_keeps_the_rows_up_to_it ... ok test harnesstools::opencode::rehydrate::tests::a_patch_comes_back_as_the_metadata_opencode_shows::case_1_edit ... ok test harnesstools::opencode::rehydrate::tests::a_fork_renames_ids_not_what_was_said ... ok test harnesstools::opencode::rehydrate::tests::a_patch_comes_back_as_the_metadata_opencode_shows::case_2_apply_patch ... ok test harnesstools::opencode::rehydrate::tests::a_reply_is_written_on_its_provider::case_1_captured_routed ... ok test harnesstools::opencode::rehydrate::tests::a_reply_is_written_on_its_provider::case_2_named ... ok test harnesstools::opencode::rehydrate::tests::a_result_apart_from_its_call_joins_it ... ok test harnesstools::opencode::rehydrate::tests::an_unfinished_call_is_pending_and_minted_ids_are_stable ... ok test harnesstools::opencode::rehydrate::tests::an_id_opencode_would_not_take_is_refused::case_1_not_opencodes ... ok test harnesstools::opencode::rehydrate::tests::an_id_opencode_would_not_take_is_refused::case_2_a_path ... ok test harnesstools::opencode::rehydrate::v2::tests::a_1_x_session_restored_on_2_recaptures_as_nothing_new ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_01_end_turn ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_02_stop_sequence ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_03_max_tokens ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_04_tool_use ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_05_refusal ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_06_error ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_07_aborted ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_08_another_harness_s ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_09_opencode_s_own ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_finishes_as_opencode_2_takes_it::case_10_none ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_is_written_on_its_provider::case_1_captured ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_is_written_on_its_provider::case_2_captured_routed ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_is_written_on_its_provider::case_3_named ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_is_written_on_its_provider::case_4_neither ... ok test harnesstools::opencode::rehydrate::v2::tests::a_call_without_a_result_is_written_aborted ... ok test harnesstools::opencode::rehydrate::tests::a_session_opencode_already_holds_is_not_imported_again ... ok test harnesstools::opencode::rehydrate::tests::every_kind_of_row_recaptures_as_itself ... ok test harnesstools::opencode::rehydrate::v2::tests::a_prompt_is_the_rows_that_follow_on_from_one_row::case_1_one_prompt ... ok test harnesstools::opencode::rehydrate::v2::tests::a_prompt_is_the_rows_that_follow_on_from_one_row::case_2_two_prompts ... ok test harnesstools::opencode::rehydrate::tests::a_partly_imported_session_is_imported_again ... ok test harnesstools::opencode::rehydrate::tests::import_runs_opencode_from_the_session_directory ... ok test harnesstools::opencode::rehydrate::v2::tests::a_copy_of_a_restored_message_in_another_session_is_its_own ... ok test harnesstools::fork::tests::an_opencode_fork_of_only_replies_names_its_original ... ok test harnesstools::opencode::rehydrate::v2::tests::a_row_no_message_is_written_for_is_held::case_1_a_reasoning_only_turn ... ok test harnesstools::opencode::rehydrate::v2::tests::a_row_no_message_is_written_for_is_held::case_2_a_retry_only_turn ... ok test harnesstools::opencode::rehydrate::v2::tests::a_row_no_message_is_written_for_is_held::case_3_a_reasoning_only_turn_first ... ok test harnesstools::opencode::rehydrate::v2::tests::a_tool_s_output_is_written_as_opencode_2_keeps_it::case_1_opencode_s_own ... ok test harnesstools::opencode::rehydrate::v2::tests::a_tool_s_output_is_written_as_opencode_2_keeps_it::case_3_codex_s_text ... ok test harnesstools::opencode::rehydrate::v2::tests::a_tool_s_output_is_written_as_opencode_2_keeps_it::case_2_a_claude_image ... ok test harnesstools::opencode::rehydrate::v2::tests::a_tool_s_output_is_written_as_opencode_2_keeps_it::case_4_a_failed_command ... ok test harnesstools::opencode::rehydrate::v2::tests::a_tool_s_output_is_written_as_opencode_2_keeps_it::case_5_another_tool_s_failure ... ok test harnesstools::opencode::rehydrate::v2::tests::every_kind_of_1_x_row_goes_into_a_message ... ok test harnesstools::opencode::rehydrate::v2::tests::the_session_ended_as_its_last_turn_did::case_1_succeeded ... ok test harnesstools::opencode::rehydrate::v2::tests::the_session_ended_as_its_last_turn_did::case_2_failed ... ok test harnesstools::opencode::rehydrate::v2::tests::the_session_ended_as_its_last_turn_did::case_3_interrupted ... ok test harnesstools::opencode::rehydrate::tests::how_much_of_a_session_opencode_holds ... ok test harnesstools::opencode::rehydrate::v2::tests::a_row_no_message_is_written_for_is_held::case_4_a_result_apart ... ok test harnesstools::opencode::rehydrate::tests::a_real_session_recaptures_as_the_same_rows ... ok test harnesstools::opencode::session::tests::a_bad_row_is_reported_and_the_tail_continues ... ok test harnesstools::opencode::session::tests::a_command_that_exited_non_zero_is_an_error::case_1_succeeded ... ok test harnesstools::opencode::session::tests::a_command_that_exited_non_zero_is_an_error::case_2_failed ... ok test harnesstools::opencode::session::tests::a_checkpoint_resumes_only_past_the_row_it_was_taken_after::case_1_the_row_is_still_there ... ok test harnesstools::opencode::rehydrate::v2::tests::a_session_opencode_2_holds_is_not_imported_again ... ok test harnesstools::fork::tests::a_fork_reads_back_as_the_original_linked_as_its_fork::harness_4_OPENCODE ... ok test harnesstools::opencode::session::tests::a_checkpoint_resumes_only_past_the_row_it_was_taken_after::case_2_a_wipe_reused_its_seq ... ok test harnesstools::opencode::session::tests::a_part_keeps_its_own_clock::case_1_text_part_clock ... ok test harnesstools::opencode::session::tests::a_part_keeps_its_own_clock::case_2_tool_state_clock ... ok test harnesstools::opencode::session::tests::a_part_keeps_its_own_clock::case_3_retry_clock ... ok test harnesstools::opencode::session::tests::a_part_keeps_its_own_clock::case_4_envelope_fallback ... ok test harnesstools::opencode::session::tests::a_part_keeps_its_own_clock::case_5_no_clock ... ok test harnesstools::opencode::rehydrate::v2::tests::opencode_2_imports_its_own_export ... ok test encryption::paseto_v4::test::concurrent_generation_yields_one_complete_key ... ok test harnesstools::opencode::session::tests::a_part_is_delivered_only_once_it_is_finished ... ok test harnesstools::opencode::session::tests::a_retry_reports_the_error_it_retries_after ... ok test harnesstools::opencode::session::tests::a_part_with_a_lone_surrogate_is_delivered ... ok test harnesstools::opencode::rehydrate::v2::tests::a_real_session_recaptures_as_the_same_rows ... ok test harnesstools::opencode::rehydrate::v2::tests::a_fork_is_linked_to_its_original ... ok test harnesstools::opencode::session::tests::a_rewind_re_delivers_nothing_of_a_session_whose_ids_stepped_back ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_3_3 ... ok test harnesstools::opencode::session::tests::a_session_drains_past_one_page_on_one_thread ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_4_4 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_1_1 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_2_2 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_5_5 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_1_0::waits_6_6 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_1_1 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_2_2 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_3_3 ... ok test harnesstools::opencode::session::tests::a_session_keeps_the_roles_of_its_newest_messages_only::up_front_1_false ... ok test harnesstools::opencode::session::tests::a_session_keeps_the_roles_of_its_newest_messages_only::up_front_2_true ... ok test fs::tree_watcher::tests::filter_limits_the_yielded_files ... ok test harnesstools::opencode::session::tests::a_session_left_mid_read_stalls_no_other ... ok test harnesstools::opencode::session::tests::a_session_nobody_reads_holds_none_of_its_rows ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_1_the_row_a_session_was_offered_on_is_delivered_first ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_2_the_rows_after_the_last_one_delivered_go_on ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_3_an_id_that_sorts_below_the_ones_before_it_is_still_the_same_row ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_4_a_wipe_restarts_the_aggregate_under_the_same_seqs ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_5_a_restored_backup_ends_below_the_row_resumed_at ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_6_a_null_id_still_anchors ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_7_a_new_incarnation_starts_at_the_first_row ... ok test harnesstools::opencode::session::tests::a_session_resumes_only_in_the_incarnation_it_left_off_in::case_8_an_aggregate_with_no_rows_delivers_nothing ... ok test harnesstools::opencode::session::tests::a_session_of_the_experimental_event_system_is_read ... ok test harnesstools::opencode::session::tests::a_session_that_is_never_drained_stalls_no_other ... ok test harnesstools::opencode::session::tests::a_session_whose_id_is_not_utf8_reads_its_own_rows::case_1_a_blob ... ok test harnesstools::opencode::session::tests::a_session_whose_id_is_not_utf8_reads_its_own_rows::case_2_text_sqlite_never_checked ... ok test harnesstools::opencode::session::tests::a_session_whose_tail_is_gone_reads_its_aggregate_out ... ok test harnesstools::opencode::session::tests::a_shapeless_part_payload_is_an_error::case_1_string ... ok test harnesstools::opencode::session::tests::a_shapeless_part_payload_is_an_error::case_2_part_not_an_object ... ok test harnesstools::opencode::session::tests::a_shapeless_part_payload_is_an_error::case_3_no_part ... ok test harnesstools::opencode::session::tests::a_shell_command_and_a_retry_of_the_experimental_event_system_are_read ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_1_stop ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_2_length ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_3_tool_calls ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_4_content_filter ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_5_error ... ok test harnesstools::opencode::session::tests::a_step_says_why_it_ended::case_6_unknown ... ok test harnesstools::opencode::session::tests::a_steps_usage_counts_reasoning_as_output::case_1_whole ... ok test harnesstools::opencode::session::tests::a_steps_usage_counts_reasoning_as_output::case_2_fractional_and_negative ... ok test harnesstools::ccode::session::tests::a_followed_subagent_finds_its_spawner_once_the_metadata_lands ... ok test harnesstools::opencode::session::tests::a_steps_usage_counts_reasoning_as_output::case_3_no_output_at_all ... ok test harnesstools::opencode::session::tests::a_steps_usage_counts_reasoning_as_output::case_4_no_tokens ... ok test harnesstools::opencode::session::tests::an_aborted_call_keeps_what_it_had_output ... ok test harnesstools::opencode::session::tests::a_subtask_says_its_prompt ... ok test harnesstools::ccode::session::tests::messages_ends_when_the_session_file_is_removed ... ok test harnesstools::ccode::session::tests::messages_yields_lines_appended_after_discovery ... ok test harnesstools::opencode::session::tests::captured::a_child_session_names_its_parent ... ok test harnesstools::opencode::session::tests::captured::a_compaction_request_is_the_systems ... ok test harnesstools::opencode::session::tests::an_ignored_first_row_spawns_no_session ... ok test harnesstools::opencode::session::tests::captured::a_compaction_summary_is_a_summary ... ok test harnesstools::opencode::session::tests::captured::a_failed_assistant_turn_is_captured::case_1_aborted ... ok test harnesstools::opencode::session::tests::captured::a_failed_assistant_turn_is_captured::case_2_api ... ok test harnesstools::opencode::session::tests::captured::a_failed_assistant_turn_is_captured::case_3_output_length ... ok test harnesstools::opencode::session::tests::captured::a_failed_assistant_turn_is_captured::case_4_content_filter ... ok test harnesstools::opencode::session::tests::captured::a_forked_copy_of_a_step_is_the_same_turn_as_its_original ... ok test harnesstools::opencode::session::tests::captured::a_parts_context_is_looked_up_when_its_message_row_is_not_to_hand ... ok test harnesstools::codex::session::tests::messages_ends_when_the_session_file_is_removed ... ok test harnesstools::codex::session::tests::messages_yields_lines_appended_after_discovery ... ok test harnesstools::opencode::session::tests::captured::a_read_that_fails_partway_says_so ... ok test harnesstools::opencode::session::tests::captured::a_revert_leaves_what_was_captured_as_it_stands::case_2_message ... ok test harnesstools::opencode::session::tests::captured::a_revert_leaves_what_was_captured_as_it_stands::case_1_part ... ok test harnesstools::opencode::session::tests::captured::a_turns_usage_is_captured_once_from_its_step ... ok test harnesstools::opencode::session::tests::captured::each_step_of_a_message_is_a_turn_of_its_own ... ok test harnesstools::opencode::session::tests::captured::an_assistant_part_carries_its_messages_context ... ok test harnesstools::opencode::session::tests::discover_prefers_opencode_db_then_the_newest_channel_db ... ok test harnesstools::opencode::session::tests::falls_back_to_other_for_an_unknown_part_type ... ok test harnesstools::opencode::session::tests::listener_reports_not_found_for_a_missing_db ... ok test harnesstools::opencode::session::tests::normalizes_a_completed_tool_part ... ok test harnesstools::opencode::session::tests::normalizes_a_text_part ... ok test harnesstools::opencode::session::tests::normalizes_an_errored_tool_part ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_01_streaming_text ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_02_finished_text ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_03_a_prompt_written_once ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_04_streaming_reasoning ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_05_finished_reasoning ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_06_a_pending_call ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_07_a_running_call ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_08_a_completed_call ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_09_a_failed_call ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_10_a_status_this_module_does_not_know ... ok test harnesstools::opencode::session::tests::captured::text_the_harness_injected_is_the_systems::case_2_ignored ... ok test harnesstools::opencode::session::tests::only_a_part_opencode_is_still_writing_is_a_draft::case_11_a_step_written_once ... ok test harnesstools::opencode::session::tests::preserves_a_structured_tool_output ... ok test harnesstools::opencode::session::tests::captured::text_the_harness_injected_is_the_systems::case_1_synthetic ... ok test harnesstools::opencode::session::tests::captured::the_session_title_is_captured_as_it_changes ... ok test harnesstools::opencode::session::tests::events_demultiplex_sessions_on_one_thread ... ok test harnesstools::opencode::session::tests::projected::a_projected_draft_is_not_delivered ... ok test harnesstools::opencode::session::tests::projected::a_session_older_than_its_log_is_read_from_the_projection ... ok test harnesstools::opencode::session::tests::projected::a_session_only_the_projection_holds_is_listed_and_read ... ok test harnesstools::opencode::session::tests::projected::a_session_whose_log_holds_its_start_is_read_from_the_log_alone ... ok test harnesstools::opencode::session::tests::projected::a_title_the_log_changed_since_the_wipe_is_the_last ... ok test harnesstools::opencode::session::tests::replay_all_backfills_preexisting_rows ... ok test harnesstools::opencode::session::tests::reconstructs_two_interleaved_sessions_from_a_fixture ... ok test harnesstools::opencode::session::tests::projected::a_live_session_delivers_its_backlog_ahead_of_its_log ... ok test harnesstools::opencode::session::tests::rows_written_after_an_event_log_wipe_are_delivered ... ok test harnesstools::opencode::session::v2::tests::a_2_0_only_database_is_read_whole ... ok test harnesstools::opencode::session::v2::tests::a_call_s_content_is_its_text_reasoning_and_tools ... ok test harnesstools::opencode::session::v2::tests::a_call_s_usage_counts_its_reasoning_as_output::case_1_assistant ... ok test harnesstools::opencode::session::v2::tests::a_call_s_usage_counts_its_reasoning_as_output::case_2_compaction ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_1_stop ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_2_length ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_3_tool_calls ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_4_unknown ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_5_a_provider_error ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_6_an_interrupted_step ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_7_a_refusal ... ok test harnesstools::opencode::session::v2::tests::a_call_says_how_it_ended::case_8_a_step_a_newer_one_superseded ... ok test harnesstools::opencode::session::v2::tests::a_checkpoint_grows_with_either_place ... ok test harnesstools::opencode::session::v2::tests::a_checkpoint_names_both_places ... ok test harnesstools::opencode::session::tests::rows_written_after_a_restored_backup_are_delivered ... ok test fs::tree_watcher::tests::benign_mutation_does_not_re_yield_the_file::case_1_append ... ok test fs::tree_watcher::tests::benign_mutation_does_not_re_yield_the_file::case_2_overwrite ... ok test harnesstools::opencode::session::v2::tests::a_failed_turn_says_its_error_once ... ok test harnesstools::opencode::session::v2::tests::a_fork_s_copy_of_a_call_is_the_same_call ... ok test harnesstools::opencode::session::v2::tests::a_fork_s_copies_count_no_call_twice ... ok test harnesstools::opencode::session::v2::tests::a_migrated_session_s_tip_is_its_last_2_0_row ... ok test db::sqlite::observe::driver::tests::append_checks_the_anchor_in_the_page_snapshot ... ok test harnesstools::copilot::session::tests::the_listener_reports_a_subagent_its_parent_comes_across ... ok test harnesstools::opencode::session::v2::tests::a_renamed_session_read_from_scratch_is_titled_at_its_start ... ok test harnesstools::opencode::session::v2::tests::a_restored_backup_is_read_again_from_the_start ... ok test harnesstools::opencode::session::v2::tests::a_row_at_the_last_seq_is_read ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_01_a_prompt ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_02_a_subagent_s_prompt ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_03_synthetic ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_04_a_goal ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_05_a_goal_with_attachments ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_06_a_goal_s_continuation ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_07_a_resumed_goal ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_08_system ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_09_skill ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_10_a_shell_command ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_11_a_compaction ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_12_a_provider_s_compaction ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_13_a_failed_compaction ... ok test harnesstools::opencode::session::v2::tests::a_row_says_what_its_type_says::case_14_a_row_of_a_type_this_module_does_not_know ... ok test harnesstools::opencode::session::v2::tests::a_row_was_written_where_the_session_was_then::case_1_before_any_move ... ok test harnesstools::opencode::session::v2::tests::a_row_was_written_where_the_session_was_then::case_2_after_the_first ... ok test harnesstools::opencode::session::v2::tests::a_row_was_written_where_the_session_was_then::case_3_after_the_second ... ok test harnesstools::opencode::session::v2::tests::a_row_with_nothing_to_say_is_no_message::case_1_an_idle_session ... ok test harnesstools::opencode::session::v2::tests::a_row_with_nothing_to_say_is_no_message::case_2_an_agent_switch ... ok test harnesstools::opencode::session::v2::tests::a_row_with_nothing_to_say_is_no_message::case_3_a_model_switch ... ok test harnesstools::opencode::session::v2::tests::a_row_with_nothing_to_say_is_no_message::case_4_a_move ... ok test fs::tree_watcher::tests::recursion_controls_nested_files::case_2 ... ok test harnesstools::opencode::session::v2::tests::a_session_s_info_is_stamped_when_its_title_changed::case_1_as_it_stands ... ok test harnesstools::opencode::session::v2::tests::a_session_s_info_is_stamped_when_its_title_changed::case_2_renamed ... ok test harnesstools::opencode::session::v2::tests::a_session_s_info_names_its_title_and_where_it_came_from ... ok test harnesstools::opencode::session::v2::tests::a_shell_call_that_exited_non_zero_is_an_error::case_1_succeeded ... ok test harnesstools::opencode::session::v2::tests::a_shell_call_that_exited_non_zero_is_an_error::case_2_failed ... ok test harnesstools::opencode::session::v2::tests::a_shell_call_that_exited_non_zero_is_an_error::case_3_timed_out ... ok test harnesstools::opencode::session::v2::tests::a_turn_that_did_not_succeed_says_why::case_1_failed ... ok test harnesstools::opencode::session::v2::tests::a_turn_that_did_not_succeed_says_why::case_2_interrupted ... ok test harnesstools::opencode::session::v2::tests::a_turn_that_failed_says_its_error ... ok test harnesstools::opencode::session::v2::tests::an_edit_s_diff_is_its_patch ... ok test harnesstools::opencode::session::tests::a_backfill_delivers_every_session_and_part ... ok test harnesstools::opencode::session::tests::a_db_without_an_event_table_is_watched_until_it_has_one ... ok test harnesstools::opencode::session::tests::a_dropped_session_handle_is_offered_again_with_nothing_lost ... ok test harnesstools::opencode::session::tests::a_part_whose_role_row_predates_the_tail_takes_its_role_from_the_projection::case_1_from_the_projection ... ok test harnesstools::opencode::tests::each_opencode_gets_the_plugin_it_loads::case_1_none ... ok test harnesstools::opencode::tests::each_opencode_gets_the_plugin_it_loads::case_2_one ... ok test harnesstools::opencode::tests::each_opencode_gets_the_plugin_it_loads::case_3_two ... ok test harnesstools::opencode::tests::each_opencode_gets_the_plugin_it_loads::case_4_three ... ok test harnesstools::opencode::session::tests::a_part_whose_role_row_predates_the_tail_takes_its_role_from_the_projection::case_2_unknown_without_it ... ok test harnesstools::opencode::tests::the_opencode_2_plugin_records_commands_that_ended ... ok test harnesstools::pi::rehydrate::tests::a_bang_command_is_a_bash_execution::case_1_bash ... ok test harnesstools::pi::rehydrate::tests::a_bang_command_is_a_bash_execution::case_2_python ... ok test harnesstools::pi::rehydrate::tests::a_cycle_closed_by_clock_skew_is_cut ... ok test harnesstools::pi::rehydrate::tests::a_new_file_opens_on_the_agents_default_model::flavour_1_Flavour__Pi ... ok test harnesstools::pi::rehydrate::tests::a_parent_cycle_hangs_from_the_entry_before ... ok test harnesstools::pi::rehydrate::tests::a_new_file_opens_on_the_agents_default_model::flavour_2_Flavour__Omp ... ok test harnesstools::pi::rehydrate::tests::a_reply_names_its_provider::case_1_captured ... ok test harnesstools::pi::rehydrate::tests::a_reply_names_its_provider::case_2_guessed ... ok test harnesstools::pi::rehydrate::tests::a_reply_names_its_provider::case_3_unknown ... ok test harnesstools::pi::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_2_session1 ... ok test harnesstools::pi::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_1_mock ... ok test harnesstools::pi::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_4_v1 ... ok test harnesstools::pi::rehydrate::tests::an_edits_result_gets_its_details_back ... ok test harnesstools::pi::rehydrate::tests::an_omp_session_starts_with_its_title_slot::flavour_1_Flavour__Pi ... ok test harnesstools::pi::rehydrate::tests::an_omp_session_starts_with_its_title_slot::flavour_2_Flavour__Omp ... ok test harnesstools::pi::rehydrate::tests::entries_are_linked_named_and_compacted ... ok test harnesstools::pi::rehydrate::tests::never_overwrites_a_session ... ok test harnesstools::pi::rehydrate::tests::no_opening_model_without_a_default_or_on_an_append ... ok test harnesstools::pi::rehydrate::tests::omp_config_names_its_default_model::case_1_plain ... ok test harnesstools::pi::rehydrate::tests::omp_config_names_its_default_model::case_2_quoted ... ok test harnesstools::pi::rehydrate::tests::omp_config_names_its_default_model::case_3_comment ... ok test harnesstools::pi::rehydrate::tests::omp_config_names_its_default_model::case_4_other_block ... ok test harnesstools::pi::rehydrate::tests::omp_config_names_its_default_model::case_5_missing ... ok test harnesstools::pi::rehydrate::tests::a_session_reads_back_as_it_was_captured::case_3_session2 ... ok test harnesstools::pi::rehydrate::tests::output_not_captured_says_so ... ok test harnesstools::pi::session::tests::a_failed_assistant_turn_keeps_its_error_message::case_1 ... ok test harnesstools::pi::session::tests::a_failed_assistant_turn_keeps_its_error_message::case_2 ... ok test harnesstools::pi::rehydrate::tests::the_tree_is_relinked_whatever_the_order ... ok test harnesstools::pi::session::tests::a_fork_resolves_its_parent_through_the_parents_header ... ok test harnesstools::pi::session::tests::a_line_json_parse_reads_is_read::case_1_lone_surrogate ... ok test harnesstools::pi::session::tests::a_reused_response_id_does_not_merge_calls ... ok test harnesstools::pi::session::tests::a_line_json_parse_reads_is_read::case_2_invalid_utf8 ... ok test harnesstools::pi::session::tests::a_shared_session_dir_is_split_by_flavour::flavour_1_Flavour__Pi ... ok test harnesstools::pi::session::tests::a_successful_assistant_turn_has_no_error ... ok test harnesstools::pi::session::tests::a_shared_session_dir_is_split_by_flavour::flavour_2_Flavour__Omp ... ok test harnesstools::pi::session::tests::an_assistant_turn_is_named_by_what_a_fork_copies::case_1_response_id ... ok test harnesstools::pi::session::tests::an_assistant_turn_is_named_by_what_a_fork_copies::case_2_blank_response_id ... ok test harnesstools::pi::session::tests::a_v1_session_reads_the_same_after_pi_migrates_it ... ok test harnesstools::pi::session::tests::an_assistant_turn_is_named_by_what_a_fork_copies::case_3_no_response_id ... ok test harnesstools::pi::session::tests::an_edits_result_keeps_its_patch::case_1_patch ... ok test harnesstools::pi::session::tests::an_edits_result_keeps_its_patch::case_2_diff_only ... ok test harnesstools::pi::session::tests::an_edits_result_keeps_its_patch::case_3_no_details ... ok test harnesstools::pi::session::tests::an_event_embedding_a_message_is_no_message::case_2_message_end ... ok test harnesstools::pi::session::tests::an_event_embedding_a_message_is_no_message::case_1_message_start ... ok test harnesstools::pi::session::tests::an_event_embedding_a_message_is_no_message::case_3_turn_end ... ok test harnesstools::pi::session::tests::an_omp_subagent_is_its_parents_subagent::case_1_subagent ... ok test harnesstools::pi::session::tests::an_omp_subagent_is_its_parents_subagent::case_2_advisor ... ok test harnesstools::pi::session::tests::bash_execution_is_a_user_command_with_its_output::case_1_ok ... ok test harnesstools::pi::session::tests::bash_execution_is_a_user_command_with_its_output::case_2_failed ... ok test harnesstools::pi::session::tests::bash_execution_is_a_user_command_with_its_output::case_3_cancelled ... ok test harnesstools::pi::session::tests::bash_execution_is_a_user_command_with_its_output::case_4_kept_out_of_context ... ok test harnesstools::pi::session::tests::custom_messages_keep_their_content::case_1_entry_shown ... ok test harnesstools::pi::session::tests::custom_messages_keep_their_content::case_2_entry_hidden ... ok test harnesstools::pi::session::tests::custom_messages_keep_their_content::case_3_message ... ok test harnesstools::pi::session::tests::custom_messages_keep_their_content::case_4_v2_hook_message ... ok test harnesstools::pi::session::tests::enrichment_is_none_when_the_harness_did_not_provide_it ... ok test harnesstools::pi::session::tests::entries_with_their_own_usage_report_it::case_1_compaction ... ok test harnesstools::pi::session::tests::entries_with_their_own_usage_report_it::case_2_branch_summary ... ok test harnesstools::pi::session::tests::entries_with_their_own_usage_report_it::case_3_cache_warm ... ok test harnesstools::pi::session::tests::existing_does_not_follow_symlinked_dirs ... ok test harnesstools::pi::session::tests::existing_skips_a_file_whose_header_is_not_written_yet ... ok test harnesstools::pi::session::tests::existing_finds_every_session_file_under_root ... ok test harnesstools::pi::session::tests::exposes_parent_id_and_session_info_title ... ok test harnesstools::pi::session::tests::file_mentions_keep_the_files ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_1_default ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_3_env_tilde ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_2_env ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_4_settings ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_5_settings_bom ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_6_settings_tilde ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_7_settings_relative ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_8_settings_without ... ok test harnesstools::pi::session::tests::header_parent_session_path_resolves_to_the_parent_id::case_1 ... ok test harnesstools::pi::session::tests::finds_the_session_root_as_pi_does::case_9_settings_malformed ... ok test harnesstools::pi::session::tests::header_parent_session_path_resolves_to_the_parent_id::case_2 ... ok test harnesstools::pi::session::tests::listener_reports_not_found_for_a_missing_root ... ok test harnesstools::pi::session::tests::image_blocks_drop_their_bytes ... ok test harnesstools::pi::session::tests::maps_pi_stop_reason_vocabulary::case_1 ... ok test harnesstools::pi::session::tests::maps_pi_stop_reason_vocabulary::case_2 ... ok test harnesstools::pi::session::tests::maps_pi_stop_reason_vocabulary::case_3 ... ok test harnesstools::pi::session::tests::maps_pi_stop_reason_vocabulary::case_4 ... ok test harnesstools::pi::session::tests::maps_pi_stop_reason_vocabulary::case_5 ... ok test harnesstools::pi::session::tests::messages_streams_turns_from_a_pi_session_file ... ok test harnesstools::opencode::session::v2::tests::the_fixture_s_sessions_read_as_opencode_wrote_them ... ok test harnesstools::pi::session::tests::normalizes_a_pi_user_message ... ok test harnesstools::pi::session::tests::normalizes_a_real_redacted_session::case_1 ... ok test harnesstools::pi::session::tests::normalizes_a_real_redacted_session::case_2 ... ok test harnesstools::pi::session::tests::normalizes_pi_assistant_enrichment_fields ... ok test harnesstools::pi::session::tests::normalizes_pi_tool_call_and_result ... ok test harnesstools::pi::session::tests::omp_model_usage_is_a_call_of_its_own ... ok test harnesstools::pi::session::tests::omp_narration_is_text_and_redacted_thinking_reasoning ... ok test harnesstools::pi::session::tests::omp_title_changes_are_titles::case_1_user ... ok test harnesstools::pi::session::tests::omp_title_changes_are_titles::case_2_auto ... ok test harnesstools::pi::session::tests::omp_title_changes_are_titles::case_3_blank ... ok test harnesstools::pi::session::tests::omp_usage_and_model_read_as_pis ... ok test harnesstools::pi::session::tests::python_execution_is_a_user_command_with_its_output::case_1_in_context ... ok test harnesstools::pi::session::tests::python_execution_is_a_user_command_with_its_output::case_2_kept_out_of_context ... ok test harnesstools::pi::session::tests::read_yields_all_messages_and_terminates ... ok test harnesstools::pi::session::tests::reads_a_session_pi_wrote ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_01_empty ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_02_half_written ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_03_unterminated_but_whole ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_04_after_blank_lines ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_05_not_a_header ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_06_id_not_a_string ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_07_garbage ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_08_after_garbage ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_09_bom ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_10_event_log ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_11_after_omp_title_slot ... ok test harnesstools::pi::session::tests::reads_the_header_line::case_12_omp_title_slot_alone ... ok test harnesstools::pi::session::tests::session_id_comes_from_the_header_not_the_file_name ... ok test harnesstools::pi::session::tests::session_info_names_are_trimmed_titles::case_1 ... ok test harnesstools::pi::session::tests::session_info_names_are_trimmed_titles::case_2 ... ok test harnesstools::pi::session::tests::session_info_names_are_trimmed_titles::case_3 ... ok test harnesstools::pi::session::tests::summary_entries_keep_their_summary::case_1 ... ok test harnesstools::pi::session::tests::summary_entries_keep_their_summary::case_2 ... ok test harnesstools::pi::session::tests::the_header_names_the_parent_session::case_1_fork ... ok test harnesstools::pi::session::tests::the_header_names_the_parent_session::case_2_bare_file_name ... ok test harnesstools::pi::session::tests::the_header_names_the_parent_session::case_3_v1_branched_from ... ok test harnesstools::pi::session::tests::the_header_names_the_parent_session::case_4_root ... ok test harnesstools::pi::session::tests::the_header_names_the_parent_session::case_5_not_a_header ... ok test harnesstools::pi::session::tests::tool_result_usage_is_not_session_usage ... ok test harnesstools::pi::session::tests::watch_emits_sessions_as_files_appear ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_4_4 ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_5_5 ... ok test harnesstools::rehydrate::tests::a_failed_row_is_not_merged ... ok test harnesstools::rehydrate::tests::a_note_without_text_before_it_takes_its_calls_row::case_1_own_row ... ok test harnesstools::rehydrate::tests::a_note_without_text_before_it_takes_its_calls_row::case_2_no_row_to_change ... ok test harnesstools::rehydrate::tests::a_run_ending_on_a_flattened_call_ends_the_turn ... ok test harnesstools::rehydrate::tests::calls_kept_with_their_input_stay_calls::case_1_runs ... ok test harnesstools::rehydrate::tests::calls_kept_with_their_input_stay_calls::case_2_notes ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_1_a_turn_behind ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_2_in_order ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_3_followers_come_along ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_4_unlinked_rows_keep_their_place ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_5_waiting_on_each_other ... ok test harnesstools::rehydrate::tests::no_row_precedes_its_parent::case_6_its_own_parent ... ok test harnesstools::rehydrate::tests::notes_join_only_text_they_follow::case_1_refused ... ok test harnesstools::rehydrate::tests::notes_join_only_text_they_follow::case_2_across_a_prompt ... ok test harnesstools::rehydrate::tests::notes_join_only_text_they_follow::case_3_across_a_kept_call ... ok test harnesstools::rehydrate::tests::notes_join_the_text_before_them ... ok test harnesstools::rehydrate::tests::nothing_to_flatten_changes_nothing ... ok test harnesstools::rehydrate::tests::runs_merge_into_their_last_row ... ok test harnesstools::opencode::session::tests::a_session_dropped_while_it_waits_loses_no_row::taken_2_1::waits_6_6 ... ok test harnesstools::resume::tests::harnesses::a_claude_subagent_is_not_resumable ... ok test harnesstools::resume::tests::harnesses::a_non_utf8_path_is_an_error ... ok test harnesstools::resume::tests::harnesses::a_template_keeps_the_harness_cwd_requirement ... ok test harnesstools::resume::tests::harnesses::codex_resumes_a_reverted_rollout_by_its_thread ... ok test harnesstools::resume::tests::harnesses::pi_resumes_a_known_file_by_path ... ok test harnesstools::resume::tests::harnesses::plans_by_id::case_1_claude ... ok test harnesstools::resume::tests::harnesses::plans_by_id::case_2_codex ... ok test harnesstools::resume::tests::harnesses::plans_by_id::case_3_opencode ... ok test harnesstools::resume::tests::harnesses::plans_by_id::case_4_pi_by_id ... ok test harnesstools::resume::tests::locate::an_id_that_is_no_plain_name_is_never_looked_up::case_1_traversal ... ok test harnesstools::resume::tests::locate::an_id_that_is_no_plain_name_is_never_looked_up::case_2_dot ... ok test harnesstools::resume::tests::locate::an_id_that_is_no_plain_name_is_never_looked_up::case_3_empty ... ok test harnesstools::resume::tests::locate::an_id_that_is_no_plain_name_is_never_looked_up::case_4_separator ... ok test harnesstools::resume::tests::locate::claude_finds_a_transcript_in_any_project ... ok test harnesstools::resume::tests::locate::codex_finds_a_rollout_by_its_id ... ok test harnesstools::resume::tests::locate::opencode_finds_a_2_0_session ... ok test harnesstools::resume::tests::locate::opencode_finds_a_session_in_its_database ... ok test harnesstools::resume::tests::locate::pi_finds_a_session_by_its_file_name_and_header ... ok test harnesstools::resume::tests::locate::pi_trusts_the_header_over_the_file_name ... ok test harnesstools::resume::tests::prepare_drops_a_preferred_cwd_that_is_gone ... ok test harnesstools::resume::tests::prepare_keeps_a_cwd_that_exists ... ok test harnesstools::resume::tests::prepare_rejects_a_required_cwd_that_is_gone ... ok test harnesstools::resume::tests::quote_words::case_01_bare ... ok test harnesstools::resume::tests::quote_words::case_02_uuid ... ok test harnesstools::resume::tests::quote_words::case_03_empty ... ok test harnesstools::resume::tests::quote_words::case_04_space ... ok test harnesstools::resume::tests::quote_words::case_05_single_quote ... ok test harnesstools::resume::tests::quote_words::case_06_only_quote ... ok test harnesstools::resume::tests::quote_words::case_07_backslash ... ok test harnesstools::resume::tests::quote_words::case_08_double_backslash_quote ... ok test harnesstools::resume::tests::quote_words::case_09_leading_equals ... ok test harnesstools::resume::tests::quote_words::case_10_inner_equals ... ok test harnesstools::resume::tests::quote_words::case_11_dollar ... ok test harnesstools::resume::tests::quote_words::case_12_glob ... ok test harnesstools::resume::tests::quote_words::case_13_tilde ... ok test harnesstools::resume::tests::quote_words::case_14_unicode ... ok test harnesstools::resume::tests::quote_words::case_15_newline ... ok test harnesstools::resume::tests::quote_words::case_16_bang ... ok test harnesstools::resume::tests::render_puts_cd_first ... ok test harnesstools::resume::tests::render_without_a_cwd_is_the_command_alone ... ok test harnesstools::resume::tests::shells_read_quoted_words_back::shell_1___bash__ ... ok test harnesstools::resume::tests::shells_read_quoted_words_back::shell_2___zsh__ ... ok test harnesstools::resume::tests::shells_read_quoted_words_back::shell_3___fish__ ... ok test harnesstools::resume::tests::shells_run_a_rendered_plan::shell_1___bash__ ... ok test harnesstools::resume::tests::shells_run_a_rendered_plan::shell_2___zsh__ ... ok test harnesstools::resume::tests::shells_run_a_rendered_plan::shell_3___fish__ ... ok test harnesstools::resume::tests::template_errors::case_1_path ... ok test harnesstools::resume::tests::template_errors::case_2_cwd ... ok test harnesstools::resume::tests::template_errors::case_3_empty ... ok test harnesstools::resume::tests::template_errors::case_4_unbalanced ... ok test harnesstools::resume::tests::template_leaves_other_braces_alone ... ok test harnesstools::resume::tests::template_substitutes_each_placeholder_in_its_word ... ok test harnesstools::session::any::tests::any_message_dispatches_the_message_trait ... ok test harnesstools::session::any::tests::any_sessions_listener_reports_not_found ... ok test harnesstools::session::checkpoint::tests::the_digest_of_an_item_never_changes ... ok test harnesstools::session::error::tests::message_error_is_from_jsonl ... ok test harnesstools::session::error::tests::runtime_not_found_names_the_path ... ok test harnesstools::session::model::tests::content_variants_are_distinct ... ok test harnesstools::session::model::tests::message_id_display_equals_source ... ok test harnesstools::session::model::tests::session_id_round_trips_through_string::case_1 ... ok test harnesstools::session::model::tests::session_id_round_trips_through_string::case_2 ... ok test harnesstools::session::model::tests::tool_result_output_text_unwraps_json_strings::case_1_string ... ok test harnesstools::session::model::tests::tool_result_output_text_unwraps_json_strings::case_2_structured ... ok test harnesstools::session::model::tests::tool_result_output_text_unwraps_json_strings::case_3_blocks ... ok test harnesstools::session::model::tests::tool_result_output_text_unwraps_json_strings::case_4_blocks_without_text ... ok test harnesstools::session::model::tests::tool_result_output_text_unwraps_json_strings::case_5_uncaptured ... ok test harnesstools::session::patch::tests::a_short_hunk_does_not_swallow_the_next ... ok test harnesstools::session::patch::tests::added_and_deleted_files_give_their_content_back::case_1_trailing_newline ... ok test harnesstools::session::patch::tests::added_and_deleted_files_give_their_content_back::case_2_no_trailing_newline ... ok test harnesstools::session::patch::tests::an_added_files_path::case_1_plain ... ok test harnesstools::session::patch::tests::an_added_files_path::case_2_git ... ok test harnesstools::session::patch::tests::carriage_returns_are_part_of_the_line ... ok test harnesstools::session::patch::tests::counts_additions_and_deletions ... ok test harnesstools::session::patch::tests::keeps_a_missing_newline_marker::case_1_mid_hunk ... ok test harnesstools::session::patch::tests::keeps_a_missing_newline_marker::case_2_last_line ... ok test harnesstools::session::patch::tests::parses_lines_that_look_like_headers_inside_a_hunk ... ok test harnesstools::session::patch::tests::parses_several_files ... ok test harnesstools::session::patch::tests::parses_unified_diffs::case_1_bare ... ok test harnesstools::session::patch::tests::parses_unified_diffs::case_2_headers ... ok test harnesstools::session::patch::tests::parses_unified_diffs::case_3_jsdiff ... ok test harnesstools::session::patch::tests::parses_unified_diffs::case_4_git ... ok test harnesstools::session::patch::tests::parses_unified_diffs::case_5_directory_named_b ... ok test harnesstools::session::patch::tests::summarises_the_files_changed ... ok test harnesstools::session::patch::tests::unified_diffs_round_trip ... ok test harnesstools::session::patch::tests::writes_pi_diffs ... ok test harnesstools::session::patch::tests::writes_pi_diffs_of_hunks_numbered_past_the_last_line ... ok test harnesstools::resume::tests::any_word_survives_quoting ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_1_untouched::harness_1_JsonlHarness__Ccode ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_1_untouched::harness_2_JsonlHarness__Codex ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_1_untouched::harness_3_JsonlHarness__Pi ... ok test harnesstools::opencode::session::tests::a_session_taken_up_again_resumes_where_it_stopped ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_2_without_a_checkpoint::harness_1_JsonlHarness__Ccode ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_2_without_a_checkpoint::harness_2_JsonlHarness__Codex ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_2_without_a_checkpoint::harness_3_JsonlHarness__Pi ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_3_rewritten_to_the_same_length::harness_1_JsonlHarness__Ccode ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_3_rewritten_to_the_same_length::harness_2_JsonlHarness__Codex ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_3_rewritten_to_the_same_length::harness_3_JsonlHarness__Pi ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_4_cut_shorter::harness_1_JsonlHarness__Ccode ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_4_cut_shorter::harness_2_JsonlHarness__Codex ... ok test harnesstools::session::tests::message_trait_exposes_a_normalized_view ... ok test harnesstools::session::tests::a_transcript_resumes_only_where_its_checkpoint_still_holds::case_4_cut_shorter::harness_3_JsonlHarness__Pi ... ok test io::follow_lines::tests::a_change_while_the_stream_is_suspended_is_not_lost ... ok test io::follow_lines::tests::a_failed_read_after_the_sender_drops_ends_the_stream_quietly ... ok test io::follow_lines::tests::a_failing_read_is_retried_and_only_its_first_failure_yielded ... ok test io::follow_lines::tests::read_to_end_reads_a_single_pass ... ok test io::line_reader::tests::a_failed_open_keeps_the_position ... ok test io::line_reader::tests::a_file_replaced_at_the_path_restarts ... ok test io::line_reader::tests::a_file_rewritten_in_place_restarts::case_1_as_long::resumed_1_false ... ok test io::line_reader::tests::a_file_rewritten_in_place_restarts::case_1_as_long::resumed_2_true ... ok test io::line_reader::tests::a_file_rewritten_in_place_restarts::case_2_longer::resumed_1_false ... ok test io::line_reader::tests::a_file_rewritten_in_place_restarts::case_2_longer::resumed_2_true ... ok test io::line_reader::tests::a_file_rewritten_with_what_was_read_reads_on ... ok test io::line_reader::tests::a_held_file_is_followed_past_a_replacement_at_its_path ... ok test io::line_reader::tests::a_line_being_written_is_copied_once ... ok test io::line_reader::tests::a_line_longer_than_a_read_is_returned_whole ... ok test harnesstools::ccode::session::tests::events_leave_an_untouched_transcript_alone_until_it_changes::case_1_untouched ... ok test harnesstools::ccode::session::tests::events_leave_an_untouched_transcript_alone_until_it_changes::case_2_imported_meanwhile ... ok test io::line_reader::tests::a_line_read_in_part_rewritten_in_place_restarts ... ok test io::line_reader::tests::a_reader_at_the_end_holds_no_buffer::case_1_whole_lines ... ok test io::line_reader::tests::a_reader_at_the_end_holds_no_buffer::case_2_a_line_read_in_part ... ok test io::line_reader::tests::a_reader_resumed_past_the_end_restarts ... ok test io::line_reader::tests::a_resumed_reader_continues_at_its_offset::case_1_at_a_boundary ... ok test harnesstools::session::tests::a_reported_again_session_replaces_its_earlier_stream ... ok test io::line_reader::tests::a_resumed_reader_continues_at_its_offset::case_2_at_the_end ... ok test io::line_reader::tests::finds_a_line_longer_than_a_read::before_1_____ ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_1_first_line ... ok test io::line_reader::tests::finds_a_line_longer_than_a_read::before_2___an__ ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_2_last_line ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_4_start_of_file ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_3_blank_line ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_5_mid_line ... ok test io::line_reader::tests::finds_the_line_ending_at_an_offset::case_6_past_the_end ... ok test io::line_reader::tests::returns_complete_lines_only::case_1_empty ... ok test io::line_reader::tests::returns_complete_lines_only::case_2_one ... ok test io::line_reader::tests::returns_complete_lines_only::case_3_blank_lines_are_lines ... ok test io::line_reader::tests::returns_complete_lines_only::case_4_unterminated_tail_withheld ... ok test io::line_reader::tests::returns_complete_lines_only::case_5_only_a_fragment ... ok test io::line_reader::tests::the_iterator_ends_after_its_first_error ... ok test io::pooled_read_lines::tests::a_batch_stops_once_it_is_full ... ok test io::line_reader::tests::truncation_below_the_read_position_restarts ... ok test io::pooled_read_lines::tests::a_restart_is_read_through_in_the_same_batch::restart_1_ReadLinesError__Truncated ... ok test io::pooled_read_lines::tests::a_restart_is_read_through_in_the_same_batch::restart_2_ReadLinesError__Replaced ... ok test io::pooled_read_lines::tests::a_restart_is_read_through_in_the_same_batch::restart_3_ReadLinesError__Rewritten ... ok test io::pooled_read_lines::tests::the_lines_before_a_failure_are_yielded_then_the_stream_ends ... ok test json::js::tests::a_malformed_value_keeps_its_error ... ok test json::js::tests::a_value_json_parse_reads_is_read::case_1_lone ... ok test json::js::tests::a_value_json_parse_reads_is_read::case_2_whole ... ok test json::js::tests::a_value_json_parse_reads_is_read::case_3_invalid_utf8 ... ok test json::js::tests::any_string_javascript_wrote_is_read ... ok test io::pooled_read_lines::tests::a_file_larger_than_a_batch_is_read_to_its_end ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_01_lone_low ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_02_lone_high_at_the_end ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_03_high_before_a_non_surrogate ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_04_high_before_a_pair ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_05_low_after_a_pair ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_06_invalid_utf8 ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_07_a_pair ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_08_an_escaped_backslash ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_09_other_escapes ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_10_not_an_escape_at_all ... ok test json::js::tests::well_formed_replaces_only_what_json_parse_would_make_u_fffd::case_11_cut_short ... ok test json::jsonl::tests::a_line_whose_decoding_panics_is_malformed ... ok test json::jsonl::tests::deserializes_each_non_blank_line::case_1_values ... ok test json::jsonl::tests::deserializes_each_non_blank_line::case_2_blank_lines_are_skipped ... ok test json::jsonl::tests::deserializes_each_non_blank_line::case_3_a_malformed_line_is_not_the_end ... ok test json::jsonl::tests::deserializes_each_non_blank_line::case_4_a_read_error_is_not_the_end ... ok test json::js::tests::fully_escaped_strings_are_read ... ok test num::tests::for_i16::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_i16::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_i16::widening_mul_is_the_product_of_the_magnitudes_signed ... ok test num::tests::for_i32::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_i32::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_i32::widening_mul_is_the_product_of_the_magnitudes_signed ... ok test num::tests::for_i64::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_i64::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_i64::widening_mul_is_the_product_of_the_magnitudes_signed ... ok test num::tests::for_isize::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_isize::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_isize::widening_mul_is_the_product_of_the_magnitudes_signed ... ok test num::tests::for_u16::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_u16::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_u16::widening_mul_is_carrying_mul_without_a_carry ... ok test num::tests::for_u32::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_u32::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_u32::widening_mul_is_carrying_mul_without_a_carry ... ok test num::tests::for_u64::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_u64::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_u64::widening_mul_is_carrying_mul_without_a_carry ... ok test num::tests::for_usize::saturating_mul_div_by_one_is_saturating_mul ... ok test num::tests::for_usize::saturating_mul_div_cancels_a_mul_it_divides_by ... ok test num::tests::for_usize::widening_mul_is_carrying_mul_without_a_carry ... ok test io::line_reader::tests::a_line_is_found_by_its_end ... ok test num::tests::saturating_mul_div_is_exact_arithmetic_saturated_for_every_u8 ... ok test num::tests::saturating_mul_div_is_exact_until_the_quotient_overflows::case_1_two_64_kib_lengths ... ok test num::tests::saturating_mul_div_is_exact_until_the_quotient_overflows::case_2_product_past_usize ... ok test num::tests::saturating_mul_div_is_exact_until_the_quotient_overflows::case_3_scaled_down_from_past_usize ... ok test num::tests::saturating_mul_div_is_exact_until_the_quotient_overflows::case_4_saturates ... ok test os::fs::tests::distinct_files_have_distinct_identities ... ok test os::fs::tests::metadata_identity_matches_the_handle_identity ... ok test os::fs::tests::the_same_file_keeps_its_identity_across_handles ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_1_named ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_2_resource ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_3_hybrid ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_4_v2_only ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_5_v2_by_no_controller ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_6_unbound ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_7_colon_in_path ... ok test os::linux::cgroup::cgroupv1::tests::finds_the_hierarchy_entry::case_8_empty ... ok test os::linux::cgroup::cgroupv1::tests::reads_the_active_process ... ok test os::linux::cgroup::cgroupv2::tests::finds_the_v2_entry::case_1_v2 ... ok test os::linux::cgroup::cgroupv2::tests::finds_the_v2_entry::case_2_hybrid ... ok test os::linux::cgroup::cgroupv2::tests::finds_the_v2_entry::case_3_v1_only ... ok test os::linux::cgroup::cgroupv2::tests::finds_the_v2_entry::case_4_colon_in_path ... ok test os::linux::cgroup::cgroupv2::tests::finds_the_v2_entry::case_5_empty ... ok test os::linux::cgroup::cgroupv2::tests::reads_the_active_process ... ok test os::unix::io::tests::a_read_at_the_end_of_input_returns_zero::nonblocking_1_false ... ok test os::unix::io::tests::a_read_at_the_end_of_input_returns_zero::nonblocking_2_true ... ok test harnesstools::opencode::session::tests::replay_from_now_skips_preexisting_rows ... ok test io::line_reader::tests::a_line_past_the_longest_is_passed_over ... ok test harnesstools::opencode::session::tests::rows_written_after_a_session_delete_are_delivered_once ... ok test harnesstools::opencode::session::v2::tests::a_database_without_an_event_log_is_captured ... ok test os::unix::io::tests::writes_everything::case_1_single_write::nonblocking_1_false ... ok test os::unix::io::tests::writes_everything::case_1_single_write::nonblocking_2_true ... ok test os::unix::io::tests::writes_everything::case_2_short_write_loop::nonblocking_1_false ... ok test os::unix::io::tests::writes_everything::case_2_short_write_loop::nonblocking_2_true ... ok test os::unix::process::tests::a_process_that_has_gone_has_no_working_directory ... ok test os::unix::process::tests::names_a_process_by_its_executable_rather_than_its_argv0 ... ok test os::unix::process::tests::reads_the_working_directory_of_another_process ... ok test os::unix::process::tests::test_pid_from_u32::case_1_zero ... ok test os::unix::process::tests::test_pid_from_u32::case_2_one ... ok test os::unix::process::tests::test_pid_from_u32::case_3_max ... ok test os::unix::process::tests::test_pid_from_u32::case_4_just_over_max ... ok test os::unix::process::tests::test_pid_from_u32::case_5_minus_one_if_wrapped ... ok test os::unix::process::tests::the_generic_lookup_reads_the_working_directory_too ... ok test os::unix::tests::touching_a_socket_refreshes_its_timestamps ... ok test os::unix::tests::touching_a_symlink_leaves_its_target_alone ... ok test os::unix::tty::tests::a_pty_is_not_a_virtual_console ... ok test os::unix::tty::tests::a_read_waits_on_the_reactor_for_input ... ok test os::unix::tty::tests::a_write_reaches_the_other_end ... ok test os::unix::tty::tests::current_finds_the_terminal_on_stdin ... ok test os::unix::tty::tests::dev_null_is_not_a_terminal ... ok test os::unix::tty::tests::from_fd_of_a_pty_matches_a_stat_of_its_path ... ok test os::unix::tty::tests::only_a_terminal_can_be_reopened ... ok test os::unix::tty::tests::reopening_leaves_the_original_descriptor_blocking::access_1_Access__Read ... ok test os::unix::tty::tests::reopening_leaves_the_original_descriptor_blocking::access_2_Access__Write ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_1_tty0 ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_2_tty1 ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_3_tty63 ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_4_ttys0 ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_5_console ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_6_dev_tty ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_7_ptmx ... ok test os::unix::tty::tests::virtual_consoles_are_recognised_by_device_number::case_8_pts0 ... ok test path::absolute::tests::compares_and_hashes_as_a_path ... ok test path::absolute::tests::derived_paths_stay_absolute ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_1_root ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_2_absolute ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_3_tilde ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_4_relative ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_5_dot ... ok test path::absolute::tests::new_accepts_only_absolute_paths::case_6_empty ... ok test path::absolute::tests::parses_and_round_trips_through_serde_only_when_absolute::case_1_accepted ... ok test path::absolute::tests::parses_and_round_trips_through_serde_only_when_absolute::case_2_rejected ... ok test path::absolute::tests::resolve_puts_relative_paths_under_the_base::case_1_relative ... ok test path::absolute::tests::resolve_puts_relative_paths_under_the_base::case_2_absolute ... ok test path::absolute::tests::resolve_puts_relative_paths_under_the_base::case_3_parent_is_kept ... ok test path::display_rich::tests::base_output_matches_path_display::case_1 ... ok test path::display_rich::tests::base_output_matches_path_display::case_2 ... ok test path::display_rich::tests::composes_with_trailing_slash::case_1_tilde ... ok test path::display_rich::tests::composes_with_trailing_slash::case_2_tilde_home_root_is_idempotent ... ok test path::display_rich::tests::composes_with_trailing_slash::case_3_relative_to_base_itself ... ok test path::display_rich::tests::relative_to_rendering::case_1_strips_prefix ... ok test path::display_rich::tests::relative_to_rendering::case_2_base_itself_is_empty ... ok test path::display_rich::tests::relative_to_rendering::case_3_passes_through_when_not_under_base ... ok test path::display_rich::tests::relative_to_takes_priority_over_tilde ... ok test path::display_rich::tests::tilde_rendering::case_1_abbreviates_home ... ok test path::display_rich::tests::tilde_rendering::case_2_home_root_is_tilde_separator ... ok test path::display_rich::tests::tilde_rendering::case_3_passes_through_when_not_under_home ... ok test path::display_rich::tests::trailing_slash_rendering::case_1_appends_when_missing ... ok test path::display_rich::tests::trailing_slash_rendering::case_2_idempotent_when_terminated ... ok test path::display_rich::tests::trailing_slash_rendering::case_3_disabled_is_base ... ok test path::display_rich::tests::trailing_slash_rendering::case_4_empty_becomes_bare_separator ... ok test path::display_rich::tests::works_for_all_asref_path_types ... ok test path::serde_with::tests::escaped_paths_expand_to_themselves ... ok test path::serde_with::tests::expand_names_the_unset_variable::case_1_empty ... ok test path::serde_with::tests::expand_names_the_unset_variable::case_2_unset_variable ... ok test path::serde_with::tests::expand_names_the_unset_variable::case_3_unset_braced_variable ... ok test path::serde_with::tests::expand_names_the_unset_variable::case_4_unset_after_a_set_one ... ok test path::serde_with::tests::relative_to_needs_the_anchor_only_for_relative_paths::case_1_relative ... ok test path::serde_with::tests::relative_to_needs_the_anchor_only_for_relative_paths::case_2_absolute ... ok test path::serde_with::tests::relative_to_rejects::case_1_empty ... ok test path::serde_with::tests::relative_to_resolves::case_01_bare_name ... ok test path::serde_with::tests::relative_to_resolves::case_02_nested ... ok test path::serde_with::tests::relative_to_resolves::case_03_parent ... ok test path::serde_with::tests::relative_to_resolves::case_04_absolute ... ok test path::serde_with::tests::relative_to_resolves::case_05_tilde ... ok test path::serde_with::tests::relative_to_resolves::case_06_bare_tilde ... ok test path::serde_with::tests::relative_to_resolves::case_07_tilde_mid_name ... ok test path::serde_with::tests::relative_to_resolves::case_08_absolute_variable ... ok test path::serde_with::tests::relative_to_resolves::case_09_relative_variable ... ok test path::serde_with::tests::relative_to_resolves::case_10_unset_variable_with_a_default ... ok test path::serde_with::tests::relative_to_resolves::case_11_lone_dollar ... ok test path::serde_with::tests::relative_to_resolves::case_12_escaped_dollar ... ok test path::serde_with::tests::relative_to_resolves::case_13_unset_variable ... ok test path::serde_with::tests::relative_to_resolves::case_14_unset_braced_variable ... ok test path::serde_with::tests::relative_to_resolves::case_15_unset_variable_in_an_absolute_path ... ok test path::serde_with::tests::relative_to_resolves::case_16_unset_variable_beside_a_tilde ... ok test path::serde_with::tests::shell_expanded_leaves_relative_paths_relative::case_1_relative ... ok test path::serde_with::tests::shell_expanded_leaves_relative_paths_relative::case_2_tilde ... ok test path::serde_with::tests::shell_expanded_leaves_relative_paths_relative::case_3_variable ... ok test path::serde_with::tests::variables_are_those_expansion_reads::case_1_bare ... ok test path::serde_with::tests::variables_are_those_expansion_reads::case_2_braced ... ok test path::serde_with::tests::variables_are_those_expansion_reads::case_3_several ... ok test path::serde_with::tests::variables_are_those_expansion_reads::case_4_escaped ... ok test path::serde_with::tests::variables_are_those_expansion_reads::case_5_home ... ok test path::tests::is_same_path_compares_paths ... ok test path::tests::is_same_path_sees_through_symlinks ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_1_clamped_tail ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_2_exact_multiple ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_3_size_exceeds_range ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_4_offset_start ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_5_empty_range ... ok test range::chunks::tests::chunks_a_range_with_a_clamped_tail::case_6_zero_width_falls_back_to_one ... ok test range::chunks::tests::exposes_its_bounds_and_stride ... ok test range::chunks::tests::is_generic_over_the_index_type ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_1_missing ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_2_null ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_3_in_range ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_4_at_min ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_5_below_min ... ok test range::clamped::tests::deserializes_with_default_and_clamping::case_6_above_max ... ok test range::clamped::tests::exposes_its_bounds ... ok test range::clamped::tests::json_schema_carries_the_bounds ... ok test range::clamped::tests::rejects_non_integers::case_1_negative ... ok test range::clamped::tests::rejects_non_integers::case_2_string ... ok test range::clamped::tests::works_for_signed_types::case_1_missing ... ok test range::clamped::tests::works_for_signed_types::case_2_negative_in_range ... ok test range::clamped::tests::works_for_signed_types::case_3_below_min ... ok test range::numbering::tests::from_fold_splits_head_and_tail::case_1_truncated ... ok test range::numbering::tests::from_fold_splits_head_and_tail::case_2_nothing_discarded ... ok test range::numbering::tests::from_fold_splits_head_and_tail::case_3_empty ... ok test range::numbering::tests::head_range_numbers_from_the_start::case_1 ... ok test range::numbering::tests::head_range_numbers_from_the_start::case_2 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_1 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_2 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_3 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_4 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_5 ... ok test range::numbering::tests::number_is_positive_in_head_and_negative_in_tail::case_6 ... ok test range::numbering::tests::tail_range_numbers_back_from_the_end::case_1 ... ok test range::numbering::tests::tail_range_numbers_back_from_the_end::case_2 ... ok test range::py_style::tests::resolve_for_empty_slice_never_panics::case_1_everything ... ok test range::py_style::tests::resolve_for_empty_slice_never_panics::case_2_last_line ... ok test range::py_style::tests::resolve_for_empty_slice_never_panics::case_3_positive ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_01_in_bounds ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_02_single_line ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_03_last_line_no_sentinel ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_04_whole_via_negative_end ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_05_negative_from_end ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_06_more_than_available_clamps ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_07_clamped_past_end ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_08_backwards_resolves_empty ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_09_negative_backwards_resolves_empty ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_10_end_before_the_slice ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_11_end_before_the_slice_from_within ... ok test range::py_style::tests::resolve_for_is_always_sliceable::case_12_both_bounds_before_the_slice ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_1_everything ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_2_positive ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_3_negative ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_4_spanning ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_5_extremes ... ok test range::py_style::tests::resolve_for_split_empty_halves_never_panic::case_6_reversed_extremes ... ok test range::py_style::tests::resolve_for_split_is_always_sliceable ... ok test range::py_style::tests::resolve_for_split_matches_resolve_for_when_nothing_is_missing ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_01_first_line ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_02_within_the_start ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_03_exactly_the_start ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_04_just_past_the_start ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_05_wholly_inside_the_gap ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_06_backwards_is_empty ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_07_last_line ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_08_exactly_the_end ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_09_just_past_the_end ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_10_wholly_inside_the_gap_from_behind ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_11_negative_backwards_is_empty ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_12_everything ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_13_across_the_gap ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_14_across_into_the_gap ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_15_from_the_end_back_to_the_start ... ok test range::py_style::tests::resolve_for_split_picks_from_both_halves::case_16_from_the_end_back_to_line_zero ... ok test range::py_style::tests::resolve_for_split_reports_the_gap_when_a_bound_overshoots ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_1_no_hits ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_2_middle ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_3_clamps_at_start ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_4_clamps_at_end ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_5_radius_zero_is_the_hit_line ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_6_adjacent_windows_merge ... ok test range::windows::tests::context_windows_are_merged_clamped_neighbourhoods::case_7_distant_windows_leave_a_gap ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_1_empty ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_2_single ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_3_disjoint_kept ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_4_touching_fuse ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_5_overlapping_fuse ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_6_nested_absorbed ... ok test range::windows::tests::merge_ranges_coalesces_overlap_and_touch::case_7_chain ... ok test range::windows::tests::merge_ranges_preserves_the_covered_points_as_disjoint_runs ... ok test secrets::files::tests::commands_naming_them::case_01_cat ... ok test secrets::files::tests::commands_naming_them::case_02_redirect ... ok test secrets::files::tests::commands_naming_them::case_03_redirect_attached ... ok test secrets::files::tests::commands_naming_them::case_04_curl_data ... ok test secrets::files::tests::commands_naming_them::case_05_flag_value ... ok test secrets::files::tests::commands_naming_them::case_06_piped ... ok test secrets::files::tests::commands_naming_them::case_07_shell_script ... ok test secrets::files::tests::commands_naming_them::case_08_example ... ok test secrets::files::tests::commands_naming_them::case_09_other ... ok test secrets::files::tests::commands_naming_them::case_10_mention_in_words ... ok test secrets::files::tests::files_holding_credentials::case_01_dotenv ... ok test secrets::files::tests::files_holding_credentials::case_02_dotenv_local ... ok test secrets::files::tests::files_holding_credentials::case_03_dotenv_example ... ok test secrets::files::tests::files_holding_credentials::case_04_named_env ... ok test secrets::files::tests::files_holding_credentials::case_05_ssh_key ... ok test secrets::files::tests::files_holding_credentials::case_06_ssh_public_key ... ok test secrets::files::tests::files_holding_credentials::case_07_pem ... ok test secrets::files::tests::files_holding_credentials::case_08_aws ... ok test secrets::files::tests::files_holding_credentials::case_09_aws_by_tilde ... ok test secrets::files::tests::files_holding_credentials::case_10_aws_config ... ok test secrets::files::tests::files_holding_credentials::case_11_kube_from_home ... ok test secrets::files::tests::files_holding_credentials::case_12_claude_login ... ok test secrets::files::tests::files_holding_credentials::case_13_codex_login ... ok test secrets::files::tests::files_holding_credentials::case_14_atuin_key ... ok test secrets::files::tests::files_holding_credentials::case_15_source ... ok test secrets::files::tests::files_holding_credentials::case_16_readme ... ok test secrets::files::tests::files_holding_credentials::case_17_users_name ... ok test io::line_reader::tests::lines_read_are_the_complete_lines_of_the_file ... ok test secrets::files::tests::files_holding_credentials::case_18_users_name_over_an_exception ... ok test secrets::files::tests::files_holding_credentials::case_19_users_path ... ok test secrets::files::tests::files_holding_credentials::case_20_users_relative_path ... ok test secrets::files::tests::files_holding_credentials::case_21_windows_home ... ok test secrets::files::tests::files_holding_credentials::case_22_windows_dotenv ... ok test secrets::files::tests::files_holding_credentials::case_23_windows_relative ... ok test secrets::files::tests::files_holding_credentials::case_24_network_share ... ok test secrets::files::tests::files_holding_credentials::case_25_network_share_slashes ... ok test secrets::files::tests::files_holding_credentials::case_26_extra_slashes ... ok test secrets::files::tests::files_holding_credentials::case_27_extra_slashes_from_home ... ok test secrets::files::tests::files_holding_credentials::case_28_empty ... ok test secrets::files::tests::windows_paths::case_1_backslashes ... ok test secrets::files::tests::windows_paths::case_2_forward_slashes ... ok test secrets::files::tests::windows_paths::case_3_from_home ... ok test secrets::files::tests::windows_paths::case_4_relative ... ok test json::jsonl::tests::records_come_back_with_their_ends ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_01_key ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_02_key_base64 ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_03_highlighted_account_login ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_04_account_register ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_05_register ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_07_login ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_08_keys_subcommand ... ok test os::unix::io::tests::a_read_waits_for_input::nonblocking_1_false ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_09_history ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_11_plain ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_10_unrelated_key_word ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_12_echoed_mention ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_13_printed_mention ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_14_grepped_mention ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_15_commit_message ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_16_help_lookup ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_17_after_and ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_18_after_semicolon ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_19_after_pipe ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_20_piped_out ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_21_command_substitution ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_22_backticks ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_23_subshell ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_24_next_line ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_25_sudo ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_26_timed ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_27_env_prefix ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_28_by_path ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_29_brace_group ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_30_shell_script ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_31_shell_script_flags_apart ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_32_shell_script_after ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_33_shell_script_mention ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_34_shell_script_long_flag ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_35_shell_script_long_flag_joined ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_36_negated ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_37_in_a_branch ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_38_in_a_loop ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_39_otherwise ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_40_absolute_path ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_41_gh_token ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_42_gh_status_token ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_43_gh_status ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_44_gcloud ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_45_gcloud_adc ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_46_aws_configure ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_47_aws_ecr ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_48_aws_sts ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_49_aws_other ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_50_az ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_52_kubectl_pods ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_51_kubectl_secret ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_54_vault ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_53_kubectl_raw ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_55_op ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_56_pass ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_57_keychain ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_58_keychain_no_password ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_59_printenv ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_60_env_alone ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_61_env_piped ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_63_set_alone ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_62_env_prefix_runs ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_64_set_option ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_65_export_p ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_66_terraform_json ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_67_terraform ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_68_git_credential ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_69_wrapped ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_70_mentioned ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_71_beside_non_ascii ... ok test secrets::tests::commands_whose_output_may_hold_a_credential::case_72_non_ascii_suffix ... ok test os::unix::io::tests::a_read_waits_for_input::nonblocking_2_true ... ok test os::unix::io::tests::a_reader_that_vanishes_mid_write_errors_instead_of_hanging ... ok test num::tests::saturating_mul_div_is_exact_arithmetic_saturated_for_every_i8 ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_04_azure_with_tab ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_03_azure_with_space ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_01_bare_name ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_02_mention ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_05_azure_tokens_apart ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_06_azure_no_key ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_07_login_newline ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_08_login_no_space ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_11_marker ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_09_login_bare ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_12_empty ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_10_lowercase_aws ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_13_azure_across_lines ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_14_login_crlf ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_15_login_nbsp ... ok test secrets::tests::contains_secret_agrees_with_the_old_set_on_boundary_strings::case_16_stripe_test_one_short ... ok test ansi::tests::never_panics_and_strips_controls ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_03____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_01____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_02____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_04____NAME_AQoDYXdzEJr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_06____NAME_abc_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_05____NAME_abcdef_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_08____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_09____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_07____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_12_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_13_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_11____NAME_____type_____service_account_____k_____v__________NAME__ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_10____exportNAME__abc_______exportNAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_17____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_14______NAME_____wJalr_____X_____1_________NAME__________X_____1___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_16_______NAME____wJalr__________NAME_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_18____NAMEtwJalrXUtnFEMI_____NAMEt_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_19____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_15____os_environ___NAME_____wJalr_______os_environ___NAME__________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_20____NAME_str__wJalr_______NAME_str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_23____NAMEwJalr_K7_MD_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_21____constNAME__str__wJalr_______constNAME__str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_24____NAMEabc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_27____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_26____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_22____NAME_Optional_str___wJalr_______NAME_Optional_str________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_28____NAMEnOTHERvalue_____NAMEnOTHERvalue___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_25_____NAMEabc_______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_29____NAME_npassword_hunter2_____NAME_npassword________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_30____echoNAME_____echoNAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_31____NAMEisrequired_____NAMEisrequired___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_32____setNAME_andOTHER_____setNAME_andOTHER___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_33____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_36_______NAME______a___1____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_35____NAME___a______b______c___1___tail_____NAME____tail___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_34____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_39____NAMEx1b_311mwJalrx1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_41_______NAMEV_____PATH_usr_bin_____HOME_root___________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_38____NAME___type_____service_account________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_37____NAME___a_____b___rest_____NAME____rest___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_42____Environment__NAMEV____FOObar_______Environment__NAME________F ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_40____NAMEx1b_38216622646m__wJalr__x1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_45____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_44____NAME__wJalr_K7______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_43_______NAME_____ab__cd_____Expiration_____2026___________NAME____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_46____NAMEnOTHERx_____NAMEnOTHERx___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_49____NAME_dict_str_str____k_____wJalr________NAME_dict_str_str____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_48____NAME_str_None__wJalr_______NAME_str_None_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_47____pubconstNAME____staticstr__wJalr_______pubconstNAME____static ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_53____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_50____NAME_typing_Optional_str___wJalr_______NAME_typing_Optional_s ... ok test secrets::tests::a_planted_credential_goes_whatever_surrounds_it ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_52____constNAME_Cow__static_str__wJalr_______constNAME_Cow__static_ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_54____NAME_wJalr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_55____NAME_1___wJalr_K7______NAME_1_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_57____NAME_OLDwJalr_____NAME_OLD_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_58_______NAME_____wJalr_____X_____yz___________NAME__________X_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_60____NAME_wJalr_OTHER_TOKENtok_____NAME______OTHER_TOKENtok___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_51____constNAME_string_undefined__wJalr_______constNAME_string_unde ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_56____NAME_JSON___type_____service_account________NAME_JSON_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_61____NAME___wJalr_____Expiration_____2026x_______NAME________Expir ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_59____NAME_abc123AWS_REGIONus_east_1_____NAME_____AWS_REGIONus_east ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_65____NAME___a______b______c______d___1_________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_66____NAMEabc__def_______NAME______def_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_63____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_64____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_62____NAME_Dict_str_Dict_str_str_____a______b_____c_________NAME_Di ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_1___AWS_SECRET_ACCESS_KEY__::shape_67____NAME_FILE_run_secrets_aws_____NAME_FILE_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_01____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_03____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_04____NAME_AQoDYXdzEJr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_06____NAME_abc_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_07____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_05____NAME_abcdef_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_08____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_09____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_12_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_11____NAME_____type_____service_account_____k_____v__________NAME__ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_13_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_10____exportNAME__abc_______exportNAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_02____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_17____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_18____NAMEtwJalrXUtnFEMI_____NAMEt_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_19____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_16_______NAME____wJalr__________NAME_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_14______NAME_____wJalr_____X_____1_________NAME__________X_____1___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_15____os_environ___NAME_____wJalr_______os_environ___NAME__________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_23____NAMEwJalr_K7_MD_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_21____constNAME__str__wJalr_______constNAME__str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_20____NAME_str__wJalr_______NAME_str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_25_____NAMEabc_______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_26____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_27____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_24____NAMEabc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_22____NAME_Optional_str___wJalr_______NAME_Optional_str________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_28____NAMEnOTHERvalue_____NAMEnOTHERvalue___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_30____echoNAME_____echoNAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_31____NAMEisrequired_____NAMEisrequired___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_29____NAME_npassword_hunter2_____NAME_npassword________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_32____setNAME_andOTHER_____setNAME_andOTHER___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_33____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_36_______NAME______a___1____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_35____NAME___a______b______c___1___tail_____NAME____tail___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_37____NAME___a_____b___rest_____NAME____rest___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_34____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_39____NAMEx1b_311mwJalrx1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_41_______NAMEV_____PATH_usr_bin_____HOME_root___________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_40____NAMEx1b_38216622646m__wJalr__x1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_38____NAME___type_____service_account________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_45____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_42____Environment__NAMEV____FOObar_______Environment__NAME________F ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_44____NAME__wJalr_K7______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_46____NAMEnOTHERx_____NAMEnOTHERx___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_43_______NAME_____ab__cd_____Expiration_____2026___________NAME____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_49____NAME_dict_str_str____k_____wJalr________NAME_dict_str_str____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_48____NAME_str_None__wJalr_______NAME_str_None_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_47____pubconstNAME____staticstr__wJalr_______pubconstNAME____static ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_53____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_50____NAME_typing_Optional_str___wJalr_______NAME_typing_Optional_s ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_54____NAME_wJalr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_52____constNAME_Cow__static_str__wJalr_______constNAME_Cow__static_ ... ok test harnesstools::pi::session::tests::messages_ends_when_the_session_file_is_removed ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_55____NAME_1___wJalr_K7______NAME_1_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_51____constNAME_string_undefined__wJalr_______constNAME_string_unde ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_57____NAME_OLDwJalr_____NAME_OLD_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_59____NAME_abc123AWS_REGIONus_east_1_____NAME_____AWS_REGIONus_east ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_56____NAME_JSON___type_____service_account________NAME_JSON_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_60____NAME_wJalr_OTHER_TOKENtok_____NAME______OTHER_TOKENtok___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_58_______NAME_____wJalr_____X_____yz___________NAME__________X_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_61____NAME___wJalr_____Expiration_____2026x_______NAME________Expir ... ok test harnesstools::pi::session::tests::messages_yields_lines_appended_after_discovery ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_65____NAME___a______b______c______d___1_________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_63____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_66____NAMEabc__def_______NAME______def_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_64____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_67____NAME_FILE_run_secrets_aws_____NAME_FILE_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_2___AWS_SESSION_TOKEN__::shape_62____NAME_Dict_str_Dict_str_str_____a______b_____c_________NAME_Di ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_01____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_03____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_04____NAME_AQoDYXdzEJr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_05____NAME_abcdef_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_06____NAME_abc_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_02____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_07____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_09____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_08____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_10____exportNAME__abc_______exportNAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_13_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_11____NAME_____type_____service_account_____k_____v__________NAME__ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_17____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_12_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_16_______NAME____wJalr__________NAME_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_14______NAME_____wJalr_____X_____1_________NAME__________X_____1___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_19____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_18____NAMEtwJalrXUtnFEMI_____NAMEt_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_25_____NAMEabc_______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_15____os_environ___NAME_____wJalr_______os_environ___NAME__________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_26____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_24____NAMEabc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_27____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_23____NAMEwJalr_K7_MD_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_21____constNAME__str__wJalr_______constNAME__str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_28____NAMEnOTHERvalue_____NAMEnOTHERvalue___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_30____echoNAME_____echoNAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_29____NAME_npassword_hunter2_____NAME_npassword________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_31____NAMEisrequired_____NAMEisrequired___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_32____setNAME_andOTHER_____setNAME_andOTHER___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_22____NAME_Optional_str___wJalr_______NAME_Optional_str________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_34____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_20____NAME_str__wJalr_______NAME_str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_33____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_36_______NAME______a___1____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_35____NAME___a______b______c___1___tail_____NAME____tail___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_39____NAMEx1b_311mwJalrx1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_38____NAME___type_____service_account________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_41_______NAMEV_____PATH_usr_bin_____HOME_root___________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_42____Environment__NAMEV____FOObar_______Environment__NAME________F ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_40____NAMEx1b_38216622646m__wJalr__x1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_37____NAME___a_____b___rest_____NAME____rest___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_44____NAME__wJalr_K7______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_45____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_43_______NAME_____ab__cd_____Expiration_____2026___________NAME____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_46____NAMEnOTHERx_____NAMEnOTHERx___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_53____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_52____constNAME_Cow__static_str__wJalr_______constNAME_Cow__static_ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_49____NAME_dict_str_str____k_____wJalr________NAME_dict_str_str____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_54____NAME_wJalr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_48____NAME_str_None__wJalr_______NAME_str_None_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_57____NAME_OLDwJalr_____NAME_OLD_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_50____NAME_typing_Optional_str___wJalr_______NAME_typing_Optional_s ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_55____NAME_1___wJalr_K7______NAME_1_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_60____NAME_wJalr_OTHER_TOKENtok_____NAME______OTHER_TOKENtok___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_51____constNAME_string_undefined__wJalr_______constNAME_string_unde ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_56____NAME_JSON___type_____service_account________NAME_JSON_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_47____pubconstNAME____staticstr__wJalr_______pubconstNAME____static ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_59____NAME_abc123AWS_REGIONus_east_1_____NAME_____AWS_REGIONus_east ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_58_______NAME_____wJalr_____X_____yz___________NAME__________X_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_61____NAME___wJalr_____Expiration_____2026x_______NAME________Expir ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_65____NAME___a______b______c______d___1_________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_64____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_62____NAME_Dict_str_Dict_str_str_____a______b_____c_________NAME_Di ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_66____NAMEabc__def_______NAME______def_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_67____NAME_FILE_run_secrets_aws_____NAME_FILE_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_3___AZURE_STORAGE_ACCOUNT_KEY__::shape_63____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_01____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::borrowed_exactly_when_nothing_changed ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_03____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_04____NAME_AQoDYXdzEJr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_05____NAME_abcdef_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_06____NAME_abc_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_07____NAME_wJalrXUtnFEMI_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_08____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_09____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_12_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_13_______NAME_____wJalr_____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_17____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_11____NAME_____type_____service_account_____k_____v__________NAME__ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_16_______NAME____wJalr__________NAME_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_14______NAME_____wJalr_____X_____1_________NAME__________X_____1___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_18____NAMEtwJalrXUtnFEMI_____NAMEt_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_10____exportNAME__abc_______exportNAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_19____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_02____NAMEwJalrXUtnFEMI_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_15____os_environ___NAME_____wJalr_______os_environ___NAME__________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_25_____NAMEabc_______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_26____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_20____NAME_str__wJalr_______NAME_str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_27____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_21____constNAME__str__wJalr_______constNAME__str_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_24____NAMEabc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_28____NAMEnOTHERvalue_____NAMEnOTHERvalue___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_30____echoNAME_____echoNAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_29____NAME_npassword_hunter2_____NAME_npassword________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_32____setNAME_andOTHER_____setNAME_andOTHER___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_31____NAMEisrequired_____NAMEisrequired___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_22____NAME_Optional_str___wJalr_______NAME_Optional_str________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_23____NAMEwJalr_K7_MD_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_33____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_41_______NAMEV_____PATH_usr_bin_____HOME_root___________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_39____NAMEx1b_311mwJalrx1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_38____NAME___type_____service_account________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_37____NAME___a_____b___rest_____NAME____rest___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_35____NAME___a______b______c___1___tail_____NAME____tail___ ... ok test secrets::tests::contains_secret_matches_the_old_pattern_set_exactly ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_40____NAMEx1b_38216622646m__wJalr__x1b_m_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_44____NAME__wJalr_K7______NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_42____Environment__NAMEV____FOObar_______Environment__NAME________F ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_43_______NAME_____ab__cd_____Expiration_____2026___________NAME____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_45____NAME_____NAME___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_46____NAMEnOTHERx_____NAMEnOTHERx___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_34____NAME___type_____service_account_____private_key__________BEGI ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_36_______NAME______a___1____X___1_________NAME__________X___1____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_53____NAMEwJalr_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_54____NAME_wJalr_____NAME________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_55____NAME_1___wJalr_K7______NAME_1_________ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_49____NAME_dict_str_str____k_____wJalr________NAME_dict_str_str____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_48____NAME_str_None__wJalr_______NAME_str_None_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_59____NAME_abc123AWS_REGIONus_east_1_____NAME_____AWS_REGIONus_east ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_60____NAME_wJalr_OTHER_TOKENtok_____NAME______OTHER_TOKENtok___ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_61____NAME___wJalr_____Expiration_____2026x_______NAME________Expir ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_47____pubconstNAME____staticstr__wJalr_______pubconstNAME____static ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_57____NAME_OLDwJalr_____NAME_OLD_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_58_______NAME_____wJalr_____X_____yz___________NAME__________X_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_52____constNAME_Cow__static_str__wJalr_______constNAME_Cow__static_ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_66____NAMEabc__def_______NAME______def_____ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_56____NAME_JSON___type_____service_account________NAME_JSON_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_62____NAME_Dict_str_Dict_str_str_____a______b_____c_________NAME_Di ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_67____NAME_FILE_run_secrets_aws_____NAME_FILE_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_63____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_64____NAME___abc_____NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_65____NAME___a______b______c______d___1_________NAME_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_50____NAME_typing_Optional_str___wJalr_______NAME_typing_Optional_s ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_01____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_02____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_04____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_05____atuinlogin_umeFLAGhunter2__otherx_____atuinlogin_umeFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_10____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_09____atuinloginFLAG__oopsnls_lancatf_____atuinloginFLAG____nls_lan ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_11____atuinloginFLAG_________atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_06____atuinloginFLAG__it__s__quoted__here_______atuinloginFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_03____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_07____atuinloginFLAG__it__________s_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_08____atuinloginFLAG__hun__ter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_13____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_12____atuinloginFLAGx1b_311mhunter2x1b_m_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_15____atuinloginntFLAGhunter2_____atuinloginntFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_16____atuinloginnFLAGhunter2_____atuinloginnFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_1____p__::shape_14____atuinlogin_umenFLAGhunter2n_____atuinlogin_umenFLAG____n___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_01____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_02____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_env_var_pattern_redacts_each_assignment_shape::name_4___GOOGLE_SERVICE_ACCOUNT_KEY__::shape_51____constNAME_string_undefined__wJalr_______constNAME_string_unde ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_03____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_04____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_05____atuinlogin_umeFLAGhunter2__otherx_____atuinlogin_umeFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_10____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_06____atuinloginFLAG__it__s__quoted__here_______atuinloginFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_09____atuinloginFLAG__oopsnls_lancatf_____atuinloginFLAG____nls_lan ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_07____atuinloginFLAG__it__________s_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_11____atuinloginFLAG_________atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_08____atuinloginFLAG__hun__ter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_13____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_12____atuinloginFLAGx1b_311mhunter2x1b_m_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_14____atuinlogin_umenFLAGhunter2n_____atuinlogin_umenFLAG____n___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_15____atuinloginntFLAGhunter2_____atuinloginntFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_2_____password__::shape_16____atuinloginnFLAGhunter2_____atuinloginnFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_01____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_02____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_03____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_04____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_05____atuinlogin_umeFLAGhunter2__otherx_____atuinlogin_umeFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_06____atuinloginFLAG__it__s__quoted__here_______atuinloginFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_10____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_11____atuinloginFLAG_________atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_08____atuinloginFLAG__hun__ter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_07____atuinloginFLAG__it__________s_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_09____atuinloginFLAG__oopsnls_lancatf_____atuinloginFLAG____nls_lan ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_13____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_12____atuinloginFLAGx1b_311mhunter2x1b_m_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_14____atuinlogin_umenFLAGhunter2n_____atuinlogin_umenFLAG____n___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_15____atuinloginntFLAGhunter2_____atuinloginntFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_3____k__::shape_16____atuinloginnFLAGhunter2_____atuinloginnFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_01____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_02____atuinloginFLAGhunter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_03____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_04____atuinloginFLAG__huntertwo_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_05____atuinlogin_umeFLAGhunter2__otherx_____atuinlogin_umeFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_06____atuinloginFLAG__it__s__quoted__here_______atuinloginFLAG_____ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_07____atuinloginFLAG__it__________s_______atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_10____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_08____atuinloginFLAG__hun__ter2_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_09____atuinloginFLAG__oopsnls_lancatf_____atuinloginFLAG____nls_lan ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_11____atuinloginFLAG_________atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_13____atuinloginFLAG_____atuinloginFLAG___ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_12____atuinloginFLAGx1b_311mhunter2x1b_m_____atuinloginFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_14____atuinlogin_umenFLAGhunter2n_____atuinlogin_umenFLAG____n___ ... ok test secrets::tests::every_pattern_has_a_case_that_actually_redacts ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_15____atuinloginntFLAGhunter2_____atuinloginntFLAG_______ ... ok test secrets::tests::every_login_flag_spelling_is_redacted::flag_4_____key__::shape_16____atuinloginnFLAGhunter2_____atuinloginnFLAG_______ ... ok test secrets::tests::every_pattern_names_its_secret_group ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_01_prefixed ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_02_spaced_out ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_03_fish ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_04_flag_after_a_pipe ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_05_flag_on_a_continued_line ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_06_flag_opening_a_continued_line ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_07_header ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_08_header_without_a_blank ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_09_substituted ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_10_referenced ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_11_fish_substituted ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_13_flag_referenced ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_12_fish_erased ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_14_header_substituted ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_15_token_file_flag ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_17_mentioned ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_16_token_file_variable ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_18_subcommand ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_19_too_short_to_be_a_token ... ok test secrets::tests::hashicorp_tokens_are_recognised_where_they_sit::case_20_flag_of_another_command ... ok test secrets::tests::login_attached_and_adjacent_flags::case_2_attached_key ... ok test secrets::tests::login_attached_and_adjacent_flags::case_1_attached_password ... ok test secrets::tests::login_attached_and_adjacent_flags::case_4_flag_as_value_is_over_redacted ... ok test secrets::tests::login_attached_and_adjacent_flags::case_3_both_attached ... ok test secrets::tests::merges_spans::case_1_overlapping ... ok test secrets::tests::merges_spans::case_3_touching ... ok test secrets::tests::merges_spans::case_2_adjacent ... ok test secrets::tests::near_misses_are_not_credentials::case_01_ghp_one_short ... ok test secrets::tests::every_pattern_is_recognised ... ok test secrets::tests::merges_spans::case_4_runs_past ... ok test secrets::tests::near_misses_are_not_credentials::case_02_ghs_one_short ... ok test secrets::tests::near_misses_are_not_credentials::case_03_akia_one_short ... ok test secrets::tests::near_misses_are_not_credentials::case_04_pulumi_uppercase_hex ... ok test secrets::tests::near_misses_are_not_credentials::case_05_v1_unescaped_dot ... ok test secrets::tests::near_misses_are_not_credentials::case_07_login_without_whitespace ... ok test secrets::tests::near_misses_are_not_credentials::case_06_github_pat_no_leading_digit ... ok test secrets::tests::near_misses_are_not_credentials::case_09_slack_webhook_short_team ... ok test secrets::tests::near_misses_are_not_credentials::case_11_slack_bot_short_first_group ... ok test secrets::tests::near_misses_are_not_credentials::case_13_netlify_unknown_kind ... ok test secrets::tests::near_misses_are_not_credentials::case_12_npm_one_short ... ok test secrets::tests::near_misses_are_not_credentials::case_08_stripe_one_short ... ok test secrets::tests::passes_text_through_borrowed::case_01_ordinary_command ... ok test secrets::tests::passes_text_through_borrowed::case_02_empty ... ok test secrets::tests::near_misses_are_not_credentials::case_10_slack_webhook_wrong_team_prefix ... ok test secrets::tests::passes_text_through_borrowed::case_03_the_marker_itself ... ok test secrets::tests::passes_text_through_borrowed::case_04_named_but_never_assigned ... ok test secrets::tests::passes_text_through_borrowed::case_05_login_without_arguments ... ok test secrets::tests::near_misses_are_not_credentials::case_14_stripe_test_one_short ... ok test secrets::tests::passes_text_through_borrowed::case_06_almost_a_token ... ok test secrets::tests::passes_text_through_borrowed::case_07_already_redacted_assignment ... ok test secrets::tests::passes_text_through_borrowed::case_08_already_redacted_login ... ok test secrets::tests::passes_text_through_borrowed::case_09_two_markers_as_value ... ok test secrets::tests::passes_text_through_borrowed::case_11_yaml_folded_block ... ok test secrets::tests::passes_text_through_borrowed::case_10_yaml_literal_block ... ok test secrets::tests::passes_text_through_borrowed::case_13_shell_continuation ... ok test secrets::tests::passes_text_through_borrowed::case_14_yaml_tag ... ok test secrets::tests::passes_text_through_borrowed::case_15_yaml_anchor ... ok test secrets::tests::recognises_text_involving_a_credential::case_1_assignment ... ok test secrets::tests::recognises_text_involving_a_credential::case_2_mere_mention_with_no_value ... ok test secrets::tests::recognises_text_involving_a_credential::case_3_login_without_arguments ... ok test secrets::tests::recognises_text_involving_a_credential::case_5_ordinary_command ... ok test secrets::tests::recognises_text_involving_a_credential::case_4_bare_credential ... ok test secrets::tests::recognises_text_involving_a_credential::case_6_empty ... ok test secrets::tests::recognises_text_involving_a_credential::case_7_the_marker_itself ... ok test secrets::tests::redacted_but_not_kept_out_of_history::case_1_lowercase_aws_name ... ok test secrets::tests::passes_text_through_borrowed::case_16_multiline_json_opener ... ok test secrets::tests::redacted_but_not_kept_out_of_history::case_2_url_password ... ok test secrets::tests::redacted_but_not_kept_out_of_history::case_3_quoted_password ... ok test secrets::tests::passes_text_through_borrowed::case_12_heredoc ... ok test secrets::tests::redaction_shares_the_vendor_regexes ... ok test secrets::tests::redacts::case_01_assignment_keeps_its_name ... ok test secrets::tests::redacts::case_02_colon_separated_assignment ... ok test secrets::tests::redacts::case_04_single_quoted_login_password ... ok test secrets::tests::redacts::case_03_both_credentials_of_one_login ... ok test secrets::tests::redacts::case_05_long_login_flag ... ok test secrets::tests::redaction_reaches_a_fixed_point_in_one_call::case_2_credential_in_a_type_position_with_a_value ... ok test secrets::tests::redaction_reaches_a_fixed_point_in_one_call::case_1_credential_in_a_type_position ... ok test secrets::tests::redacts::case_06_two_assignments_stay_two_matches ... ok test secrets::tests::redacts::case_07_surrounding_text_survives ... ok test secrets::tests::redacts::case_08_multibyte_neighbours_survive ... ok test secrets::tests::redacts::case_09_credential_at_the_very_start ... ok test secrets::tests::redacts::case_11_five_stars_are_a_value ... ok test secrets::tests::redacts::case_12_added_to_a_patch ... ok test secrets::tests::redacts::case_13_changed_in_a_patch ... ok test secrets::tests::redacts::case_14_added_aws_credentials ... ok test secrets::tests::redacts::case_10_two_credentials_on_separate_lines ... ok test secrets::tests::redacts::case_15_added_env_var ... ok test secrets::tests::redacts::case_16_added_list_item ... ok test secrets::tests::redacts::case_18_setting_in_json_text ... ok test secrets::tests::redacts::case_17_patch_in_json_text ... ok test secrets::tests::redacts::case_19_env_var_in_json_text ... ok test secrets::tests::redacts::case_20_bearer_in_json_text ... ok test secrets::tests::redacts::case_21_clipped_json_text ... ok test secrets::tests::redacts::case_22_command_in_json_text ... ok test secrets::tests::redacts::case_23_password_flag_in_a_script ... ok test secrets::tests::redacts::case_24_password_flag_in_json_text ... ok test secrets::tests::redacts::case_25_password_flag_then_command ... ok test secrets::tests::redacts::case_26_password_flag_in_a_subshell ... ok test secrets::tests::redacts::case_27_password_flag_then_and ... ok test secrets::tests::redacts::case_29_password_flag_quoted_in_prose ... ok test secrets::tests::redacts::case_28_clipped_json_line_in_output ... ok test secrets::tests::redacts::case_31_password_flag_apart ... ok test secrets::tests::stand_ins_are_kept::case_01_reference ... ok test secrets::tests::redacts::case_30_jwt_in_json_text ... ok test secrets::tests::stand_ins_are_kept::case_02_braced ... ok test secrets::tests::redacts::case_32_lowercase_aws_assignment ... ok test secrets::tests::stand_ins_are_kept::case_03_actions ... ok test secrets::tests::stand_ins_are_kept::case_04_stand_in ... ok test secrets::tests::stand_ins_are_kept::case_05_masked ... ok test secrets::tests::stand_ins_are_kept::case_06_masked_x ... ok test secrets::tests::stand_ins_are_kept::case_07_typed_field ... ok test secrets::tests::stand_ins_are_kept::case_08_usage ... ok test secrets::tests::stand_ins_are_kept::case_09_count ... ok test secrets::tests::stand_ins_are_kept::case_10_prose ... ok test secrets::tests::stand_ins_are_kept::case_12_password_from_stdin ... ok test secrets::tests::stand_ins_are_kept::case_11_password_flag_reference ... ok test secrets::tests::stand_ins_are_kept::case_13_password_flag_then_flag ... ok test secrets::tests::stand_ins_are_kept::case_14_password_flag_in_help ... ok test secrets::tests::stand_ins_are_kept::case_15_password_flag_in_click_help ... ok test secrets::tests::stand_ins_are_kept::case_16_password_flag_in_urfave_help ... ok test secrets::tests::stand_ins_are_kept::case_17_passwd_flag_in_help ... ok test secrets::tests::stand_ins_are_kept::case_18_password_flag_in_prose ... ok test secrets::tests::stand_ins_are_kept::case_19_password_flag_listed ... ok test secrets::tests::stand_ins_are_kept::case_20_password_flag_in_a_subject ... ok test secrets::tests::stand_ins_are_kept::case_22_setting_concatenated ... ok test secrets::tests::stand_ins_are_kept::case_21_password_flag_reference_in_json_text ... ok test secrets::tests::stand_ins_are_kept::case_23_setting_joined ... ok test secrets::tests::stand_ins_are_kept::case_26_password_flag_then_or ... ok test secrets::tests::stand_ins_are_kept::case_25_command_in_a_string ... ok test secrets::tests::stand_ins_are_kept::case_24_setting_in_prose ... ok test secrets::tests::stand_ins_are_kept::case_27_password_flag_then_redirect ... ok test secrets::tests::stand_ins_are_kept::case_28_password_flag_substituted ... ok test secrets::tests::stand_ins_are_kept::case_29_password_flag_in_a_subshell ... ok test secrets::tests::stand_ins_are_kept::case_30_added_field ... ok test secrets::tests::stand_ins_are_kept::case_31_short_lowercase_aws ... ok test secrets::tests::stripe_keys_of_any_modern_length_are_fully_redacted::case_1_modern_live ... ok test secrets::tests::stripe_keys_of_any_modern_length_are_fully_redacted::case_2_modern_test ... ok test secrets::tests::stripe_keys_of_any_modern_length_are_fully_redacted::case_4_followed_by_punctuation ... ok test secrets::tests::stripe_keys_of_any_modern_length_are_fully_redacted::case_3_old_format_still_exact ... ok test secrets::tests::the_users_patterns_redact_too::case_2_group ... ok test secrets::tests::the_users_patterns_redact_too::case_1_whole ... ok test secrets::tests::the_users_patterns_redact_too::case_3_with_builtin ... ok test secrets::tests::the_users_patterns_redact_too::case_4_nothing ... ok test secrets::tests::the_users_patterns_redact_too::case_5_like_a_block_opener ... ok test secrets::tests::redaction_past_its_budget_gives_up ... ok test secrets::tests::window_gap_and_quote_bounds::case_3_two_space_table_gap ... ok test secrets::tests::window_gap_and_quote_bounds::case_2_beyond_the_window_is_left_alone ... ok test secrets::tests::window_gap_and_quote_bounds::case_4_double_quote_stops_at_the_line_end ... ok test secrets::tests::window_gap_and_quote_bounds::case_1_long_username_inside_the_window ... ok test secrets::tests::window_gap_and_quote_bounds::case_5_single_quote_stops_at_the_line_end ... ok test harnesstools::pi::session::tests::watch_waits_for_a_header_being_written ... ok test shell::tests::command_missing ... ok test shell::tests::command_failed ... ok test shell::tests::command_output_to_shell::case_3_bare_name ... ok test shell::tests::command_output_to_shell::case_1_zsh ... ok test shell::tests::command_output_to_shell::case_2_bash ... ok test shell::tests::command_output_to_shell::case_4_unsupported ... ok test shell::tests::command_output_unparseable::case_1_no_shell_field ... ok test shell::tests::command_output_to_shell::case_5_non_utf8_dir ... ok test shell::tests::command_output_to_shell::case_6_non_utf8_name ... ok test shell::tests::dscl_shell::case_1_simple ... ok test shell::tests::dscl_shell::case_2_extra_spaces ... ok test shell::tests::dscl_shell::case_3_no_trailing_newline ... ok test shell::tests::dscl_shell::case_4_non_utf8 ... ok test shell::tests::command_output_unparseable::case_2_root_path ... ok test shell::tests::dscl_shell::case_5_missing_value ... ok test shell::tests::dscl_shell::case_6_empty ... ok test shell::tests::getent_passwd::case_1_simple ... ok test shell::tests::getent_passwd::case_2_no_trailing_newline ... ok test secrets::tests::every_pattern_redacts_to_its_declared_value::embed_1_false ... ok test secrets::tests::every_pattern_redacts_to_its_declared_value::embed_2_true ... ok test shell::tests::getent_passwd::case_3_crlf ... ok test shell::tests::getent_passwd::case_4_first_line_only ... ok test shell::tests::getent_passwd::case_5_non_utf8 ... ok test shell::tests::getent_passwd::case_6_empty_shell ... ok test shell::tests::getent_passwd::case_7_blank_shell ... ok test shell::tests::getent_passwd::case_8_too_few_fields ... ok test shell::tests::getent_passwd::case_9_empty ... ok test shell::tests::command_output_unparseable::case_3_parent_dir ... ok test slice::tests::excerpt_selects_context_around_hits::case_1_none_shows_everything ... ok test slice::tests::comparer_is_reflexive ... ok test slice::tests::excerpt_selects_context_around_hits::case_2_none_on_empty ... ok test slice::tests::comparer_ignores_the_stack_size ... ok test slice::tests::comparer_matches_set_equality ... ok test slice::tests::comparer_ignores_order_and_duplicates ... ok test slice::tests::excerpt_selects_context_around_hits::case_3_some_without_hits_is_empty ... ok test slice::tests::excerpt_selects_context_around_hits::case_4_some_windows_the_hit ... ok test slice::tests::excerpt_selects_context_around_hits::case_5_some_merges_adjacent ... ok test slice::tests::excerpt_selects_context_around_hits::case_6_radius_zero_is_just_the_hits ... ok test slice::tests::test_partition_dedup::case_01 ... ok test slice::tests::test_partition_dedup::case_02 ... ok test slice::tests::test_partition_dedup::case_03 ... ok test slice::tests::test_partition_dedup::case_04 ... ok test slice::tests::test_partition_dedup::case_05 ... ok test slice::tests::test_partition_dedup::case_06 ... ok test slice::tests::test_partition_dedup::case_07 ... ok test slice::tests::test_partition_dedup::case_08 ... ok test slice::tests::test_partition_dedup::case_09 ... ok test slice::tests::test_partition_dedup::case_10 ... ok test slice::tests::partition_dedup_leaves_no_consecutive_duplicates ... ok test slice::tests::partition_dedup_matches_vec_dedup ... ok test slice::tests::test_partition_dedup::case_11 ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_4____3_ ... ok test slice::tests::partition_dedup_permutes_the_input ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_01::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_02::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_03::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_04::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_05::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_06::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_07::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_08::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_09::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_10::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_11::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_12::_stack_size_6____5_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_1____0_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_2____1_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_3____2_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_4____3_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_5____4_ ... ok test slice::tests::test_sorted_deduped_slice_comparer::case_13::_stack_size_6____5_ ... ok test string::align::tests::borrows_only_when_no_padding_needed::case_1_borrowed_exact_fit ... ok test string::align::tests::borrows_only_when_no_padding_needed::case_2_borrowed_too_wide ... ok test string::align::tests::borrows_only_when_no_padding_needed::case_3_owned_padding_needed ... ok test string::align::tests::pads_per_table::case_1_start_pads_on_the_end ... ok test string::align::tests::pads_per_table::case_2_end_pads_on_the_start ... ok test string::align::tests::pads_per_table::case_3_center_splits_evenly ... ok test string::align::tests::pads_per_table::case_4_center_odd_extra_on_right ... ok test string::align::tests::pads_per_table::case_5_exact_fit_unchanged ... ok test string::align::tests::pads_per_table::case_6_empty_pads ... ok test string::align::tests::pads_per_table::case_7_wide_glyph_pads_by_display_columns ... ok test string::align::tests::pads_per_table::case_8_pads_by_bytes_under_byte_budget ... ok test string::align::tests::pads_per_table::case_9_too_wide_is_never_truncated ... ok test string::auto_os_string::tests::test_in_containers::case_1_some ... ok test string::auto_os_string::tests::test_in_containers::case_2_none ... ok test string::auto_os_string::tests::test_missing_option_is_none ... ok test string::auto_os_string::tests::test_non_utf8_uses_os_string_encoding ... ok test string::auto_os_string::tests::test_rejects_other_encodings::case_1_string ... ok test string::auto_os_string::tests::test_rejects_other_encodings::case_2_unknown_variant ... ok test string::auto_os_string::tests::test_rejects_other_encodings::case_3_number ... ok test string::auto_os_string::tests::test_utf8_is_a_string::case_1_path ... ok test string::auto_os_string::tests::test_utf8_is_a_string::case_2_empty ... ok test string::auto_os_string::tests::test_utf8_is_a_string::case_3_unicode ... ok test string::bounded_buffer::tests::a_zero_limit_keeps_nothing_but_still_reports_the_cut ... ok test string::bounded_buffer::tests::clear_forgets_the_dropped_middle ... ok test string::auto_os_string::tests::prop_utf8_is_a_string ... ok test string::auto_os_string::tests::prop_round_trip ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_1_empty ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_2_one_write ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_3_several_writes ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_4_exactly_the_limit ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_5_exactly_the_limit_in_pieces ... ok test string::bounded_buffer::tests::keeps_everything_that_fits::case_6_spills_into_the_end_portion ... ok test string::bounded_buffer::tests::keeps_the_start_and_the_end::case_1_one_byte_over ... ok test string::bounded_buffer::tests::keeps_the_start_and_the_end::case_2_far_over ... ok test string::bounded_buffer::tests::keeps_the_start_and_the_end::case_3_overflows_part_way ... ok test string::bounded_buffer::tests::keeps_the_start_and_the_end::case_4_byte_at_a_time ... ok test string::bounded_buffer::tests::keeps_the_start_and_the_end::case_5_full_then_more ... ok test string::bounded_buffer::tests::chunking_does_not_matter ... ok test string::bounded_buffer::tests::never_splits_a_character::case_1_does_not_fit_in_the_start ... ok test string::bounded_buffer::tests::never_splits_a_character::case_2_does_not_fit_in_the_end ... ok test string::bounded_buffer::tests::never_splits_a_character::case_3_fits_the_end_exactly ... ok test string::bounded_buffer::tests::clear_resets_the_buffer ... ok test string::bounded_buffer::tests::keeps_a_prefix_and_a_suffix ... ok test string::bounded_buffer::tests::take_hands_over_the_contents_and_resets ... ok test string::bounded_buffer::tests::one_huge_write_is_capped_like_many_small_ones ... ok test string::bounded_buffer::tests::the_end_portion_is_a_sliding_window ... ok test string::bounded_buffer::tests::keeps_as_much_as_it_can ... ok test string::bounded_buffer::tests::writes_always_succeed ... ok test string::bounded_buffer::tests::never_exceeds_the_limit ... ok test string::bounded_buffer::tests::zero_sided_limits::case_1_no_end_kept ... ok test string::bounded_buffer::tests::reports_a_dropped_middle_exactly_when_data_was_dropped ... ok test string::bounded_buffer::tests::zero_sided_limits::case_2_no_start_kept ... ok test string::bounded_buffer::tests::zero_sided_limits::case_3_nothing_kept ... ok test string::bounded_buffer::tests::take_resets_the_buffer ... ok test string::bounded_buffer::tests::the_limits_decide_whether_anything_is_dropped ... ok test string::ellipsis::tests::display_writes_without_allocating_via_cow ... ok test string::bounded_buffer::tests::writes_never_fail ... ok test string::ellipsis::tests::pad_ellipsize_borrows_only_when_no_alloc_needed ... ok test string::ellipsis::tests::pad_ellipsize_table::case_01_start_pads_when_shorter ... ok test string::ellipsis::tests::pad_ellipsize_table::case_02_unchanged_when_exact_budget ... ok test shell::tests::getent_passwd_returns_seventh_field ... ok test string::ellipsis::tests::pad_ellipsize_table::case_03_ellipsizes_end_when_too_wide ... ok test string::ellipsis::tests::pad_ellipsize_table::case_04_ellipsizes_start_when_too_wide ... ok test string::ellipsis::tests::pad_ellipsize_table::case_05_empty_pads_to_budget ... ok test string::ellipsis::tests::pad_ellipsize_table::case_06_wide_glyph_exact_column_budget ... ok test string::ellipsis::tests::pad_ellipsize_table::case_07_wide_glyph_pads_by_display_columns ... ok test string::ellipsis::tests::pad_ellipsize_table::case_08_pads_by_bytes_under_byte_budget ... ok test string::ellipsis::tests::pad_ellipsize_table::case_09_end_align_left_pads ... ok test string::ellipsis::tests::pad_ellipsize_table::case_10_center_even_split ... ok test string::ellipsis::tests::pad_ellipsize_table::case_11_center_odd_extra_on_right ... ok test string::ellipsis::tests::pad_ellipsize_table::case_12_align_ignored_when_elided ... ok test string::ellipsis::tests::source_index_fits_is_identity ... ok test string::ellipsis::tests::source_index_middle_maps_head_gap_tail ... ok test string::ellipsis::tests::truncates_per_table::case_01_ascii_fits_under_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_02_ascii_exactly_fits_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_03_ascii_truncates_end_with_ascii_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_04_ascii_truncates_start_with_ascii_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_05_ascii_truncates_middle_with_ascii_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_06_ascii_truncates_end_with_unicode_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_07_ascii_truncates_start_with_unicode_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_08_cjk_truncates_under_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_09_cjk_truncates_to_indicator_only_under_tiny_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_10_cjk_exactly_fits_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_11_emoji_truncates_end_under_column_budget_with_unicode_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_12_emoji_exactly_fits_column_budget ... ok test string::ellipsis::tests::truncates_per_table::case_13_ascii_hard_truncates_end_when_budget_below_indicator_cost ... ok test string::ellipsis::tests::truncates_per_table::case_14_ascii_hard_truncates_start_when_budget_below_indicator_cost ... ok test string::ellipsis::tests::truncates_per_table::case_15_ascii_zero_budget_yields_empty_string ... ok test string::ellipsis::tests::truncates_per_table::case_16_empty_input_yields_empty_string ... ok test string::ellipsis::tests::truncates_per_table::case_17_ascii_truncates_end_under_byte_budget ... ok test string::ellipsis::tests::truncates_per_table::case_18_ascii_truncates_end_under_byte_budget_with_unicode_indicator ... ok test string::ellipsis::tests::truncates_per_table::case_19_accented_truncates_end_under_byte_budget ... ok test string::ellipsis::tests::truncates_per_table::case_20_accented_exactly_fits_byte_budget ... ok test string::ellipsis::tests::truncates_per_table::case_21_cjk_truncates_to_indicator_only_under_byte_budget ... ok test secrets::tests::text_with_nothing_recognisable_is_returned_as_is ... ok test secrets::tests::planted_credentials_go_and_their_surroundings_stay ... ok test string::escape_non_printable_posix_ext::tests::escapes_all_c0_controls_as_caret ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_01_plain_text_unchanged ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_02_two_words_unchanged ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_03_multibyte_unicode_preserved_around_escaped_control ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_04_esc_0x1b ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_05_tab_0x09 ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_06_nul_0x00 ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_07_del_0x7f ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_08_c1_control_0x80 ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_09_single_char_csi_0x9b ... ok test string::escape_non_printable_posix_ext::tests::escapes_as_cat_v::case_10_c1_control_0x9f ... ok test string::escape_non_printable_posix_ext::tests::control_free_input_is_borrowed ... ok test string::escape_non_printable_posix_ext::tests::escaping_is_idempotent ... ok test string::highlighted::tests::display_plain_strips_every_marker::case_1_clean ... ok test string::highlighted::tests::display_plain_strips_every_marker::case_2_single_span ... ok test string::highlighted::tests::display_plain_strips_every_marker::case_3_orphan_and_nested ... ok test string::escape_non_printable_posix_ext::tests::output_never_contains_control_chars ... ok test string::highlighted::tests::display_plain_strips_every_marker::case_4_doubled ... ok test string::highlighted::tests::display_raw_is_verbatim ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_1_clean ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_2_single_span ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_3_two_spans ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_4_orphan_open ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_5_orphan_close ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_6_nested_open ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_7_doubled ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_8_empty_span ... ok test string::highlighted::tests::display_subs_substitutes_every_marker::case_9_multibyte_text ... ok test string::highlighted::tests::identical_markers_error_carries_the_markers ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_1_single ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_2_mixed ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_3_blank_lines ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_4_span_across_lines ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_5_span_across_a_blank_line ... ok test string::highlighted::tests::lines_keep_each_lines_own_markers::case_6_empty ... ok test string::highlighted::tests::markers_are_positional_so_swapping_them_inverts_parsing ... ok test string::highlighted::tests::markers_chosen_from_ordinary_text_delete_that_text ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_1_clean ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_2_span_between_text ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_3_back_to_back ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_4_no_markers ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_5_empty_span_skipped ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_6_nested_open_outer_is_text ... ok test string::highlighted::tests::pieces_split_text_and_matches::case_7_orphan_close_stripped ... ok test string::highlighted::tests::proto_rejects_identical_markers ... ok test string::highlighted::tests::proto_rejects_non_char_markers::case_1_open_surrogate ... ok test string::highlighted::tests::proto_rejects_non_char_markers::case_2_close_above_char_max ... ok test secrets::tests::redaction_is_idempotent ... ok test string::ellipsis::tests::borrowed_when_it_fits ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_01_single_span ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_02_each_span_its_own_range ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_03_multibyte_prefix_keeps_offsets ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_04_no_markers ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_05_nested_open_keeps_inner ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_06_nested_pair_keeps_inner ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_07_doubled_markers_collapse ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_08_empty_span ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_09_adjacent_empty_spans ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_10_empty_span_between_real ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_11_back_to_back_spans ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_12_whitespace_span ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_13_unterminated_opens ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_14_orphan_close_then_open ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_15_orphan_close_ignored ... ok test string::highlighted::tests::ranges_index_the_raw_text::case_16_extra_close_ignored ... ok test string::highlighted::tests::ranges_with_default_multibyte_markers::case_1_multibyte_text_before ... ok test string::highlighted::tests::ranges_with_default_multibyte_markers::case_2_multibyte_text_inside ... ok test string::highlighted::tests::ranges_with_default_multibyte_markers::case_3_splits_combining_mark ... ok test string::ellipsis::tests::never_grows ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_1_empty ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_2_clean ... ok test string::ellipsis::tests::ellipsis_present_when_needed ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_3_only_open ... ok test string::ellipsis::tests::never_overflows ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_4_only_close ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_5_both_markers ... ok test string::highlighted::tests::sanitize_strips_markers_and_borrows_only_when_clean::case_6_all_markers ... ok test string::highlighted::tests::to_plain_indexes_the_plain_text::case_1_clean ... ok test string::highlighted::tests::to_plain_indexes_the_plain_text::case_2_span_between_text ... ok test string::highlighted::tests::to_plain_indexes_the_plain_text::case_3_back_to_back ... ok test string::highlighted::tests::to_plain_indexes_the_plain_text::case_4_multibyte_before_span ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_1_ascii ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_2_emoji ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_3_whitespace ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_4_null ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_5_brackets ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_6_mixed_whitespace ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_7_control ... ok test string::highlighted::tests::with_markers_ok_iff_distinct::case_8_default_pua ... ok test string::non_blank::tests::holds_the_text_verbatim::case_1_plain ... ok test string::non_blank::tests::holds_the_text_verbatim::case_2_padded ... ok test string::non_blank::tests::json_schema_requires_a_character ... ok test string::non_blank::tests::rejects_blank_text::case_1_empty ... ok test string::non_blank::tests::rejects_blank_text::case_2_whitespace ... ok test string::non_nul_str::tests::deserialize_rejects::case_1_embedded_nul ... ok test string::non_nul_str::tests::deserialize_rejects::case_2_non_string ... ok test string::non_nul_str::tests::deserializes_nul_free_string ... ok test string::non_nul_str::tests::rejects_strings_with_nul::case_1_interior ... ok test string::non_nul_str::tests::rejects_strings_with_nul::case_2_trailing ... ok test string::non_nul_str::tests::rejects_strings_with_nul::case_3_leading ... ok test string::non_nul_str::tests::rejects_strings_with_nul::case_4_first_of_many ... ok test string::ellipsis::tests::source_index_round_trips ... ok test string::non_nul_str::tests::serializes_as_plain_string ... ok test string::ellipsis::tests::valid_byte_cut ... ok test string::non_nul_str::tests::wraps_nul_free_strings::case_1 ... ok test string::non_nul_str::tests::wraps_nul_free_strings::case_2 ... ok test string::non_nul_str::tests::wraps_nul_free_strings::case_3 ... ok test string::non_nul_str::tests::wraps_nul_free_strings::case_4 ... ok test string::normalize::tests::boundary_cases ... ok test string::normalize::tests::general ... ok test string::normalize::tests::invisible_chars ... ok test string::normalize::tests::unchanged_outside_blocks ... ok test string::tests::format_safe_redacts::case_1_redacts_password ... ok test string::tests::format_safe_redacts::case_2_passwordless_unchanged ... ok test string::tests::format_safe_redacts::case_3_empty_password_dropped ... ok test string::tests::line_indices::case_1_empty ... ok test string::highlighted::tests::proto_round_trips ... ok test string::tests::line_indices::case_2_one_line ... ok test string::tests::line_indices::case_3_trailing_newline ... ok test string::tests::line_indices::case_4_two_lines ... ok test string::tests::line_indices::case_5_blank_lines ... ok test string::tests::line_indices::case_6_crlf ... ok test string::tests::line_indices::case_7_bare_carriage_return ... ok test string::tests::line_indices::case_8_multibyte ... ok test string::tests::nonempty_or_falls_back_only_when_empty::case_1_empty ... ok test string::tests::nonempty_or_falls_back_only_when_empty::case_2_non_empty ... ok test string::tests::normalize_diacritics_borrows_when_unchanged::case_1_empty ... ok test string::tests::normalize_diacritics_borrows_when_unchanged::case_2_plain_ascii ... ok test string::tests::normalize_diacritics_borrows_when_unchanged::case_3_unmappable ... ok test string::tests::normalizes_diacritics::case_1_empty ... ok test string::tests::normalizes_diacritics::case_2_ascii_unchanged ... ok test string::tests::normalizes_diacritics::case_3_accented ... ok test string::tests::normalizes_diacritics::case_4_keeps_unmappable ... ok test string::tests::normalizes_diacritics::case_5_position_preserved ... ok test string::tests::truncate_chars_returns_the_original_slice_when_it_fits ... ok test string::tests::truncates_by_char_count::case_1_under_budget ... ok test string::tests::truncates_by_char_count::case_2_exact_budget ... ok test string::tests::truncates_by_char_count::case_3_over_budget ... ok test string::tests::truncates_by_char_count::case_4_zero ... ok test string::tests::truncates_by_char_count::case_5_empty ... ok test string::tests::truncates_by_char_count::case_6_multibyte_cut ... ok test string::tests::truncates_by_char_count::case_7_multibyte_kept ... ok test string::trim::tests::a_stateful_pattern_is_reused_rather_than_consumed ... ok test string::non_nul_str::tests::validates_against_nul ... ok test string::non_nul_str::tests::serde_round_trip ... ok test string::tests::line_indices_are_the_lines_and_where_they_start ... ok test secrets::tests::the_credential_dense_generator_reaches_the_owned_path ... ok test string::trim::tests::agrees_with_str_trim_end ... ok test string::trim::tests::agrees_with_str_trim ... ok test string::trim::tests::handles_multibyte_characters::case_1_multibyte_pattern ... ok test string::trim::tests::handles_multibyte_characters::case_2_multibyte_content_preserved ... ok test string::trim::tests::handles_multibyte_characters::case_3_multibyte_content_all_trimmed ... ok test string::trim::tests::agrees_with_str_trim_end_matches ... ok test string::trim::tests::one_sided_trims_handle_multibyte_characters::case_1_multibyte_pattern ... ok test string::trim::tests::one_sided_trims_handle_multibyte_characters::case_2_multibyte_content_preserved ... ok test string::trim::tests::agrees_with_str_trim_matches ... ok test string::trim::tests::one_sided_whitespace_trims_match_str::case_1_ascii_whitespace ... ok test string::trim::tests::one_sided_whitespace_trims_match_str::case_2_unicode_whitespace ... ok test string::trim::tests::one_sided_whitespace_trims_match_str::case_3_nothing_to_trim ... ok test string::trim::tests::trim_in_place_matches_str_trim::case_1_ascii_whitespace ... ok test string::trim::tests::trim_in_place_matches_str_trim::case_2_unicode_whitespace ... ok test string::trim::tests::trim_in_place_matches_str_trim::case_3_interior_kept ... ok test string::trim::tests::trim_in_place_matches_str_trim::case_4_nothing_to_trim ... ok test string::trim::tests::trims_a_char_array_pattern::case_1_blank_lines_and_spaces ... ok test string::trim::tests::trims_a_char_array_pattern::case_2_mixed_run ... ok test string::trim::tests::trims_a_char_array_pattern::case_3_interior_newline_kept ... ok test string::trim::tests::trims_a_char_pattern::case_1_both_ends ... ok test string::trim::tests::trims_a_char_pattern::case_2_leading_only ... ok test string::trim::tests::trims_a_char_pattern::case_3_trailing_only ... ok test string::trim::tests::trims_a_char_pattern::case_4_interior_kept ... ok test string::trim::tests::trims_a_char_pattern::case_5_no_match ... ok test string::trim::tests::trims_a_char_pattern::case_6_all_pattern ... ok test string::trim::tests::trims_a_char_pattern::case_7_empty ... ok test string::trim::tests::trims_a_char_pattern::case_8_single_char ... ok test string::trim::tests::trims_a_closure_pattern::case_1_digits ... ok test string::trim::tests::trims_a_closure_pattern::case_2_only_digits ... ok test string::trim::tests::trims_a_closure_pattern::case_3_interior_digits_kept ... ok test string::trim::tests::trims_a_closure_pattern::case_4_nothing_to_trim ... ok test string::trim::tests::trims_a_str_pattern::case_1_str_pattern ... ok test string::trim::tests::trims_a_str_pattern::case_2_repeated_str_pattern ... ok test string::trim::tests::trims_a_str_pattern::case_3_partial_match_kept ... ok test string::trim::tests::trims_only_the_requested_end::case_1_both_ends ... ok test string::trim::tests::agrees_with_str_trim_start ... ok test string::trim::tests::trims_only_the_requested_end::case_2_leading_only ... ok test string::trim::tests::trims_only_the_requested_end::case_3_trailing_only ... ok test string::trim::tests::agrees_with_str_trim_start_matches ... ok test string::trim::tests::trims_only_the_requested_end::case_4_interior_kept ... ok test string::trim::tests::trims_only_the_requested_end::case_5_all_pattern ... ok test string::trim::tests::trims_only_the_requested_end::case_6_empty ... ok test string::trim::tests::trims_only_the_requested_end::case_7_nothing_to_trim ... ok test time::duration::tests::disableable_duration_marker_uses_unit_and_zero_is_none ... ok test time::duration::tests::format_duration_shows_most_significant_unit::case_1_zero ... ok test time::duration::tests::disableable_duration_treats_negative_as_none ... ok test time::duration::tests::format_duration_shows_most_significant_unit::case_2_sub_second ... ok test time::duration::tests::format_duration_shows_most_significant_unit::case_3_seconds ... ok test time::duration::tests::format_duration_shows_most_significant_unit::case_4_minutes ... ok test time::duration::tests::format_duration_shows_most_significant_unit::case_5_truncates_not_rounds ... ok test time::duration::tests::nonzero_duration_deserialize_rejects_zero ... ok test time::duration::tests::nonzero_duration_rejects_zero ... ok test time::duration::tests::required_duration_marker_uses_unit_and_zero_policy ... ok test time::duration::tests::saturating_from_nanos_i64_clamps::case_1_zero ... ok test time::duration::tests::saturating_from_nanos_i64_clamps::case_2_positive ... ok test time::duration::tests::saturating_from_nanos_i64_clamps::case_3_negative_clamps_to_zero ... ok test time::duration::tests::saturating_from_nanos_i64_clamps::case_4_min_clamps_to_zero ... ok test time::duration::tests::saturating_from_nanos_i64_clamps::case_5_max ... ok test time::duration::tests::std_try_new_range::case_1_max_u64_seconds ... ok test time::duration::tests::std_try_new_range::case_2_largest_nanos_without_carry ... ok test time::duration::tests::std_try_new_range::case_3_carry_overflows_u64_seconds ... ok test time::duration::tests::stopwatch_clamps_a_negative_time_duration ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_1_zero ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_2_millis ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_3_sub_second_only ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_4_whole_second ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_5_fractional_second ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_6_minutes ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_7_hours ... ok test time::duration::tests::stopwatch_keeps_subsecond_resolution::case_8_days_stay_in_hours ... ok test time::duration::tests::std_try_new_is_total ... ok test time::duration::tests::time_try_new_range::case_1_max_i64_seconds ... ok test time::duration::tests::time_try_new_range::case_2_one_second_past_i64 ... ok test string::trim::tests::both_ends_is_the_two_one_sided_trims ... ok test time::duration::tests::time_try_new_range::case_3_carry_crosses_i64 ... ok test time::duration::tests::time_try_new_range::case_4_past_u64_seconds ... ok test time::duration::tests::time_try_new_range::case_5_carry_overflows_u64_seconds ... ok test time::duration::tests::try_new_sums_components::case_1_whole_seconds ... ok test time::duration::tests::try_new_sums_components::case_2_carries_up ... ok test time::duration::tests::try_new_sums_components::case_3_only_nanos ... ok test time::offset_date_time::tests::datetime_formats_render_as_documented ... ok test time::offset_date_time::tests::display_matches_the_format_descriptors::case_1_epoch ... ok test time::offset_date_time::tests::display_matches_the_format_descriptors::case_2_single_digit_components ... ok test time::offset_date_time::tests::display_matches_the_format_descriptors::case_3_year_one ... ok test time::offset_date_time::tests::display_matches_the_format_descriptors::case_4_negative_year ... ok test time::offset_date_time::tests::display_matches_the_format_descriptors::case_5_max ... ok test time::duration::tests::time_try_new_tracks_std_try_new ... ok test time::offset_date_time::tests::from_timespec_range::case_01_max_instant ... ok test time::offset_date_time::tests::from_timespec_range::case_02_one_nano_past_max ... ok test time::offset_date_time::tests::from_timespec_range::case_03_one_second_past_max ... ok test time::offset_date_time::tests::from_timespec_range::case_04_min_instant ... ok test time::offset_date_time::tests::from_timespec_range::case_05_one_nano_before_min ... ok test time::offset_date_time::tests::from_timespec_range::case_06_one_second_before_min ... ok test time::offset_date_time::tests::from_timespec_range::case_07_truncation_point_2_63 ... ok test time::offset_date_time::tests::from_timespec_range::case_08_truncation_point_2_64 ... ok test time::offset_date_time::tests::from_timespec_range::case_09_i128_overflow_high ... ok test time::offset_date_time::tests::from_timespec_is_total ... ok test time::offset_date_time::tests::from_timespec_range::case_10_i128_overflow_low ... ok test time::offset_date_time::tests::from_timespec_range::case_11_i128_overflow_nsecs ... ok test time::offset_date_time::tests::from_timespec_agrees_with_upstream_in_the_sound_range ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_1_zero ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_2_whole_seconds ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_3_sub_second ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_4_carries_up ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_5_borrows_down ... ok test time::offset_date_time::tests::from_timespec_sums_components::case_6_before_epoch ... ok test time::offset_date_time::tests::from_unix_nanos_i64_is_total::case_1_min ... ok test time::offset_date_time::tests::from_unix_nanos_i64_is_total::case_2_negative ... ok test time::offset_date_time::tests::from_unix_nanos_i64_is_total::case_3_epoch ... ok test time::offset_date_time::tests::from_unix_nanos_i64_is_total::case_4_typical ... ok test time::offset_date_time::tests::from_unix_nanos_i64_is_total::case_5_max ... ok test time::offset_date_time::tests::from_unix_nanos_u64_is_total::case_1_zero ... ok test time::offset_date_time::tests::from_unix_nanos_u64_is_total::case_2_typical ... ok test time::offset_date_time::tests::from_unix_nanos_u64_is_total::case_3_max ... ok test time::offset_date_time::tests::saturating_duration_since_clamps::case_1_an_hour ... ok test time::offset_date_time::tests::saturating_duration_since_clamps::case_2_same_instant ... ok test time::offset_date_time::tests::saturating_duration_since_clamps::case_3_future_clamps_to_zero ... ok test time::system_time::tests::saturating_unix_millis::case_1_epoch ... ok test time::system_time::tests::saturating_unix_millis::case_2_after ... ok test time::system_time::tests::saturating_unix_millis::case_3_sub_millisecond_truncates ... ok test time::system_time::tests::saturating_unix_millis::case_4_before ... ok test time::utc_offset::tests::resolve_spec_accepts_anything_stringlike ... ok test time::utc_offset::tests::resolve_spec_local_queries_the_system ... ok test time::utc_offset::tests::resolve_spec_rejects_invalid::case_1_no_sign ... ok test time::utc_offset::tests::resolve_spec_rejects_invalid::case_2_garbage ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_1_utc ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_2_zero ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_3_plus ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_4_minus ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_5_with_seconds ... ok test time::utc_offset::tests::resolve_spec_returns_the_offset::case_6_uppercase ... ok test time::utc_offset::tests::spec_wraps_the_resolved_offset ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_1_ten_percent_of_a_thousand ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_2_fraction_of_a_percent ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_3_rounds_down ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_4_zero_of_anything ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_5_all_of_the_max ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_6_half_of_the_max ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_7_anything_of_zero ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_8_more_than_the_whole ... ok test units::percent::tests::a_share_of_a_u64_works_in_either_order::case_9_saturates ... ok test units::percent::tests::constants_and_conversions ... ok test units::percent::tests::a_float_share_matches_the_formula ... ok test units::percent::tests::displays_with_a_sign::case_1_whole ... ok test units::percent::tests::displays_with_a_sign::case_2_hundred ... ok test units::percent::tests::displays_with_a_sign::case_3_fraction ... ok test units::percent::tests::displays_with_a_sign::case_4_negative ... ok test units::percent::tests::parses_percentages::case_01_zero ... ok test units::percent::tests::parses_percentages::case_02_ten ... ok test units::percent::tests::parses_percentages::case_03_hundred ... ok test units::percent::tests::parses_percentages::case_04_above_the_whole ... ok test units::percent::tests::a_share_of_at_most_the_whole_never_exceeds_it ... ok test units::percent::tests::parses_percentages::case_05_far_above_the_whole ... ok test units::percent::tests::an_integer_share_keeps_the_sign ... ok test units::percent::tests::parses_percentages::case_06_fraction ... ok test units::percent::tests::parses_percentages::case_07_fraction_without_leading_digit ... ok test units::percent::tests::parses_percentages::case_08_exponent ... ok test units::percent::tests::parses_percentages::case_09_space_before_sign ... ok test units::percent::tests::parses_percentages::case_10_surrounding_whitespace ... ok test units::percent::tests::parses_percentages::case_11_leading_zeros ... ok test units::percent::tests::display_round_trips ... ok test units::percent::tests::percentages_combine_with_each_other ... ok test units::percent::tests::rejects_invalid_percentages::case_1_empty ... ok test units::percent::tests::rejects_invalid_percentages::case_2_only_whitespace ... ok test units::percent::tests::rejects_invalid_percentages::case_3_missing_sign ... ok test units::percent::tests::rejects_invalid_percentages::case_4_only_sign ... ok test units::percent::tests::rejects_invalid_percentages::case_5_word ... ok test units::percent::tests::rejects_invalid_percentages::case_6_nan ... ok test units::percent::tests::rejects_invalid_percentages::case_7_infinite ... ok test units::percent::tests::rejects_invalid_percentages::case_8_negative ... ok test units::percent::tests::rejects_invalid_percentages::case_9_negative_zero ... ok test units::percent::tests::serde_uses_the_text_form ... ok test units::percent::tests::shares_of_floats_are_plain_float_math ... ok test units::percent::tests::shares_of_the_other_integer_types_saturate_at_their_own_bounds ... ok test url::tests::append_cases::case_01 ... ok test url::tests::append_cases::case_02 ... ok test url::tests::append_cases::case_03 ... ok test url::tests::append_cases::case_04 ... ok test url::tests::append_cases::case_05 ... ok test url::tests::append_cases::case_06 ... ok test url::tests::append_cases::case_07 ... ok test url::tests::append_cases::case_08 ... ok test url::tests::append_cases::case_09 ... ok test url::tests::append_cases::case_10 ... ok test url::tests::append_cases::case_11 ... ok test url::tests::append_cases::case_12 ... ok test url::tests::append_cases::case_13 ... ok test url::tests::append_cases::case_14 ... ok test url::tests::append_cases::case_15 ... ok test url::tests::append_encodes_each_segment_independently ... ok test url::tests::append_path_cases::case_1 ... ok test url::tests::append_path_cases::case_2 ... ok test url::tests::append_path_cases::case_3 ... ok test url::tests::append_path_cases::case_4 ... ok test url::tests::append_path_cases::case_5 ... ok test url::tests::append_path_cases::case_6 ... ok test url::tests::append_path_cases::case_7 ... ok test url::tests::cannot_be_a_base_url_is_an_error ... ok test url::tests::dot_lookalikes_are_still_appended ... ok test url::tests::dot_segments_are_rejected::case_1 ... ok test url::tests::dot_segments_are_rejected::case_2 ... ok test url::tests::dot_segments_are_rejected_by_append_path ... ok test userio::log::layer::tests::a_filter_without_user_messages_drops_only_them::case_1_targets ... ok test userio::log::layer::tests::a_filter_without_user_messages_drops_only_them::case_3_env_filter_naming_user ... ok test userio::log::layer::tests::a_filter_without_user_messages_drops_only_them::case_2_env_filter ... ok test userio::log::layer::tests::a_message_carries_the_request_it_was_shown_in ... ok test utils::tests::dumb_random_test::_n_1____8_ ... ok test utils::tests::dumb_random_test::_n_2____16_ ... ok test utils::tests::dumb_random_test::_n_3____32_ ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_1_repository ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_2_worktree_with_a_relative_gitdir ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_5_submodule ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_6_dangling_gitdir ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_4_worktree_of_a_bare_repository ... ok test utils::tests::only_a_linked_worktree_resolves_to_its_main_repository::case_3_worktree_with_a_relative_gitdir_through_a_symlink ... ok test utils::tests::a_real_worktree_is_its_own_checkout_in_the_main_repository ... ok test string::highlighted::tests::wrapping_spans_round_trips_through_ranges_and_sanitize ... ok test string::highlighted::tests::ranges_are_valid_ordered_slices_of_the_raw_text ... ok test string::highlighted::tests::pieces_reconstruct_plain_and_report_matches ... ok test string::highlighted::tests::sanitize_is_a_marker_free_idempotent_filter ... ok test os::unix::io::tests::waits_out_a_stalled_nonblocking_fd ... ok test harnesstools::opencode::session::tests::a_dropped_offer_waits_for_the_session_s_next_row ... ok test harnesstools::pi::session::tests::watch_reads_a_file_again_after_a_failed_read ... ok test harnesstools::opencode::session::tests::capture_resumes_after_the_event_table_is_gone_for_a_while ... ok test harnesstools::opencode::session::v2::tests::a_database_being_written_is_captured_row_for_row ... ok test harnesstools::opencode::session::v2::tests::a_rename_is_delivered ... ok test harnesstools::opencode::session::v2::tests::a_revert_of_the_checkpoint_s_row_goes_on_past_it ... ok test harnesstools::opencode::session::v2::tests::an_untouched_session_is_left_alone_until_it_is_updated ... ok test harnesstools::opencode::session::v2::tests::replay_from_now_skips_preexisting_rows ... ok test secrets::tests::each_prefilter_matches_exactly_where_its_pattern_does ... ok test harnesstools::opencode::session::v2::tests::rows_that_settle_out_of_order_are_all_delivered_across_a_restart ... ok test harnesstools::opencode::session::v2::tests::a_migration_from_1x_delivers_nothing_twice ... ok test harnesstools::opencode::session::v2::tests::a_session_in_both_layouts_is_one_session ... ok test harnesstools::opencode::session::v2::tests::a_call_is_delivered_once_it_settles ... ok test result: ok. 3430 passed; 0 failed; 0 ignored; 0 measured; 301 filtered out; finished in 7.57s Running tests/backoff.rs (target/aarch64-unknown-linux-gnu/release/deps/backoff-e4de6f2ec6a70cff) running 10 tests test exponential_backoff_never_exceeds_max ... ok test timeout_mid_backoff_returns_the_last_continue_reason ... ok test break_before_timeout_returns_the_ok_value ... ok test exponential_initial_is_capped_to_max ... ok test constant_waits_its_period_between_attempts ... ok test exponential_backoff_grows_geometrically ... ok test eager_first_call_can_exceed_the_timeout ... ok test retry_forever_backs_off_until_break ... ok test constant_zero_spins_with_no_delay ... ok test retry_forever_saturates_at_max_and_never_gives_up ... ok test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_daemon-c1d1d36aac5d6132) running 565 tests test grpc::ai::agent::pb::tests::uncaptured_tool_input_is_absent_on_the_wire ... ok test grpc::ai::agent::pb::tests::other_role_is_carried_as_role_label ... ok test grpc::ai::session::pb::tests::a_session_match_without_its_session_is_rejected ... ok test grpc::ai::session::pb::tests::a_session_filter_round_trips ... ok test grpc::ai::session::pb::tests::a_session_match_round_trips ... ok test grpc::ai::session::tests::only_the_marked_status_is_rebuilding ... ok test grpc::ai::session::tests::the_rebuilding_status_carries_its_progress ... ok test client::tests::a_refusal_is_known_by_its_build::case_1_other_build ... ok test client::tests::a_refusal_is_known_by_its_build::case_2_our_build ... ok test client::tests::a_refusal_is_known_by_its_build::case_3_no_build ... ok test grpc::history::pb::tests::a_whole_capture_never_reports_truncation ... ok test grpc::history::pb::tests::an_empty_tail_still_marks_the_capture_as_split ... ok test grpc::history::pb::tests::cancel_request_good_id_ok ... ok test grpc::history::pb::tests::cancel_request_rejects_bad_id::case_1_missing ... ok test grpc::history::pb::tests::cancel_request_rejects_bad_id::case_2_bad_len ... ok test grpc::common::tests::propagates_an_item_error ... ok test grpc::common::tests::rejects_more_than_max ... ok test grpc::common::tests::collects_every_chunk_in_stream_order ... ok test grpc::common::tests::propagates_a_stream_error_verbatim ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_1_no_trailing_newline ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_2_one_trailing_newline ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_3_two_trailing_newlines ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_4_blank_line_at_the_end ... ok test grpc::ai::agent::pb::tests::usage_matches_the_proto_tokens ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_5_single_line_no_newline ... ok test grpc::ai::agent::pb::tests::harness_kind_matches_the_proto_enum ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_6_just_a_newline ... ok test grpc::history::pb::tests::command_output_counts_lines_without_a_trailing_newline_sentinel::case_7_empty ... ok test grpc::history::pb::tests::command_output_drops_ranges_that_select_nothing ... ok test grpc::history::pb::tests::command_output_lines_survive_the_chunk_round_trip::case_1_blank_line_ends_a_chunk ... ok test grpc::history::pb::tests::command_output_lines_survive_the_chunk_round_trip::case_2_chunk_is_only_a_blank_line ... ok test grpc::history::pb::tests::command_output_lines_survive_the_chunk_round_trip::case_3_interior_blank_lines_survive ... ok test grpc::history::pb::tests::command_output_lines_survive_the_chunk_round_trip::case_4_gap_is_not_widened_by_a_blank_line ... ok test grpc::history::pb::tests::command_output_lines_survive_the_chunk_round_trip::case_5_empty_ranges_contribute_nothing ... ok test grpc::history::pb::tests::command_output_ranges_are_inclusive_with_negative_offsets ... ok test grpc::history::pb::tests::command_output_whole_output_via_full_range ... ok test grpc::history::pb::tests::delete_stream_collects_ids_across_chunks_in_order ... ok test grpc::history::pb::tests::delete_stream_maps_a_malformed_id_to_invalid_argument ... ok test grpc::history::pb::tests::delete_stream_maps_over_cap_to_invalid_argument ... ok test grpc::history::pb::tests::end_request_missing_id_errs ... ok test grpc::history::pb::tests::end_request_negative_duration_errs_without_panic ... ok test grpc::history::pb::tests::end_request_none_duration_is_preserved ... ok test grpc::history::pb::tests::end_request_some_duration_is_parsed ... ok test grpc::history::pb::tests::finish_error_status_codes::case_2 ... ok test grpc::history::pb::tests::history_id_parse_errors::case_1_missing ... ok test grpc::history::pb::tests::finish_error_status_codes::case_1 ... ok test grpc::history::pb::tests::history_id_parse_errors::case_2_short ... ok test grpc::history::pb::tests::history_id_parse_errors::case_3_long ... ok test grpc::history::pb::tests::history_entry_field_routing ... ok test grpc::history::pb::tests::id_parse_error_maps_to_invalid_argument ... ok test grpc::history::pb::tests::journal_not_found_maps_to_not_found::case_1_cancel ... ok test grpc::history::pb::tests::journal_not_found_maps_to_not_found::case_2_get ... ok test grpc::history::pb::tests::register_command_output_accepts_a_capture_carrying_its_meta ... ok test grpc::history::pb::tests::register_command_output_rejects_an_incomplete_capture::case_1_no_meta ... ok test grpc::history::pb::tests::register_command_output_rejects_an_incomplete_capture::case_2_no_capture ... ok test grpc::history::pb::tests::register_output_error_status_codes::case_1 ... ok test grpc::history::pb::tests::register_output_error_status_codes::case_2 ... ok test grpc::history::pb::tests::register_output_error_status_codes::case_3 ... ok test grpc::ai::agent::pb::tests::harness_session_roundtrips ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_1_within_the_start ... ok test grpc::history::pb::tests::history_id_rejects_wrong_length ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_2_exactly_the_start ... ok test grpc::history::pb::tests::history_id_round_trips_and_wire_bytes ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_3_within_the_tail ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_4_exactly_the_tail ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_5_past_the_start ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_6_past_the_tail ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_7_inside_the_gap_from_the_front ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_8_inside_the_gap_from_the_back ... ok test grpc::history::pb::tests::split_capture_answers_a_range_from_the_half_that_holds_it::case_9_spanning ... ok test grpc::history::pb::tests::split_capture_reports_both_halves_for_a_full_range ... ok test grpc::history::pb::tests::split_capture_totals_count_only_what_was_kept ... ok test grpc::history::pb::tests::split_capture_truncation_is_sticky_across_ranges ... ok test grpc::history::pb::tests::chunk_line_views_match_the_declared_ranges ... ok test grpc::history::pb::tests::start_request_rejects_colonless_hostname ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_5_malformed ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_6_predates_builds ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_3_other_commit_of_ours ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_1_older ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_2_newer ... ok test grpc::versioning::tests::only_a_newer_build_is_left_running::case_4_unparsable ... ok test grpc::history::pb::tests::start_request_defaults_exit_and_duration_to_unmeasured ... ok test grpc::request::tests::a_call_naming_a_request_shows_its_messages_with_it ... ok test grpc::ai::agent::pb::tests::session_roundtrips ... ok test grpc::ai::agent::pb::tests::message_roundtrips ... ok test grpc::ai::session::tests::tail_sessions_returns_a_stream ... ok test grpc::ai::session::tests::import_sessions_errors_when_capture_is_unavailable ... ok test grpc::ai::session::tests::search_sessions_rejects_an_unknown_harness ... ok test grpc::ai::session::tests::a_failed_recovery_still_serves_reads ... ok test grpc::ai::session::tests::reads_are_refused_until_recovery_finishes ... ok test grpc::ai::session::tests::search_sessions_returns_a_stream ... ok test output_capture::engine::tests::nop_constructor_discards_everything ... ok test output_capture::engine::tests::remove_on_the_nop_backend_is_ok ... ok test output_capture::engine::tests::search_on_a_nop_store_is_empty ... ok test output_capture::engine::tests::open_falls_back_to_nop_when_fjall_cannot_open ... ok test client::rebuild_tests::reads_the_rebuild_status_without_waiting ... ok test client::rebuild_tests::returns_at_once_when_not_rebuilding::case_2_failed ... ok test grpc::userio::tests::each_message_reaches_only_the_client_of_its_request ... ok test client::rebuild_tests::returns_at_once_when_not_rebuilding::case_1_ready ... ok test grpc::userio::tests::a_client_shows_every_message_for_its_request_shown_before_it_finished ... ok test output_capture::persistence::blob::fjall::tests::eviction_candidates_for_zero_bytes_is_empty ... ok test output_capture::persistence::blob::fjall::tests::estimated_disk_space_shrinks_when_entries_are_removed ... ok test output_capture::persistence::blob::fjall::tests::remove_removes_stored_output ... ok test output_capture::persistence::blob::fjall::tests::remove_of_absent_ids_is_ok ... ok test output_capture::persistence::blob::fjall::tests::round_trips_a_capture_that_lost_its_middle ... ok test output_capture::persistence::blob::fjall::tests::missing_id_returns_none ... ok test output_capture::persistence::blob::fjall::tests::get_surfaces_an_error_for_an_undecodable_value ... ok test output_capture::persistence::blob::fjall::tests::an_empty_tail_is_not_the_same_as_no_tail ... ok test output_capture::persistence::blob::fjall::tests::remove_only_removes_requested_ids ... ok test output_capture::persistence::blob::fjall::tests::remove_after_removal_is_idempotent ... ok test output_capture::persistence::blob::fjall::tests::round_trips_output_by_history_id ... ok test output_capture::persistence::blob::fjall::tests::removed_id_can_be_captured_again ... ok test output_capture::persistence::blob::fjall::tests::all_ids_lists_every_stored_id_oldest_first ... ok test output_capture::persistence::blob::fjall::tests::all_ids_skips_unreadable_keys_and_keeps_walking ... ok test output_capture::engine::tests::open_keeps_capturing_when_only_the_index_cannot_open ... ok test output_capture::persistence::blob::fjall::tests::eviction_candidates_names_oldest_until_budget_met ... ok test output_capture::persistence::blob::fjall::tests::concurrent_writers_store_exactly_one ... ok test output_capture::persistence::index::sqlite::tests::insert_then_search_finds_by_word ... ok test output_capture::persistence::index::sqlite::tests::a_body_that_drifted_from_the_index_is_returned_unhighlighted ... ok test output_capture::persistence::index::sqlite::tests::bulk_remove_drops_only_the_given_ids_across_chunks::case_1_one_id_per_statement ... ok test output_capture::persistence::index::sqlite::tests::bulk_remove_drops_only_the_given_ids_across_chunks::case_2_chunks_split_mid_batch ... ok test output_capture::persistence::index::sqlite::tests::bulk_remove_drops_only_the_given_ids_across_chunks::case_3_one_chunk ... ok test output_capture::engine::tests::remove_forgets_captured_output ... ok test output_capture::engine::tests::searcher_sees_what_the_store_captures ... ok test output_capture::engine::tests::open_uses_the_fjall_backend_when_the_path_is_usable ... ok test output_capture::persistence::blob::fjall::tests::all_ids_streams_every_id_across_chunk_boundaries ... ok test output_capture::persistence::blob::fjall::tests::second_capture_for_same_id_is_rejected ... ok test output_capture::persistence::index::sqlite::tests::open_stamps_the_schema_version ... ok test output_capture::persistence::index::sqlite::tests::indexed_ids_lists_every_entry ... ok test output_capture::persistence::index::sqlite::tests::every_match_in_the_output_gets_a_range ... ok test output_capture::persistence::index::sqlite::tests::blank_query_yields_no_results ... ok test output_capture::persistence::index::sqlite::tests::marker_codepoints_in_the_text_cannot_forge_a_match ... ok test output_capture::persistence::index::sqlite::tests::remove_stale_deletes_older_versions_only ... ok test output_capture::persistence::index::sqlite::tests::the_index_stores_no_body ... ok test output_capture::persistence::index::sqlite::tests::remove_drops_the_entry ... ok test output_capture::persistence::index::sqlite::tests::punctuation_in_the_query_does_not_error ... ok test output_capture::persistence::index::sqlite::tests::reinserting_the_same_id_does_not_duplicate ... ok test output_capture::persistence::index::sqlite::tests::search_returns_nothing_for_a_miss ... ok test output_capture::persistence::index::sqlite::tests::limit_zero_is_unbounded_and_a_positive_limit_caps ... ok test search::index::tests::command_data_add_invocation::case_1_after_epoch::newer_first_1_false ... ok test search::index::tests::command_data_add_invocation::case_1_after_epoch::newer_first_2_true ... ok test search::index::tests::command_data_add_invocation::case_2_before_epoch::newer_first_1_false ... ok test search::index::tests::command_data_add_invocation::case_2_before_epoch::newer_first_2_true ... ok test search::index::tests::command_data_filters ... ok test search::index::tests::command_data_compute_frecency_with_multipliers ... ok test output_capture::engine::tests::the_reconciler_is_spawned_only_when_the_index_opens ... ok test search::index::tests::command_data_compute_frecency ... ok test output_capture::persistence::index::sqlite::tests::repeated_highlighting_does_not_leak_the_previous_body ... ok test search::index::tests::equal_matches_order_by_frecency ... ok test search::index::tests::diacritics_normalized_for_matching ... ok test history_journal::tests::delete_survives_a_broken_output_store ... ok test search::index::tests::normalization_does_not_introduce_query_operators ... ok test search::index::tests::search_index_add_and_search ... ok test search::index::tests::long_query_truncated_not_panicking ... ok test search::index::tests::search_with_shell_filter::case_1_all ... ok test output_capture::persistence::tests::capture_and_remove_survive_an_erroring_index ... ok test search::index::tests::search_with_shell_filter::case_4_bash_zsh ... ok test search::index::tests::search_with_shell_filter::case_2_bash ... ok test search::index::tests::search_with_shell_filter::case_3_bash_unknown ... ok test search::index::tests::contiguous_match_beats_frequent_scattered_match ... ok test search::tests::converts_a_well_formed_match_into_domain_types ... ok test search::tests::rejects_a_line_missing_its_content ... ok test search::tests::rejects_a_match_missing_its_history_id ... ok test search::tests::surfaces_a_malformed_history_id ... ok test search::tests::surfaces_malformed_output ... ok test search::index::tests::search_with_shell_filter::case_7_fish_unknown ... ok test search::index::tests::search_with_shell_filter::case_6_fish ... ok test search::index::tests::search_with_shell_filter::case_5_unknown ... ok test output_capture::persistence::index::sqlite::tests::reopening_reuses_the_existing_table ... ok test search::index::tests::load_from_db_counts_every_invocation ... ok test output_capture::persistence::tests::a_phrase_does_not_match_across_discarded_output::case_1_phrase_across_the_cut ... ok test service::address::unix::locate::tests::an_unrecorded_live_socket_is_refused_only_with_atuin_home::atuin_home_set_1_false::configured_2_true ... ok test service::address::unix::locate::tests::an_unrecorded_live_socket_is_refused_only_with_atuin_home::atuin_home_set_2_true::configured_2_true ... ok test service::address::unix::locate::tests::an_unrecorded_live_socket_is_refused_only_with_atuin_home::atuin_home_set_1_false::configured_1_false ... ok test service::address::unix::locate::tests::an_unrecorded_live_socket_is_refused_only_with_atuin_home::atuin_home_set_2_true::configured_1_false ... ok test service::address::unix::locate::tests::test_socket_path_with_stale_pidfile::case_3_both_systemd ... ok test service::address::unix::locate::tests::test_socket_path_with_stale_pidfile::case_1_pidfile_path_is_used ... ok test service::address::unix::locate::tests::test_socket_path_with_stale_pidfile::case_2_systemd_daemon_records_no_path ... ok test service::address::unix::locate::tests::test_socket_path_without_pidfile::systemd_socket_1_false ... ok test service::address::unix::locate::tests::test_socket_path_without_pidfile::systemd_socket_2_true ... ok test output_capture::persistence::tests::a_phrase_does_not_match_across_discarded_output::case_2_terms_either_side ... ok test service::address::unix::locate::tests::with_atuin_home_a_stale_socket_is_free::configured_1_false ... ok test service::address::unix::socket_file::tests::a_daemon_removes_only_its_own_socket::case_1_its_own ... ok test service::address::unix::socket_file::tests::a_daemon_removes_only_its_own_socket::case_2_replaced_by_launchd ... ok test service::address::unix::socket_file::tests::only_a_stale_socket_is_removed::case_1_stale ... ok test output_capture::persistence::tests::capture_then_search_finds_the_output ... ok test service::address::unix::locate::tests::with_atuin_home_a_stale_socket_is_free::configured_2_true ... ok test service::address::unix::socket_file::tests::only_a_stale_socket_is_removed::case_2_listening ... ok test output_capture::persistence::tests::a_phrase_does_not_match_across_discarded_output::case_3_phrase_in_the_tail ... ok test service::address::unix::locate::tests::with_atuin_home_a_stale_pidfile_is_not_trusted::live_1_false ... ok test service::backend::external::tests::a_restart_starts_only_this_program::case_3_another_program ... ok test service::backend::external::tests::a_restart_starts_only_this_program::case_4_unrecorded ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_1_launchd_job ... ok test service::address::unix::socket_file::tests::only_a_stale_socket_is_removed::case_3_not_a_socket ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_2_systemd_unit ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_3_exited ... ok test output_capture::persistence::tests::reconcile_skips_an_unreadable_capture_and_indexes_the_rest ... ok test output_capture::persistence::tests::reconcile_indexes_captures_missing_from_the_index ... ok test output_capture::persistence::tests::reconcile_drops_index_entries_without_a_capture ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_4_undetected ... ok test output_capture::persistence::tests::remove_drops_the_output_from_search ... ok test service::address::unix::locate::tests::with_atuin_home_the_recorded_socket_is_used ... ok test service::address::unix::locate::tests::with_atuin_home_a_stale_pidfile_is_not_trusted::live_2_true ... ok test service::pidfile::tests::startup_lock_sits_beside_the_pidfile::case_1 ... ok test service::pidfile::tests::startup_lock_sits_beside_the_pidfile::case_2 ... ok test service::backend::external::tests::a_restart_starts_only_this_program::case_1_this_program ... ok test service::pidfile::tests::test_lock_path ... ok test output_capture::persistence::tests::search_matches_the_visible_text_of_colorized_output ... ok test service::backend::external::tests::a_restart_starts_only_this_program::case_2_a_link_to_it ... ok test output_capture::persistence::tests::search_hides_index_entries_whose_capture_is_gone ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_6_agent ... ok test service::pidfile::tests::test_read_ignores_unknown_fields ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_7_older_daemon ... ok test service::pidfile::tests::test_read_unusable::case_1_legacy ... ok test service::pidfile::tests::test_read_unusable::case_3_half_written ... ok test service::backend::external::tests::external_only_while_something_else_runs_the_daemon::case_5_forked ... ok test service::pidfile::tests::test_read_unusable::case_2_pid_only ... ok test search::index::tests::parallel_matching_equals_serial ... ok test output_capture::persistence::tests::search_matches_the_words_of_a_term_as_a_phrase::case_2_phrase_only_where_the_words_meet ... ok test service::pidfile::tests::test_read_unusable::case_4_bad_json ... ok test service::run_mode::tests::a_launchd_job_is_left_to_the_command_that_restarts_it::case_1_brew_services ... ok test service::run_mode::tests::a_launchd_job_is_left_to_the_command_that_restarts_it::case_2_other_job ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_1_user_service ... ok test service::claim::tests::only_the_agent_takes_over_and_only_from_a_forked_daemon::case_4_not_the_agent ... ok test service::pidfile::tests::test_guard_acquire_and_drop::systemd_socket_2_true ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_2_terminal ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_3_login_session ... ok test service::pidfile::tests::test_guard_acquire_and_drop::systemd_socket_1_false ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_4_system_service ... ok test service::pidfile::tests::test_read_unusable::case_5_empty ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_5_user_manager ... ok test service::systemd::linux::tests::only_a_user_service_runs_the_daemon::case_6_root ... ok test service::systemd::linux::tests::only_the_process_systemd_started_is_its_units::case_1_by_systemd ... ok test service::systemd::linux::tests::only_the_process_systemd_started_is_its_units::case_2_by_what_systemd_started ... ok test service::pidfile::tests::prop_parse_round_trip ... ok test service::systemd::linux::tests::only_the_process_systemd_started_is_its_units::case_3_by_anything_else ... ok test service::claim::tests::only_the_agent_takes_over_and_only_from_a_forked_daemon::case_3_older_daemon ... ok test service::pidfile::tests::test_read_without_pidfile ... ok test service::pidfile::tests::test_guard_prevents_double_acquire ... ok test service::pidfile::tests::test_round_trip::case_1_some ... ok test output_capture::persistence::tests::search_matches_the_words_of_a_term_as_a_phrase::case_1_words_anywhere ... ok test service::pidfile::tests::test_read_without_lock_file ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_1_no_checkpoint ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_2_first_item_before_it ... ok test service::pidfile::tests::test_write_format ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_3_first_item_is_it ... ok test service::pidfile::tests::test_round_trip::case_2_none ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_4_next_item ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_5_first_row_seq_zero ... ok test service::tests::an_unanswered_socket_is_waited_on_only_while_a_daemon_holds_the_pidfile::case_1_unclaimed ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_7_started_over_by_the_reader ... ok test session_capture::engine::tests::a_read_resumed_only_when_its_first_event_is_past_its_checkpoint::case_6_next_row_seq ... ok test service::pidfile::tests::test_write_replaces_longer_contents ... ok test service::claim::tests::only_the_agent_takes_over_and_only_from_a_forked_daemon::case_2_undetected ... ok test service::tests::an_unanswered_socket_is_waited_on_only_while_a_daemon_holds_the_pidfile::case_2_claimed ... ok test service::claim::tests::only_the_agent_takes_over_and_only_from_a_forked_daemon::case_1_launchd_job ... ok test service::backend::subproc::tests::evicting_spares_the_pid_of_a_stale_pidfile ... ok test session_capture::engine::tests::a_transcript_read_is_told_resumed_only_past_a_checkpoint_that_holds ... ok test session_capture::import::tests::import_reports_unreadable_directories_as_scan_failures ... ok test session_capture::import::tests::nop_facade_import_emits_a_single_empty_summary ... ok test session_capture::message_enricher::parser_contract::a_continuation_names_the_session_it_continues::case_1_claude ... ok test session_capture::message_enricher::parser_contract::a_continuation_names_the_session_it_continues::case_2_pi ... ok test session_capture::message_enricher::parser_contract::a_fork_marker_names_the_original_as_a_harness_would ... ok test session_capture::message_enricher::parser_contract::a_fork_of_a_continuation_keeps_its_own_parent::case_1_claude ... ok test session_capture::message_enricher::parser_contract::a_fork_of_a_continuation_keeps_its_own_parent::case_2_codex ... ok test session_capture::message_enricher::parser_contract::a_fork_of_a_continuation_keeps_its_own_parent::case_3_pi ... ok test session_capture::message_enricher::parser_contract::forked_session_rows_link_to_their_origin ... ok test session_capture::message_enricher::parser_contract::pi_fork_parent_is_the_parent_session_id ... ok test session_capture::message_enricher::parser_contract::summary_line_sets_the_session_title ... ok test session_capture::message_enricher::parser_contract::pi_migrated_line_keeps_its_source_id ... ok test session_capture::message_enricher::tests::a_cleared_name_falls_back_to_the_generated_title ... ok test session_capture::message_enricher::tests::a_codex_patch_row_is_chained_or_left_out::case_1_kept ... ok test session_capture::message_enricher::tests::a_codex_patch_row_is_chained_or_left_out::case_2_not_kept ... ok test session_capture::message_enricher::tests::a_resumed_capture_keeps_the_stored_titles_rank ... ok test session_capture::message_enricher::tests::a_stored_synthetic_id_at_the_last_ordinal_is_passed_over ... ok test session_capture::message_enricher::tests::attachment_lines_keep_an_empty_row_so_the_tree_stays_linked ... ok test session_capture::message_enricher::tests::bookkeeping_lines_produce_no_row::case_1 ... ok test session_capture::message_enricher::tests::bookkeeping_lines_produce_no_row::case_2 ... ok test session_capture::message_enricher::tests::bookkeeping_lines_produce_no_row::case_3 ... ok test session_capture::message_enricher::tests::codex_accounting_lines_keep_their_usage ... ok test session_capture::message_enricher::tests::codex_rows_follow_the_row_captured_before ... ok test session_capture::message_enricher::tests::distinct_titles_get_distinct_source_ids ... ok test session_capture::message_enricher::tests::enrich_stamps_handle_from_harness_kind ... ok test session_capture::message_enricher::tests::idless_lines_differing_only_in_usage_keep_distinct_source_ids ... ok test session_capture::message_enricher::tests::identical_idless_lines_get_distinct_source_ids ... ok test session_capture::message_enricher::tests::resumed_state_carries_over_a_restart ... ok test session_capture::message_enricher::tests::rows_keep_their_provider::harness_1_HarnessKind__Pi ... ok test session_capture::message_enricher::tests::rows_keep_their_provider::harness_2_HarnessKind__Omp ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_1_ccode1 ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_2_ccode2 ... ok test session_capture::engine::tests::a_listener_is_started_again_however_it_stops ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_5_pi1 ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_3_ccode3 ... ok test session_capture::message_enricher::tests::session_context_lines_keep_a_row ... ok test session_capture::message_enricher::tests::source_id_prefers_native_message_id ... ok test session_capture::message_enricher::tests::split_rows_of_a_call_keep_their_reported_usage ... ok test session_capture::message_enricher::tests::synthetic_ids_parse_back::case_1 ... ok test session_capture::message_enricher::tests::synthetic_ids_parse_back::case_2 ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_4_codex1 ... ok test session_capture::message_enricher::tests::synthetic_ids_parse_back::case_3 ... ok test session_capture::message_enricher::tests::synthetic_source_id_is_stable_and_prefixed ... ok test session_capture::message_enricher::tests::title_lines_keep_a_row_stamped_with_the_given_timestamp ... ok test session_capture::message_enricher::tests::titles_are_ranked_by_source::case_1_a_generated_title_shows_until_renamed ... ok test session_capture::message_enricher::tests::titles_are_ranked_by_source::case_2_an_agent_name_outranks_a_custom_title ... ok test session_capture::message_enricher::tests::titles_are_ranked_by_source::case_3_a_legacy_summary_never_replaces_a_generated_title ... ok test session_capture::message_enricher::tests::tree_fields_ride_the_message::case_2 ... ok test session_capture::message_enricher::tests::tree_fields_ride_the_message::case_1 ... ok test session_capture::message_enricher::tests::rows_project_the_session_that_meta_used_to_read::case_6_pi2 ... ok test session_capture::message_enricher::tests::untimed_rows_take_the_nearest_known_timestamp ... ok test service::claim::tests::the_agent_takes_over_from_a_daemon_a_client_forked ... ok test session_capture::pipeline_tests::a_continuation_marker_is_dropped_but_its_parent_is_kept ... ok test session_capture::import::tests::import_is_idempotent_and_accounts_new_vs_skipped ... ok test session_capture::import::tests::import_stamps_the_session_title ... ok test session_capture::engine::tests::a_line_whose_capture_panics_is_passed_over ... ok test session_capture::import::tests::import_counts_each_session_in_a_batch_as_its_own ... ok test session_capture::pipeline_tests::a_rehydrated_codex_session_recaptures_as_nothing_new::case_3_custom_tools_and_records ... ok test session_capture::pipeline_tests::a_rehydrated_codex_session_recaptures_as_nothing_new::case_4_legacy_without_ids_or_timestamps ... ok test session_capture::pipeline_tests::a_rehydrated_codex_session_recaptures_as_nothing_new::case_1_legacy_forked_subagent ... ok test session_capture::import::tests::import_reads_a_copilot_sessions_sidecar_and_context ... ok test session_capture::engine::tests::a_resumed_session_falls_back_to_a_title_from_before_the_restart ... ok test session_capture::engine::tests::a_session_whose_line_panicked_before_warming_up_is_warmed_up_by_the_next::generation_1_0 ... ok test session_capture::engine::tests::a_session_whose_line_panicked_before_warming_up_is_warmed_up_by_the_next::generation_2_1 ... ok test session_capture::engine::tests::a_row_of_a_replaced_transcript_that_fails_to_store_is_held_until_stored ... ok test session_capture::pipeline_tests::a_rehydrated_codex_session_recaptures_as_nothing_new::case_2_paginated_with_compaction ... ok test session_capture::pipeline_tests::compact_summary_text_survives_capture ... ok test session_capture::pipeline_tests::a_resumed_codex_read_links_past_a_content_keyed_row ... ok test session_capture::pipeline_tests::a_warm_up_whose_read_fails_is_retried::step_1_hooks__WarmStep__Repair ... ok test session_capture::pipeline_tests::a_warm_up_whose_read_fails_is_retried::step_2_hooks__WarmStep__Session ... ok test session_capture::pipeline_tests::a_warm_up_whose_read_fails_is_retried::step_4_hooks__WarmStep__Synthetic ... ok test session_capture::pipeline_tests::a_warm_up_whose_read_fails_is_retried::step_3_hooks__WarmStep__Last ... ok test session_capture::pipeline_tests::a_wipe_between_warm_up_and_capture_keeps_the_ordinals::replaying_1_false ... ok test session_capture::pipeline_tests::a_warm_up_whose_read_fails_is_retried::step_5_hooks__WarmStep__Titles ... ok test session_capture::pipeline_tests::codex_fork_counts_copied_usage_once::captured_1_Captured__ParentFirst ... ok test session_capture::pipeline_tests::codex_fork_counts_copied_usage_once::captured_3_Captured__ForkOnly ... ok test session_capture::pipeline_tests::local_command_stdout_is_not_captured ... ok test session_capture::pipeline_tests::codex_fork_counts_copied_usage_once::captured_2_Captured__ForkFirst ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_2_btw_replay::captured_2_Captured__ForkFirst ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_1_fork::captured_1_Captured__ParentFirst ... ok test session_capture::pipeline_tests::identical_idless_lines_stay_distinct_rows ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_1_fork::captured_2_Captured__ForkFirst ... ok test session_capture::pipeline_tests::idless_lines_in_one_millisecond_keep_their_usage ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_1_fork::captured_3_Captured__ForkOnly ... ok test search::index::tests::search_results_stable_above_parallel_threshold ... ok test session_capture::pipeline_tests::restart_mid_call_counts_its_usage_once ... ok test session_capture::policy::tests::directories_history_ignores::case_2_other ... ok test session_capture::policy::tests::directories_history_ignores::case_1_ignored ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_01_history_filter ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_2_btw_replay::captured_1_Captured__ParentFirst ... ok test session_capture::pipeline_tests::copied_claude_code_lines_count_usage_once::case_2_btw_replay::captured_3_Captured__ForkOnly ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_03_cwd_filter ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_02_secrets_filter ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_08_read_dotenv ... ok test session_capture::pipeline_tests::a_session_resumed_during_a_rebuild_is_warmed_once_replayed ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_09_read_users_file ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_10_read_key ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_11_grep_credentials ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_12_write_dotenv ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_13_patch_dotenv ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_14_shell_write ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_15_opencode_patch ... ok test session_capture::pipeline_tests::interleaved_calls_count_usage_once ... ok test session_capture::pipeline_tests::pi_fork_counts_copied_usage_once::captured_1_Captured__ParentFirst ... ok test session_capture::pipeline_tests::pi_fork_counts_copied_usage_once::captured_2_Captured__ForkFirst ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_20_script_history_filter ... ok test session_capture::pipeline_tests::pi_fork_counts_copied_usage_once::captured_3_Captured__ForkOnly ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_22_script_cwd_filter ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_23_script_secret ... ok test session_capture::pipeline_tests::a_wipe_between_warm_up_and_capture_keeps_the_ordinals::replaying_2_true ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_04_command_filter ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_07_cat_dotenv ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_21_script_command_filter ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_06_atuin_key ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_05_credential_command ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_24_script_cat_dotenv ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_18_ordinary ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_16_read_source ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_19_search ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_17_read_example ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_25_script_patch_dotenv ... ok test session_capture::pipeline_tests::untimed_first_row_takes_the_next_timestamp ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_26_script_read_key ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_28_script_computed ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_29_script_misread_regex ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_30_script_misread_division ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_27_script_worst_call ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_32_script_appended ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_31_script_joined_list ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_33_script_patch_built ... ok test session_capture::recovery::tests::named_interleavings::case_01_rebuild_during_recovery ... ok test session_capture::recovery::tests::named_interleavings::case_02_failed_wipe_when_ready ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_34_script_split_joined ... ok test session_capture::recovery::tests::named_interleavings::case_03_rebuild_after_a_panic ... ok test session_capture::recovery::tests::named_interleavings::case_04_failed_startup ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_35_script_computed_workdir ... ok test session_capture::recovery::tests::named_interleavings::case_05_series_rewritten_after_failed_startup ... ok test session_capture::recovery::tests::named_interleavings::case_06_series_rewritten_while_ready ... ok test session_capture::recovery::tests::named_interleavings::case_07_series_rewritten_then_replayed ... ok test session_capture::recovery::tests::named_interleavings::case_08_failed_forget_when_ready ... ok test session_capture::recovery::tests::named_interleavings::case_09_incomplete_is_retried ... ok test session_capture::recovery::tests::named_interleavings::case_10_incomplete_retried_then_ready ... ok test session_capture::recovery::tests::named_interleavings::case_11_incomplete_never_unavailable ... ok test session_capture::policy::tests::what_a_call_is_kept_with::case_36_script_ordinary ... ok test session_capture::recovery::tests::named_interleavings::case_12_rebuild_during_a_backoff ... ok test session_capture::recovery::tests::named_interleavings::case_13_series_rewritten_during_a_backoff ... ok test session_capture::recovery::tests::named_interleavings::case_14_failed_wipe_during_a_backoff ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_1_first ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_2_second ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_3_fifth ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_4_capped ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_5_far_past_the_cap ... ok test session_capture::recovery::tests::the_backoff_doubles_up_to_its_cap::case_6_the_last_retry ... ok test session_capture::pipeline_tests::split_rows_count_the_largest_usage ... ok test session_capture::tests::a_rebuild_before_a_replay_settles_is_replayed_before_ready::during_a_rebuild_1_false ... ok test session_capture::tests::a_rebuild_after_a_replay_panicked_replays ... ok test session_capture::tests::a_rebuild_before_a_replay_settles_is_replayed_before_ready::during_a_rebuild_2_true ... ok test session_capture::tests::a_failed_startup_recovery_refuses_rebuilds ... ok test output_capture::persistence::index::sqlite::tests::indexed_ids_pages_past_the_chunk_boundary ... ok test session_capture::tests::a_rebuild_during_recovery_leaves_it_the_replay ... ok test session_capture::tests::adapters_keep_reasoning_presence_without_payloads ... ok test session_capture::tests::a_replay_panicking_after_a_rebuild_replays_again ... ok test session_capture::tests::a_capture_that_panics_leaves_the_line_stored_once::case_2_once_pushed ... ok test session_capture::tests::a_capture_that_panics_leaves_the_line_stored_once::case_1_before_its_push ... ok test session_capture::pipeline_tests::two_hosts_continuing_a_restored_codex_session_diverge ... ok test session_capture::tests::a_batch_is_appended_whole ... ok test session_capture::tests::a_continuation_gets_its_own_atuin_id::case_2_fork ... ok test session_capture::tests::a_continuation_gets_its_own_atuin_id::case_1_continuation ... ok test session_capture::tests::capture_follows_the_setting ... ok test session_capture::tests::a_patch_is_kept_out_with_what_its_call_wrote ... ok test session_capture::tests::capture_holds_a_timestamp_to_the_range_stored::case_2_early ... ok test session_capture::tests::a_row_back_with_other_content_is_a_duplicate ... ok test session_capture::tests::an_append_dropped_once_its_output_is_withheld_still_withholds_it ... ok test session_capture::tests::append_returns_new_then_duplicate ... ok test session_capture::tests::append_without_subscriber_does_not_error ... ok test session_capture::tests::append_emits_started_then_message_to_subscriber ... ok test session_capture::tests::capture_holds_a_timestamp_to_the_range_stored::case_1_late ... ok test session_capture::tests::capture_sanitizes_records_sidecar_and_tail::case_1 ... ok test session_capture::tests::capture_with_tools_keeps_payloads ... ok test session_capture::tests::capture_moves_the_watermark_past_what_it_projects ... ok test session_capture::tests::non_conversation_text_is_omitted::case_1 ... ok test session_capture::tests::non_conversation_text_is_omitted::case_2 ... ok test session_capture::tests::non_conversation_text_is_omitted::case_3 ... ok test session_capture::tests::a_rebuild_given_up_on_still_ends_ready ... ok test session_capture::tests::a_rebuild_replays_only_the_records_left_and_holds_capture ... ok test session_capture::tests::ready_waits_for_background_recovery ... ok test session_capture::tests::concurrent_appends_of_one_message_write_a_single_record ... ok test session_capture::tests::a_failed_rebuild_refuses_capture_until_a_rebuild_succeeds ... ok test session_capture::tests::capture_sanitizes_records_sidecar_and_tail::case_2 ... ok test session_capture::tests::a_local_series_rewritten_while_ready_holds_capture_off ... ok test session_capture::tests::concurrent_rows_of_one_call_count_usage_once ... ok test session_capture::tests::credential_command_output_is_never_kept ... ok test session_capture::tests::every_row_of_a_session_carries_its_first_rows_id ... ok test session_capture::tests::summaries_and_errors_survive_sanitize::role_1_Role__System ... ok test session_capture::tests::summaries_and_errors_survive_sanitize::role_2_Role__Other___compact___to_owned___ ... ok test session_capture::tests::recovery_is_incremental_and_reports_progress ... ok test session_capture::tests::incomplete_startup_recovery_disables_writers_until_repaired ... ok test session_capture::tests::an_append_dropped_once_pushed_is_not_pushed_again ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_01_answered ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_02_unanswered ... ok test session_capture::tests::reasoning_metadata_survives_storage::case_1 ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_03_unanswered_but_kept ... ok test session_capture::tests::reasoning_metadata_survives_storage::case_2 ... ok test session_capture::tests::reasoning_metadata_survives_storage::case_3 ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_04_another_answered ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_05_asked_again_once_answered ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_06_answered_once_asked_again ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_07_asked_again_safely ... ok test session_capture::tools::tests::a_credential_files_writes_are_withheld::case_1_claude ... ok test session_capture::tools::tests::a_credential_files_writes_are_withheld::case_2_pi_edits ... ok test session_capture::tools::tests::a_credential_files_writes_are_withheld::case_3_codex_arguments ... ok test session_capture::tools::tests::a_credential_files_writes_are_withheld::case_4_patch ... ok test session_capture::tests::split_and_interleaved_calls_count_reasoning_once ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_08_in_an_ignored_dir ... ok test session_capture::tests::usage_survives_failed_writes_and_restart::case_1 ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_10_uncaptured ... ok test session_capture::tools::tests::a_patch_is_kept_unless_only_names_are ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_11_written_withheld ... ok test session_capture::tools::tests::a_patch_past_the_limit_keeps_only_its_files ... ok test session_capture::tools::tests::a_patchs_added_secrets_are_redacted::case_1_codex ... ok test session_capture::tools::tests::a_patchs_added_secrets_are_redacted::case_2_opencode ... ok test session_capture::tests::warming_finds_the_unsafe_calls_left_unanswered::case_09_out_of_an_ignored_dir ... ok test session_capture::tools::tests::a_long_output_keeps_its_start_and_end ... ok test session_capture::tools::tests::a_patchs_secrets_are_redacted ... ok test session_capture::tests::the_users_filters_and_credential_files_are_kept_out ... ok test session_capture::tools::tests::a_small_payload_is_kept_as_it_is::case_1_object ... ok test session_capture::tools::tests::a_long_private_key_across_a_cut_is_not_kept::at_the_end_2_true ... ok test session_capture::tests::a_capture_overtaken_by_a_rebuild_waits_for_it ... ok test session_capture::tools::tests::a_small_payload_is_kept_as_it_is::case_2_string ... ok test session_capture::tools::tests::a_small_payload_is_kept_as_it_is::case_3_blocks ... ok test session_capture::tools::tests::a_small_payload_is_kept_as_it_is::case_4_empty ... ok test session_capture::tools::tests::a_long_private_key_across_a_cut_is_not_kept::at_the_end_1_false ... ok test session_capture::tests::usage_survives_failed_writes_and_restart::case_2 ... ok test session_capture::tools::tests::a_token_starting_a_line_is_redacted ... ok test session_capture::tools::tests::a_users_pattern_across_a_cut_is_redacted::case_1_into_the_end ... ok test session_capture::tools::tests::a_users_pattern_across_a_cut_is_redacted::case_2_out_of_the_start ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_1_claude ... ok test session_capture::tools::tests::an_unended_private_key_before_a_cut_is_not_kept::case_2_string ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_2_sudo ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_4_codex_argv ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_3_codex_text ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_5_bash_lc ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_7_other ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_6_bash_lc_line ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_8_mention ... ok test session_capture::tools::tests::calls_whose_output_may_hold_a_credential::case_9_read ... ok test session_capture::tools::tests::an_unended_private_key_before_a_cut_is_not_kept::case_1_strings ... ok test session_capture::tools::tests::an_unended_private_key_before_a_cut_is_not_kept::case_3_then_a_key ... ok test session_capture::tools::tests::clip_keeps_text_that_fits_whole ... ok test session_capture::tools::tests::escaped_text_keeps_its_shape::case_1_coloured ... ok test session_capture::tests::recovery_finishes_however_it_ends::case_1_ready ... ok test session_capture::tests::recovery_finishes_however_it_ends::case_3_aborted ... ok test session_capture::tools::tests::escaped_text_keeps_its_shape::case_2_quoted ... ok test session_capture::tests::recovery_finishes_however_it_ends::case_2_failed ... ok test session_capture::tools::tests::deeply_nested_json_text_is_shaped_in_bounded_time ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_1_fits_once_redacted::separator_1_____ ... ok test session_capture::tools::tests::json_text_is_kept_as_written ... ok test session_capture::tools::tests::json_text_nested_too_deep_keeps_no_secret::levels_1_0 ... ok test session_capture::tools::tests::json_text_nested_too_deep_keeps_no_secret::levels_2_1 ... ok test session_capture::tools::tests::json_text_nested_too_deep_keeps_no_secret::levels_3_2 ... ok test session_capture::tools::tests::json_text_nested_too_deep_keeps_no_secret::levels_4_3 ... ok test session_capture::tools::tests::json_text_nested_too_deep_keeps_no_secret::levels_5_4 ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_1_fits_once_redacted::separator_2___n__ ... ok test session_capture::tools::tests::json_text_stays_json::case_2_named ... ok test session_capture::tools::tests::json_text_stays_json::case_1_redacted ... ok test session_capture::tools::tests::json_text_stays_json::case_3_clipped ... ok test session_capture::tools::tests::json_text_stays_json::case_4_escaped ... ok test session_capture::tests::an_invalidation_storm_keeps_the_store_recovering_until_it_stops::at_startup_2_true ... ok test session_capture::tests::an_invalidation_storm_keeps_the_store_recovering_until_it_stops::at_startup_1_false ... ok test session_capture::tools::tests::media_becomes_a_note::case_1_claude ... ok test session_capture::tools::tests::media_becomes_a_note::case_2_codex ... ok test session_capture::tools::tests::media_becomes_a_note::case_3_text ... ok test session_capture::tools::tests::media_becomes_a_note::case_4_listing ... ok test session_capture::tools::tests::names_only_keeps_nothing ... ok test session_capture::tools::tests::secrets_are_redacted::case_1_input ... ok test session_capture::tools::tests::secrets_are_redacted::case_2_output ... ok test session_capture::tools::tests::secrets_are_redacted::case_3_arguments ... ok test session_capture::tools::tests::secrets_are_redacted::case_4_named ... ok test session_capture::tools::tests::secrets_are_redacted::case_5_name_value ... ok test session_capture::tools::tests::secrets_are_redacted::case_6_named_in_text ... ok test session_capture::tools::tests::secrets_are_redacted::case_7_quoted_in_arguments ... ok test session_capture::tools::tests::secrets_are_redacted::case_8_single_quoted_in_arguments ... ok test session_capture::tools::tests::secrets_are_redacted::case_9_argv_in_arguments ... ok test session_capture::tools::tests::a_secret_across_a_cut_is_redacted_whole::shift_2_7 ... ok test session_capture::tools::tests::the_budget_covers_the_whole_payload ... ok test session_capture::tools::tests::a_secret_across_a_cut_is_redacted_whole::shift_3_20 ... ok test session_capture::tools::tests::a_secret_across_a_cut_is_redacted_whole::shift_1_0 ... ok test output_capture::persistence::index::sqlite::tests::writes_wait_for_a_held_write_lock_on_a_cold_connection ... ok test session_capture::tools::tests::a_secret_across_a_cut_is_redacted_whole::shift_4_33 ... ok test session_capture::engine::tests::a_quiet_session_of_untimed_lines_is_stored ... ok test session_capture::import::tests::a_long_session_is_stored_a_batch_at_a_time ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_2_does_not::separator_1_____ ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_3_by_far::separator_1_____ ... ok test session_capture::tools::tests::a_long_output_is_clipped_not_dropped_for_taking_long_to_redact ... ok test session_capture::tools::tests::many_short_values_are_held_to_the_limit::case_2_input ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_2_does_not::separator_2___n__ ... ok test session_capture::tools::tests::heavily_redacted_text_is_kept_as_much_as_fits::case_3_by_far::separator_2___n__ ... ok test session_capture::tools::tests::many_short_values_are_held_to_the_limit::case_1_listing ... ok test session_capture::tools::tests::an_object_past_the_limit_is_uncaptured ... ok test client::rebuild_tests::waits_out_a_rebuild_over_the_wire ... ok test session_capture::engine::tests::untimed_rows_wait_out_a_busy_capture_for_a_timestamp ... ok test session_capture::engine::tests::a_followed_transcript_replaced_in_place_is_captured_once::case_1_renamed_over ... ok test session_capture::engine::tests::a_followed_transcript_replaced_in_place_is_captured_once::case_3_renamed_over_with_a_first_line_past_what_was_read ... ok test session_capture::engine::tests::a_followed_transcript_replaced_in_place_is_captured_once::case_2_truncated_in_place ... ok test session_capture::engine::tests::a_followed_transcript_replaced_in_place_is_captured_once::case_4_rewritten_in_place_past_what_was_read ... ok test session_capture::tools::tests::json_text_too_big_to_shape_keeps_no_secret ... ok test session_capture::tools::tests::clipping_is_bounded_and_a_list_stays_one ... ok test result: ok. 565 passed; 0 failed; 0 ignored; 0 measured; 9 filtered out; finished in 2.54s Running tests/adversarial.rs (target/aarch64-unknown-linux-gnu/release/deps/adversarial-d1519acab44a4357) running 22 tests test wrong_state_lifecycle_calls_fail_with_the_right_code::case_8_end_missing ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_7_cancel_malformed ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_2_cancel_unknown ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_6_end_malformed ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_1_end_unknown ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_5_end_cancelled ... ok test huge_commands_round_trip_or_are_rejected::case_3_five_mib ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_3_end_twice ... ok test odd_origins_are_stored_verbatim::case_2_empty_host ... ok test wrong_state_lifecycle_calls_fail_with_the_right_code::case_4_cancel_ended ... ok test odd_origins_are_stored_verbatim::case_5_unicode ... ok test timestamp_edges_never_crash_the_daemon::case_1_epoch ... ok test odd_origins_are_stored_verbatim::case_3_empty_user ... ok test huge_commands_round_trip_or_are_rejected::case_1_sixty_four_kib ... ok test odd_origins_are_stored_verbatim::case_4_lone_colon ... ok test timestamp_edges_never_crash_the_daemon::case_2_i64_max ... ok test odd_origins_are_stored_verbatim::case_1_multi_colon ... ok test an_exact_repeat_is_deduped_by_the_history_db ... ok test huge_commands_round_trip_or_are_rejected::case_2_one_mib ... ok test any_start_end_pair_round_trips_or_fails_cleanly ... ok test delete_batches_are_all_or_nothing ... ok test any_valid_history_persists_and_indexes_consistently ... ok test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.52s Running tests/concurrency.rs (target/aarch64-unknown-linux-gnu/release/deps/concurrency-e49ef599b9c27bad) running 12 tests test commands_finished_during_an_index_reload_are_searchable::case_1_delete ... ignored, documents an unfixed defect (index reload is a lost-update; see report M2, #4052: https://github.com/atuinsh/atuin/issues/4052); run with --run-ignored. See module docs. test commands_finished_during_an_index_reload_are_searchable::case_2_rebuild ... ignored, documents an unfixed defect (index reload is a lost-update; see report M2, #4052: https://github.com/atuinsh/atuin/issues/4052); run with --run-ignored. See module docs. test concurrent_deletes_both_leave_the_index ... ignored, documents an unfixed defect (concurrent deletes resurrect rows; see report M2, #4052: https://github.com/atuinsh/atuin/issues/4052); run with --run-ignored. See module docs. test concurrent_shells_never_lose_records::case_1_eight_shells ... ok test duplicate_lifecycle_calls_resolve_to_exactly_one_winner::case_1_end_end ... ok test duplicate_lifecycle_calls_resolve_to_exactly_one_winner::case_2_end_cancel ... ok test tail_orders_events_per_command_under_concurrency ... ok test concurrent_shells_never_lose_records::case_2_sixty_four_shells ... ok test delete_racing_finish_leaves_no_row_anywhere ... ok test tail_reports_lag_instead_of_dropping_silently ... ok test disjoint_concurrent_deletes_all_reach_the_store ... ok test captures_never_outlive_their_entries_under_contention ... ok test result: ok. 9 passed; 0 failed; 3 ignored; 0 measured; 3 filtered out; finished in 0.83s Running tests/history_delete.rs (target/aarch64-unknown-linux-gnu/release/deps/history_delete-f3db085e7c9b03ed) running 24 tests test output_for_a_deleted_or_unknown_id_is_refused::finished_2_false ... ok test refused_output_is_not_found_over_the_wire ... ok test empty_delete_does_nothing ... ok test output_for_a_deleted_or_unknown_id_is_refused::finished_1_true ... ok test deletion_survives_restart_and_rebuild ... ok test cancel_discards_captured_output ... ok test search_follows_the_surviving_invocations ... ok test delete_forgets_captured_output::finished_2_false ... ok test delete_forgets_captured_output::finished_1_true ... ok test delete_history_rpc_forgets_captured_output ... ok test tombstones_are_contiguous_and_replay_identically::case_2_one_batch ... ok test tombstones_are_contiguous_and_replay_identically::case_1_one_at_a_time ... ok test delete_reports_every_id_it_processed::case_2_in_flight ... ok test delete_reports_every_id_it_processed::case_3_unknown ... ok test delete_reports_every_id_it_processed::case_1_persisted ... ok test delete_reports_every_id_it_processed::case_4_duplicate_in_batch ... ok test delete_reports_every_id_it_processed::case_5_mixed ... ok test output_arriving_mid_delete_is_refused ... ok test abandoned_delete_still_completes ... ok test a_finish_dropped_after_its_record_is_stored_is_not_in_flight ... ok test failed_store_write_keeps_the_command_in_flight ... ok test failed_history_db_write_still_records_the_command ... ok test output_after_a_failed_history_db_write_is_kept ... ok test delete_failure_keeps_rows_until_retry ... ok test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.21s Running tests/history_rebuild.rs (target/aarch64-unknown-linux-gnu/release/deps/history_rebuild-d2eee891c2fe0833) running 5 tests test rebuild_skips_undecodable_records::case_2_garbage_payload ... ok test rebuild_skips_undecodable_records::case_1_foreign_key ... ok test rebuild_leaves_in_flight_commands_alone ... ok test rebuild_rederives_rows_from_the_store ... ok test rebuild_is_idempotent ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s Running tests/index_reload_race.rs (target/aarch64-unknown-linux-gnu/release/deps/index_reload_race-194e05c92b6f553c) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 3 filtered out; finished in 0.00s Running tests/journal_model.rs (target/aarch64-unknown-linux-gnu/release/deps/journal_model-5c54e0e8b70aa86c) running 1 test test journal_agrees_with_its_model ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.35s Running tests/lifecycle.rs (target/aarch64-unknown-linux-gnu/release/deps/lifecycle-66ef38d025c08bd8) running 36 tests test output_for_an_unknown_command_is_not_stored ... ok test disabling_output_on_a_live_daemon_stores_no_captures::case_1_filtered ... ok test disabling_output_on_a_live_daemon_stores_no_captures::case_2_not_filtered ... ok test output_for_a_cancelled_command_is_not_stored ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_2_account_login::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_1_key::ended_before_capture_1_false ... ok test a_capture_that_lost_its_middle_round_trips ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_5_printenv::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_3_gh_token::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_6_dotenv::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_4_kubectl_secret::ended_before_capture_1_false ... ok test output_command_filter_drops_output_but_keeps_history::case_1_filtered::ended_before_capture_1_false ... ok test end_history_without_duration_derives_from_start ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_4_kubectl_secret::ended_before_capture_2_true ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_6_dotenv::ended_before_capture_2_true ... ok test output_command_filter_drops_output_but_keeps_history::case_2_not_filtered::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_2_account_login::ended_before_capture_2_true ... ok test output_command_filter_drops_output_but_keeps_history::case_1_filtered::ended_before_capture_2_true ... ok test journal_rebuild_reloads_index ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_1_key::ended_before_capture_2_true ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_5_printenv::ended_before_capture_2_true ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_3_gh_token::ended_before_capture_2_true ... ok test output_command_filter_drops_output_but_keeps_history::case_2_not_filtered::ended_before_capture_2_true ... ok test journal_delete_removes_entry_and_rebuilds_index ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_7_aws_credentials::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_8_ssh_key::ended_before_capture_1_false ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_8_ssh_key::ended_before_capture_2_true ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_7_aws_credentials::ended_before_capture_2_true ... ok test test_end_unknown_history_fails ... ok test test_start_end_history ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_9_ordinary::ended_before_capture_2_true ... ok test output_is_stored_only_for_commands_that_cannot_print_a_credential::case_9_ordinary::ended_before_capture_1_false ... ok test test_rebuild_history ... ok test test_delete_history_removes_entry ... ok test test_tail_history_streams_started_and_ended_events ... ok test test_shutdown ... ok test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s Running tests/nightly.rs (target/aarch64-unknown-linux-gnu/release/deps/nightly-71bc634c77877078) running 6 tests test deleting_a_sample_leaves_everything_else_one_m ... ignored, nightly tier; see the module docs for how to run it test deleting_everything_in_one_request_hundred_k ... ignored, nightly tier; see the module docs for how to run it test deleting_everything_in_one_request_one_m ... ignored, nightly tier; see the module docs for how to run it test index_matches_db_after_seeding_one_m ... ignored, nightly tier; see the module docs for how to run it test rebuild_from_a_large_store_hundred_k ... ignored, nightly tier; see the module docs for how to run it test rebuild_from_a_large_store_one_m ... ignored, nightly tier; see the module docs for how to run it test result: ok. 0 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/saboteur.rs (target/aarch64-unknown-linux-gnu/release/deps/saboteur-b88972dc7f381899) running 8 tests test an_empty_batch_leaves_the_index_untouched ... ok test non_indexable_entries_are_skipped_while_a_valid_sibling_indexes::case_1_agent ... ok test non_indexable_entries_are_skipped_while_a_valid_sibling_indexes::case_3_unparsable_session ... ok test non_indexable_entries_are_skipped_while_a_valid_sibling_indexes::case_2_foreign_shell ... ok test repeated_adds_never_inflate_the_unique_command_count ... ok test incremental_build_over_no_records_indexes_nothing ... ok test a_write_locked_record_store_does_not_block_a_read_only_replay ... ok test a_locked_history_db_faults_the_replay_without_leaving_a_torn_index ... ok test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.10s Running tests/scale.rs (target/aarch64-unknown-linux-gnu/release/deps/scale-dba95619c8261d4c) running 11 tests test index_matches_db_after_seeding::case_1_one_k ... ok test deleting_everything_in_one_request::case_1_one_k ... ok test rebuild_from_a_large_store::case_1_one_k ... ok test index_matches_db_after_seeding::case_2_ten_k ... ok test deleting_everything_in_one_request::case_2_ten_k ... ok test deleting_a_sample_leaves_everything_else::case_1_ten_k ... ok test rebuild_from_a_large_store::case_2_ten_k ... ok test shell_hooks_stay_fast_on_a_large_index::case_1_hundred_k ... ok test index_matches_db_after_seeding::case_3_hundred_k ... ok test deleting_a_sample_leaves_everything_else::case_2_hundred_k ... ok test deleting_everything_in_one_request::case_3_two_hundred_k ... ok test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 17.06s Running tests/search.rs (target/aarch64-unknown-linux-gnu/release/deps/search-6df20895a543b48a) running 1 test test unix::filters_and_shell_switching_work_end_to_end ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s Running tests/search_output.rs (target/aarch64-unknown-linux-gnu/release/deps/search_output-68176afd143150b4) running 1 test test search_returns_the_visible_output_and_where_it_matched ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_domain-d72b395275ee432c) running 47 tests test caps::server::tests::add_many_rejects_a_repeated_name ... ok test caps::server::tests::negotiate_only_rejects_a_present_differing_token::case_1_absent ... ok test caps::server::tests::negotiate_only_rejects_a_present_differing_token::case_2_matching ... ok test caps::server::tests::body_deserializes_into_the_client_response_shape ... ok test caps::server::tests::add_rejects_a_duplicate_name ... ok test caps::server::tests::body_with_a_capability_round_trips_into_the_client_response_shape::case_1_zero ... ok test caps::server::tests::body_with_a_capability_round_trips_into_the_client_response_shape::case_3_max ... ok test caps::server::tests::body_with_a_capability_round_trips_into_the_client_response_shape::case_2_small ... ok test caps::server::tests::empty_server_advertises_nothing ... ok test caps::server::tests::negotiate_only_rejects_a_present_differing_token::case_3_differing ... ok test caps::server::tests::add_many_advertises_every_capability_and_matches_chained_adds ... ok test caps::server::tests::token_is_16_char_lowercase_hex ... ok test caps::server::tests::token_is_stable_for_the_same_set_and_changes_when_it_changes ... ok test record::tag::tests::ai_session_tag_roundtrips::case_1 ... ok test record::tests::additional_data_assertion_is_stable ... ok test record::tests::additional_data_serialization_is_stable::case_1 ... ok test record::tests::record_index ... ok test record::tests::cannot_decrypt_cek_with_missing_footer_contents ... ok test record::tests::record_index_multi_diff ... ok test caps::axum::tests::absent_known_header_passes ... ok test caps::axum::tests::stale_token_with_enforce_rejects_with_available_header ... ok test caps::axum::tests::stale_token_without_enforce_proceeds_with_available_header ... ok test caps::axum::tests::matching_token_passes ... ok test record::tests::record_index_no_diff ... ok test caps::axum::tests::non_utf8_known_header_is_treated_as_absent_and_passes ... ok test caps::axum::tests::endpoint_serves_the_document ... ok test record::tests::full_record_round_trip_fail ... ok test record::tests::cannot_decrypt_different_key ... ok test record::tests::cannot_decrypt_different_id ... ok test record::tests::re_encrypt_round_trip ... ok test record::tests::full_record_round_trip ... ok test record::tests::decrypts_frozen_record_blob ... ok test record::tests::record_index_overwrite ... ok test record::tests::record_index_single_diff ... ok test record::tests::record_status_serializes_with_bare_string_tag_keys ... ok test record::tests::round_trip ... ok test record::tests::same_entry_different_output ... ok test secret::tests::secret_fields_serialize_in_plaintext_but_debug_redacted::case_1_without_totp ... ok test secret::tests::secret_fields_serialize_in_plaintext_but_debug_redacted::case_2_with_totp ... ok test caps::client::tests::known_token_reflects_the_last_refresh ... ok test caps::client::tests::client_observes_the_capability_the_server_advertises ... ok test caps::middleware::tests::ext_trait_builds_a_negotiating_client ... ok test caps::middleware::tests::unrelated_4xx_is_not_touched ... ok test caps::middleware::tests::bare_412_without_caps_header_passes_through ... ok test caps::middleware::tests::error_surfaces_the_412_and_does_not_refresh ... ok test caps::middleware::tests::continue_serves_the_request_and_refreshes_in_the_background ... ok test caps::middleware::tests::concurrent_burst_fetches_capabilities_once ... ok test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_dotfiles-5114080945321734) running 31 tests test shell::powershell::tests::vars::case_1_exported ... ok test shell::powershell::tests::invoke_expression ... ok test shell::powershell::tests::vars::case_2_local ... ok test shell::powershell::tests::aliases::case_2_quoted_path ... ok test shell::powershell::tests::aliases::case_1_simple ... ok test store::var::tests::escapes_fish_value::case_4_spaces_short ... ok test store::var::tests::escapes_fish_value::case_5_single_quote ... ok test store::var::tests::escapes_fish_value::case_1_simple ... ok test store::var::tests::escapes_posix_value::case_1_simple ... ok test store::tests::encode_decode ... ok test store::var::tests::escapes_fish_value::case_2_path ... ok test store::var::tests::escapes_fish_value::case_3_spaces ... ok test store::var::tests::escapes_posix_value::case_3_underscores ... ok test store::var::tests::escapes_posix_value::case_4_spaces ... ok test store::var::tests::encode_decode ... ok test store::var::tests::escapes_posix_value::case_2_path ... ok test store::var::tests::escapes_posix_value::case_6_double_quotes ... ok test store::var::tests::escapes_posix_value::case_5_spaces_short ... ok test store::var::tests::escapes_posix_value::case_7_backslashes ... ok test store::var::tests::escapes_posix_value::case_8_dollar ... ok test store::var::tests::escapes_posix_value::case_9_backticks ... ok test store::var::tests::escapes_xonsh_value::case_1_simple ... ok test store::var::tests::escapes_xonsh_value::case_2_path ... ok test store::var::tests::escapes_xonsh_value::case_3_spaces ... ok test store::var::tests::escapes_xonsh_value::case_4_spaces_short ... ok test store::var::tests::escapes_xonsh_value::case_5_double_quotes ... ok test store::var::tests::escapes_xonsh_value::case_6_backslashes ... ok test store::tests::build_aliases_skips_corrupt_records ... ok test store::var::tests::test_var_generation_with_spaces ... ok test store::var::tests::build_vars ... ok test store::tests::build_aliases ... ok test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_history-af923a409b82056d) running 48 tests test stats::tests::interesting_commands_spaces_subcommand::case_6_subcommand_word ... ok test stats::tests::interesting_commands_spaces_subcommand::case_1_exact ... ok test stats::tests::interesting_commands_spaces_subcommand::case_5_subcommand_alone ... ok test stats::tests::interesting_commands_spaces::case_6_prefix_alone ... ok test stats::tests::interesting_commands_spaces::case_5_with_subcommand ... ok test stats::tests::interesting_commands_spaces::case_7_prefix_word ... ok test stats::tests::interesting_commands_spaces_both::case_1_exact ... ok test stats::tests::interesting_commands_spaces_subcommand::case_4_with_prefix ... ok test stats::tests::interesting_commands_spaces::case_3_following_word ... ok test stats::tests::interesting_commands_spaces_subcommand::case_3_following_word ... ok test stats::tests::interesting_commands::case_2_with_subcommand ... ok test stats::tests::interesting_commands::case_3_with_prefix ... ok test stats::tests::interesting_commands_spaces::case_2_trailing_spaces ... ok test stats::tests::interesting_commands_spaces_subcommand::case_2_trailing_spaces ... ok test stats::tests::interesting_commands::case_1_bare ... ok test stats::tests::interesting_commands_spaces_both::case_4_following_word ... ok test stats::tests::interesting_commands_spaces_both::case_3_trailing_spaces ... ok test stats::tests::interesting_commands_spaces::case_1_exact ... ok test stats::tests::interesting_commands_spaces_both::case_2_prefix_extra_spaces ... ok test stats::tests::interesting_commands::case_4_prefix_only ... ok test stats::tests::interesting_commands_spaces::case_4_following_word_extra_spaces ... ok test stats::tests::all_commands_ignored ... ok test stats::tests::ignored_commands ... ok test stats::tests::ignored_env_vars ... ok test stats::tests::splits_at_pipe::case_01_simple ... ok test stats::tests::splits_at_pipe::case_02_multi ... ok test stats::tests::splits_at_pipe::case_03_simple_quoted ... ok test stats::tests::splits_at_pipe::case_04_multi_quoted ... ok test stats::tests::splits_at_pipe::case_05_escaped_pipes ... ok test stats::tests::splits_at_pipe::case_06_emoji ... ok test stats::tests::splits_at_pipe::case_07_starts_with_pipe ... ok test stats::tests::splits_at_pipe::case_08_starts_with_spaces_and_pipe ... ok test stats::tests::splits_at_pipe::case_09_stderr_pipe ... ok test stats::tests::splits_at_pipe::case_10_stderr_pipe_then_pipe ... ok test stats::tests::splits_at_pipe::case_11_logical_or_is_not_a_command ... ok test stats::tests::splits_common_prefix::case_1_no_match ... ok test stats::tests::splits_common_prefix::case_2_prefix ... ok test stats::tests::splits_common_prefix::case_3_longest ... ok test stats::tests::splits_common_prefix::case_4_prefix_only ... ok test stats::tests::strips_leading_env_vars::case_1_simple ... ok test stats::tests::strips_leading_env_vars::case_2_quoted_single ... ok test stats::tests::splits_common_prefix::case_5_trailing_whitespace ... ok test stats::tests::strips_leading_env_vars::case_3_quoted_double ... ok test stats::tests::splits_common_prefix::case_6_one_removal ... ok test stats::tests::strips_leading_env_vars::case_4_quoted_single_and_double ... ok test stats::tests::splits_common_prefix::case_7_partial_word ... ok test stats::tests::strips_leading_env_vars::case_5_emojis ... ok test stats::tests::strips_leading_env_vars::case_6_name_same_as_command ... ok test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_kv-830043334acd52d8) running 7 tests test store::record::tests::decode_v0 ... ok test store::record::tests::encode_decode::case_1_some ... ok test store::record::tests::encode_decode::case_2_none ... ok test database::test::test_save_load ... ok test database::test::test_list ... ok test database::test::test_delete ... ok test store::tests::test_kv_store ... ok test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_octavo-8cdf1117d3d44c14) running 13 tests test pb::tests::keeps_every_field::case_1_kept_whole ... ok test pb::tests::caps_start_and_end_together::case_4_halves_past_the_cap ... ok test pb::tests::caps_start_and_end_together::case_3_halves_at_the_cap ... ok test pb::tests::caps_start_and_end_together::case_2_start_past_the_cap ... ok test pb::tests::caps_start_and_end_together::case_1_start_at_the_cap ... ok test pb::tests::keeps_every_field::case_2_truncated ... ok test pb::tests::keeps_every_field::case_3_no_output ... ok test hub::tests::self_hosted_hub_token_stays_home ... ok test queue::tests::expire_output_removes_only_a_row_queued_that_long_ago::case_1_fresh ... ok test queue::tests::expire_output_removes_only_a_row_queued_that_long_ago::case_2_due ... ok test queue::tests::remove_output_takes_only_that_users_row ... ok test queue::tests::pending_outputs_are_each_users_own_in_id_order ... ok test queue::tests::pending_outputs_pages_through_more_than_a_page ... ok test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_pty_proxy-6bedeed5cdf3e8b0) running 207 tests test capture::tests::a_capture_that_lost_its_middle_still_reports_every_byte_observed ... ok test capture::tests::attributes_left_set_do_not_fill_the_capture_with_blanks ... ok test capture::tests::a_command_with_no_output_is_still_captured::case_1_no_output ... ok test capture::tests::captures_a_full_command_cycle::case_2_bare_markers ... ok test capture::tests::a_chunk_with_no_newline_is_dropped_whole ... ok test capture::tests::a_command_with_no_output_is_still_captured::case_2_empty_command ... ok test capture::tests::an_abandoned_command_leaves_nothing_on_the_screen ... ok test capture::tests::a_new_start_abandons_a_capture_that_never_ended ... ok test capture::tests::a_long_prompt_does_not_leak_into_the_output ... ok test capture::tests::a_marker_split_across_pushes_is_still_recognised ... ok test capture::tests::an_untruncated_capture_keeps_its_first_and_last_lines ... ok test capture::tests::a_mismatched_end_marker_ends_the_capture ... ok test capture::tests::captures_a_full_command_cycle::case_1_full_interaction ... ok test capture::tests::a_repeated_end_marker_reports_nothing_more ... ok test capture::tests::alternate_screen_output_is_not_captured ... ok test capture::tests::keeps_basic_formatting ... ok test capture::tests::markers_split_at_every_byte_boundary ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_1_36 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_2_40 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_4_50 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_3_45 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_5_60 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_7_70 ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_6_65 ... ok test capture::tests::output_is_rendered_not_replayed::case_1_absolute_cursor_movement ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_8_80 ... ok test capture::tests::output_is_rendered_not_replayed::case_2_carriage_returns_overwrite_in_place ... ok test capture::tests::neither_chunk_keeps_a_partial_line::bytes_9_99 ... ok test capture::tests::output_is_rendered_not_replayed::case_3_backspaces_erase ... ok test capture::tests::output_is_rendered_not_replayed::case_4_erase_to_end_of_line ... ok test capture::tests::output_still_in_the_alternate_screen_is_not_captured ... ok test capture::tests::output_that_fits_the_limit_is_not_split ... ok test capture::tests::output_that_scrolls_off_the_screen_is_kept ... ok test capture::tests::reports_nothing::case_1_no_markers ... ok test capture::tests::reports_nothing::case_2_start_without_an_end ... ok test capture::tests::reports_nothing::case_3_end_without_a_start ... ok test capture::tests::reports_nothing::case_4_mismatched_history_ids ... ok test capture::tests::reports_nothing::case_5_osc_133_markers ... ok test capture::tests::resets_between_consecutive_commands ... ok test capture::tests::resizing_reflows_the_capture ... ok test capture::tests::splitting_a_marker_across_pushes_does_not_change_the_byte_count ... ok test capture::tests::st_terminated_markers_do_not_leak_into_the_capture ... ok test capture::tests::the_capture_never_sees_what_the_prompt_drew ... ok test capture::tests::tiny_terminals_do_not_panic::rows_1_1::cols_1_1 ... ok test capture::tests::oversized_output_keeps_its_start_and_its_end ... ok test capture::tests::tiny_terminals_do_not_panic::rows_1_1::cols_2_2 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_1_1::cols_3_3 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_2_2::cols_1_1 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_2_2::cols_2_2 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_2_2::cols_3_3 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_3_3::cols_1_1 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_3_3::cols_2_2 ... ok test capture::tests::tiny_terminals_do_not_panic::rows_3_3::cols_3_3 ... ok test debug::tests::a_marker_split_across_reads_is_still_passed_through ... ok test debug::tests::labels_every_marker_in_a_full_cycle ... ok test capture::tests::whole_lines_either_side_of_the_cut_are_kept ... ok test debug::tests::markers_are_passed_through_before_the_label::case_1_start_bel ... ok test debug::tests::markers_are_passed_through_before_the_label::case_2_start_st ... ok test debug::tests::markers_are_passed_through_before_the_label::case_3_end ... ok test debug::tests::passes_unmarked_data_through_unchanged::case_1_no_markers ... ok test debug::tests::passes_unmarked_data_through_unchanged::case_2_csi_only ... ok test debug::tests::passes_unmarked_data_through_unchanged::case_3_other_osc ... ok test debug::tests::passes_unmarked_data_through_unchanged::case_4_osc_133 ... ok test debug::tests::start_and_end_get_distinct_labels ... ok test foreground::tests::a_descriptor_that_is_not_a_terminal_has_no_foreground_group ... ok test foreground::tests::nothing_readable_has_no_cwd ... ok test parser::tests::a_backslash_after_a_cut_off_marker_is_output::cut_off_by_1_b__x18__ ... ok test parser::tests::a_backslash_after_a_cut_off_marker_is_output::cut_off_by_2_b__x1a__ ... ok test parser::tests::a_command_ended_by_the_next_one_reports_both ... ok test parser::tests::a_string_terminator_split_across_reads_stays_with_its_marker ... ok test parser::tests::emits_events_in_order_around_other_output ... ok test parser::tests::reads_what_a_command_says::case_01_start ... ok test parser::tests::reads_what_a_command_says::case_06_window ... ok test parser::tests::reads_what_a_command_says::case_07_empty_title ... ok test parser::tests::reads_what_a_command_says::case_02_end ... ok test parser::tests::reads_what_a_command_says::case_08_semicolon_in_the_title ... ok test parser::tests::reads_what_a_command_says::case_09_no_title ... ok test parser::tests::reads_what_a_command_says::case_03_simple_history_id ... ok test parser::tests::reads_what_a_command_says::case_10_directory ... ok test parser::tests::reads_what_a_command_says::case_04_window_and_icon ... ok test parser::tests::reads_what_a_command_says::case_11_pointer_shape ... ok test parser::tests::reads_what_a_command_says::case_12_foreground_color ... ok test parser::tests::reads_what_a_command_says::case_13_osc_133_start ... ok test parser::tests::reads_what_a_command_says::case_14_osc_133_end ... ok test parser::tests::reads_what_a_command_says::case_15_missing_history_id ... ok test parser::tests::reads_what_a_command_says::case_16_empty_history_id ... ok test parser::tests::reads_what_a_command_says::case_17_invalid_history_id ... ok test parser::tests::reads_what_a_command_says::case_05_icon ... ok test parser::tests::reads_what_a_command_says::case_18_trailing_param ... ok test parser::tests::reads_what_a_command_says::case_19_unknown_kind ... ok test parser::tests::reads_what_a_command_says::case_21_missing_kind ... ok test parser::tests::reads_what_a_command_says::case_20_kind_too_long ... ok test parser::tests::reads_what_a_command_says::case_22_lowercase_kind ... ok test parser::tests::reads_what_a_command_says::case_23_wrong_osc_number ... ok test parser::tests::reads_what_a_command_says::case_24_longer_osc_number ... ok test parser::tests::reads_what_a_command_says::case_25_bare_osc_number ... ok test parser::tests::reads_what_a_command_says::case_26_empty ... ok test parser::tests::splits_data_after_each_marker::terminator_1_b__x07___as_slice__ ... ok test parser::tests::splits_data_after_each_marker::terminator_2_b__x1b___as_slice__ ... ok test pty_proxy::tests::bash_zsh_init_skips_shells_started_with_a_command::case_1_bash ... ok test pty_proxy::tests::bash_zsh_init_skips_shells_started_with_a_command::case_2_zsh ... ok test pty_proxy::tests::every_init_asks_atuin_whether_this_terminal_has_a_proxy::shell_1_Shell__Zsh ... ok test pty_proxy::tests::every_init_asks_atuin_whether_this_terminal_has_a_proxy::shell_2_Shell__Bash ... ok test pty_proxy::tests::every_init_asks_atuin_whether_this_terminal_has_a_proxy::shell_3_Shell__Fish ... ok test pty_proxy::tests::every_init_asks_atuin_whether_this_terminal_has_a_proxy::shell_4_Shell__Nu ... ok test pty_proxy::tests::every_init_execs_pty_proxy::shell_1_Shell__Zsh ... ok test pty_proxy::tests::every_init_execs_pty_proxy::shell_3_Shell__Fish ... ok test pty_proxy::tests::every_init_execs_pty_proxy::shell_4_Shell__Nu ... ok test pty_proxy::tests::every_init_stops_when_the_proxy_says_it_failed::shell_1_Shell__Zsh ... ok test pty_proxy::tests::every_init_execs_pty_proxy::shell_2_Shell__Bash ... ok test pty_proxy::tests::every_init_stops_when_the_proxy_says_it_failed::shell_2_Shell__Bash ... ok test pty_proxy::tests::every_init_stops_when_the_proxy_says_it_failed::shell_3_Shell__Fish ... ok test pty_proxy::tests::every_init_stops_when_the_proxy_says_it_failed::shell_4_Shell__Nu ... ok test pty_proxy::tests::init_no_ops_when_emitted_twice::case_1 ... ok test pty_proxy::tests::init_no_ops_when_emitted_twice::case_2 ... ok test pty_proxy::tests::init_no_ops_when_emitted_twice::case_3 ... ok test pty_proxy::tests::init_scripts_forward_shell_path ... ok test pty_proxy::tests::posix_init_has_no_double_braces ... ok test pty_proxy::tests::shell_from_name_maps::case_1_zsh_abs_path ... ok test pty_proxy::tests::shell_from_name_maps::case_2_bash_abs_path ... ok test pty_proxy::tests::fish_init_execs_the_proxy_with_the_terminal_on_stdin ... ok test pty_proxy::tests::shell_from_name_maps::case_3_fish_bare ... ok test pty_proxy::tests::init_scripts_maintain_login_status::case_1_bash ... ok test pty_proxy::tests::shell_from_name_maps::case_4_nu_bare ... ok test pty_proxy::tests::init_scripts_maintain_login_status::case_2_zsh ... ok test pty_proxy::tests::init_scripts_maintain_login_status::case_3_fish ... ok test runtime::tests::a_proxy_without_a_socket_tells_its_shell_not_to_start_another ... ok test pty_proxy::tests::init_scripts_maintain_login_status::case_4_nu ... ok test runtime::tests::a_working_proxy_clears_an_inherited_failed_flag ... ok test runtime::tests::maps_exit_code::case_1_zero ... ok test runtime::tests::maps_exit_code::case_2_mid_range ... ok test runtime::tests::maps_exit_code::case_3_max_i32 ... ok test runtime::tests::maps_exit_code::case_4_overflow_defaults_to_one ... ok test screen::tests::a_bound_socket_accepts_connections_before_anything_accepts_them ... ok test screen::tests::a_listening_proxy_socket_is_found ... ok test screen::tests::a_stale_socket_file_is_not_a_live_proxy ... ok test screen::tests::a_resize_is_forwarded_to_the_capture_tracker ... ok test screen::tests::an_emulator_without_a_sink_still_tracks_the_screen ... ok test screen::tests::debug_highlighting_reaches_the_screen_but_not_the_capture ... ok test screen::tests::encodes_the_screen_contents_and_cursor ... ok test screen::tests::a_shell_in_a_pty_nested_inside_the_proxy_is_not_attached ... ok test screen::tests::init_small_and_wrap::rows_1_0::cols_1_0 ... ok test screen::tests::a_shell_in_the_proxys_own_pty_is_attached ... ok test screen::tests::init_small_and_wrap::rows_1_0::cols_2_1 ... ok test screen::tests::init_small_and_wrap::rows_1_0::cols_3_2 ... ok test screen::tests::init_small_and_wrap::rows_2_1::cols_2_1 ... ok test screen::tests::init_small_and_wrap::rows_1_0::cols_4_3 ... ok test screen::tests::init_small_and_wrap::rows_2_1::cols_1_0 ... ok test screen::tests::init_small_and_wrap::rows_2_1::cols_3_2 ... ok test screen::tests::init_small_and_wrap::rows_3_2::cols_1_0 ... ok test screen::tests::init_small_and_wrap::rows_2_1::cols_4_3 ... ok test screen::tests::init_small_and_wrap::rows_3_2::cols_2_1 ... ok test screen::tests::init_small_and_wrap::rows_3_2::cols_3_2 ... ok test screen::tests::init_small_and_wrap::rows_3_2::cols_4_3 ... ok test screen::tests::init_small_and_wrap::rows_4_3::cols_1_0 ... ok test screen::tests::init_small_and_wrap::rows_4_3::cols_2_1 ... ok test screen::tests::init_small_and_wrap::rows_4_3::cols_3_2 ... ok test screen::tests::init_small_and_wrap::rows_4_3::cols_4_3 ... ok test screen::tests::resize_small_and_wrap::rows_1_0::cols_1_0 ... ok test screen::tests::resize_small_and_wrap::rows_1_0::cols_2_1 ... ok test screen::tests::resize_small_and_wrap::rows_1_0::cols_3_2 ... ok test screen::tests::no_socket_means_no_proxy ... ok test screen::tests::resize_small_and_wrap::rows_1_0::cols_4_3 ... ok test screen::tests::resize_small_and_wrap::rows_2_1::cols_1_0 ... ok test screen::tests::resize_small_and_wrap::rows_2_1::cols_2_1 ... ok test screen::tests::resize_small_and_wrap::rows_2_1::cols_3_2 ... ok test screen::tests::resize_small_and_wrap::rows_2_1::cols_4_3 ... ok test screen::tests::resize_small_and_wrap::rows_3_2::cols_1_0 ... ok test screen::tests::resize_small_and_wrap::rows_3_2::cols_2_1 ... ok test screen::tests::resize_small_and_wrap::rows_3_2::cols_3_2 ... ok test screen::tests::resize_small_and_wrap::rows_3_2::cols_4_3 ... ok test screen::tests::resize_small_and_wrap::rows_4_3::cols_1_0 ... ok test screen::tests::resize_small_and_wrap::rows_4_3::cols_2_1 ... ok test screen::tests::resize_small_and_wrap::rows_4_3::cols_3_2 ... ok test screen::tests::resize_small_and_wrap::rows_4_3::cols_4_3 ... ok test screen::tests::socket_name_is_built_from_both_halves_of_the_identity ... ok test screen::tests::socket_names_differ::case_1_same_mount_other_pty ... ok test screen::tests::socket_names_differ::case_2_same_pty_other_mount ... ok test title::tests::names_each_new_leader_once ... ok test title::tests::stops_for_good_once_the_child_titles ... ok test title::tests::titles_carry_no_control_characters::case_1_plain ... ok test screen::tests::the_emulator_feeds_the_capture_sink ... ok test title::tests::titles_carry_no_control_characters::case_2_escape ... ok test title::tests::titles_carry_no_control_characters::case_3_newline ... ok test title::tests::titles_carry_no_control_characters::case_4_c1_terminator ... ok test title::tests::titles_carry_no_control_characters::case_5_unicode ... ok test title::tests::titles_carry_no_control_characters::case_6_only_controls ... ok test title::tests::titles_carry_no_control_characters::case_7_empty ... ok test title::tests::titles_wait_for_an_escape_code_to_finish ... ok test parser::tests::chunks_and_trailing_data_reconstruct_the_input ... ok test parser::tests::reads_output_the_same_however_it_is_cut ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_1_36 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_7_70 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_2_40 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_3_45 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_5_60 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_6_65 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_4_50 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_8_80 ... ok test capture::tests::a_credential_split_across_the_cut_does_not_survive::bytes_9_99 ... ok test foreground::tests::the_copied_descriptor_outlives_the_pty_it_came_from ... ok test foreground::tests::the_cwd_is_the_shells_while_it_is_in_the_foreground ... ok test foreground::tests::a_foreground_process_we_cannot_read_falls_back_to_the_child ... ok test foreground::tests::the_cwd_is_the_foreground_jobs_rather_than_the_shells ... ok test foreground::tests::the_cwd_follows_the_shell_as_it_moves ... ok test runtime::tests::inherited_stdin_waits_for_input_on_a_non_blocking_pipe ... ok test runtime::tests::inherited_stdout_waits_out_a_full_non_blocking_pipe ... ok test result: ok. 207 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_scripts-637a72b02096e1d6) running 20 tests test execution::tests::builds_executable_script::case_1_default_bash::script_1___print_1_1_n__ ... ok test execution::tests::builds_executable_script::case_1_default_bash::script_2_____usr_bin_envpython3nprint_1_1_n__ ... ok test execution::tests::builds_executable_script::case_2_bare_interpreter::script_2_____usr_bin_envpython3nprint_1_1_n__ ... ok test execution::tests::builds_executable_script::case_3_prefixed_interpreter::script_1___print_1_1_n__ ... ok test execution::tests::builds_executable_script::case_3_prefixed_interpreter::script_2_____usr_bin_envpython3nprint_1_1_n__ ... ok test execution::tests::builds_executable_script::case_2_bare_interpreter::script_1___print_1_1_n__ ... ok test store::script::tests::test_serialize ... ok test store::record::tests::test_serialize_delete ... ok test store::record::tests::serialize_deserialize::case_2_delete ... ok test store::record::tests::test_serialize_update ... ok test store::record::tests::test_serialize_create ... ok test store::record::tests::serialize_deserialize::case_1_create ... ok test store::record::tests::serialize_deserialize::case_3_update ... ok test store::script::tests::test_serialize_deserialize ... ok test database::test::test_save_load ... ok test database::test::test_save_bulk ... ok test database::test::test_list ... ok test database::test::a_failed_replay_leaves_the_previous_scripts ... ok test database::test::test_delete ... ok test database::test::replay_applies_records_in_order ... ok test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s Running unittests src/lib.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_server-12dd839f808d7354) running 64 tests test client_ip::tests::resolves_client_ip::case_09_empty_header ... ok test client_ip::tests::no_trusted_proxies_always_uses_peer ... ok test client_ip::tests::resolves_client_ip::case_05_multiple_headers ... ok test client_ip::tests::only_the_configured_header_is_read::case_2_ignores_other_headers ... ok test client_ip::tests::resolves_client_ip::case_03_chain_of_trusted_hops ... ok test client_ip::tests::resolves_client_ip::case_01_no_header ... ok test client_ip::tests::resolves_client_ip::case_02_single_hop ... ok test client_ip::tests::only_the_configured_header_is_read::case_1_reads_configured_header ... ok test client_ip::tests::resolves_client_ip::case_07_all_hops_trusted ... ok test client_ip::tests::resolves_client_ip::case_04_stops_at_first_untrusted ... ok test client_ip::tests::resolves_client_ip::case_08_garbage_entry ... ok test client_ip::tests::resolves_client_ip::case_11_ipv4_mapped_peer ... ok test client_ip::tests::resolves_client_ip::case_10_untrusted_peer_ignores_header ... ok test client_ip::tests::resolves_client_ip::case_06_whitespace_and_empty_entries ... ok test client_ip::tests::resolves_client_ip::case_12_ipv4_mapped_hop ... ok test client_ip::tests::resolves_client_ip::case_13_ipv6_peer ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_1_letters_digits_and_hyphens ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_2_empty ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_3_space ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_4_underscore ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_5_email ... ok test db::models::tests::new_usernames_are_nonempty_ascii_letters_digits_and_hyphens::case_6_non_ascii_letter ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_2_trailing_newline::db_uri_1___postgres___atuindb_atuin__ ... ok test db::tests::missing_password_file_is_an_error ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_2_trailing_newline::db_uri_2___mysql___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_3_trailing_crlf::db_uri_1___postgres___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_3_trailing_crlf::db_uri_2___mysql___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_1_bare::db_uri_2___mysql___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_1_bare::db_uri_1___postgres___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_5_percent_escape_kept::db_uri_1___postgres___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_4_spaces_kept::db_uri_1___postgres___atuindb_atuin__ ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_5_percent_escape_kept::db_uri_2___mysql___atuindb_atuin__ ... ok test client_ip::tests::missing_connect_info_is_a_server_error ... ok test db::tests::password_is_the_file_without_trailing_newlines::case_4_spaces_kept::db_uri_2___mysql___atuindb_atuin__ ... ok test client_ip::tests::middleware_exposes_resolved_ip_to_handlers ... ok test db::tests::unusable_settings_are_rejected::case_1_password_in_postgres_uri_too ... ok test db::tests::unusable_settings_are_rejected::case_6_empty ... ok test db::tests::unusable_settings_are_rejected::case_4_no_host_with_database ... ok test db::models::tests::a_stored_password_that_is_not_a_hash_never_verifies ... ok test db::tests::unusable_settings_are_rejected::case_2_password_in_mysql_uri_too ... ok test settings::tests::rejects::case_2_garbage_header ... ok test settings::tests::max_record_size_accepts::case_1_human_string ... ok test settings::tests::trusted_proxy_header_defaults_to_x_forwarded_for ... ok test settings::tests::trusted_proxies_accepts_bare_addresses ... ok test settings::tests::rejects::case_1_garbage_network ... ok test settings::tests::trusted_proxies_defaults_to_empty ... ok test settings::tests::trusted_proxy_header_accepts::case_2_lowercase ... ok test settings::tests::max_record_size_accepts::case_2_bare_integer ... ok test settings::tests::trusted_proxy_header_accepts::case_1_canonical ... ok test settings::tests::trusted_proxies_accepts::case_2_comma_separated_string ... ok test settings::tests::trusted_proxies_accepts::case_1_list ... ok test db::tests::unusable_settings_are_rejected::case_3_no_host ... ok test db::tests::unusable_settings_are_rejected::case_5_sqlite ... ok test db::tests::unusable_settings_are_rejected::case_7_only_a_newline ... ok test settings::tests::settings_from_server_toml_and_environment::case_2_ipv6_service_link_port_is_ignored ... ok test settings::tests::a_url_port_that_is_not_a_service_link_is_an_error ... ok test settings::tests::settings_from_server_toml_and_environment::case_1_service_link_port_is_ignored ... ok test settings::tests::settings_from_server_toml_and_environment::case_3_numeric_port_beats_server_toml ... ok test settings::tests::settings_from_server_toml_and_environment::case_4_empty_port_is_unset ... ok test settings::tests::settings_from_server_toml_and_environment::case_5_db_uri_beats_server_toml ... ok test settings::tests::settings_from_server_toml_and_environment::case_6_empty_db_uri_is_unset ... ok test db::tests::any_password_survives_the_url ... ok test db::models::tests::a_hash_verifies_only_the_password_it_was_made_from::case_1_same_password ... ok test db::models::tests::a_hash_verifies_only_the_password_it_was_made_from::case_2_other_password ... ok test result: ok. 64 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s Running unittests src/bin/main.rs (target/aarch64-unknown-linux-gnu/release/deps/atuin_server-19562d58ac6d2e62) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Running tests/db_password_file.rs (target/aarch64-unknown-linux-gnu/release/deps/db_password_file-12108e95a4e87107) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 1 filtered out; finished in 0.00s Running tests/db_story.rs (target/aarch64-unknown-linux-gnu/release/deps/db_story-674f93c8ee86dc9f) running 4 tests test tests::settings::case_2_with_param ... ok test tests::settings::case_1_none ... ok test test_add_user_with_session_is_atomic ... ok test test_full_db_story ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s Running tests/sync.rs (target/aarch64-unknown-linux-gnu/release/deps/sync-6ce424b9458c05c7) running 14 tests test download_fetches_exactly_the_missing_records::case_1_partial_local ... ok test download_fetches_exactly_the_missing_records::case_7_partial_page ... ok test upload_sends_exactly_the_missing_records::case_1_partial_remote ... ok test upload_sends_exactly_the_missing_records::case_6_exact_pages ... ok test download_fetches_exactly_the_missing_records::case_4_empty_local_page_plus_one ... ok test upload_sends_exactly_the_missing_records::case_2_empty_remote ... ok test upload_sends_exactly_the_missing_records::case_5_empty_remote_single_record ... ok test upload_sends_exactly_the_missing_records::case_4_empty_remote_page_plus_one ... ok test download_fetches_exactly_the_missing_records::case_5_empty_local_single_record ... ok test upload_sends_exactly_the_missing_records::case_7_partial_page ... ok test download_fetches_exactly_the_missing_records::case_2_empty_local ... ok test download_fetches_exactly_the_missing_records::case_6_exact_pages ... ok test download_fetches_exactly_the_missing_records::case_3_exact_page ... ok test upload_sends_exactly_the_missing_records::case_3_exact_page ... ok test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s Running tests/users.rs (target/aarch64-unknown-linux-gnu/release/deps/users-02760106c8fca116) running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.00s Doc-tests atuin_ai running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_client running 5 tests test crates/atuin-client/src/settings/watcher.rs - settings::watcher (line 8) - compile ... ok test crates/atuin-client/src/history.rs - history::History::import (line 603) ... ok test crates/atuin-client/src/history.rs - history::History::daemon (line 688) ... ok test crates/atuin-client/src/history.rs - history::History::import (line 614) ... ok test crates/atuin-client/src/history.rs - history::History::capture (line 650) ... ok test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s running 4 tests test crates/atuin-client/src/history.rs - history::History::capture (line 663) - compile fail ... ok test crates/atuin-client/src/history.rs - history::History::daemon (line 703) - compile fail ... ok test crates/atuin-client/src/history.rs - history::History::import (line 630) - compile fail ... ok test crates/atuin-client/src/history.rs - history::History::from_db (line 723) - compile fail ... ok test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s all doctests ran in 1.66s; merged doctests compilation took 1.41s Doc-tests atuin_common running 16 tests test crates/atuin-common/src/db/sqlite/observe/mod.rs - db::sqlite::observe (line 20) - compile ... ok test crates/atuin-common/src/db/sqlite/observe/mod.rs - db::sqlite::observe (line 73) - compile ... ok test crates/atuin-common/src/string/auto_os_string.rs - string::auto_os_string::AutoOsString (line 19) ... ok test crates/atuin-common/src/fs/tree_watcher/mod.rs - fs::tree_watcher (line 20) ... ok test crates/atuin-common/src/fs/tree_watcher/mod.rs - fs::tree_watcher (line 46) ... ok test crates/atuin-common/src/fs/tree_watcher/mod.rs - fs::tree_watcher (line 78) ... ok test crates/atuin-common/src/range/chunks.rs - range::chunks::Chunks (line 51) ... ok test crates/atuin-common/src/url.rs - url::UrlAppendExt::append (line 25) ... ok test crates/atuin-common/src/futures/stream/mod.rs - futures::stream::chunk_by_bounded (line 19) ... ok test crates/atuin-common/src/futures/stream/merge.rs - futures::stream::merge::try_merge_join_by (line 13) ... ok test crates/atuin-common/src/futures/stream/chunked.rs - futures::stream::chunked::ChunkedStream (line 18) ... ok test crates/atuin-common/src/url.rs - url::UrlAppendExt::append_path (line 51) ... ok test crates/atuin-common/src/io/line_reader.rs - io::line_reader::LineReader (line 380) ... ok test crates/atuin-common/src/io/line_reader.rs - io::line_reader::PathLineReader (line 446) ... ok test crates/atuin-common/src/io/follow_lines.rs - io::follow_lines::FollowLines (line 19) ... ok test crates/atuin-common/src/fs/tree_watcher/mod.rs - fs::tree_watcher (line 103) ... ok test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.04s running 4 tests test crates/atuin-common/src/time/duration.rs - time::duration::DurationExt::display (line 45) ... ignored test crates/atuin-common/src/time/offset_date_time.rs - time::offset_date_time::OffsetDateTimeExt::display (line 42) ... ignored test crates/atuin-common/src/range/clamped.rs - range::clamped::Clamped (line 61) - compile fail ... ok test crates/atuin-common/src/range/clamped.rs - range::clamped::Clamped (line 65) - compile fail ... ok test result: ok. 2 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.12s all doctests ran in 4.56s; merged doctests compilation took 2.39s Doc-tests atuin_daemon running 3 tests test crates/atuin-daemon/src/daemon.rs - daemon::Component (line 209) ... ignored test crates/atuin-daemon/src/daemon.rs - daemon::DaemonBuilder (line 405) ... ignored test crates/atuin-daemon/src/daemon.rs - daemon::DaemonHandle (line 75) ... ignored test result: ok. 0 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.00s all doctests ran in 0.39s; merged doctests compilation took 0.39s Doc-tests atuin_domain running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_dotfiles running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_history running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_kv running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_octavo running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_pty_proxy running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_scripts running 0 tests test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s Doc-tests atuin_server running 1 test test crates/atuin-server/src/db/mod.rs - db (line 25) ... ignored test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s Finished cargoCheckHook checkPhase completed in 8 minutes 36 seconds Running phase: installPhase Executing cargoInstallHook Finished cargoInstallHook Running phase: fixupPhase shrinking RPATHs of ELF executables and libraries in /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4 shrinking /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4/bin/atuin-server shrinking /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4/bin/atuin checking for references to /build/ in /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4... patching script interpreter paths in /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4 stripping (with command strip and flags -S -p) in /nix/store/wc1r6myw9d25kpzdsggkcwswnw9gs111-atuin-18.24.4/bin