[INFO] cloning repository https://github.com/muzomer/devspace
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/muzomer/devspace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuzomer%2Fdevspace", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuzomer%2Fdevspace'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c0ef748fa452937230a4c4f5c18da2108d6fc718
[INFO] testing muzomer/devspace against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmuzomer%2Fdevspace" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/muzomer/devspace
[INFO] finished tweaking git repo https://github.com/muzomer/devspace
[INFO] tweaked toml for git repo https://github.com/muzomer/devspace written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/muzomer/devspace on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/muzomer/devspace already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf
[INFO] running `Command { std: "docker" "start" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.16
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling log v0.4.26
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling once_cell v1.20.3
[INFO] [stderr]    Compiling itoa v1.0.14
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustversion v1.0.19
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling writeable v0.5.5
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling litemap v0.7.4
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling ryu v1.0.19
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.0
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling syn v2.0.98
[INFO] [stderr]    Compiling castaway v0.2.3
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling icu_properties_data v1.5.0
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling cc v1.2.15
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling lru v0.18.2
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling indoc v2.0.5
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling thread_local v1.1.8
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling libz-sys v1.1.21
[INFO] [stderr]    Compiling openssl-sys v0.9.106
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling backtrace v0.3.71
[INFO] [stderr]    Compiling libgit2-sys v0.18.0+1.9.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.6
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling line-clipping v0.3.8
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling anstyle-query v1.1.2
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling gimli v0.28.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling zerofrom v0.1.5
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling anstyle v1.0.10
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling colorchoice v1.0.3
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling adler2 v2.0.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.5
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling miniz_oxide v0.7.4
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling addr2line v0.21.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling rustc-demangle v0.1.24
[INFO] [stderr]    Compiling owo-colors v3.5.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling indenter v0.3.3
[INFO] [stderr]    Compiling clap_lex v0.7.4
[INFO] [stderr]    Compiling clap_builder v4.5.29
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling color-spantrace v0.2.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling ureq-proto v0.6.0
[INFO] [stderr]    Compiling flate2 v1.1.0
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling ratatui-macros v0.7.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling clap_derive v4.5.28
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling expand-tilde v0.6.1
[INFO] [stderr]    Compiling color-eyre v0.6.3
[INFO] [stderr]    Compiling clap v4.5.29
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling ureq v3.3.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling nucleo-matcher v0.3.1
[INFO] [stderr]    Compiling git2 v0.20.0
[INFO] [stderr]    Compiling shanti v0.6.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/github.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |         Err(e) => eyre::bail!("Failed to run gh: {}", e),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/github.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 |         _ => eyre::bail!("{name:?} is not a plain repository name"),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 5m 59s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: shanti v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling getrandom v0.3.1
[INFO] [stderr]    Compiling doc-comment v0.3.3
[INFO] [stderr]    Compiling assert_cmd v2.0.16
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling tempfile v3.17.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling bstr v1.11.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling color-spantrace v0.2.1
[INFO] [stderr]    Compiling color-eyre v0.6.3
[INFO] [stderr]    Compiling shanti v0.6.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/github.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |         Err(e) => eyre::bail!("Failed to run gh: {}", e),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/github.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 |         _ => eyre::bail!("{name:?} is not a plain repository name"),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1336:66
[INFO] [stdout]      |
[INFO] [stdout] 1336 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1377:66
[INFO] [stdout]      |
[INFO] [stdout] 1377 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1396:66
[INFO] [stdout]      |
[INFO] [stdout] 1396 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1417:66
[INFO] [stdout]      |
[INFO] [stdout] 1417 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1434:66
[INFO] [stdout]      |
[INFO] [stdout] 1434 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1451:66
[INFO] [stdout]      |
[INFO] [stdout] 1451 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]     --> src/app.rs:1593:66
[INFO] [stdout]      |
[INFO] [stdout] 1593 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stdout]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/github.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 |         Err(e) => eyre::bail!("Failed to run gh: {}", e),
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/github.rs:265:14
[INFO] [stdout]     |
[INFO] [stdout] 265 |         _ => eyre::bail!("{name:?} is not a plain repository name"),
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/vcs/store.rs:230:13
[INFO] [stdout]     |
[INFO] [stdout] 230 |             eyre::bail!("stub")
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 52s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: shanti v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/github.rs:98:19
[INFO] [stderr]    |
[INFO] [stderr] 98 |         Err(e) => eyre::bail!("Failed to run gh: {}", e),
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/github.rs:265:14
[INFO] [stderr]     |
[INFO] [stderr] 265 |         _ => eyre::bail!("{name:?} is not a plain repository name"),
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `shanti` (lib) generated 2 warnings
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1336:66
[INFO] [stderr]      |
[INFO] [stderr] 1336 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1377:66
[INFO] [stderr]      |
[INFO] [stderr] 1377 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1396:66
[INFO] [stderr]      |
[INFO] [stderr] 1396 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1417:66
[INFO] [stderr]      |
[INFO] [stderr] 1417 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1434:66
[INFO] [stderr]      |
[INFO] [stderr] 1434 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1451:66
[INFO] [stderr]      |
[INFO] [stderr] 1451 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]     --> src/app.rs:1593:66
[INFO] [stderr]      |
[INFO] [stderr] 1593 |         let fetcher: github::PrFetcher = std::sync::Arc::new(|_| eyre::bail!("unused"));
[INFO] [stderr]      |                                                                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]      = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]      = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> src/github.rs:98:19
[INFO] [stderr]    |
[INFO] [stderr] 98 |         Err(e) => eyre::bail!("Failed to run gh: {}", e),
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]    --> src/vcs/store.rs:230:13
[INFO] [stderr]     |
[INFO] [stderr] 230 |             eyre::bail!("stub")
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stderr]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `bail`
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]     = note: this warning originates in the macro `eyre::bail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: `shanti` (lib test) generated 10 warnings (1 duplicate)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.24s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: shanti v0.6.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/shanti/11991150be0753ba/out/shanti-11991150be0753ba)
[INFO] [stdout] 
[INFO] [stdout] running 341 tests
[INFO] [stdout] test app::tests::a_failed_job_becomes_a_message ... ok
[INFO] [stdout] test app::tests::a_result_the_app_stopped_waiting_for_is_dropped ... ok
[INFO] [stdout] test app::tests::refreshing_during_a_scan_does_nothing ... ok
[INFO] [stdout] test app::tests::attaching_a_worker_starts_one_scan_per_root ... ok
[INFO] [stdout] test app::tests::construction_walks_no_repos_dir ... ok
[INFO] [stdout] test app::tests::rescanning_walks_the_repos_dirs_again ... ok
[INFO] [stdout] test app::tests::a_second_refresh_abandons_the_first ... ok
[INFO] [stdout] test app::tests::run_fetch_becomes_a_job_per_repository ... ok
[INFO] [stdout] test app::tests::the_list_is_populated_by_the_scan ... ok
[INFO] [stdout] test app::tests::a_landed_fetch_re_reads_the_repository_it_fetched ... ok
[INFO] [stdout] test cli::tests::a_file_where_a_repos_dir_is_expected_is_rejected ... ok
[INFO] [stdout] test cli::tests::a_clap_default_does_not_beat_the_config_file ... ok
[INFO] [stdout] test cli::tests::a_missing_repos_dir_flag_is_reported_as_a_flag ... ok
[INFO] [stdout] test cli::tests::a_missing_entry_in_the_repos_dir_list_is_skipped ... ok
[INFO] [stdout] test app::tests::refreshing_asks_every_known_repository_again ... ok
[INFO] [stdout] test cli::tests::a_spaces_dir_from_the_config_file_is_created ... ok
[INFO] [stdout] test cli::tests::a_missing_repos_dir_reports_the_path_and_the_source ... ok
[INFO] [stdout] test cli::tests::a_config_file_path_is_canonicalised ... ok
[INFO] [stdout] test app::tests::fetching_the_same_repository_twice_queues_one_job ... ok
[INFO] [stdout] test cli::tests::a_tilde_in_the_config_file_is_expanded ... ok
[INFO] [stdout] test cli::tests::an_empty_environment_variable_falls_through_to_the_config_file ... ok
[INFO] [stdout] test app::tests::a_scan_the_app_stopped_waiting_for_puts_nothing_on_screen ... ok
[INFO] [stdout] test cli::tests::an_unknown_theme_in_the_environment_names_the_environment ... ok
[INFO] [stdout] test cli::tests::an_empty_theme_variable_falls_through_to_the_config_file ... ok
[INFO] [stdout] test cli::tests::every_repos_dir_entry_missing_is_rejected_naming_all_of_them ... ok
[INFO] [stdout] test cli::tests::no_spaces_dir_in_any_layer_is_rejected ... ok
[INFO] [stdout] test cli::tests::a_flag_beats_the_config_file ... ok
[INFO] [stdout] test cli::tests::no_repos_dir_in_any_layer_is_rejected ... ok
[INFO] [stdout] test cli::tests::an_unknown_theme_is_a_startup_error_listing_the_valid_ones ... ok
[INFO] [stdout] test cli::tests::a_flag_beats_the_environment ... ok
[INFO] [stdout] test cli::tests::the_run_fetch_flag_beats_the_config_file ... ok
[INFO] [stdout] test cli::tests::origins_are_ordered_lowest_to_highest ... ok
[INFO] [stdout] test cli::tests::the_report_lists_every_repository_directory ... ok
[INFO] [stdout] test cli::tests::the_environment_beats_the_config_file ... ok
[INFO] [stdout] test cli::tests::the_theme_environment_variable_beats_the_config_file ... ok
[INFO] [stdout] test cli::tests::show_config_lists_every_setting_with_its_origin ... ok
[INFO] [stdout] test cli::tests::a_single_missing_repos_dir_flag_stays_a_hard_error ... ok
[INFO] [stdout] test cli::tests::config_file_beats_the_built_in_default ... ok
[INFO] [stdout] test cli::tests::the_theme_in_the_config_file_beats_the_default ... ok
[INFO] [stdout] test cli::tests::the_theme_defaults_to_the_catalogue_default ... ok
[INFO] [stdout] test components::detail::tests::a_space_whose_head_was_not_read_says_so_without_a_date ... ok
[INFO] [stdout] test components::detail::tests::a_space_made_from_a_pull_request_names_it ... ok
[INFO] [stdout] test components::detail::tests::an_empty_selection_draws_the_frame_and_nothing_else ... ok
[INFO] [stdout] test cli::tests::the_theme_flag_beats_the_environment ... ok
[INFO] [stdout] test components::detail::tests::every_field_renders_for_a_git_space ... ok
[INFO] [stdout] test components::detail::tests::every_field_renders_for_a_jj_space ... ok
[INFO] [stdout] test components::modal::tests::the_help_popup_scrolls_instead_of_overflowing ... ok
[INFO] [stdout] test components::detail::tests::the_pane_is_hidden_rather_than_clipped_when_the_list_needs_the_room ... ok
[INFO] [stdout] test components::modal::tests::a_popup_never_escapes_the_frame_at_any_size ... ok
[INFO] [stdout] test components::detail::tests::a_path_too_long_for_the_pane_keeps_its_end ... ok
[INFO] [stdout] test components::notify::tests::a_newer_message_restarts_the_clock ... ok
[INFO] [stdout] test components::notify::tests::success_takes_a_stale_failure_down_at_once ... ok
[INFO] [stdout] test components::notify::tests::the_newest_message_is_the_one_on_screen ... ok
[INFO] [stdout] test components::pr_worktree::tests::a_silent_auto_clone_announces_the_git_clone_and_the_jj_escape_hatch ... ok
[INFO] [stdout] test components::pr_worktree::tests::choosing_a_destination_starts_a_clone_job_and_says_so ... ok
[INFO] [stdout] test components::notify::tests::a_message_stays_up_until_its_time_is_out ... ok
[INFO] [stdout] test components::modal::tests::drawing_into_an_empty_or_tiny_rect_is_a_no_op ... ok
[INFO] [stdout] test components::repositories::tests::a_colocated_repository_lists_the_spaces_of_both_backends ... ok
[INFO] [stdout] test components::pr_worktree::tests::the_paths_that_prompt_stay_silent_afterwards ... ok
[INFO] [stdout] test components::repositories::tests::a_repository_that_arrives_twice_is_listed_once ... ok
[INFO] [stdout] test components::recent_spaces::tests::entries_are_ordered_by_recency_across_repositories ... ok
[INFO] [stdout] test components::recent_spaces::tests::selecting_the_top_entry_yields_its_path ... ok
[INFO] [stdout] test components::pr_worktree::tests::escaping_a_wait_asks_the_loop_to_abandon_the_job ... ok
[INFO] [stdout] test components::recent_spaces::tests::spaces_with_no_tip_sort_after_ones_with_a_tip ... ok
[INFO] [stdout] test components::repositories::tests::a_space_is_routed_to_the_backend_that_owns_it ... ok
[INFO] [stdout] test components::repositories::tests::a_space_of_a_backend_that_is_not_open_routes_nowhere ... ok
[INFO] [stdout] test components::repositories::tests::backends_of_reports_every_backend_open_on_a_repository ... ok
[INFO] [stdout] test components::repositories::tests::filtering_the_picker_still_shows_a_colocated_repository_once ... ok
[INFO] [stdout] test components::theme_picker::tests::it_opens_on_the_active_scheme ... ok
[INFO] [stdout] test components::theme_picker::tests::moving_installs_the_highlighted_scheme ... ok
[INFO] [stdout] test components::worktrees::tests::a_default_row_ends_where_the_separator_would_start ... ok
[INFO] [stdout] test components::select_directory::tests::the_picker_names_git_and_the_jj_escape_hatch_at_the_size_floor ... ok
[INFO] [stdout] test components::worktrees::tests::a_batch_replaces_the_rows_of_its_own_repositories_only ... ok
[INFO] [stdout] test components::worktrees::tests::a_clipped_name_says_which_end_was_cut ... ok
[INFO] [stdout] test components::worktrees::tests::a_default_row_is_still_found_by_its_repository_name ... ok
[INFO] [stdout] test components::worktrees::tests::a_colocated_repository_suppresses_only_its_default_row ... ok
[INFO] [stdout] test components::worktrees::tests::a_filter_that_matches_nothing_is_not_reported_as_a_missing_repository ... ok
[INFO] [stdout] test components::worktrees::tests::a_git_linked_worktree_keeps_its_name ... ok
[INFO] [stdout] test components::worktrees::tests::a_repository_with_no_spaces_left_loses_its_rows ... ok
[INFO] [stdout] test components::worktrees::tests::a_list_of_only_default_spaces_is_left_aligned ... ok
[INFO] [stdout] test components::worktrees::tests::a_message_never_takes_the_mode_indicators_place ... ok
[INFO] [stdout] test components::worktrees::tests::a_repositorys_default_space_is_labelled_by_the_repository_alone ... ok
[INFO] [stdout] test components::worktrees::tests::a_scan_speaks_over_the_work_running_beneath_it ... ok
[INFO] [stdout] test components::worktrees::tests::a_row_names_its_backend_before_its_label ... ok
[INFO] [stdout] test components::worktrees::tests::a_short_repository_name_is_pushed_up_against_the_separator ... ok
[INFO] [stdout] test components::worktrees::tests::a_row_that_vanished_leaves_the_cursor_in_place ... ok
[INFO] [stdout] test components::worktrees::tests::a_space_the_user_created_is_still_named ... ok
[INFO] [stdout] test components::worktrees::tests::a_suppressed_name_cannot_be_filtered_for ... ok
[INFO] [stdout] test components::worktrees::tests::a_terminal_too_narrow_for_a_message_keeps_the_mode_instead ... ok
[INFO] [stdout] test components::worktrees::tests::an_empty_list_says_which_kind_of_empty_it_is ... ok
[INFO] [stdout] test components::worktrees::tests::at_the_minimum_width_one_long_name_cannot_crowd_the_other_out ... ok
[INFO] [stdout] test components::worktrees::tests::columns_take_only_what_the_names_need ... ok
[INFO] [stdout] test components::worktrees::tests::each_severity_is_drawn_in_its_own_colour ... ok
[INFO] [stdout] test components::worktrees::tests::the_filter_matches_the_label_not_the_padding ... ok
[INFO] [stdout] test components::worktrees::tests::replacing_the_rows_keeps_the_filter_and_the_selected_row ... ok
[INFO] [stdout] test components::worktrees::tests::the_separator_falls_in_one_column_on_every_row ... ok
[INFO] [stdout] test components::worktrees::tests::the_zone_never_takes_more_than_half_the_border ... ok
[INFO] [stdout] test config::tests::config_empty_file_yields_defaults ... ok
[INFO] [stdout] test config::tests::config_accepts_jj_as_a_backend_alias ... ok
[INFO] [stdout] test components::worktrees::tests::each_empty_state_says_what_to_do_next ... ok
[INFO] [stdout] test components::worktrees::tests::every_empty_notice_fits_the_minimum_size ... ok
[INFO] [stdout] test config::tests::config_missing_file_yields_defaults ... ok
[INFO] [stdout] test config::tests::config_partial_file_keeps_defaults_for_the_rest ... ok
[INFO] [stdout] test config::tests::config_path_honours_the_override_env_var ... ok
[INFO] [stdout] test components::repositories::tests::replacing_the_backends_swaps_the_whole_set ... ok
[INFO] [stdout] test config::tests::config_reads_every_setting ... ok
[INFO] [stdout] test config::tests::config_keeps_paths_verbatim_for_the_cli_to_normalise ... ok
[INFO] [stdout] test components::repositories::tests::the_picker_shows_a_colocated_repository_once_as_its_owner ... ok
[INFO] [stdout] test components::worktrees::tests::the_default_space_is_recognised_by_path_not_by_the_name_default ... ok
[INFO] [stdout] test config::tests::config_reads_global_and_per_repository_hooks ... ok
[INFO] [stdout] test config::tests::config_repo_entries_may_be_keyed_by_path ... ok
[INFO] [stdout] test config::tests::config_unknown_hook_key_is_reported ... ok
[INFO] [stdout] test config::tests::config_unknown_theme_lists_the_valid_schemes ... ok
[INFO] [stdout] test config::tests::config_theme_name_may_differ_in_case ... ok
[INFO] [stdout] test config::tests::config_unknown_backend_is_reported ... ok
[INFO] [stdout] test config::tests::persist_theme_refuses_to_overwrite_an_unparseable_file ... ok
[INFO] [stdout] test config::tests::persist_theme_preserves_comments_blank_lines_and_tables ... ok
[INFO] [stdout] test config::tests::config_unknown_key_is_reported_not_ignored ... ok
[INFO] [stdout] test config::tests::config_without_hooks_has_none ... ok
[INFO] [stdout] test dirs::tests::shanti_config_wins_over_everything ... ok
[INFO] [stdout] test config::tests::persist_theme_reports_a_write_failure_instead_of_panicking ... ok
[INFO] [stdout] test dirs::tests::the_default_is_a_dotfile_directory ... ok
[INFO] [stdout] test config::tests::config_wrong_type_reports_the_file_and_the_key ... ok
[INFO] [stdout] test config::tests::persist_theme_creates_a_missing_file_and_directory ... ok
[INFO] [stdout] test dirs::tests::xdg_config_home_is_honoured_before_the_default ... ok
[INFO] [stdout] test dirs::tests::shanti_data_wins_over_everything ... ok
[INFO] [stdout] test dirs::tests::the_data_default_is_the_xdg_state_directory ... ok
[INFO] [stdout] test config::tests::persist_theme_leaves_no_temporary_file_behind ... ok
[INFO] [stdout] test github::tests::cloning_rejects_a_name_that_is_not_one_path_segment ... ok
[INFO] [stdout] test config::tests::persist_theme_replaces_an_existing_key_in_place ... ok
[INFO] [stdout] test github::tests::test_parse_pr_url_missing_pull_segment ... ok
[INFO] [stdout] test dirs::tests::xdg_state_home_is_honoured_before_the_default ... ok
[INFO] [stdout] test github::tests::cloning_refuses_when_the_destination_already_exists ... ok
[INFO] [stdout] test github::tests::test_parse_pr_url_not_github ... ok
[INFO] [stdout] test github::tests::test_parse_pr_url_valid ... ok
[INFO] [stdout] test events::tests::dropping_the_source_joins_its_threads ... ok
[INFO] [stdout] test github::tests::test_parse_pr_url_non_numeric_number ... ok
[INFO] [stdout] test github::tests::discarding_leaves_anything_that_is_not_a_directory ... ok
[INFO] [stdout] test hooks::tests::a_copy_carries_an_ignored_file_into_the_space ... ok
[INFO] [stdout] test hooks::tests::a_command_that_does_not_exist_is_a_reported_failure ... ok
[INFO] [stdout] test hooks::tests::a_command_that_fails_keeps_its_output_and_leaves_the_space_alone ... ok
[INFO] [stdout] test events::tests::job_results_reach_the_loop ... ok
[INFO] [stdout] test hooks::tests::a_command_is_given_every_documented_value ... ok
[INFO] [stdout] test hooks::tests::a_command_that_succeeds_is_reported_as_ran ... ok
[INFO] [stdout] test hooks::tests::a_copy_that_escapes_the_repository_is_refused ... ok
[INFO] [stdout] test hooks::tests::a_directory_is_refused_with_a_reason ... ok
[INFO] [stdout] test hooks::tests::a_missing_source_is_skipped_not_failed ... ok
[INFO] [stdout] test hooks::tests::a_plan_can_move_to_another_thread ... ok
[INFO] [stdout] test hooks::tests::a_copy_creates_the_directories_it_needs ... ok
[INFO] [stdout] test hooks::tests::another_repositorys_hooks_are_not_run ... ok
[INFO] [stdout] test hooks::tests::copies_run_before_commands ... ok
[INFO] [stdout] test hooks::tests::hooks_do_nothing_without_configuration ... ok
[INFO] [stdout] test hooks::tests::global_hooks_apply_to_every_repository ... ok
[INFO] [stdout] test hooks::tests::output_is_truncated_to_its_tail ... ok
[INFO] [stdout] test hooks::tests::a_repository_can_be_keyed_by_its_path ... ok
[INFO] [stdout] test hooks::tests::repository_hooks_are_appended_to_the_global_ones ... ok
[INFO] [stdout] test hooks::tests::disabled_settings_plan_nothing ... ok
[INFO] [stdout] test events::tests::ticks_arrive_without_any_input ... ok
[INFO] [stdout] test jobs::in_flight::tests::an_abandoned_job_reports_no_category ... ok
[INFO] [stdout] test jobs::in_flight::tests::categories_are_counted_apart ... ok
[INFO] [stdout] test jobs::in_flight::tests::finishing_a_job_forgets_it_once ... ok
[INFO] [stdout] test jobs::in_flight::tests::a_repository_already_being_fetched_is_recognised ... ok
[INFO] [stdout] test jobs::in_flight::tests::a_round_can_be_taken_without_disturbing_the_others ... ok
[INFO] [stdout] test hooks::tests::the_backend_reaches_the_hook_as_its_label ... ok
[INFO] [stdout] test jobs::tests::a_result_carries_the_id_of_its_submission ... ok
[INFO] [stdout] test jobs::tests::a_panicking_job_becomes_an_error_and_leaves_the_pool_usable ... ok
[INFO] [stdout] test hooks::tests::commands_run_in_the_new_space ... ok
[INFO] [stdout] test hooks::tests::a_failing_hook_does_not_stop_the_ones_after_it ... ok
[INFO] [stdout] test jobs::tests::a_failing_job_comes_back_as_an_error_result ... ok
[INFO] [stdout] test hooks::tests::values_cannot_be_smuggled_into_the_command ... ok
[INFO] [stdout] test jobs::tests::dropping_the_worker_stops_its_threads ... ok
[INFO] [stdout] test keymap::tests::f1_opens_help_in_both_modes ... ok
[INFO] [stdout] test keymap::tests::question_mark_stays_a_literal_in_insert_mode ... ok
[INFO] [stdout] test keymap::tests::refresh_and_fetch_stay_literal_in_insert_mode ... ok
[INFO] [stdout] test keymap::tests::refresh_and_rescan_are_different_keys ... ok
[INFO] [stdout] test keymap::tests::the_theme_key_opens_the_picker_but_stays_literal_in_a_filter ... ok
[INFO] [stdout] test space_meta::tests::an_entry_whose_space_is_gone_is_dropped_on_the_next_write ... ok
[INFO] [stdout] test space_meta::tests::an_in_memory_store_writes_nothing ... ok
[INFO] [stdout] test space_meta::tests::an_unreadable_file_is_an_empty_memory ... ok
[INFO] [stdout] test space_meta::tests::what_is_remembered_survives_a_reload ... ok
[INFO] [stdout] test theme::scheme::tests::an_unknown_name_lists_the_valid_ones ... ok
[INFO] [stdout] test theme::scheme::tests::destructive_differs_from_danger_in_every_scheme ... ok
[INFO] [stdout] test theme::scheme::tests::lookup_is_forgiving_about_case_and_spacing ... ok
[INFO] [stdout] test theme::scheme::tests::names_are_unique_and_kebab_case ... ok
[INFO] [stdout] test theme::scheme::tests::the_catalogue_covers_light_and_dark ... ok
[INFO] [stdout] test theme::scheme::tests::the_default_name_is_the_default_theme ... ok
[INFO] [stdout] test theme::scheme::tests::warn_and_danger_differ_in_every_scheme ... ok
[INFO] [stdout] test theme::tests::default_is_tokyo_night ... ok
[INFO] [stdout] test theme::tests::styles_follow_the_installed_theme ... ok
[INFO] [stdout] test vcs::delete::tests::a_clean_pushed_space_is_safe_in_both_backends ... ok
[INFO] [stdout] test vcs::delete::tests::a_counted_dirty_worktree_says_how_many_files ... ok
[INFO] [stdout] test vcs::delete::tests::a_dirty_git_worktree_is_permanently_lost ... ok
[INFO] [stdout] test vcs::delete::tests::a_zero_count_is_treated_as_no_answer ... ok
[INFO] [stdout] test vcs::delete::tests::an_empty_jj_change_is_not_a_loss ... ok
[INFO] [stdout] test vcs::delete::tests::an_uncounted_dirty_worktree_still_names_the_loss ... ok
[INFO] [stdout] test vcs::delete::tests::an_unprobed_space_is_never_safe ... ok
[INFO] [stdout] test vcs::delete::tests::being_behind_the_upstream_is_not_a_loss ... ok
[INFO] [stdout] test vcs::delete::tests::counting_files_never_moves_the_gate ... ok
[INFO] [stdout] test vcs::delete::tests::counting_files_says_nothing_about_a_jj_space ... ok
[INFO] [stdout] test vcs::delete::tests::each_backend_is_described_in_its_own_vocabulary ... ok
[INFO] [stdout] test vcs::delete::tests::every_deletion_removes_something ... ok
[INFO] [stdout] test vcs::delete::tests::every_reading_gets_its_own_line ... ok
[INFO] [stdout] test vcs::delete::tests::git_says_the_branch_goes_with_the_worktree ... ok
[INFO] [stdout] test vcs::delete::tests::jj_says_the_bookmark_stays ... ok
[INFO] [stdout] test vcs::delete::tests::one_unpushed_commit_is_not_pluralised ... ok
[INFO] [stdout] test vcs::delete::tests::the_itemisation_never_disagrees_with_the_gate ... ok
[INFO] [stdout] test vcs::delete::tests::the_same_reading_is_recoverable_under_jj ... ok
[INFO] [stdout] test vcs::discover::tests::test_a_repository_with_one_backend_has_no_additional_backends ... ok
[INFO] [stdout] test vcs::discover::tests::test_additional_jj_workspace_is_not_a_repository_root ... ok
[INFO] [stdout] test vcs::discover::tests::test_bare_repository_is_a_repository_root ... ok
[INFO] [stdout] test vcs::discover::tests::test_colocated_repository_also_reports_git ... ok
[INFO] [stdout] test vcs::discover::tests::test_colocated_repository_is_driven_through_jj ... ok
[INFO] [stdout] test vcs::discover::tests::test_dot_git_file_is_not_a_repository_root ... ok
[INFO] [stdout] test jobs::tests::no_more_jobs_run_at_once_than_the_pool_has_threads ... ok
[INFO] [stdout] test vcs::discover::tests::test_jj_native_repository_is_discovered ... ok
[INFO] [stdout] test components::modal::tests::every_popup_draws_at_every_size ... ok
[INFO] [stdout] test vcs::discover::tests::test_git_checkout_is_a_git_repository ... ok
[INFO] [stdout] test vcs::discover::tests::test_list ... ok
[INFO] [stdout] test vcs::discover::tests::test_plain_directory_is_not_a_repository ... ok
[INFO] [stdout] test vcs::discover::tests::test_plain_git_repository_is_unaffected_by_jj_detection ... ok
[INFO] [stdout] test vcs::discover::tests::test_scan_skips_heavy_and_hidden_directories ... ok
[INFO] [stdout] test vcs::discover::tests::test_scan_stops_at_max_depth ... ok
[INFO] [stdout] test vcs::discover::tests::test_scan_excludes_the_spaces_dir ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_name_ignores_trailing_separator ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_backend_is_usable_through_the_trait_object ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_name_of_bare_repository ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_name_keeps_dots_in_the_directory_name ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_repo_snapshot_describes_the_repository ... ok
[INFO] [stdout] test vcs::git::backend::tests::test_name_of_normal_repository ... ok
[INFO] [stdout] test vcs::git::worktree::tests::test_delete_is_idempotent_when_the_branch_is_already_gone ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_created_space_is_listed_afterwards ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_deleted_space_leaves_no_registration_and_no_directory ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_directory_outside_any_jj_repository_is_an_error ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_fresh_workspace_reports_an_empty_change_and_nothing_upstream ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_matching_remote_bookmark_is_the_base ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_repository_with_no_mainline_starts_beside_the_working_copy ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_repository_with_two_extra_workspaces_lists_three_spaces ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_space_sitting_on_a_pushed_bookmark_is_in_sync ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_space_whose_bookmark_moved_on_without_a_push_is_ahead ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_space_whose_bookmark_was_deleted_upstream_is_gone ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_space_whose_directory_was_removed_by_hand_is_still_forgotten ... ok
[INFO] [stdout] test vcs::jj::backend::tests::a_workspace_with_recorded_edits_is_not_empty ... ok
[INFO] [stdout] test vcs::jj::backend::tests::an_unknown_name_falls_through_to_trunk ... ok
[INFO] [stdout] test vcs::jj::backend::tests::conflicted_empty_and_ahead_spaces_render_distinctly ... ok
[INFO] [stdout] test vcs::jj::backend::tests::creating_a_workspace_whose_name_is_taken_fails_with_jjs_complaint ... ok
[INFO] [stdout] test vcs::jj::backend::tests::deleting_a_space_keeps_the_work_it_held ... ok
[INFO] [stdout] test vcs::jj::backend::tests::deleting_the_repositorys_own_workspace_is_refused ... ok
[INFO] [stdout] test vcs::jj::backend::tests::deleting_the_same_space_twice_converges_on_removed ... ok
[INFO] [stdout] test vcs::jj::backend::tests::every_space_belongs_to_the_one_shared_repository ... ok
[INFO] [stdout] test vcs::jj::backend::tests::fetching_a_repository_with_no_remotes_is_not_an_error ... ok
[INFO] [stdout] test vcs::jj::backend::tests::spaces_sharing_one_bookmark_listing_keep_their_own_remote_state ... ok
[INFO] [stdout] test vcs::jj::backend::tests::the_backend_is_usable_through_the_trait_object ... ok
[INFO] [stdout] test vcs::jj::backend::tests::the_default_workspace_is_distinguishable_from_the_ones_shanti_added ... ok
[INFO] [stdout] test vcs::jj::backend::tests::the_destination_directorys_parents_are_created ... ok
[INFO] [stdout] test vcs::jj::backend::tests::the_guard_survives_a_renamed_default_workspace ... ok
[INFO] [stdout] test vcs::jj::backend::tests::work_beyond_the_bookmark_is_not_reported_as_in_sync ... ok
[INFO] [stdout] test vcs::git::worktree::tests::test_delete_removes_registration_branch_and_directory ... ok
[INFO] [stdout] test vcs::jj::base::tests::a_bookmark_deleted_upstream_is_not_a_base ... ok
[INFO] [stdout] test vcs::jj::base::tests::a_local_only_bookmark_is_not_a_remote_one ... ok
[INFO] [stdout] test vcs::jj::base::tests::a_quote_in_a_bookmark_name_cannot_escape_the_revset ... ok
[INFO] [stdout] test vcs::jj::base::tests::a_remote_bookmark_becomes_an_exact_revset ... ok
[INFO] [stdout] test vcs::jj::base::tests::another_bookmarks_remote_is_not_mistaken_for_this_ones ... ok
[INFO] [stdout] test vcs::jj::base::tests::no_mainline_means_no_revision_flag_at_all ... ok
[INFO] [stdout] test vcs::jj::base::tests::origin_wins_over_the_other_remotes_that_carry_the_same_name ... ok
[INFO] [stdout] test vcs::jj::base::tests::the_git_pseudo_remote_of_a_colocated_repository_is_ignored ... ok
[INFO] [stdout] test vcs::jj::base::tests::the_hints_speak_jj_not_git ... ok
[INFO] [stdout] test vcs::jj::base::tests::without_origin_the_first_remote_listed_is_used ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::a_failure_without_stderr_still_says_what_happened ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::a_missing_jj_binary_is_reported_without_mentioning_git_repos_breaking ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::a_non_zero_exit_becomes_an_error_carrying_trimmed_stderr ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::a_plain_file_without_an_execute_bit_is_not_the_jj_binary ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::an_executable_on_the_search_path_is_found ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::every_invocation_disables_the_pager_and_colour ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::every_invocation_names_the_repository_explicitly ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::global_flags_come_before_the_subcommand ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::non_utf8_stdout_is_an_error_rather_than_silently_mangled ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::probes_the_version_of_a_real_jj ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::reads_do_not_snapshot_the_working_copy ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::record_reads_ask_for_no_graph_and_an_explicit_template ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::success_returns_stdout_untouched ... ok
[INFO] [stdout] test vcs::jj::cmd::tests::writes_do_snapshot_the_working_copy ... ok
[INFO] [stdout] test vcs::git::worktree::tests::test_delete_cleans_up_when_the_directory_is_already_gone ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_bookmark_deleted_upstream_is_gone ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_bookmark_level_with_its_remote_is_in_sync ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_local_only_bookmark_does_not_shadow_a_tracked_one_on_the_same_head ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_local_only_bookmark_is_untracked_rather_than_in_sync ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_remote_ref_nothing_tracks_is_not_this_workspaces_upstream ... ok
[INFO] [stdout] test vcs::jj::status::tests::a_workspace_with_no_bookmark_has_nothing_upstream ... ok
[INFO] [stdout] test vcs::jj::status::tests::jjs_counts_are_read_from_the_local_bookmarks_point_of_view ... ok
[INFO] [stdout] test vcs::jj::status::tests::origin_wins_over_the_other_remotes_that_carry_the_same_name ... ok
[INFO] [stdout] test vcs::jj::status::tests::the_git_pseudo_remote_never_makes_a_bookmark_look_pushed ... ok
[INFO] [stdout] test vcs::jj::status::tests::the_template_only_looks_past_an_empty_working_copy ... ok
[INFO] [stdout] test vcs::jj::template::tests::a_field_count_mismatch_names_the_expected_fields ... ok
[INFO] [stdout] test vcs::jj::template::tests::a_list_field_drops_the_separators_jj_leaves_behind ... ok
[INFO] [stdout] test vcs::jj::template::tests::booleans_and_counts_are_read_strictly ... ok
[INFO] [stdout] test vcs::jj::template::tests::empty_output_is_no_records_not_an_error ... ok
[INFO] [stdout] test vcs::jj::template::tests::joins_fields_with_the_unit_separator_and_ends_the_record ... ok
[INFO] [stdout] test vcs::jj::template::tests::keeps_empty_fields_rather_than_dropping_them ... ok
[INFO] [stdout] test vcs::jj::template::tests::parses_one_record_per_line ... ok
[INFO] [stdout] test vcs::jj::template::tests::unknown_field_names_are_rejected ... ok
[INFO] [stdout] test vcs::jj::version::tests::discards_build_suffixes ... ok
[INFO] [stdout] test vcs::jj::version::tests::orders_by_component ... ok
[INFO] [stdout] test vcs::jj::version::tests::parses_the_version_banner ... ok
[INFO] [stdout] test vcs::jj::version::tests::rejects_output_without_a_version ... ok
[INFO] [stdout] test vcs::jj::version::tests::the_floor_accepts_itself_and_rejects_anything_older ... ok
[INFO] [stdout] test vcs::jj::version::tests::treats_a_missing_patch_as_zero ... ok
[INFO] [stdout] test vcs::jj::workspace::tests::a_non_boolean_flag_is_an_error_rather_than_a_false ... ok
[INFO] [stdout] test vcs::jj::workspace::tests::a_row_becomes_a_workspace ... ok
[INFO] [stdout] test vcs::jj::workspace::tests::a_workspace_on_no_bookmark_lists_none ... ok
[INFO] [stdout] test vcs::jj::workspace::tests::the_template_asks_jj_for_the_root_path_itself ... ok
[INFO] [stdout] test vcs::status::tests::a_clean_space_leaves_the_local_slot_blank ... ok
[INFO] [stdout] test vcs::jj::workspace::tests::an_unreadable_date_costs_the_tip_and_nothing_else ... ok
[INFO] [stdout] test vcs::status::tests::a_dirty_git_space_marks_the_local_slot ... ok
[INFO] [stdout] test vcs::status::tests::ahead_and_behind_get_their_own_glyphs ... ok
[INFO] [stdout] test vcs::status::tests::an_unprobed_space_is_assumed_to_hold_work ... ok
[INFO] [stdout] test vcs::status::tests::both_slots_can_speak_at_once ... ok
[INFO] [stdout] test vcs::status::tests::distinct_git_situations_stay_distinct ... ok
[INFO] [stdout] test vcs::status::tests::jj_states_are_shown_in_severity_order ... ok
[INFO] [stdout] test vcs::status::tests::status_is_an_owned_sendable_snapshot ... ok
[INFO] [stdout] test vcs::status::tests::unknown_keeps_the_backend_it_was_built_for ... ok
[INFO] [stdout] test vcs::status::tests::unpushed_work_covers_gone_and_untracked_upstreams ... ok
[INFO] [stdout] test vcs::status::tests::unsaved_work_is_backend_specific ... ok
[INFO] [stdout] test vcs::store::tests::a_colocated_repository_offers_one_choice_and_it_is_jj ... ok
[INFO] [stdout] test vcs::store::tests::a_space_is_routed_to_the_backend_that_owns_it ... ok
[INFO] [stdout] test vcs::store::tests::asking_for_an_unopened_backend_falls_back_to_the_owner ... ok
[INFO] [stdout] test vcs::store::tests::merging_replaces_a_repository_rather_than_duplicating_it ... ok
[INFO] [stdout] test vcs::store::tests::paths_are_deduplicated_across_backends ... ok
[INFO] [stdout] test vcs::store::tests::removing_a_repository_drops_every_backend_it_was_open_as ... ok
[INFO] [stdout] test vcs::tests::an_additional_backend_that_will_not_open_is_not_fatal ... ok
[INFO] [stdout] test vcs::tests::opening_a_find_honours_the_backend_the_walk_chose ... ok
[INFO] [stdout] test vcs::tests::repo_id_is_derived_from_path ... ok
[INFO] [stdout] test vcs::tests::space_dest_nests_the_space_under_its_repository ... ok
[INFO] [stdout] test vcs::tests::vcs_is_object_safe ... ok
[INFO] [stdout] test vcs::tip::tests::a_commit_from_the_future_is_not_negative ... ok
[INFO] [stdout] test vcs::tip::tests::an_undescribed_commit_says_so_rather_than_showing_a_blank ... ok
[INFO] [stdout] test vcs::tip::tests::the_age_is_one_coarse_unit ... ok
[INFO] [stdout] test jobs::tests::cancelling_a_queued_job_stops_it_from_running ... ok
[INFO] [stdout] test jobs::tests::dropping_the_worker_does_not_wait_for_a_stuck_job ... ok
[INFO] [stdout] test jobs::tests::quitting_mid_clone_leaves_the_directory_for_the_next_run ... ok
[INFO] [stdout] test jobs::tests::cancelling_a_running_job_suppresses_its_result ... ok
[INFO] [stdout] test jobs::tests::cancelling_a_clone_removes_the_directory_it_left_behind ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 341 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/shanti/7b10a3d5bd3d24e2/out/shanti-7b10a3d5bd3d24e2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/colocated.rs (/opt/rustwide/target/release/build/shanti/705c06417af495c8/out/colocated-705c06417af495c8)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test a_colocated_repository_lists_git_worktrees_alongside_jj_workspaces ... ok
[INFO] [stdout] test deleting_a_git_worktree_of_a_colocated_repository_leaves_jj_healthy ... ok
[INFO] [stdout] test the_create_prompt_chooses_git_or_jj_on_a_colocated_repository ... ok
[INFO] [stdout] test both_backends_of_a_colocated_repository_share_one_id ... ok
[INFO] [stderr]      Running tests/git_backend.rs (/opt/rustwide/target/release/build/shanti/4c7e7171f3e0c291/out/git_backend-4c7e7171f3e0c291)
[INFO] [stdout] test discovery_reports_both_backends_of_a_colocated_repository ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test create_space_in_a_repository_without_a_remote ... ok
[INFO] [stdout] test an_untracked_file_is_counted_and_guarded ... ok
[INFO] [stdout] test a_clean_tracking_space_is_free_to_delete ... ok
[INFO] [stdout] test a_failing_hook_leaves_a_real_space_intact ... ok
[INFO] [stdout] test a_dirty_space_is_a_permanent_loss ... ok
[INFO] [stdout] test a_never_pushed_space_is_not_free_to_delete ... ok
[INFO] [stdout] test delete_space_removes_the_branch ... ok
[INFO] [stdout] test a_missing_directory_yields_no_count ... ok
[INFO] [stdout] test create_space_tracks_a_matching_remote_branch ... ok
[INFO] [stdout] test delete_space_whose_directory_was_already_removed ... ok
[INFO] [stdout] test delete_space_removes_directory_and_registration ... ok
[INFO] [stdout] test a_created_space_is_listed ... ok
[INFO] [stdout] test creation_runs_the_configured_hooks_in_the_new_space ... ok
[INFO] [stdout] test creation_without_configured_hooks_plans_nothing ... ok
[INFO] [stdout] test create_space_without_a_remote_branch_starts_from_the_default_branch ... ok
[INFO] [stdout] test delete_space_whose_directory_was_already_removed_removes_the_branch ... ok
[INFO] [stdout] test ignored_files_are_not_counted ... ok
[INFO] [stdout] test the_count_covers_modified_staged_and_untracked_files ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/jj_backend.rs (/opt/rustwide/target/release/build/shanti/f76b42edd122fdee/out/jj_backend-f76b42edd122fdee)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test a_created_space_is_listed_at_the_chosen_path ... ok
[INFO] [stdout] test a_never_pushed_jj_space_is_guarded_but_recoverable ... ok
[INFO] [stdout] test a_pushed_jj_space_is_free_to_delete ... ok
[INFO] [stdout] test a_failing_hook_leaves_a_jj_workspace_intact ... ok
[INFO] [stdout] test a_conflicted_jj_space_says_so_in_jjs_own_words ... ok
[INFO] [stdout] test a_space_ahead_of_its_remote_is_ahead_and_not_behind ... ok
[INFO] [stdout] test a_bookmark_deleted_upstream_is_not_used_as_a_base ... ok
[INFO] [stdout] test conflicted_empty_and_ahead_spaces_are_distinguishable ... ok
[INFO] [stdout] test a_fresh_space_is_empty_and_never_pushed ... ok
[INFO] [stdout] test create_space_in_a_repository_without_a_remote ... ok
[INFO] [stdout] test create_space_starts_from_a_matching_remote_bookmark ... ok
[INFO] [stdout] test a_conflicted_space_is_reported_as_conflicted ... ok
[INFO] [stdout] test create_space_without_a_matching_remote_bookmark_starts_from_trunk ... ok
[INFO] [stdout] test delete_space_forgets_the_workspace_and_removes_the_directory ... ok
[INFO] [stdout] test a_space_is_not_rediscovered_as_a_repository ... ok
[INFO] [stdout] test a_space_opened_for_a_pull_request_lands_on_its_bookmark_and_can_be_pushed ... ok
[INFO] [stdout] test a_space_with_recorded_edits_is_not_empty ... ok
[INFO] [stdout] test fetching_a_repository_with_no_remotes_succeeds ... ok
[INFO] [stdout] test hooks_run_in_a_new_jj_workspace_and_are_told_the_backend ... ok
[INFO] [stdout] test jj_native_and_colocated_repositories_are_both_driven_through_jj ... ok
[INFO] [stdout] test deleting_a_space_twice_converges_on_removed ... ok
[INFO] [stdout] test deleting_the_repositorys_own_workspace_is_refused ... ok
[INFO] [stdout] test fetch_learns_about_a_bookmark_pushed_after_the_last_one ... ok
[INFO] [stdout] test a_space_whose_remote_moved_on_is_behind_and_not_ahead ... ok
[INFO] [stdout] test work_left_unsnapshotted_in_a_space_survives_its_deletion ... ok
[INFO] [stderr]      Running tests/render.rs (/opt/rustwide/target/release/build/shanti/15a5b36390b58684/out/render-15a5b36390b58684)
[INFO] [stdout] test delete_space_whose_directory_was_already_removed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test a_jj_workspace_draws_the_local_states_git_has_no_word_for ... ok
[INFO] [stdout] test a_repositorys_default_space_names_no_space_at_all ... ok
[INFO] [stdout] test an_empty_repos_dir_names_the_directory_it_scanned ... ok
[INFO] [stdout] test both_backends_name_themselves_in_one_list ... ok
[INFO] [stdout] test a_scan_in_flight_says_so ... ok
[INFO] [stdout] test a_long_repository_is_clipped_from_the_head_and_a_long_space_from_the_tail ... ok
[INFO] [stdout] test a_filter_that_matches_nothing_offers_the_filter_back ... ok
[INFO] [stdout] test below_the_floor_the_whole_frame_is_the_message ... ok
[INFO] [stdout] test below_the_floor_a_popup_declines_to_draw ... ok
[INFO] [stdout] test at_the_floor_a_destructive_dialog_keeps_its_gate_row ... ok
[INFO] [stdout] test a_short_repository_name_still_touches_the_separator ... ok
[INFO] [stdout] test column_widths_are_counted_in_cells_not_bytes ... ok
[INFO] [stdout] test repositories_without_spaces_say_how_to_make_one ... ok
[INFO] [stdout] test the_separator_falls_in_one_column_on_every_row ... ok
[INFO] [stdout] test the_list_holds_its_shape_at_both_extremes ... ok
[INFO] [stdout] test the_bottom_row_always_carries_guidance ... ok
[INFO] [stdout] test the_columns_are_measured_across_rows_that_are_off_screen ... ok
[INFO] [stdout] test every_git_status_pair_gets_its_own_two_glyphs ... ok
[INFO] [stdout] test every_popup_survives_the_narrowest_and_the_widest_terminal ... ok
[INFO] [stderr]      Running tests/state.rs (/opt/rustwide/target/release/build/shanti/058f6db400248f95/out/state-058f6db400248f95)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.11s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 93 tests
[INFO] [stdout] test a_narrow_terminal_falls_back_to_one_pane_and_the_picker ... ok
[INFO] [stdout] test a_merged_pr_on_an_existing_worktree_reports_why_nothing_was_created ... ok
[INFO] [stdout] test a_failing_pr_lookup_keeps_the_prompt_open_with_the_error ... ok
[INFO] [stdout] test a_message_shares_the_border_with_the_mode_and_the_footer ... ok
[INFO] [stdout] test a_pr_on_an_unknown_repo_offers_to_clone_it ... ok
[INFO] [stdout] test a_failing_hook_reports_and_leaves_the_space_intact ... ok
[INFO] [stdout] test a_pr_on_a_known_repo_opens_the_branch_prompt_prefilled ... ok
[INFO] [stdout] test a_pr_whose_branch_is_already_checked_out_just_selects_that_worktree ... ok
[INFO] [stdout] test a_short_terminal_drops_the_pane_and_keeps_the_list ... ok
[INFO] [stdout] test a_space_created_by_hand_shows_no_pr ... ok
[INFO] [stdout] test a_refresh_reports_progress_and_a_second_press_does_not_double_it ... ok
[INFO] [stdout] test a_second_enter_during_a_lookup_does_not_start_a_second_one ... ok
[INFO] [stdout] test a_space_created_from_a_pr_remembers_which_pr ... ok
[INFO] [stdout] test a_filter_typed_during_a_scan_survives_the_next_batch ... ok
[INFO] [stdout] test cancelling_the_confirm_modal_leaves_the_worktree_untouched ... ok
[INFO] [stdout] test a_submitted_pr_url_leaves_the_prompt_up_and_spinning ... ok
[INFO] [stdout] test cancelling_create_worktree_returns_to_the_worktree_list_with_no_residue ... ok
[INFO] [stdout] test auto_clone_skips_the_confirmation_and_goes_straight_to_the_picker ... ok
[INFO] [stdout] test create_worktree_ctrl_c_exits ... ok
[INFO] [stdout] test cancelling_the_pr_prompt_clears_the_typed_url ... ok
[INFO] [stdout] test confirming_a_clone_with_several_repos_dirs_asks_which_one ... ok
[INFO] [stdout] test confirm_modal_quit_exits ... ok
[INFO] [stdout] test create_worktree_with_an_empty_name_is_a_no_op_that_closes_the_prompt ... ok
[INFO] [stdout] test create_worktree_confirms_and_returns_to_the_worktree_list ... ok
[INFO] [stdout] test ctrl_r_opens_the_recent_spaces_jump_list ... ok
[INFO] [stdout] test delete_with_confirmation_on_an_empty_list_does_not_open_the_modal ... ok
[INFO] [stdout] test enter_cannot_delete_a_worktree_that_was_never_pushed ... ok
[INFO] [stdout] test delete_with_confirmation_opens_the_confirm_modal ... ok
[INFO] [stdout] test creating_a_space_copies_the_files_and_runs_the_commands ... ok
[INFO] [stdout] test confirming_the_delete_removes_the_worktree_and_returns_to_the_list ... ok
[INFO] [stdout] test force_delete_still_raises_the_dialog_when_work_would_be_lost ... ok
[INFO] [stdout] test help_over_repositories_returns_to_repositories_not_the_worktree_list ... ok
[INFO] [stdout] test help_opens_over_the_worktree_list_and_escape_returns ... ok
[INFO] [stdout] test fetching_reports_its_two_steps_and_then_goes_quiet ... ok
[INFO] [stdout] test force_delete_skips_the_dialog_only_when_nothing_would_be_lost ... ok
[INFO] [stdout] test creating_a_space_without_hooks_queues_nothing ... ok
[INFO] [stdout] test help_quit_exits ... ok
[INFO] [stdout] test help_toggles_closed_with_the_same_key ... ok
[INFO] [stdout] test help_over_the_clone_directory_picker_returns_to_the_picker ... ok
[INFO] [stdout] test keys_pressed_during_a_lookup_do_not_disturb_it ... ok
[INFO] [stdout] test i_enters_a_panes_filter_and_switching_pane_leaves_it ... ok
[INFO] [stdout] test moving_the_selection_moves_the_detail_pane_with_it ... ok
[INFO] [stdout] test escaping_a_pending_lookup_abandons_it ... ok
[INFO] [stdout] test multiple_repos_dirs_still_start_on_the_worktree_list ... ok
[INFO] [stdout] test pr_prompt_opens_in_insert_mode_and_escape_returns ... ok
[INFO] [stdout] test pr_prompt_ctrl_c_exits ... ok
[INFO] [stdout] test n_in_two_pane_opens_the_create_prompt_with_no_picker ... ok
[INFO] [stdout] test opening_the_create_prompt_does_not_open_the_repositories_filter ... ok
[INFO] [stdout] test pr_auto_clone_prompt_opens_in_insert_mode_and_escape_returns ... ok
[INFO] [stdout] test recent_spaces_enter_selects_a_path_and_exits ... ok
[INFO] [stdout] test recent_spaces_esc_closes_without_exiting ... ok
[INFO] [stdout] test refresh_drops_a_worktree_removed_externally ... ok
[INFO] [stdout] test repositories_insert_mode_filters_then_escape_returns_to_normal ... ok
[INFO] [stdout] test repositories_navigation_keys_are_consumed ... ok
[INFO] [stdout] test repositories_opens_and_escape_returns_to_the_worktree_list ... ok
[INFO] [stdout] test escape_unwinds_every_reachable_depth_back_to_the_worktree_list ... ok
[INFO] [stdout] test refresh_picks_up_a_worktree_created_externally ... ok
[INFO] [stdout] test repositories_quit_exits ... ok
[INFO] [stdout] test selecting_a_repository_opens_the_create_worktree_prompt_in_insert_mode ... ok
[INFO] [stdout] test starts_on_the_worktree_list_in_normal_mode ... ok
[INFO] [stdout] test rescanning_finds_a_repository_cloned_since_launch ... ok
[INFO] [stdout] test repositories_tab_toggles_between_filter_and_list ... ok
[INFO] [stdout] test submitting_an_unparseable_pr_url_keeps_the_prompt_open ... ok
[INFO] [stdout] test the_dialog_names_what_would_be_lost ... ok
[INFO] [stdout] test the_detail_pane_describes_the_highlighted_space ... ok
[INFO] [stdout] test tab_moves_focus_between_the_two_panes ... ok
[INFO] [stdout] test the_dialog_counts_every_file_it_says_it_counts ... ok
[INFO] [stdout] test the_empty_screen_names_the_scanned_path_or_tells_you_to_create_a_space ... ok
[INFO] [stdout] test stray_typing_then_enter_does_not_delete_the_worktree ... ok
[INFO] [stdout] test the_footer_follows_the_input_mode ... ok
[INFO] [stdout] test the_help_lists_refresh_and_fetch ... ok
[INFO] [stdout] test the_override_deletes_a_worktree_that_was_never_pushed ... ok
[INFO] [stdout] test the_footer_sheds_entries_on_a_narrow_terminal ... ok
[INFO] [stdout] test the_help_lists_the_theme_picker ... ok
[INFO] [stdout] test the_dialog_says_the_branch_goes_with_the_worktree ... ok
[INFO] [stdout] test the_guarded_dialog_still_quits_on_ctrl_c ... ok
[INFO] [stdout] test the_repository_picker_keeps_its_footer_in_filter_mode ... ok
[INFO] [stdout] test the_list_can_be_navigated_during_a_scan ... ok
[INFO] [stdout] test the_space_list_names_its_keys_without_opening_help ... ok
[INFO] [stdout] test the_first_frame_is_drawn_before_any_repository_is_found ... ok
[INFO] [stdout] test unbound_key_is_not_consumed ... ok
[INFO] [stdout] test the_theme_picker_previews_restores_and_persists ... ok
[INFO] [stdout] test worktrees_ctrl_c_exits ... ok
[INFO] [stdout] test worktrees_enter_selects_a_path_and_exits ... ok
[INFO] [stdout] test worktrees_insert_mode_types_into_the_filter ... ok
[INFO] [stdout] test the_spinner_reports_progress_and_then_goes_away ... ok
[INFO] [stdout] test worktree_rows_name_the_backend_that_owns_them ... ok
[INFO] [stdout] test worktrees_ctrl_c_exits_from_insert_mode ... ok
[INFO] [stdout] test uncommitted_changes_are_guarded_even_when_the_branch_is_pushed ... ok
[INFO] [stdout] test worktrees_insert_mode_char_keys_do_not_trigger_normal_mode_actions ... ok
[INFO] [stdout] test worktrees_normal_enters_and_leaves_insert_mode ... ok
[INFO] [stdout] test worktrees_q_exits ... ok
[INFO] [stdout] test the_spaces_pane_follows_the_highlighted_repository ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 93 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.98s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shanti
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf", kill_on_drop: false }`
[INFO] [stdout] 45e14a391f113b97e4445fba708dff3dd71f33596a67ccabf570d37a4b479ebf
