[INFO] fetching crate tedi 0.15.3... [INFO] testing tedi-0.15.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate tedi 0.15.3 into /workspace/builds/worker-3-tc2/source [INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config.toml [INFO] started tweaking crates.io crate tedi 0.15.3 [INFO] removed 0 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate tedi 0.15.3 [INFO] tweaked toml for crates.io crate tedi 0.15.3 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate tedi 0.15.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate tedi 0.15.3 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e675d890fddd0c9f44b84f0873c39beb34806730e964eac319c0beac0082fe57 [INFO] running `Command { std: "docker" "start" "-a" "e675d890fddd0c9f44b84f0873c39beb34806730e964eac319c0beac0082fe57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e675d890fddd0c9f44b84f0873c39beb34806730e964eac319c0beac0082fe57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e675d890fddd0c9f44b84f0873c39beb34806730e964eac319c0beac0082fe57", kill_on_drop: false }` [INFO] [stdout] e675d890fddd0c9f44b84f0873c39beb34806730e964eac319c0beac0082fe57 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c1fe1cbb75dfce00f1fcb21dca95394a8f8c115bf63f959d2822af7f83a506ed [INFO] running `Command { std: "docker" "start" "-a" "c1fe1cbb75dfce00f1fcb21dca95394a8f8c115bf63f959d2822af7f83a506ed", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling fs_extra v1.3.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling owo-colors v4.2.3 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling gimli v0.32.3 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling facet-core v0.42.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rustc-demangle v0.1.27 [INFO] [stderr] Compiling crunchy v0.2.4 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling aws-lc-rs v1.15.4 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling addr2line v0.25.1 [INFO] [stderr] Compiling aws-lc-sys v0.37.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling wayland-sys v0.31.8 [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling impls v1.0.3 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling dlib v0.5.2 [INFO] [stderr] Compiling wayland-backend v0.3.12 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling mutants v0.0.3 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling unsynn v0.3.0 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling equator v0.4.2 [INFO] [stderr] Compiling terminal_size v0.4.3 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling miette-derive v7.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling scoped-tls v1.0.1 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling supports-hyperlinks v3.2.0 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling supports-unicode v3.0.0 [INFO] [stderr] Compiling typeid v1.0.3 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Compiling wayland-scanner v0.31.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling aligned-vec v0.6.4 [INFO] [stderr] Compiling facet-macro-types v0.42.0 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling facet-macro-parse v0.42.0 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling v_frame v0.3.9 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling const-random v0.1.18 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling facet-reflect v0.42.0 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling as-slice v0.2.1 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Compiling drm-sys v0.8.0 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Compiling wayland-client v0.31.12 [INFO] [stderr] Compiling erased-serde v0.4.9 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling aligned v0.4.3 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling facet-solver v0.42.0 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling dlv-list v0.5.2 [INFO] [stderr] Compiling facet-macros-impl v0.42.0 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling facet-path v0.42.0 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling core2 v0.4.0 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling facet v0.42.0 [INFO] [stderr] Compiling linux-raw-sys v0.6.5 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Compiling y4m v0.8.0 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling facet-singularize v0.42.0 [INFO] [stderr] Compiling drm-fourcc v2.2.0 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling ordered-multimap v0.7.3 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling facet-format v0.42.0 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling profiling v1.0.17 [INFO] [stderr] Compiling bitstream-io v4.9.0 [INFO] [stderr] Compiling tracing-error v0.2.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling av1-grain v0.2.5 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling hashlink v0.10.0 [INFO] [stderr] Compiling maybe-rayon v0.1.1 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling facet-macros v0.42.0 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Compiling r-egl v0.7.1 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling gbm-sys v0.4.0 [INFO] [stderr] Compiling arraydeque v0.5.1 [INFO] [stderr] Compiling v_utils_macros v2.11.29 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling imgref v1.12.0 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling loop9 v0.1.5 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling yaml-rust2 v0.10.4 [INFO] [stderr] Compiling zune-jpeg v0.4.21 [INFO] [stderr] Compiling toml v0.9.11+spec-1.1.0 [INFO] [stderr] Compiling wayland-protocols v0.32.10 [INFO] [stderr] Compiling fax v0.2.6 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling drm-ffi v0.9.0 [INFO] [stderr] Compiling serde-untagged v0.1.9 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling json5 v0.4.1 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling gl v0.14.0 [INFO] [stderr] Compiling rust-ini v0.21.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling const_format_proc_macros v0.2.34 [INFO] [stderr] Compiling ron v0.12.0 [INFO] [stderr] Compiling convert_case v0.6.0 [INFO] [stderr] Compiling avif-serialize v0.8.6 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling rgb v0.8.52 [INFO] [stderr] Compiling function_name-proc-macro v0.3.0 [INFO] [stderr] Compiling v_utils v2.15.29 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling bit_field v0.10.3 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling pulldown-cmark v0.13.0 [INFO] [stderr] Compiling lebe v0.5.3 [INFO] [stderr] Compiling zune-jpeg v0.5.12 [INFO] [stderr] Compiling exr v1.74.0 [INFO] [stderr] Compiling ravif v0.12.0 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling function_name v0.3.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling config v0.15.19 [INFO] [stderr] Compiling gif v0.14.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling clap v4.5.57 [INFO] [stderr] Compiling png v0.18.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling const_format v0.2.35 [INFO] [stderr] Compiling drm v0.14.1 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling tiff v0.10.3 [INFO] [stderr] Compiling facet-json v0.42.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling facet-toml v0.42.0 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling wayland-server v0.31.11 [INFO] [stderr] Compiling derive-new v0.7.0 [INFO] [stderr] Compiling jiff v0.2.19 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling xdg v3.0.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling macro-attr v0.2.0 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling gbm v0.18.0 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling r-egl-wayland v0.7.1 [INFO] [stderr] Compiling wayland-protocols-wlr v0.3.10 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling memmap2 v0.9.9 [INFO] [stderr] Compiling tedi v0.15.3 (/opt/rustwide/workdir) [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling pulldown-cmark-to-cmark v22.0.0 [INFO] [stderr] Compiling clap_complete v4.5.65 [INFO] [stderr] Compiling async_from v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling pandoc v0.8.11 [INFO] [stderr] Compiling smart-default v0.7.1 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling copy_arrayvec v0.1.1 [INFO] [stderr] Compiling libwayshot v0.7.2 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling ask_llm v2.1.4 [INFO] [stdout] warning: feature `vec_peek_mut` is declared but not used [INFO] [stdout] --> src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(vec_peek_mut)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `try_blocks` is declared but not used [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(try_blocks)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7m 00s [INFO] running `Command { std: "docker" "inspect" "c1fe1cbb75dfce00f1fcb21dca95394a8f8c115bf63f959d2822af7f83a506ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1fe1cbb75dfce00f1fcb21dca95394a8f8c115bf63f959d2822af7f83a506ed", kill_on_drop: false }` [INFO] [stdout] c1fe1cbb75dfce00f1fcb21dca95394a8f8c115bf63f959d2822af7f83a506ed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f348e9d867b55632e38d8c1b6a8004c6cfc025a501abfb081196b841a97b9ace [INFO] running `Command { std: "docker" "start" "-a" "f348e9d867b55632e38d8c1b6a8004c6cfc025a501abfb081196b841a97b9ace", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling dtor-proc-macro v0.0.6 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling v_fixtures v0.3.4 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling dtor v0.1.1 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Compiling const-random v0.1.18 [INFO] [stderr] Compiling dlv-list v0.5.2 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling wayland-sys v0.31.8 [INFO] [stderr] Compiling ordered-multimap v0.7.3 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling backtrace-ext v0.2.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling rust-ini v0.21.3 [INFO] [stderr] Compiling miette v7.6.0 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Compiling aws-lc-sys v0.37.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling wayland-backend v0.3.12 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling facet-reflect v0.42.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling wayland-client v0.31.12 [INFO] [stderr] Compiling facet-solver v0.42.0 [INFO] [stderr] Compiling facet-format v0.42.0 [INFO] [stderr] Compiling wayland-protocols v0.32.10 [INFO] [stderr] Compiling facet-json v0.42.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling ravif v0.12.0 [INFO] [stderr] Compiling facet-toml v0.42.0 [INFO] [stderr] Compiling wayland-server v0.31.11 [INFO] [stderr] Compiling config v0.15.19 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling gbm-sys v0.4.0 [INFO] [stderr] Compiling r-egl v0.7.1 [INFO] [stderr] Compiling v_utils v2.15.29 [INFO] [stderr] Compiling gbm v0.18.0 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling wayland-protocols-wlr v0.3.10 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling r-egl-wayland v0.7.1 [INFO] [stderr] Compiling memmap2 v0.9.9 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling libwayshot v0.7.2 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling ctor-proc-macro v0.0.7 [INFO] [stderr] Compiling ctor v0.6.3 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling insta v1.46.3 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling aws-lc-rs v1.15.4 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling ask_llm v2.1.4 [INFO] [stderr] Compiling tedi v0.15.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: feature `vec_peek_mut` is declared but not used [INFO] [stdout] --> src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(vec_peek_mut)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `vec_peek_mut` is declared but not used [INFO] [stdout] --> src/lib.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(vec_peek_mut)] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `try_blocks` is declared but not used [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(try_blocks)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: feature `try_blocks` is declared but not used [INFO] [stdout] --> src/main.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | #![feature(try_blocks)] [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 50s [INFO] running `Command { std: "docker" "inspect" "f348e9d867b55632e38d8c1b6a8004c6cfc025a501abfb081196b841a97b9ace", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f348e9d867b55632e38d8c1b6a8004c6cfc025a501abfb081196b841a97b9ace", kill_on_drop: false }` [INFO] [stdout] f348e9d867b55632e38d8c1b6a8004c6cfc025a501abfb081196b841a97b9ace [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8735d677824f6daf5fe745bcecf6e2ce88d53adffbda3f2ed797f106f3c0993d [INFO] running `Command { std: "docker" "start" "-a" "8735d677824f6daf5fe745bcecf6e2ce88d53adffbda3f2ed797f106f3c0993d", kill_on_drop: false }` [INFO] [stderr] warning: feature `vec_peek_mut` is declared but not used [INFO] [stderr] --> src/lib.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(vec_peek_mut)] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `tedi` (lib) generated 1 warning [INFO] [stderr] warning: feature `try_blocks` is declared but not used [INFO] [stderr] --> src/main.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(try_blocks)] [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `tedi` (bin "tedi") generated 1 warning [INFO] [stderr] warning: `tedi` (bin "tedi" test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `tedi` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.70s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tedi-326a2eacea452114) [INFO] [stdout] [INFO] [stdout] running 75 tests [INFO] [stdout] test issue::blocker::tests::test_join_with_blockers_empty ... ok [INFO] [stdout] test github::tests::test_is_github_issue_url ... ok [INFO] [stdout] test github::tests::test_parse_github_issue_url_ssh_error ... ok [INFO] [stdout] test github::tests::test_parse_github_issue_url ... ok [INFO] [stdout] test github::tests::test_parse_github_issue_url_errors ... ok [INFO] [stdout] test issue::blocker::tests::test_parse_simple_items ... ok [INFO] [stdout] test issue::blocker::tests::test_parse_deeply_nested ... ok [INFO] [stdout] test issue::blocker::tests::test_parse_nested_items ... ok [INFO] [stdout] test issue::blocker::tests::test_parse_comments_then_children ... ok [INFO] [stdout] test issue::blocker::tests::test_serialize_roundtrip ... ok [INFO] [stdout] test issue::blocker::tests::test_split_blockers_no_marker ... ok [INFO] [stdout] test issue::blocker::tests::test_join_with_blockers_non_empty ... ok [INFO] [stdout] test issue::blocker::tests::test_split_blockers_with_marker ... ok [INFO] [stdout] test issue::blocker::tests::test_split_join_roundtrip ... ok [INFO] [stdout] test issue::events::tests::test_empty ... ok [INFO] [stdout] test issue::events::tests::test_from_inline_text ... ok [INFO] [stdout] test issue::events::tests::test_from_plain_text ... ok [INFO] [stdout] test issue::blocker::tests::test_is_empty ... ok [INFO] [stdout] test issue::blocker::tests::test_serialize_nested_roundtrip ... ok [INFO] [stdout] test issue::events::tests::test_parse_simple_text ... ok [INFO] [stdout] test issue::marker::tests::test_decode_new_comment ... ok [INFO] [stdout] test issue::events::tests::test_parse_with_formatting ... ok [INFO] [stdout] test issue::marker::tests::test_decode_comment ... ok [INFO] [stdout] test issue::marker::tests::test_decode_omitted ... ok [INFO] [stdout] test issue::marker::tests::test_encode ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_decode_pending ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_encode ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_decode_linked ... ok [INFO] [stdout] test issue::marker::tests::test_decode_issue_marker_via_marker ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_parse_from_end ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_roundtrip ... ok [INFO] [stdout] test issue::marker::tests::test_roundtrip ... ok [INFO] [stdout] test issue::marker::tests::test_decode_blockers_section ... ok [INFO] [stdout] test issue::types::tests::test_close_state_is_closed ... ok [INFO] [stdout] test issue::types::tests::test_close_state_should_remove ... ok [INFO] [stdout] test issue::types::tests::test_close_state_from_checkbox ... ok [INFO] [stdout] test issue::types::tests::test_close_state_to_checkbox ... ok [INFO] [stdout] test issue::types::tests::test_close_state_to_github_state ... ok [INFO] [stdout] test issue::marker::tests::test_issue_marker_decode_virtual ... ok [INFO] [stdout] test issue::types::tests::test_find_last_blocker_position_empty ... ok [INFO] [stdout] test issue::types::tests::test_find_last_blocker_position_with_nesting ... ok [INFO] [stdout] test issue::types::tests::test_find_last_blocker_position_multiple_items ... ok [INFO] [stdout] test issue::types::tests::test_find_last_blocker_position_before_sub_issues ... ok [INFO] [stdout] test issue::types::tests::test_find_last_blocker_position_single_item ... ok [INFO] [stdout] test issue::types::tests::test_parse_and_serialize_not_planned ... ok [INFO] [stdout] test issue::blocker::tests::test_parse_items_with_comments ... ok [INFO] [stdout] test issue::types::tests::test_non_owned_issue_body_gets_extra_indent ... ok [INFO] [stdout] test issue::types::tests::test_parse_virtual_child_closed_to_open ... ok [INFO] [stdout] test issue::types::tests::test_parse_virtual_child_open_to_closed ... ok [INFO] [stdout] test issue::types::tests::test_parse_sub_issue_close_types ... ok [INFO] [stdout] test issue::types::tests::test_parse_invalid_checkbox_returns_error ... ok [INFO] [stdout] test issue::blocker::tests::test_blocker_sequence_strips_empty_lines ... ok [INFO] [stdout] test issue::types::tests::test_parse_virtual_child_open_to_duplicate ... ok [INFO] [stdout] test issue::types::tests::test_parse_virtual_child_open_to_not_planned ... ok [INFO] [stdout] test issue::types::tests::test_serialize_filesystem_no_children ... ok [INFO] [stdout] test issue::types::tests::test_parse_and_serialize_duplicate ... ok [INFO] [stdout] test issue::types::tests::test_serialize_github_body_only ... ok [INFO] [stdout] test issue::types::tests::test_virtual_roundtrip ... ok [INFO] [stdout] test issue::types::tests::test_parse_virtual_includes_inline_children ... ok [INFO] [stdout] test local::conflict::tests::test_has_conflict_markers ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_body_changed ... ok [INFO] [stdout] test issue::types::tests::test_serialize_virtual_includes_children ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_comment_deleted ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_pending_comment ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_no_changes ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_state_changed ... ok [INFO] [stdout] test sink::tests::test_compute_node_diff_pending_child ... ok [INFO] [stdout] test tests::test_header_content_eq_ignore_case ... ok [INFO] [stdout] test tests::test_header_new ... ok [INFO] [stdout] test tests::test_header_decode ... ok [INFO] [stdout] test tests::test_header_encode ... ok [INFO] [stdout] test tests::test_header_roundtrip ... ok [INFO] [stdout] test local::conflict::tests::test_conflict_file_path ... ok [INFO] [stdout] test issue::types::tests::test_parse_checkbox_prefix ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tedi-de772e66a10a625e) [INFO] [stdout] test issue::events::tests::test_roundtrip_simple ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 35 tests [INFO] [stdout] test blocker_interactions::operations::tests::test_comments_preserved ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_add ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_add_to_section ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_current_skips_comments ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_deeply_nested ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_current ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_current_with_context_no_hierarchy ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_current_with_context_with_hierarchy ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_multiple_top_sections ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_parse_and_serialize ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_nested_items ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_pop ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_is_empty ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_items_before_children ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_pop_empty ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_pop_from_section ... ok [INFO] [stdout] test mock_github::tests::test_mock_basic_operations ... ok [INFO] [stdout] test mock_github::tests::test_mock_fetch_parent_issue ... ok [INFO] [stdout] test mock_github::tests::test_mock_call_log ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_force_always_takes_other ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_newer_wins ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_none_takes_some ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_older_keeps_self ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_pending_uses_default_timestamps ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_same_timestamp_keeps_self ... ok [INFO] [stdout] test open_interactions::merge::tests::test_merge_virtual_error ... ok [INFO] [stdout] test open_interactions::touch::tests::test_parse_touch_path_errors ... ok [INFO] [stdout] test utils::tests::test_correct_day ... ok [INFO] [stdout] test mock_github::tests::test_mock_comments ... ok [INFO] [stdout] test utils::tests::test_format_date ... ok [INFO] [stdout] test utils::tests::test_same_day_buffer ... ok [INFO] [stdout] test mock_github::tests::test_mock_sub_issues ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_serialize_roundtrip ... ok [INFO] [stdout] test mock_github::tests::test_mock_create_issue ... ok [INFO] [stdout] test blocker_interactions::operations::tests::test_current_with_context_multi_level_hierarchy ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s [INFO] [stdout] [INFO] [stderr] Running tests/integration/main.rs (/opt/rustwide/target/debug/deps/integration-ca1dbfe8281ffb10) [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling ask_llm v2.1.4 [INFO] [stderr] Compiling tedi v0.15.3 (/opt/rustwide/workdir) [INFO] [stderr] warning: feature `vec_peek_mut` is declared but not used [INFO] [stderr] --> src/lib.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(vec_peek_mut)] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `tedi` (lib) generated 1 warning [INFO] [stderr] warning: feature `try_blocks` is declared but not used [INFO] [stderr] --> src/main.rs:1:12 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(try_blocks)] [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_features)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `tedi` (bin "tedi") generated 1 warning [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.72s [INFO] [stdout] test blocker_integrated::test_blocker_add_urgent_without_blocker_file_set ... ok [INFO] [stdout] test file_naming::test_old_flat_file_removed_when_sub_issues_appear ... FAILED [INFO] [stdout] test blocker_integrated::test_blocker_pop_in_integrated_mode ... FAILED [INFO] [stdout] test blocker_integrated::test_blocker_add_creates_blockers_section_if_missing ... FAILED [INFO] [stdout] test blocker_integrated::test_blocker_add_in_integrated_mode ... FAILED [INFO] [stdout] test file_naming::test_duplicate_removes_local_file ... FAILED [INFO] [stdout] test file_naming::test_flat_format_preserved_when_no_sub_issues ... FAILED [INFO] [stdout] test blocker_integrated::test_blocker_add_with_nested_context ... FAILED [INFO] [stdout] test file_naming::test_duplicate_reference_to_existing_issue_succeeds ... FAILED [INFO] [stdout] test issue_preservation::test_closing_nested_issue_creates_bak_file ... FAILED [INFO] [stdout] test issue_preservation::test_blockers_added_during_edit_preserved ... FAILED [INFO] [stdout] test issue_preservation::test_nested_issues_and_blockers_together ... FAILED [INFO] [stdout] test issue_preservation::test_blockers_with_nesting_preserved ... FAILED [INFO] [stdout] test file_naming::test_old_placement_discarded_with_pull ... FAILED [INFO] [stdout] test issue_preservation::test_comments_with_ids_sync_correctly ... FAILED [INFO] [stdout] test issue_preservation::test_nested_issues_preserved_through_sync ... FAILED [INFO] [stdout] test issue_preservation::test_blockers_preserved_through_sync ... FAILED [INFO] [stdout] test reset_conflict::test_reset_with_body_edit ... FAILED [INFO] [stdout] test reset_conflict::test_reset_discards_local_subissue_modifications ... FAILED [INFO] [stdout] test reset_conflict::test_reset_with_subissue_edit ... FAILED [INFO] [stdout] test sync::test_both_diverged_merge_winner::case_2_local_wins ... ok [INFO] [stdout] test sync::test_both_diverged_merge_winner::case_1_remote_wins ... FAILED [INFO] [stdout] test sync::test_closing_issue_syncs_state_change ... FAILED [INFO] [stdout] test sync::test_comment_shorthand_creates_comment ... FAILED [INFO] [stdout] test sync::test_consensus_sink_writes_meta_json_with_timestamps ... FAILED [INFO] [stdout] test sync::test_duplicate_sub_issues_filtered_from_remote ... FAILED [INFO] [stdout] test sync::test_only_local_changed_pushes_local ... FAILED [INFO] [stdout] test sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote ... FAILED [INFO] [stdout] test sync::test_open_by_number_unchanged_succeeds ... FAILED [INFO] [stdout] test sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local ... FAILED [INFO] [stdout] test sync::test_open_unchanged_succeeds ... FAILED [INFO] [stdout] test sync::test_only_remote_changed_takes_remote_with_pull ... FAILED [INFO] [stdout] test sync::test_undo_shorthand_aborts_sync ... FAILED [INFO] [stdout] test touch::test_break_to_edit_allows_mid_execution_modification ... FAILED [INFO] [stdout] test sync::test_pull_fetches_before_editor ... FAILED [INFO] [stdout] test sync::test_pull_with_divergence_runs_sync_before_editor ... FAILED [INFO] [stdout] test sync::test_reset_syncs_changes_after_editor ... FAILED [INFO] [stdout] test sync::test_reset_with_remote_url_skips_merge_on_divergence ... FAILED [INFO] [stdout] test sync::test_reset_with_local_source_skips_sync ... FAILED [INFO] [stdout] test sync::test_url_open_creates_local_file_from_remote ... FAILED [INFO] [stdout] test sync::test_reset_with_remote_url_nukes_local_state ... FAILED [INFO] [stdout] test touch::test_nested_issue_under_unsynced_parent_offline ... FAILED [INFO] [stdout] test touch::test_touch_matches_issue_by_substring ... FAILED [INFO] [stdout] test touch::test_nested_issue_under_unsynced_parent_online ... FAILED [INFO] [stdout] test touch::test_touch_new_subissue_no_edits_does_not_create ... FAILED [INFO] [stdout] test touch::test_touch_path_with_more_segments_after_flat_file_match ... FAILED [INFO] [stdout] test touch_parent::test_parent_default_errors_for_nonexistent_github_repo ... ok [INFO] [stdout] test touch_parent::test_parent_virtual_creates_virtual_project ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- file_naming::test_old_flat_file_removed_when_sub_issues_appear stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:55.078715Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:55.078763Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:55.080747Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:55.080810Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:55.088770Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_DJxHFs/data/tedi/issues/o/r/1_-_Parent_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_DJxHFs/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_DJxHFs/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/file_naming.rs:59 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::file_naming::test_old_flat_file_removed_when_sub_issues_appear::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:59 [INFO] [stdout] 57 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 58 │ [INFO] [stdout]  59 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 60 │ [INFO] [stdout] 61 │ // Old flat file should be removed [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::file_naming::test_old_flat_file_removed_when_sub_issues_appear [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:65 [INFO] [stdout] 63 │ [INFO] [stdout] 64 │ // New directory format should exist [INFO] [stdout]  65 >  assert!(ctx.dir_issue_path(("o", "r").into(), 1, "Parent Issue").exists(), "Directory format file should be created"); [INFO] [stdout] 66 │ } [INFO] [stdout] 67 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::file_naming::test_old_flat_file_removed_when_sub_issues_appear::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:35 [INFO] [stdout] 33 │ [INFO] [stdout] 34 │ #[tokio::test] [INFO] [stdout]  35 > async fn test_old_flat_file_removed_when_sub_issues_appear() { [INFO] [stdout] 36 │ let ctx = TestContext::build(""); [INFO] [stdout] 37 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- blocker_integrated::test_blocker_pop_in_integrated_mode stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:54.982600Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.982654Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987281Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987402Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987430Z DEBUG tedi::issue::types: [parse] blocker line: "- Second task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987452Z DEBUG tedi::issue::types: [parse] blocker line: "- Third task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987623Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987662Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987684Z DEBUG tedi::issue::types: [parse] blocker line: "- Second task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987704Z DEBUG tedi::issue::types: [parse] blocker line: "- Third task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987878Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987913Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987935Z DEBUG tedi::issue::types: [parse] blocker line: "- Second task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.987955Z DEBUG tedi::issue::types: [parse] blocker line: "- Third task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.988085Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.988170Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.988198Z DEBUG tedi::issue::types: [parse] blocker line: "- Second task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.988220Z DEBUG tedi::issue::types: [parse] blocker line: "- Third task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: blocker pop should succeed in integrated mode. stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/blocker_integrated.rs:77 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::blocker_integrated::test_blocker_pop_in_integrated_mode::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:77 [INFO] [stdout] 75 │ [INFO] [stdout] 76 │ // The pop command should succeed [INFO] [stdout]  77 >  assert!(out.status.success(), "blocker pop should succeed in integrated mode. stderr: {}", out.stderr); [INFO] [stdout] 78 │ [INFO] [stdout] 79 │ // Should show what was popped [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::blocker_integrated::test_blocker_pop_in_integrated_mode [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:90 [INFO] [stdout] 88 │ assert!(!content.contains("Third task"), "Third task should be removed. Got: {content}"); [INFO] [stdout] 89 │ assert!(content.contains("First task"), "First task should remain. Got: {content}"); [INFO] [stdout]  90 >  assert!(content.contains("Second task"), "Second task should remain. Got: {content}"); [INFO] [stdout] 91 │ } [INFO] [stdout] 92 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::blocker_integrated::test_blocker_pop_in_integrated_mode::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:49 [INFO] [stdout] 47 │ [INFO] [stdout] 48 │ #[tokio::test] [INFO] [stdout]  49 > async fn test_blocker_pop_in_integrated_mode() { [INFO] [stdout] 50 │ let ctx = TestContext::build(""); [INFO] [stdout] 51 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- blocker_integrated::test_blocker_add_creates_blockers_section_if_missing stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:54.986672Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.986737Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: blocker add should succeed even without existing blockers section. stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/blocker_integrated.rs:114 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_creates_blockers_section_if_missing::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:114 [INFO] [stdout] 112 │ [INFO] [stdout] 113 │ // The add command should succeed [INFO] [stdout]  114 >  assert!(out.status.success(), "blocker add should succeed even without existing blockers section. stderr: {}", out.stderr); [INFO] [stdout] 115 │ [INFO] [stdout] 116 │ // Verify the blockers section was created with the new task [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_creates_blockers_section_if_missing [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:119 [INFO] [stdout] 117 │ let content = read_issue_file(&issue_path); [INFO] [stdout] 118 │ assert!(content.contains("# Blockers"), "Blockers section should be created. Got: {content}"); [INFO] [stdout]  119 >  assert!(content.contains("New task"), "New blocker should be added. Got: {content}"); [INFO] [stdout] 120 │ } [INFO] [stdout] 121 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_creates_blockers_section_if_missing::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:94 [INFO] [stdout] 92 │ [INFO] [stdout] 93 │ #[tokio::test] [INFO] [stdout]  94 > async fn test_blocker_add_creates_blockers_section_if_missing() { [INFO] [stdout] 95 │ let ctx = TestContext::build(""); [INFO] [stdout] 96 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- blocker_integrated::test_blocker_add_in_integrated_mode stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:54.984151Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.984198Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.990399Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.990547Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.990784Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991005Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992624Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992651Z DEBUG tedi::issue::types: [parse] blocker line: "- First task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: blocker add should succeed in integrated mode. stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/blocker_integrated.rs:40 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_in_integrated_mode::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:40 [INFO] [stdout] 38 │ [INFO] [stdout] 39 │ // The add command should succeed [INFO] [stdout]  40 >  assert!(out.status.success(), "blocker add should succeed in integrated mode. stderr: {}", out.stderr); [INFO] [stdout] 41 │ [INFO] [stdout] 42 │ // Verify the blocker was added to the issue file [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_in_integrated_mode [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:45 [INFO] [stdout] 43 │ let content = read_issue_file(&issue_path); [INFO] [stdout] 44 │ assert!(content.contains("New task from CLI"), "New blocker should be added to issue file. Got: {content}"); [INFO] [stdout]  45 >  assert!(content.contains("First task"), "Existing blockers should be preserved. Got: {content}"); [INFO] [stdout] 46 │ } [INFO] [stdout] 47 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_in_integrated_mode::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:14 [INFO] [stdout] 12 │ [INFO] [stdout] 13 │ #[tokio::test] [INFO] [stdout]  14 > async fn test_blocker_add_in_integrated_mode() { [INFO] [stdout] 15 │ let ctx = TestContext::build(""); [INFO] [stdout] 16 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- file_naming::test_duplicate_removes_local_file stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IK9dXk/o/r/1.md": [INFO] [stdout] - [999] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] stdout: 2026-04-10T11:08:54.986737Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.986773Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989403Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989475Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991163Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_IK9dXk/data/tedi/issues/o/r/1_-_Some_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_IK9dXk/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed when marking as duplicate. stderr: [mock] Loaded state from /tmp/v_fixture_IK9dXk/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/file_naming.rs:129 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::file_naming::test_duplicate_removes_local_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:129 [INFO] [stdout] 127 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 128 │ [INFO] [stdout]  129 >  assert!(out.status.success(), "Should succeed when marking as duplicate. stderr: {}", out.stderr); [INFO] [stdout] 130 │ [INFO] [stdout] 131 │ // Original file should be removed (duplicate self-eliminates) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::file_naming::test_duplicate_removes_local_file [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:135 [INFO] [stdout] 133 │ !ctx.flat_issue_path(("o", "r").into(), 1, "Some Issue").exists(), [INFO] [stdout] 134 │ "Issue file should be removed after marking as duplicate" [INFO] [stdout]  135 >  ); [INFO] [stdout] 136 │ } [INFO] [stdout] 137 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::file_naming::test_duplicate_removes_local_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:111 [INFO] [stdout] 109 │ [INFO] [stdout] 110 │ #[tokio::test] [INFO] [stdout]  111 > async fn test_duplicate_removes_local_file() { [INFO] [stdout] 112 │ let ctx = TestContext::build(""); [INFO] [stdout] 113 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- file_naming::test_flat_format_preserved_when_no_sub_issues stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:54.979396Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.979450Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.981990Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.982051Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.983033Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_rYubHY/data/tedi/issues/o/r/1_-_Parent_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_rYubHY/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_rYubHY/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/file_naming.rs:25 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::file_naming::test_flat_format_preserved_when_no_sub_issues::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:25 [INFO] [stdout] 23 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 24 │ [INFO] [stdout]  25 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 26 │ [INFO] [stdout] 27 │ // Flat file should still exist [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::file_naming::test_flat_format_preserved_when_no_sub_issues [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:31 [INFO] [stdout] 29 │ [INFO] [stdout] 30 │ // Directory format should NOT exist [INFO] [stdout]  31 >  assert!(!ctx.dir_issue_path(("o", "r").into(), 1, "Parent Issue").exists(), "Directory format should not be created"); [INFO] [stdout] 32 │ } [INFO] [stdout] 33 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::file_naming::test_flat_format_preserved_when_no_sub_issues::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:13 [INFO] [stdout] 11 │ [INFO] [stdout] 12 │ #[tokio::test] [INFO] [stdout]  13 > async fn test_flat_format_preserved_when_no_sub_issues() { [INFO] [stdout] 14 │ let ctx = TestContext::build(""); [INFO] [stdout] 15 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- blocker_integrated::test_blocker_add_with_nested_context stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:54.981485Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.981541Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989819Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989886Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 1" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989919Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Setup task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989946Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 2" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989976Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Implementation task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.990161Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991646Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 1" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991687Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Setup task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991714Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 2" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991741Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Implementation task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991955Z DEBUG tedi::issue::types: [parse] entering blockers section [INFO] [stdout] at src/issue/types.rs:1466 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991995Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 1" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992024Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Setup task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992054Z DEBUG tedi::issue::types: [parse] blocker line: "- Phase 2" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992082Z DEBUG tedi::issue::types: [parse] blocker line: "\t- Implementation task" [INFO] [stdout] at src/issue/types.rs:1492 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: blocker add should succeed. stderr: Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/blocker_integrated.rs:178 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_with_nested_context::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:178 [INFO] [stdout] 176 │ [INFO] [stdout] 177 │ // The add command should succeed [INFO] [stdout]  178 >  assert!(out.status.success(), "blocker add should succeed. stderr: {}", out.stderr); [INFO] [stdout] 179 │ [INFO] [stdout] 180 │ // Verify the blocker was added (should be under Phase 2, the last section with children) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_with_nested_context [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:182 [INFO] [stdout] 180 │ // Verify the blocker was added (should be under Phase 2, the last section with children) [INFO] [stdout] 181 │ let content = read_issue_file(&issue_path); [INFO] [stdout]  182 >  assert!(content.contains("New sub-task"), "New blocker should be added. Got: {content}"); [INFO] [stdout] 183 │ } [INFO] [stdout] 34: integration[c45695cb73300be0]::blocker_integrated::test_blocker_add_with_nested_context::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/blocker_integrated.rs:149 [INFO] [stdout] 147 │ [INFO] [stdout] 148 │ #[tokio::test] [INFO] [stdout]  149 > async fn test_blocker_add_with_nested_context() { [INFO] [stdout] 150 │ let ctx = TestContext::build(""); [INFO] [stdout] 151 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- file_naming::test_duplicate_reference_to_existing_issue_succeeds stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_IGO0LC/o/r/1.md": [INFO] [stdout] - [2] Some Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] stdout: 2026-04-10T11:08:54.989162Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.989204Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991429Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.991475Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:54.992396Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_IGO0LC/data/tedi/issues/o/r/1_-_Some_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_IGO0LC/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed when marking as duplicate of existing issue. stderr: [mock] Loaded state from /tmp/v_fixture_IGO0LC/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/file_naming.rs:161 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::file_naming::test_duplicate_reference_to_existing_issue_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:161 [INFO] [stdout] 159 │ [INFO] [stdout] 160 │ // Should succeed because issue #2 exists [INFO] [stdout]  161 >  assert!(out.status.success(), "Should succeed when marking as duplicate of existing issue. stderr: {}", out.stderr); [INFO] [stdout] 162 │ [INFO] [stdout] 163 │ // Original file should be removed (duplicate handling) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::file_naming::test_duplicate_reference_to_existing_issue_succeeds [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:167 [INFO] [stdout] 165 │ !ctx.flat_issue_path(("o", "r").into(), 1, "Some Issue").exists(), [INFO] [stdout] 166 │ "Issue file should be removed after successful duplicate marking" [INFO] [stdout]  167 >  ); [INFO] [stdout] 168 │ } [INFO] [stdout] 34: integration[c45695cb73300be0]::file_naming::test_duplicate_reference_to_existing_issue_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:139 [INFO] [stdout] 137 │ [INFO] [stdout] 138 │ #[tokio::test] [INFO] [stdout]  139 > async fn test_duplicate_reference_to_existing_issue_succeeds() { [INFO] [stdout] 140 │ let ctx = TestContext::build(""); [INFO] [stdout] 141 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_closing_nested_issue_creates_bak_file stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_CpEV22/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] - [x] b [INFO] [stdout] nested body content [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_CpEV22/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:236 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_closing_nested_issue_creates_bak_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:236 [INFO] [stdout] 234 │ let out = ctx.open_issue(&initial_issue).edit(&edited_issue.into()).run(); [INFO] [stdout] 235 │ [INFO] [stdout]  236 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 237 │ [INFO] [stdout] 238 │ insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().redact_timestamps(&[22]), &out), @r#" [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_closing_nested_issue_creates_bak_file [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:281 [INFO] [stdout] 279 │ let child_content = read_issue_file(&closed_child_path); [INFO] [stdout] 280 │ assert!(child_content.contains("- [x] b"), "nested issue not marked closed"); [INFO] [stdout]  281 >  assert!(child_content.contains("nested body content"), "child body should be preserved"); [INFO] [stdout] 282 │ } [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_closing_nested_issue_creates_bak_file::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:211 [INFO] [stdout] 209 │ [INFO] [stdout] 210 │ #[tokio::test] [INFO] [stdout]  211 > async fn test_closing_nested_issue_creates_bak_file() { [INFO] [stdout] 212 │ let ctx = TestContext::build(""); [INFO] [stdout] 213 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_blockers_added_during_edit_preserved stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_8WA4GW/o/r/1.md": [INFO] [stdout] - [ ] a [INFO] [stdout] lorem ipsum [INFO] [stdout] [INFO] [stdout] # Blockers [INFO] [stdout] - new blocker added [INFO] [stdout] [INFO] [stdout] stdout: 2026-04-10T11:08:58.921996Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.922031Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.923648Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.923702Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.924681Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_8WA4GW/data/tedi/issues/o/r/1_-_a.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_8WA4GW/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_8WA4GW/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:132 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_blockers_added_during_edit_preserved::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:132 [INFO] [stdout] 130 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 131 │ [INFO] [stdout]  132 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 133 │ [INFO] [stdout] 134 │ let path = ctx.resolve_issue_path(&initial_issue); [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_blockers_added_during_edit_preserved [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:137 [INFO] [stdout] 135 │ let final_content = read_issue_file(&path); [INFO] [stdout] 136 │ assert!(final_content.contains("# Blockers"), "blockers section not preserved"); [INFO] [stdout]  137 >  assert!(final_content.contains("new blocker added"), "added blocker lost"); [INFO] [stdout] 138 │ } [INFO] [stdout] 139 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_blockers_added_during_edit_preserved::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:110 [INFO] [stdout] 108 │ [INFO] [stdout] 109 │ #[tokio::test] [INFO] [stdout]  110 > async fn test_blockers_added_during_edit_preserved() { [INFO] [stdout] 111 │ let ctx = TestContext::build(""); [INFO] [stdout] 112 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_nested_issues_and_blockers_together stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.945862Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.945905Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.947603Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.947658Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.952923Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_sLrthR/data/tedi/issues/o/r/1_-_a/__main__.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_sLrthR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_sLrthR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:196 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_and_blockers_together::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:196 [INFO] [stdout] 194 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 195 │ [INFO] [stdout]  196 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 197 │ [INFO] [stdout] 198 │ // File is in directory format (path points to __main__.md) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_and_blockers_together [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:207 [INFO] [stdout] 205 │ let child_path = path.parent().unwrap().join("2_-_b.md"); [INFO] [stdout] 206 │ let child_content = read_issue_file(&child_path); [INFO] [stdout]  207 >  assert!(child_content.contains("nested body"), "nested issue body lost"); [INFO] [stdout] 208 │ } [INFO] [stdout] 209 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_and_blockers_together::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:174 [INFO] [stdout] 172 │ [INFO] [stdout] 173 │ #[tokio::test] [INFO] [stdout]  174 > async fn test_nested_issues_and_blockers_together() { [INFO] [stdout] 175 │ let ctx = TestContext::build(""); [INFO] [stdout] 176 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_blockers_with_nesting_preserved stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.910171Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.910215Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.912149Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.912212Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.913153Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_1f9xPH/data/tedi/issues/o/r/1_-_a.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_1f9xPH/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_1f9xPH/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:163 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_blockers_with_nesting_preserved::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:163 [INFO] [stdout] 161 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 162 │ [INFO] [stdout]  163 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 164 │ [INFO] [stdout] 165 │ let path = ctx.resolve_issue_path(&issue); [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_blockers_with_nesting_preserved [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:170 [INFO] [stdout] 168 │ assert!(final_content.contains("phase 2"), "phase 2 lost"); [INFO] [stdout] 169 │ assert!(final_content.contains("task alpha"), "task alpha lost"); [INFO] [stdout]  170 >  assert!(final_content.contains("task gamma"), "task gamma lost"); [INFO] [stdout] 171 │ } [INFO] [stdout] 172 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_blockers_with_nesting_preserved::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:141 [INFO] [stdout] 139 │ [INFO] [stdout] 140 │ #[tokio::test] [INFO] [stdout]  141 > async fn test_blockers_with_nesting_preserved() { [INFO] [stdout] 142 │ let ctx = TestContext::build(""); [INFO] [stdout] 143 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- file_naming::test_old_placement_discarded_with_pull stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.920400Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.920432Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.922153Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.922201Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.926673Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_9JtucU/data/tedi/issues/o/r/1_-_Parent_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_9JtucU/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_9JtucU/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/file_naming.rs:95 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::file_naming::test_old_placement_discarded_with_pull::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:95 [INFO] [stdout] 93 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 94 │ [INFO] [stdout]  95 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 96 │ [INFO] [stdout] 97 │ // The critical assertion: old flat file must be gone [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::file_naming::test_old_placement_discarded_with_pull [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:107 [INFO] [stdout] 105 │ // Sub-issue directory should exist [INFO] [stdout] 106 │ let sub_issue_dir = ctx.xdg.data_dir().join("issues/o/r/1_-_Parent_Issue"); [INFO] [stdout]  107 >  assert!(sub_issue_dir.is_dir(), "Sub-issue directory should exist"); [INFO] [stdout] 108 │ } [INFO] [stdout] 109 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::file_naming::test_old_placement_discarded_with_pull::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/file_naming.rs:69 [INFO] [stdout] 67 │ [INFO] [stdout] 68 │ #[tokio::test] [INFO] [stdout]  69 > async fn test_old_placement_discarded_with_pull() { [INFO] [stdout] 70 │ // This test verifies that when remote gains sub-issues and we use --pull, [INFO] [stdout] 71 │ // the old flat file is cleaned up and replaced with the directory format. [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_comments_with_ids_sync_correctly stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.937055Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.937094Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.938708Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.938760Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.939658Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_nJkef0/data/tedi/issues/o/r/1_-_a.md"), touch: false, blocker: false, force: true, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_nJkef0/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: sync failed: [mock] Loaded state from /tmp/v_fixture_nJkef0/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:40 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_comments_with_ids_sync_correctly::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:40 [INFO] [stdout] 38 │ [INFO] [stdout] 39 │ // This should NOT fail with "comment X not found in consensus" [INFO] [stdout]  40 >  assert!(out.status.success(), "sync failed: {}", out.stderr); [INFO] [stdout] 41 │ } [INFO] [stdout] 42 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_comments_with_ids_sync_correctly [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:40 [INFO] [stdout] 38 │ [INFO] [stdout] 39 │ // This should NOT fail with "comment X not found in consensus" [INFO] [stdout]  40 >  assert!(out.status.success(), "sync failed: {}", out.stderr); [INFO] [stdout] 41 │ } [INFO] [stdout] 42 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_comments_with_ids_sync_correctly::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:20 [INFO] [stdout] 18 │ [INFO] [stdout] 19 │ #[tokio::test] [INFO] [stdout]  20 > async fn test_comments_with_ids_sync_correctly() { [INFO] [stdout] 21 │ let ctx = TestContext::build(""); [INFO] [stdout] 22 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_nested_issues_preserved_through_sync stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.918482Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.918524Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.920779Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.920837Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.921914Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_LbxuCl/data/tedi/issues/o/r/1_-_a/__main__.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_LbxuCl/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_LbxuCl/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:65 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_preserved_through_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:65 [INFO] [stdout] 63 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 64 │ [INFO] [stdout]  65 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 66 │ [INFO] [stdout] 67 │ // With the new model, children are stored in separate files in the parent's directory [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_preserved_through_sync [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:77 [INFO] [stdout] 75 │ [INFO] [stdout] 76 │ assert!(child_b_content.contains("nested body b"), "nested issue b body lost"); [INFO] [stdout]  77 >  assert!(child_c_content.contains("nested body c"), "nested issue c body lost"); [INFO] [stdout] 78 │ } [INFO] [stdout] 79 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_nested_issues_preserved_through_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:44 [INFO] [stdout] 42 │ [INFO] [stdout] 43 │ #[tokio::test] [INFO] [stdout]  44 > async fn test_nested_issues_preserved_through_sync() { [INFO] [stdout] 45 │ let ctx = TestContext::build(""); [INFO] [stdout] 46 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- issue_preservation::test_blockers_preserved_through_sync stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:08:58.934625Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.934672Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.937660Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.937728Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:08:58.938714Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_HkjCQR/data/tedi/issues/o/r/1_-_a.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_HkjCQR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: stderr: [mock] Loaded state from /tmp/v_fixture_HkjCQR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/issue_preservation.rs:100 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::issue_preservation::test_blockers_preserved_through_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:100 [INFO] [stdout] 98 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 99 │ [INFO] [stdout]  100 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 101 │ [INFO] [stdout] 102 │ let path = ctx.resolve_issue_path(&issue); [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::issue_preservation::test_blockers_preserved_through_sync [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:106 [INFO] [stdout] 104 │ assert!(final_content.contains("# Blockers"), "blockers section lost"); [INFO] [stdout] 105 │ assert!(final_content.contains("first blocker"), "first blocker lost"); [INFO] [stdout]  106 >  assert!(final_content.contains("second blocker"), "second blocker lost"); [INFO] [stdout] 107 │ } [INFO] [stdout] 108 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::issue_preservation::test_blockers_preserved_through_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/issue_preservation.rs:81 [INFO] [stdout] 79 │ [INFO] [stdout] 80 │ #[tokio::test] [INFO] [stdout]  81 > async fn test_blockers_preserved_through_sync() { [INFO] [stdout] 82 │ let ctx = TestContext::build(""); [INFO] [stdout] 83 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- reset_conflict::test_reset_with_body_edit stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_75qRvH/o/r/1.md": [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] modified body [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_75qRvH/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/reset_conflict.rs:54 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::reset_conflict::test_reset_with_body_edit [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:54 [INFO] [stdout] 52 │ let out = ctx.open_url(("o", "r").into(), 1).args(&["--reset"]).edit(&edited).run(); [INFO] [stdout] 53 │ [INFO] [stdout]  54 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 55 │ assert!(!out.stderr.contains("Conflict"), "No conflict expected. stderr: {}", out.stderr); [INFO] [stdout] 56 │ } [INFO] [stdout] 12: integration[c45695cb73300be0]::reset_conflict::test_reset_with_body_edit::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:44 [INFO] [stdout] 42 │ /// After --reset on a simple issue, editing the body should succeed without conflict. [INFO] [stdout] 43 │ #[test] [INFO] [stdout]  44 > fn test_reset_with_body_edit() { [INFO] [stdout] 45 │ let ctx = TestContext::build(""); [INFO] [stdout] 46 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 34: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- reset_conflict::test_reset_discards_local_subissue_modifications stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Initial fetch failed. stderr: [mock] Loaded state from /tmp/v_fixture_zgahuP/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/reset_conflict.rs:91 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::reset_conflict::test_reset_discards_local_subissue_modifications::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:91 [INFO] [stdout] 89 │ // Step 1: Initial fetch to create local files [INFO] [stdout] 90 │ let out = ctx.open_url(("o", "r").into(), 1).run(); [INFO] [stdout]  91 >  assert!(out.status.success(), "Initial fetch failed. stderr: {}", out.stderr); [INFO] [stdout] 92 │ [INFO] [stdout] 93 │ // Step 2: User modifies the parent sub-issue (adds blockers) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::reset_conflict::test_reset_discards_local_subissue_modifications [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:136 [INFO] [stdout] 134 │ "BUG: --reset should make consensus == remote, no merge needed. stdout: {}", [INFO] [stdout] 135 │ out.stdout [INFO] [stdout]  136 >  ); [INFO] [stdout] 137 │ } [INFO] [stdout] 34: integration[c45695cb73300be0]::reset_conflict::test_reset_discards_local_subissue_modifications::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:72 [INFO] [stdout] 70 │ /// instead of the remote API content, causing consensus != remote. [INFO] [stdout] 71 │ #[tokio::test] [INFO] [stdout]  72 > async fn test_reset_discards_local_subissue_modifications() { [INFO] [stdout] 73 │ let ctx = TestContext::build(""); [INFO] [stdout] 74 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- reset_conflict::test_reset_with_subissue_edit stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_QBoswe/o/r/1.md": [INFO] [stdout] - [ ] Parent Issue [INFO] [stdout] parent body [INFO] [stdout] [INFO] [stdout] - [x] Sub Issue [INFO] [stdout] sub body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_QBoswe/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/reset_conflict.rs:37 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::reset_conflict::test_reset_with_subissue_edit [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:37 [INFO] [stdout] 35 │ let out = ctx.open_url(("o", "r").into(), 1).args(&["--reset"]).edit(&edited).run(); [INFO] [stdout] 36 │ [INFO] [stdout]  37 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 38 │ assert!(!out.stderr.contains("Conflict"), "No conflict expected. stderr: {}", out.stderr); [INFO] [stdout] 39 │ assert!(!out.stdout.contains("Merging"), "No merge expected. stdout: {}", out.stdout); [INFO] [stdout] 12: integration[c45695cb73300be0]::reset_conflict::test_reset_with_subissue_edit::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/reset_conflict.rs:12 [INFO] [stdout] 10 │ /// No conflict should occur because consensus == remote after reset. [INFO] [stdout] 11 │ #[test] [INFO] [stdout]  12 > fn test_reset_with_subissue_edit() { [INFO] [stdout] 13 │ let ctx = TestContext::build(""); [INFO] [stdout] 14 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 34: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_both_diverged_merge_winner::case_1_remote_wins stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:02.102025Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.102072Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.104194Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.104271Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.109393Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_JYkPqt/data/tedi/issues/o/r/1_-_Test_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_JYkPqt/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Expected body 'remote changed body' not found in: [INFO] [stdout] //- /o/r/.meta.json [INFO] [stdout] { [INFO] [stdout] "virtual_project": false, [INFO] [stdout] "next_virtual_issue_number": 0, [INFO] [stdout] "issues": { [INFO] [stdout] "1": { [INFO] [stdout] "user": "mock_user", [INFO] [stdout] "timestamps": { [INFO] [stdout] "title": "2001-09-11T05:49:07Z", [INFO] [stdout] "description": "2001-09-11T07:54:35Z", [INFO] [stdout] "labels": "2001-09-11T16:40:49Z", [INFO] [stdout] "state": "2001-09-11T18:46:17Z", [INFO] [stdout] "comments": [] [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] //- /o/r/1_-_Test_Issue.md [INFO] [stdout] - [ ] Test Issue [INFO] [stdout] local body [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:73 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_both_diverged_merge_winner::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:73 [INFO] [stdout] 71 │ // Verify the expected side won the merge [INFO] [stdout] 72 │ let rendered = render_fixture(FixtureRenderer::try_new(&f.ctx).unwrap(), &out); [INFO] [stdout]  73 >  assert!(rendered.contains(expected_body), "Expected body '{expected_body}' not found in:\n{rendered}"); [INFO] [stdout] 74 │ } [INFO] [stdout] 75 │ [INFO] [stdout] 12: integration[c45695cb73300be0]::sync::test_both_diverged_merge_winner::case_1_remote_wins::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:62 [INFO] [stdout] 60 │ /// - remote_wins: seeds cause remote timestamps to win [INFO] [stdout] 61 │ /// - local_wins: seeds cause local timestamps to win [INFO] [stdout]  62 > #[rstest] [INFO] [stdout] 63 │ #[case::remote_wins(-50, 40, 45, "remote changed body")] [INFO] [stdout] 64 │ #[case::local_wins(-70, 60, 65, "local body")] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_both_diverged_merge_winner::case_1_remote_wins [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:62 [INFO] [stdout] 60 │ /// - remote_wins: seeds cause remote timestamps to win [INFO] [stdout] 61 │ /// - local_wins: seeds cause local timestamps to win [INFO] [stdout]  62 > #[rstest] [INFO] [stdout] 63 │ #[case::remote_wins(-50, 40, 45, "remote changed body")] [INFO] [stdout] 64 │ #[case::local_wins(-70, 60, 65, "local body")] [INFO] [stdout] 35: integration[c45695cb73300be0]::sync::test_both_diverged_merge_winner::case_1_remote_wins::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:62 [INFO] [stdout] 60 │ /// - remote_wins: seeds cause remote timestamps to win [INFO] [stdout] 61 │ /// - local_wins: seeds cause local timestamps to win [INFO] [stdout]  62 > #[rstest] [INFO] [stdout] 63 │ #[case::remote_wins(-50, 40, 45, "remote changed body")] [INFO] [stdout] 64 │ #[case::local_wins(-70, 60, 65, "local body")] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 57: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_closing_issue_syncs_state_change stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_90kdQY/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] body [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:01.973781Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:01.973833Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:01.976038Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:01.976109Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:01.977144Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_90kdQY/data/tedi/issues/o/r/1_-_Test_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_90kdQY/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: closing_issue_syncs_state_change [INFO] [stdout] Source: tests/integration/sync.rs:365 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: result_str [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 14 14 │ } [INFO] [stdout] 15 15 │ } [INFO] [stdout] 16 16 │ } [INFO] [stdout] 17 17 │ } [INFO] [stdout] 18 │-//- /o/r/1_-_Test_Issue.md.bak [INFO] [stdout] 19 │-- [x] Test Issue [INFO] [stdout] 18 │+//- /o/r/1_-_Test_Issue.md [INFO] [stdout] 19 │+- [ ] Test Issue [INFO] [stdout] 20 20 │ body [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/sync.rs:365 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::sync::test_closing_issue_syncs_state_change::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:365 [INFO] [stdout] 363 │ let result_str = render_fixture(FixtureRenderer::try_new(&ctx).unwrap().redact_timestamps(&[12]), &out); [INFO] [stdout] 364 │ [INFO] [stdout]  365 >  insta::assert_snapshot!(result_str, @r#" [INFO] [stdout] 366 │ //- /o/r/.meta.json [INFO] [stdout] 367 │ { [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 35: integration[c45695cb73300be0]::sync::test_closing_issue_syncs_state_change [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:386 [INFO] [stdout] 384 │ - [x] Test Issue [INFO] [stdout] 385 │ body [INFO] [stdout]  386 >  "#); [INFO] [stdout] 387 │ } [INFO] [stdout] 388 │ [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_closing_issue_syncs_state_change::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:347 [INFO] [stdout] 345 │ [INFO] [stdout] 346 │ #[tokio::test] [INFO] [stdout]  347 > async fn test_closing_issue_syncs_state_change() { [INFO] [stdout] 348 │ let ctx = TestContext::build(""); [INFO] [stdout] 349 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 58: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_comment_shorthand_creates_comment stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:02.046687Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.046730Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.048550Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.048657Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.049842Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_tv4eSI/data/tedi/issues/o/r/1_-_Test_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_tv4eSI/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: comment_shorthand_creates_comment [INFO] [stdout] Source: tests/integration/sync.rs:546 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 │-//- /o/__conflict.md [INFO] [stdout] 2 │-<<<<<<< HEAD [INFO] [stdout] 3 │-- [ ] Test Issue [INFO] [stdout] 4 │- issue body [INFO] [stdout] 5 │- [INFO] [stdout] 6 │- [INFO] [stdout] 7 │- My new comment content [INFO] [stdout] 8 │-||||||| [hash] [INFO] [stdout] 9 │-======= [INFO] [stdout] 10 │-- [ ] Test Issue [INFO] [stdout] 11 │- issue body [INFO] [stdout] 12 │->>>>>>> remote-state [INFO] [stdout] 13 1 │ //- /o/r/1_-_Test_Issue.md [INFO] [stdout] 14 2 │ - [ ] Test Issue [INFO] [stdout] 15 3 │ issue body [INFO] [stdout] 16 4 │ [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/sync.rs:546 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::sync::test_comment_shorthand_creates_comment::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:546 [INFO] [stdout] 544 │ [INFO] [stdout] 545 │ // Capture the resulting directory state [INFO] [stdout]  546 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout] 547 │ //- /o/__conflict.md [INFO] [stdout] 548 │ <<<<<<< HEAD [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 35: integration[c45695cb73300be0]::sync::test_comment_shorthand_creates_comment [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:565 [INFO] [stdout] 563 │ !c [INFO] [stdout] 564 │ My new comment content [INFO] [stdout]  565 >  "); [INFO] [stdout] 566 │ } [INFO] [stdout] 567 │ [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_comment_shorthand_creates_comment::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:523 [INFO] [stdout] 521 │ /// 2. Result in a new comment being created on Github [INFO] [stdout] 522 │ #[tokio::test] [INFO] [stdout]  523 > async fn test_comment_shorthand_creates_comment() { [INFO] [stdout] 524 │ let ctx = TestContext::build(""); [INFO] [stdout] 525 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 58: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_consensus_sink_writes_meta_json_with_timestamps stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:02.767890Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.767941Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.769758Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.769819Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:02.774834Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Fetching issue #1 from o/r... [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_M41bXJ/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Fetch should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_M41bXJ/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:699 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_consensus_sink_writes_meta_json_with_timestamps::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:699 [INFO] [stdout] 697 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 698 │ [INFO] [stdout]  699 >  assert!(out.status.success(), "Fetch should succeed. stderr: {}", out.stderr); [INFO] [stdout] 700 │ [INFO] [stdout] 701 │ // Capture the resulting directory state (includes .meta.json with timestamps) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_consensus_sink_writes_meta_json_with_timestamps [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:725 [INFO] [stdout] 723 │ [INFO] [stdout] 724 │ --- [INFO] [stdout]  725 >  "#); [INFO] [stdout] 726 │ } [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_consensus_sink_writes_meta_json_with_timestamps::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:679 [INFO] [stdout] 677 │ /// This is critical for the merge algorithm to work - timestamps determine which side wins. [INFO] [stdout] 678 │ #[tokio::test] [INFO] [stdout]  679 > async fn test_consensus_sink_writes_meta_json_with_timestamps() { [INFO] [stdout] 680 │ let ctx = TestContext::build(""); [INFO] [stdout] 681 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_duplicate_sub_issues_filtered_from_remote stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:03.706879Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:03.706931Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:03.709185Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:03.709254Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:03.713146Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Fetching issue #1 from o/r... [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_yjifqi/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_yjifqi/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:416 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_duplicate_sub_issues_filtered_from_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:416 [INFO] [stdout] 414 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 415 │ [INFO] [stdout]  416 >  assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 417 │ [INFO] [stdout] 418 │ insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_duplicate_sub_issues_filtered_from_remote [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:425 [INFO] [stdout] 423 │ - [ ] Parent Issue [INFO] [stdout] 424 │ parent body [INFO] [stdout]  425 >  "); [INFO] [stdout] 426 │ } [INFO] [stdout] 427 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_duplicate_sub_issues_filtered_from_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:392 [INFO] [stdout] 390 │ /// Github marks these with state_reason="duplicate" - they should be filtered out entirely. [INFO] [stdout] 391 │ #[tokio::test] [INFO] [stdout]  392 > async fn test_duplicate_sub_issues_filtered_from_remote() { [INFO] [stdout] 393 │ let ctx = TestContext::build(""); [INFO] [stdout] 394 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_only_local_changed_pushes_local stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed when only local changed. stderr: [mock] Loaded state from /tmp/v_fixture_oNj0RJ/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:118 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_only_local_changed_pushes_local::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:118 [INFO] [stdout] 116 │ let out = ctx.open_issue(&local).run(); [INFO] [stdout] 117 │ [INFO] [stdout]  118 >  assert!(out.status.success(), "Should succeed when only local changed. stderr: {}", out.stderr); [INFO] [stdout] 119 │ [INFO] [stdout] 120 │ // Capture the resulting directory state [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_only_local_changed_pushes_local [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:142 [INFO] [stdout] 140 │ - [ ] Test Issue [INFO] [stdout] 141 │ local changed body [INFO] [stdout]  142 >  "#); [INFO] [stdout] 143 │ } [INFO] [stdout] 144 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_only_local_changed_pushes_local::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:104 [INFO] [stdout] 102 │ [INFO] [stdout] 103 │ #[tokio::test] [INFO] [stdout]  104 > async fn test_only_local_changed_pushes_local() { [INFO] [stdout] 105 │ let ctx = TestContext::build(""); [INFO] [stdout] 106 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:04.347413Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.347466Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.349670Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.349727Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.350718Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_uUtcyB/data/tedi/issues/o/r/1_-_Parent_Issue/__main__.md"), touch: false, blocker: false, force: true, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_uUtcyB/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: force_merge_preserves_both_sub_issues [INFO] [stdout] Source: tests/integration/sync.rs:634 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 1 │ //- /o/r/1_-_Parent_Issue/2_-_Local_Sub.md [INFO] [stdout] 2 2 │ - [ ] Local Sub [INFO] [stdout] 3 3 │ local sub body [INFO] [stdout] 4 │-//- /o/r/1_-_Parent_Issue/3_-_Remote_Sub.md [INFO] [stdout] 5 │-- [ ] Remote Sub [INFO] [stdout] 6 │- remote sub body [INFO] [stdout] 7 4 │ //- /o/r/1_-_Parent_Issue/__main__.md [INFO] [stdout] 8 5 │ - [ ] Parent Issue [INFO] [stdout] 9 │- parent body [INFO] [stdout] 6 │+ parent body [INFO] [stdout] 7 │+ extra line from local [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/sync.rs:634 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:634 [INFO] [stdout] 632 │ } else { [INFO] [stdout] 633 │ // --pull --force: remote wins conflicts, so "extra local line" should NOT be present [INFO] [stdout]  634 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout] 635 │ //- /o/r/1_-_Parent_Issue/2_-_Local_Sub.md [INFO] [stdout] 636 │ - [ ] Local Sub [INFO] [stdout] 14: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout] 37: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 59: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_open_by_number_unchanged_succeeds stdout ---- [INFO] [stdout] First open stdout: 2026-04-10T11:09:04.728199Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.728243Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.730156Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.730211Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.731204Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: true, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Fetching issue #1 from o/r... [INFO] [stdout] [INFO] [stdout] First open stderr: [mock] Loaded state from /tmp/v_fixture_lrwgAd/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: First open should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_lrwgAd/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:469 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_open_by_number_unchanged_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:469 [INFO] [stdout] 467 │ eprintln!("First open stdout: {}", out.stdout); [INFO] [stdout] 468 │ eprintln!("First open stderr: {}", out.stderr); [INFO] [stdout]  469 >  assert!(out.status.success(), "First open should succeed. stderr: {}", out.stderr); [INFO] [stdout] 470 │ [INFO] [stdout] 471 │ // Second open by number (simulating the failing case) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_open_by_number_unchanged_succeeds [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:476 [INFO] [stdout] 474 │ eprintln!("Second open stdout: {}", out.stdout); [INFO] [stdout] 475 │ eprintln!("Second open stderr: {}", out.stderr); [INFO] [stdout]  476 >  assert!(out.status.success(), "Second open (unchanged) should succeed. stderr: {}", out.stderr); [INFO] [stdout] 477 │ } [INFO] [stdout] 478 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_open_by_number_unchanged_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:459 [INFO] [stdout] 457 │ /// 4. Git commit fails because there's nothing to commit [INFO] [stdout] 458 │ #[tokio::test] [INFO] [stdout]  459 > async fn test_open_by_number_unchanged_succeeds() { [INFO] [stdout] 460 │ let ctx = TestContext::build(""); [INFO] [stdout] 461 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:04.238623Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.238671Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.240689Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.240744Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.241776Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_NoGYDT/data/tedi/issues/o/r/1_-_Parent_Issue/__main__.md"), touch: false, blocker: false, force: true, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_NoGYDT/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: force_merge_preserves_both_sub_issues-2 [INFO] [stdout] Source: tests/integration/sync.rs:620 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 1 │ //- /o/r/1_-_Parent_Issue/2_-_Local_Sub.md [INFO] [stdout] 2 2 │ - [ ] Local Sub [INFO] [stdout] 3 3 │ local sub body [INFO] [stdout] 4 │-//- /o/r/1_-_Parent_Issue/3_-_Remote_Sub.md [INFO] [stdout] 5 │-- [ ] Remote Sub [INFO] [stdout] 6 │- remote sub body [INFO] [stdout] 7 4 │ //- /o/r/1_-_Parent_Issue/__main__.md [INFO] [stdout] 8 5 │ - [ ] Parent Issue [INFO] [stdout] 9 6 │ parent body [INFO] [stdout] 10 7 │ extra line from local [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/sync.rs:620 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:620 [INFO] [stdout] 618 │ if expect_local_description { [INFO] [stdout] 619 │ // --force: local wins conflicts, so "extra local line" should be present [INFO] [stdout]  620 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout] 621 │ //- /o/r/1_-_Parent_Issue/2_-_Local_Sub.md [INFO] [stdout] 622 │ - [ ] Local Sub [INFO] [stdout] 14: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout] 37: integration[c45695cb73300be0]::sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:578 [INFO] [stdout] 576 │ /// - `--force` alone: prefer local on conflicts [INFO] [stdout] 577 │ /// - `--pull --force`: prefer remote on conflicts [INFO] [stdout]  578 > #[rstest] [INFO] [stdout] 579 │ #[case::prefer_local(&["--force"], true)] [INFO] [stdout] 580 │ #[case::prefer_remote(&["--pull", "--force"], false)] [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 59: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_open_unchanged_succeeds stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: First open should succeed. stderr: [mock] Loaded state from /tmp/v_fixture_G6ivEW/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:444 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_open_unchanged_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:444 [INFO] [stdout] 442 │ // First open via URL [INFO] [stdout] 443 │ let out = ctx.open_url(("o", "r").into(), 1).run(); [INFO] [stdout]  444 >  assert!(out.status.success(), "First open should succeed. stderr: {}", out.stderr); [INFO] [stdout] 445 │ [INFO] [stdout] 446 │ // Second open - should also succeed (no-op since nothing changed) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_open_unchanged_succeeds [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:448 [INFO] [stdout] 446 │ // Second open - should also succeed (no-op since nothing changed) [INFO] [stdout] 447 │ let out = ctx.open_issue(&issue).run(); [INFO] [stdout]  448 >  assert!(out.status.success(), "Second open (unchanged) should succeed. stderr: {}", out.stderr); [INFO] [stdout] 449 │ } [INFO] [stdout] 450 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_open_unchanged_succeeds::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:435 [INFO] [stdout] 433 │ /// The second open should succeed, not fail with "Failed to commit remote state". [INFO] [stdout] 434 │ #[tokio::test] [INFO] [stdout]  435 > async fn test_open_unchanged_succeeds() { [INFO] [stdout] 436 │ let ctx = TestContext::build(""); [INFO] [stdout] 437 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_only_remote_changed_takes_remote_with_pull stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed with --pull when only remote changed. stderr: [mock] Loaded state from /tmp/v_fixture_MDWNio/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:93 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_only_remote_changed_takes_remote_with_pull::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:93 [INFO] [stdout] 91 │ let out = ctx.open_issue(&consensus).args(&["--pull"]).run(); [INFO] [stdout] 92 │ [INFO] [stdout]  93 >  assert!(out.status.success(), "Should succeed with --pull when only remote changed. stderr: {}", out.stderr); [INFO] [stdout] 94 │ // Verify pre-open sync was triggered [INFO] [stdout] 95 │ assert!( [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_only_remote_changed_takes_remote_with_pull [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:100 [INFO] [stdout] 98 │ out.stdout, [INFO] [stdout] 99 │ out.stderr [INFO] [stdout]  100 >  ); [INFO] [stdout] 101 │ } [INFO] [stdout] 102 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_only_remote_changed_takes_remote_with_pull::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:79 [INFO] [stdout] 77 │ /// we only pull remote changes if --pull is specified. [INFO] [stdout] 78 │ #[tokio::test] [INFO] [stdout]  79 > async fn test_only_remote_changed_takes_remote_with_pull() { [INFO] [stdout] 80 │ let ctx = TestContext::build(""); [INFO] [stdout] 81 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_undo_shorthand_aborts_sync stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: failed to open pipe: Os { code: 6, kind: Uncategorized, message: "No such device or address" } [INFO] [stdout] Location: tests/integration/common/mod.rs:441 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >::expect [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1185 [INFO] [stdout] 13: ::resume [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/common/mod.rs:441 [INFO] [stdout] 439 │ .custom_flags(0x800) // O_NONBLOCK [INFO] [stdout] 440 │ .open(&self.pipe_path) [INFO] [stdout]  441 >  .expect("failed to open pipe"); [INFO] [stdout] 442 │ pipe.write_all(b"x").expect("failed to signal pipe"); [INFO] [stdout] 443 │ } [INFO] [stdout] 14: integration[c45695cb73300be0]::sync::test_undo_shorthand_aborts_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:665 [INFO] [stdout] 663 │ std::fs::write(&vpath, format!("{content}\tsome random edits\n\tanother line of changes\n!u\n")).unwrap(); [INFO] [stdout] 664 │ [INFO] [stdout]  665 >  let out = paused.resume(); [INFO] [stdout] 666 │ assert!(out.status.success(), "Should succeed. stderr: {}", out.stderr); [INFO] [stdout] 667 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_undo_shorthand_aborts_sync [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:673 [INFO] [stdout] 671 │ - [ ] Test Issue [INFO] [stdout] 672 │ issue body [INFO] [stdout]  673 >  "); [INFO] [stdout] 674 │ } [INFO] [stdout] 675 │ [INFO] [stdout] 37: integration[c45695cb73300be0]::sync::test_undo_shorthand_aborts_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:652 [INFO] [stdout] 650 │ /// The filesystem state should remain identical to the initial state. [INFO] [stdout] 651 │ #[tokio::test] [INFO] [stdout]  652 > async fn test_undo_shorthand_aborts_sync() { [INFO] [stdout] 653 │ let ctx = TestContext::build(""); [INFO] [stdout] 654 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 59: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_break_to_edit_allows_mid_execution_modification stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: failed to open pipe: Os { code: 6, kind: Uncategorized, message: "No such device or address" } [INFO] [stdout] Location: tests/integration/common/mod.rs:441 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >::expect [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1185 [INFO] [stdout] 13: ::resume [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/common/mod.rs:441 [INFO] [stdout] 439 │ .custom_flags(0x800) // O_NONBLOCK [INFO] [stdout] 440 │ .open(&self.pipe_path) [INFO] [stdout]  441 >  .expect("failed to open pipe"); [INFO] [stdout] 442 │ pipe.write_all(b"x").expect("failed to signal pipe"); [INFO] [stdout] 443 │ } [INFO] [stdout] 14: integration[c45695cb73300be0]::touch::test_break_to_edit_allows_mid_execution_modification::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:227 [INFO] [stdout] 225 │ std::fs::write(&vpath, &modified).expect("should write virtual file"); [INFO] [stdout] 226 │ [INFO] [stdout]  227 >  let out = continuation.resume(); [INFO] [stdout] 228 │ [INFO] [stdout] 229 │ insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: integration[c45695cb73300be0]::touch::test_break_to_edit_allows_mid_execution_modification [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:236 [INFO] [stdout] 234 │ "); [INFO] [stdout] 235 │ [INFO] [stdout]  236 >  assert!(out.status.success(), "stderr: {}", out.stderr); [INFO] [stdout] 237 │ } [INFO] [stdout] 37: integration[c45695cb73300be0]::touch::test_break_to_edit_allows_mid_execution_modification::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:212 [INFO] [stdout] 210 │ /// Test `break_to_edit` allows pausing execution to inspect and modify the virtual file. [INFO] [stdout] 211 │ #[tokio::test] [INFO] [stdout]  212 > async fn test_break_to_edit_allows_mid_execution_modification() { [INFO] [stdout] 213 │ let ctx = TestContext::build(""); [INFO] [stdout] 214 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 59: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_pull_fetches_before_editor stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:04.899925Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.899976Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.901992Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.902048Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:04.910050Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_DH5yHd/data/tedi/issues/o/r/1_-_Test_Issue.md"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_DH5yHd/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed with --pull. stderr: [mock] Loaded state from /tmp/v_fixture_DH5yHd/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:282 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_pull_fetches_before_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:282 [INFO] [stdout] 280 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 281 │ [INFO] [stdout]  282 >  assert!(out.status.success(), "Should succeed with --pull. stderr: {}", out.stderr); [INFO] [stdout] 283 │ [INFO] [stdout] 284 │ // Should show fetch activity [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_pull_fetches_before_editor [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:285 [INFO] [stdout] 283 │ [INFO] [stdout] 284 │ // Should show fetch activity [INFO] [stdout]  285 >  assert!(out.stderr.contains("pre-open sync"), "Should show fetch/pull activity with --pull. stdout: {}", out.stderr); [INFO] [stdout] 286 │ } [INFO] [stdout] 287 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_pull_fetches_before_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:265 [INFO] [stdout] 263 │ /// This test verifies the fetch actually happens by checking stdout for fetch message. [INFO] [stdout] 264 │ #[tokio::test] [INFO] [stdout]  265 > async fn test_pull_fetches_before_editor() { [INFO] [stdout] 266 │ let ctx = TestContext::build(""); [INFO] [stdout] 267 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_pull_with_divergence_runs_sync_before_editor stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should attempt sync/merge with --pull before editor; stderr: [INFO] [stdout] [mock] Loaded state from /tmp/v_fixture_ds9NbR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:306 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_pull_with_divergence_runs_sync_before_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:306 [INFO] [stdout] 304 │ [INFO] [stdout] 305 │ // Ensure we detect the conflict even before the editor is opened for the user [INFO] [stdout]  306 >  assert!( [INFO] [stdout] 307 │ out.stderr.contains("pre-open sync"), //Q: don't like reliance on impl-specific details [INFO] [stdout] 308 │ "Should attempt sync/merge with --pull before editor; stderr:\n{}", [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_pull_with_divergence_runs_sync_before_editor [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:313 [INFO] [stdout] 311 │ [INFO] [stdout] 312 │ // Ensure conflict is opened [INFO] [stdout]  313 >  assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap(), &out), @r#" [INFO] [stdout] 314 │ //- /o/__conflict.md [INFO] [stdout] 315 │ <<<<<<< HEAD [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_pull_with_divergence_runs_sync_before_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:290 [INFO] [stdout] 288 │ /// --pull with diverged state should trigger conflict resolution (or auto-resolve). [INFO] [stdout] 289 │ #[tokio::test] [INFO] [stdout]  290 > async fn test_pull_with_divergence_runs_sync_before_editor() { [INFO] [stdout] 291 │ let ctx = TestContext::build(""); [INFO] [stdout] 292 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_reset_syncs_changes_after_editor stdout ---- [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] [test:OpenBuilder] submitting user input // writing to "/tmp/v_fixture_f5jGcN/o/r/1.md": [INFO] [stdout] - [x] Test Issue [INFO] [stdout] remote body [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: [INFO] [stdout] 0: issues directory is empty: /tmp/v_fixture_f5jGcN/data/tedi/issues [INFO] [stdout] [INFO] [stdout] Location: [INFO] [stdout] tests/integration/common/snapshot.rs:31 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::default [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:1018 [INFO] [stdout] 1016 │ pub(crate) fn default(&self, error: &(dyn std::error::Error + 'static)) -> crate::Handler { [INFO] [stdout] 1017 │ let backtrace = if lib_verbosity() != Verbosity::Minimal { [INFO] [stdout]  1018 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 1019 │ } else { [INFO] [stdout] 1020 │ None [INFO] [stdout] 2: ::into_eyre_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:1068 [INFO] [stdout] 1066 │ /// Convert the self into the boxed type expected by `eyre::set_hook`. [INFO] [stdout] 1067 │ pub fn into_eyre_hook(self) -> HookFunc { [INFO] [stdout]  1068 >  Box::new(move |e| Box::new(self.default(e))) [INFO] [stdout] 1069 │ } [INFO] [stdout] 1070 │ } [INFO] [stdout] 3: eyre[1677e6c05327be41]::capture_handler [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/eyre-0.6.12/src/lib.rs:601 [INFO] [stdout] 599 │ .as_ref(); [INFO] [stdout] 600 │ [INFO] [stdout]  601 >  let mut handler = hook(error); [INFO] [stdout] 602 │ [INFO] [stdout] 603 │ #[cfg(track_caller)] [INFO] [stdout] 4: ::from_adhoc:: [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/eyre-0.6.12/src/error.rs:114 [INFO] [stdout] 112 │ // Safety: MessageError is repr(transparent) so it is okay for the [INFO] [stdout] 113 │ // vtable to allow casting the MessageError to M. [INFO] [stdout]  114 >  let handler = Some(crate::capture_handler(&error)); [INFO] [stdout] 115 │ [INFO] [stdout] 116 │ unsafe { Report::construct(error, vtable, handler) } [INFO] [stdout] 5: eyre[1677e6c05327be41]::private::new_adhoc:: [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/eyre-0.6.12/src/lib.rs:1302 [INFO] [stdout] 1300 │ M: Display + Debug + Send + Sync + 'static, [INFO] [stdout] 1301 │ { [INFO] [stdout]  1302 >  Report::from_adhoc(message) [INFO] [stdout] 1303 │ } [INFO] [stdout] 1304 │ [INFO] [stdout] 6: ::try_new [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/common/snapshot.rs:31 [INFO] [stdout] 29 │ [INFO] [stdout] 30 │ if fixture.files.is_empty() { [INFO] [stdout]  31 >  bail!("issues directory is empty: {}", issues_dir.display()); [INFO] [stdout] 32 │ } [INFO] [stdout] 33 │ [INFO] [stdout] 7: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:494 [INFO] [stdout] 492 │ let out = ctx.open_url(("o", "r").into(), 1).args(&["--reset"]).edit(&modified_issue).run(); [INFO] [stdout] 493 │ [INFO] [stdout]  494 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().redact_timestamps(&[12]), &out), @r#" [INFO] [stdout] 495 │ //- /o/r/.meta.json [INFO] [stdout] 496 │ { [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 29: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:515 [INFO] [stdout] 513 │ - [x] Test Issue [INFO] [stdout] 514 │ remote body [INFO] [stdout]  515 >  "#); [INFO] [stdout] 516 │ } [INFO] [stdout] 517 │ [INFO] [stdout] 30: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:483 [INFO] [stdout] 481 │ /// Reproduces the issue where changes made after --reset don't sync. [INFO] [stdout] 482 │ #[tokio::test] [INFO] [stdout]  483 > async fn test_reset_syncs_changes_after_editor() { [INFO] [stdout] 484 │ let ctx = TestContext::build(""); [INFO] [stdout] 485 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 52: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] Location: tests/integration/sync.rs:494 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:494 [INFO] [stdout] 492 │ let out = ctx.open_url(("o", "r").into(), 1).args(&["--reset"]).edit(&modified_issue).run(); [INFO] [stdout] 493 │ [INFO] [stdout]  494 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().redact_timestamps(&[12]), &out), @r#" [INFO] [stdout] 495 │ //- /o/r/.meta.json [INFO] [stdout] 496 │ { [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 35: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:515 [INFO] [stdout] 513 │ - [x] Test Issue [INFO] [stdout] 514 │ remote body [INFO] [stdout]  515 >  "#); [INFO] [stdout] 516 │ } [INFO] [stdout] 517 │ [INFO] [stdout] 36: integration[c45695cb73300be0]::sync::test_reset_syncs_changes_after_editor::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:483 [INFO] [stdout] 481 │ /// Reproduces the issue where changes made after --reset don't sync. [INFO] [stdout] 482 │ #[tokio::test] [INFO] [stdout]  483 > async fn test_reset_syncs_changes_after_editor() { [INFO] [stdout] 484 │ let ctx = TestContext::build(""); [INFO] [stdout] 485 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 58: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_reset_with_remote_url_skips_merge_on_divergence stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:07.095421Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.095464Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.097338Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.097391Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.098362Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: true, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Found existing local file, will sync with remote... [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_MWroSe/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed without merge conflict. stderr: [mock] Loaded state from /tmp/v_fixture_MWroSe/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:252 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_skips_merge_on_divergence::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:252 [INFO] [stdout] 250 │ [INFO] [stdout] 251 │ // Should succeed without merge conflict [INFO] [stdout]  252 >  assert!(out.status.success(), "Should succeed without merge conflict. stderr: {}", out.stderr); [INFO] [stdout] 253 │ assert!(!out.stderr.contains("Conflict"), "Should not mention conflict with --reset"); [INFO] [stdout] 254 │ assert!(!out.stdout.contains("Merging"), "Should not attempt merge with --reset"); [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_skips_merge_on_divergence [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:259 [INFO] [stdout] 257 │ let issue_path = ctx.resolve_issue_path(&local); [INFO] [stdout] 258 │ let content = read_issue_file(&issue_path); [INFO] [stdout]  259 >  assert!(content.contains("remote diverged body"), "Should have remote content. Got: {content}"); [INFO] [stdout] 260 │ } [INFO] [stdout] 261 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_skips_merge_on_divergence::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:232 [INFO] [stdout] 230 │ /// When opening via URL with --reset and there's divergence, should NOT trigger merge conflict. [INFO] [stdout] 231 │ #[tokio::test] [INFO] [stdout]  232 > async fn test_reset_with_remote_url_skips_merge_on_divergence() { [INFO] [stdout] 233 │ let ctx = TestContext::build(""); [INFO] [stdout] 234 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_reset_with_local_source_skips_sync stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:06.865150Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.865193Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.869303Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.869361Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.870297Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("/tmp/v_fixture_WNhXAR/data/tedi/issues/o/r/1_-_Test_Issue.md"), touch: false, blocker: false, force: false, reset: true, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_WNhXAR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] status: ExitStatus(unix_wait_status(1792)) [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed with --reset. stderr: [mock] Loaded state from /tmp/v_fixture_WNhXAR/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:167 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_reset_with_local_source_skips_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:167 [INFO] [stdout] 165 │ [INFO] [stdout] 166 │ // With --reset, should reset to local state without sync [INFO] [stdout]  167 >  assert!(out.status.success(), "Should succeed with --reset. stderr: {}", out.stderr); [INFO] [stdout] 168 │ [INFO] [stdout] 169 │ // Local file should still have local changes (not overwritten by remote) [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_reset_with_local_source_skips_sync [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:172 [INFO] [stdout] 170 │ let issue_path = ctx.resolve_issue_path(&local); [INFO] [stdout] 171 │ let content = read_issue_file(&issue_path); [INFO] [stdout]  172 >  assert!(content.contains("local body"), "Local changes should be preserved with --reset"); [INFO] [stdout] 173 │ } [INFO] [stdout] 174 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_reset_with_local_source_skips_sync::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:146 [INFO] [stdout] 144 │ [INFO] [stdout] 145 │ #[tokio::test] [INFO] [stdout]  146 > async fn test_reset_with_local_source_skips_sync() { [INFO] [stdout] 147 │ let ctx = TestContext::build(""); [INFO] [stdout] 148 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_url_open_creates_local_file_from_remote stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:07.129274Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.129328Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.131451Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.131504Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.132435Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Fetching issue #1 from o/r... [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_bkKMc6/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed creating from URL. stderr: [mock] Loaded state from /tmp/v_fixture_bkKMc6/mock_state.json [INFO] [stdout] Error: `gh` not found in PATH (required for GitHub operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:193 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_url_open_creates_local_file_from_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:193 [INFO] [stdout] 191 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 192 │ [INFO] [stdout]  193 >  assert!(out.status.success(), "Should succeed creating from URL. stderr: {}", out.stderr); [INFO] [stdout] 194 │ [INFO] [stdout] 195 │ // File should now exist with remote content [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_url_open_creates_local_file_from_remote [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:198 [INFO] [stdout] 196 │ assert!(expected_path.exists(), "Local file should be created"); [INFO] [stdout] 197 │ let content = read_issue_file(&expected_path); [INFO] [stdout]  198 >  assert!(content.contains("remote body content"), "Should have remote content. Got: {content}"); [INFO] [stdout] 199 │ } [INFO] [stdout] 200 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_url_open_creates_local_file_from_remote::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:177 [INFO] [stdout] 175 │ /// Opening via URL when no local file exists should create the file from remote. [INFO] [stdout] 176 │ #[tokio::test] [INFO] [stdout]  177 > async fn test_url_open_creates_local_file_from_remote() { [INFO] [stdout] 178 │ let ctx = TestContext::build(""); [INFO] [stdout] 179 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- sync::test_reset_with_remote_url_nukes_local_state stdout ---- [INFO] [stdout] stdout: 2026-04-10T11:09:06.957979Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.958023Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.963892Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.963958Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:06.965062Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("https://github.com/o/r/issues/1"), touch: false, blocker: false, force: false, reset: true, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] Found existing local file, will sync with remote... [INFO] [stdout] [INFO] [stdout] stderr: [mock] Loaded state from /tmp/v_fixture_uwrjBB/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Should succeed with --reset via URL. stderr: [mock] Loaded state from /tmp/v_fixture_uwrjBB/mock_state.json [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/sync.rs:221 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_nukes_local_state::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:221 [INFO] [stdout] 219 │ eprintln!("stderr: {}", out.stderr); [INFO] [stdout] 220 │ [INFO] [stdout]  221 >  assert!(out.status.success(), "Should succeed with --reset via URL. stderr: {}", out.stderr); [INFO] [stdout] 222 │ [INFO] [stdout] 223 │ // Local file should now have remote content [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 33: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_nukes_local_state [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:227 [INFO] [stdout] 225 │ let content = read_issue_file(&issue_path); [INFO] [stdout] 226 │ assert!(content.contains("remote body wins"), "Local should be replaced with remote. Got: {content}"); [INFO] [stdout]  227 >  assert!(!content.contains("local body that should be nuked"), "Local content should be gone"); [INFO] [stdout] 228 │ } [INFO] [stdout] 229 │ [INFO] [stdout] 34: integration[c45695cb73300be0]::sync::test_reset_with_remote_url_nukes_local_state::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/sync.rs:204 [INFO] [stdout] 202 │ /// No merge conflicts, no prompts - just nuke and replace. [INFO] [stdout] 203 │ #[tokio::test] [INFO] [stdout]  204 > async fn test_reset_with_remote_url_nukes_local_state() { [INFO] [stdout] 205 │ let ctx = TestContext::build(""); [INFO] [stdout] 206 │ [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 56: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_nested_issue_under_unsynced_parent_offline stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:07.517550Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.517760Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.519615Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.519677Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.520637Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("o/r/Parent/child"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] Error: Repository 'o/r' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: nested_issue_under_unsynced_parent_offline [INFO] [stdout] Source: tests/integration/touch.rs:159 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 3 3 │ "virtual_project": false, [INFO] [stdout] 4 4 │ "next_virtual_issue_number": 0, [INFO] [stdout] 5 5 │ "issues": {} [INFO] [stdout] 6 6 │ } [INFO] [stdout] 7 │-//- /o/r/Parent_Issue/__main__.md [INFO] [stdout] 7 │+//- /o/r/Parent_Issue.md [INFO] [stdout] 8 8 │ - [ ] Parent Issue [INFO] [stdout] 9 │- parent body [INFO] [stdout] 10 │- [INFO] [stdout] 11 │-//- /o/r/Parent_Issue/child.md [INFO] [stdout] 12 │-- [ ] child [INFO] [stdout] 9 │+ parent body [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/touch.rs:159 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::touch::test_nested_issue_under_unsynced_parent_offline [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:159 [INFO] [stdout] 157 │ [INFO] [stdout] 158 │ // Verify: parent converted to directory, child created as pending [INFO] [stdout]  159 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap(), &out), @r#" [INFO] [stdout] 160 │ //- /o/r/.meta.json [INFO] [stdout] 161 │ { [INFO] [stdout] 14: integration[c45695cb73300be0]::touch::test_nested_issue_under_unsynced_parent_offline::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:139 [INFO] [stdout] 137 │ /// Offline creation should work without requiring git sync first. [INFO] [stdout] 138 │ #[test] [INFO] [stdout]  139 > fn test_nested_issue_under_unsynced_parent_offline() { [INFO] [stdout] 140 │ // Set up a parent issue with title-only naming (no git number - just "Parent_Issue.md") [INFO] [stdout] 141 │ let ctx = TestContext::build( [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_touch_matches_issue_by_substring stdout ---- [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Expected success, got stderr: Error: Repository 'testowner/testrepo' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/touch.rs:43 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::touch::test_touch_matches_issue_by_substring [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:43 [INFO] [stdout] 41 │ [INFO] [stdout] 42 │ // Should succeed and find the existing issue [INFO] [stdout]  43 >  assert!(out.status.success(), "Expected success, got stderr: {}", out.stderr); [INFO] [stdout] 44 │ } [INFO] [stdout] 45 │ [INFO] [stdout] 12: integration[c45695cb73300be0]::touch::test_touch_matches_issue_by_substring::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:15 [INFO] [stdout] 13 │ /// Path: owner/repo/partial_title should match 99_-_full_title.md [INFO] [stdout] 14 │ #[test] [INFO] [stdout]  15 > fn test_touch_matches_issue_by_substring() { [INFO] [stdout] 16 │ let ctx = TestContext::build( [INFO] [stdout] 17 │ r#" [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 34: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_nested_issue_under_unsynced_parent_online stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:07.550736Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.550779Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.552410Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.552465Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.556495Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("o/r/Parent/child"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:07.559656Z INFO mock_github: repo_exists, owner: "o", repo_name: "r" [INFO] [stdout] at src/mock_github.rs:709 [INFO] [stdout] in tedi::mock_github::repo_exists [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("o/r/Parent/child"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] Error: Repository 'o/r' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: nested_issue_under_unsynced_parent_online [INFO] [stdout] Source: tests/integration/touch.rs:199 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 │-//- /o/r/1_-_Parent_Issue/2_-_child.md [INFO] [stdout] 2 │-- [ ] child [INFO] [stdout] 3 │-//- /o/r/1_-_Parent_Issue/__main__.md [INFO] [stdout] 4 │-- [ ] Parent Issue [INFO] [stdout] 1 │+//- /o/r/Parent_Issue.md [INFO] [stdout] 2 │+- [ ] Parent Issue [INFO] [stdout] 5 3 │ parent body [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/touch.rs:199 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::touch::test_nested_issue_under_unsynced_parent_online [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:199 [INFO] [stdout] 197 │ [INFO] [stdout] 198 │ // Verify: parent synced (#1), child synced (#2), proper nesting [INFO] [stdout]  199 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout] 200 │ //- /o/r/1_-_Parent_Issue/2_-_child.md [INFO] [stdout] 201 │ - [ ] child [INFO] [stdout] 14: integration[c45695cb73300be0]::touch::test_nested_issue_under_unsynced_parent_online::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:179 [INFO] [stdout] 177 │ /// Test that online sync of child under unsynced parent syncs parent first. [INFO] [stdout] 178 │ #[test] [INFO] [stdout]  179 > fn test_nested_issue_under_unsynced_parent_online() { [INFO] [stdout] 180 │ // Set up a parent issue with title-only naming (no git number) [INFO] [stdout] 181 │ let ctx = TestContext::build( [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_touch_new_subissue_no_edits_does_not_create stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:08.984742Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:08.984790Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:08.986656Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:08.986722Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:08.991900Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("testowner/testrepo/parent/new_child"), touch: true, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:08.997659Z INFO mock_github: repo_exists, owner: "testowner", repo_name: "testrepo" [INFO] [stdout] at src/mock_github.rs:709 [INFO] [stdout] in tedi::mock_github::repo_exists [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("testowner/testrepo/parent/new_child"), touch: true, blocker: false, force: false, reset: false, mock: Some(Standard) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] Error: Repository 'testowner/testrepo' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout] [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: Expected success, got stderr: Error: Repository 'testowner/testrepo' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout]  [INFO] [stdout] Location: tests/integration/touch.rs:132 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: integration[c45695cb73300be0]::touch::test_touch_new_subissue_no_edits_does_not_create [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:132 [INFO] [stdout] 130 │ "); [INFO] [stdout] 131 │ [INFO] [stdout]  132 >  assert!(out.status.success(), "Expected success, got stderr: {}", out.stderr); [INFO] [stdout] 133 │ } [INFO] [stdout] 134 │ [INFO] [stdout] 12: integration[c45695cb73300be0]::touch::test_touch_new_subissue_no_edits_does_not_create::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:97 [INFO] [stdout] 95 │ /// The issue should only be created when the user actually saves changes. [INFO] [stdout] 96 │ #[test] [INFO] [stdout]  97 > fn test_touch_new_subissue_no_edits_does_not_create() { [INFO] [stdout] 98 │ let ctx = TestContext::build( [INFO] [stdout] 99 │ r#" [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 34: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch::test_touch_path_with_more_segments_after_flat_file_match stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:09.741524Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:09.741606Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:09.743623Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:09.743692Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:09.751010Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("testowner/testrepo/parent/child"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:09.753862Z INFO mock_github: repo_exists, owner: "testowner", repo_name: "testrepo" [INFO] [stdout] at src/mock_github.rs:709 [INFO] [stdout] in tedi::mock_github::repo_exists [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("testowner/testrepo/parent/child"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] Error: Repository 'testowner/testrepo' doesn't exist locally and is not accessible on GitHub [INFO] [stdout] Check that the owner/repo is correct, or use --parent=virtual for local-only tracking. [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: touch_path_with_more_segments_after_flat_file_match [INFO] [stdout] Source: tests/integration/touch.rs:83 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 │-//- /testowner/testrepo/99_-_parent/100_-_child.md [INFO] [stdout] 2 │-- [ ] child [INFO] [stdout] 3 │-//- /testowner/testrepo/99_-_parent/__main__.md [INFO] [stdout] 1 │+//- /testowner/testrepo/99_-_parent.md [INFO] [stdout] 4 2 │ - [ ] parent [INFO] [stdout] 5 3 │ _ [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/touch.rs:83 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::touch::test_touch_path_with_more_segments_after_flat_file_match [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:83 [INFO] [stdout] 81 │ [INFO] [stdout] 82 │ // Verify: flat file converted to directory, sub-issue created inside [INFO] [stdout]  83 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap().skip_meta(), &out), @" [INFO] [stdout] 84 │ //- /testowner/testrepo/99_-_parent/100_-_child.md [INFO] [stdout] 85 │ - [ ] child [INFO] [stdout] 14: integration[c45695cb73300be0]::touch::test_touch_path_with_more_segments_after_flat_file_match::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch.rs:54 [INFO] [stdout] 52 │ /// - The Sink (Local) converts the flat file to directory format automatically [INFO] [stdout] 53 │ #[test] [INFO] [stdout]  54 > fn test_touch_path_with_more_segments_after_flat_file_match() { [INFO] [stdout] 55 │ //HACK: shouldn't write out TestContext contents [INFO] [stdout] 56 │ let ctx = TestContext::build( [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] ---- touch_parent::test_parent_virtual_creates_virtual_project stdout ---- [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] BINARY FAILED [INFO] [stdout] stdout: [INFO] [stdout] 2026-04-10T11:09:10.188043Z INFO v_utils::utils::tracing: Using log directives from `.cargo/log_directives`: [INFO] [stdout] todo=trace,debug,v_utils=info [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:321 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:10.188090Z INFO v_utils::utils::tracing: Starting ... [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/v_utils-2.15.29/src/utils/tracing.rs:130 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:10.189875Z INFO mock_github: fetch_authenticated_user [INFO] [stdout] at src/mock_github.rs:382 [INFO] [stdout] in tedi::mock_github::fetch_authenticated_user [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:10.189938Z INFO tedi: Authenticated as: mock_user [INFO] [stdout] at src/main.rs:42 [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:10.194008Z DEBUG tedi::open_interactions::command: open_command entered, blocker=false [INFO] [stdout] at src/open_interactions/command.rs:108 [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("newowner/newrepo/my-issue"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] 2026-04-10T11:09:10.195148Z INFO mock_github: repo_exists, owner: "newowner", repo_name: "newrepo" [INFO] [stdout] at src/mock_github.rs:709 [INFO] [stdout] in tedi::mock_github::repo_exists [INFO] [stdout] in tedi::open_interactions::command::open_command with url_or_pattern: Some("newowner/newrepo/my-issue"), touch: true, blocker: false, force: false, reset: false, mock: Some(GhostEdit) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] stderr: [INFO] [stdout] Error: `fd` not found in PATH (required for local filesystem operations) [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] Snapshot: parent_virtual_creates_virtual_project [INFO] [stdout] Source: tests/integration/touch_parent.rs:23 [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] Expression: render_fixture(FixtureRenderer::try_new(&ctx).unwrap(), &out) [INFO] [stdout] ──────────────────────────────────────────────────────────────────────────────── [INFO] [stdout] -old snapshot [INFO] [stdout] +new results [INFO] [stdout] ────────────┬─────────────────────────────────────────────────────────────────── [INFO] [stdout] 1 1 │ //- /newowner/newrepo/.meta.json [INFO] [stdout] 2 2 │ { [INFO] [stdout] 3 3 │ "virtual_project": true, [INFO] [stdout] 4 4 │ "next_virtual_issue_number": 1 [INFO] [stdout] 5 │-} [INFO] [stdout] 6 │-//- /newowner/newrepo/my-issue.md [INFO] [stdout] 7 │-- [ ] my-issue [INFO] [stdout] 5 │+} [INFO] [stdout] ────────────┴─────────────────────────────────────────────────────────────────── [INFO] [stdout] The application panicked (crashed). [INFO] [stdout] Message: called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] Location: tests/integration/touch_parent.rs:23 [INFO] [stdout] [INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [INFO] [stdout] 1: ::panic_report [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:975 [INFO] [stdout] 973 │ [INFO] [stdout] 974 │ let backtrace = if capture_bt { [INFO] [stdout]  975 >  Some(backtrace::Backtrace::new()) [INFO] [stdout] 976 │ } else { [INFO] [stdout] 977 │ None [INFO] [stdout] 2: ::into_panic_hook::{closure#0} [INFO] [stdout] at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/color-eyre-0.6.5/src/config.rs:954 [INFO] [stdout] 952 │ ) -> Box) + Send + Sync + 'static> { [INFO] [stdout] 953 │ Box::new(move |panic_info| { [INFO] [stdout]  954 >  eprintln!("{}", self.panic_report(panic_info)); [INFO] [stdout] 955 │ }) [INFO] [stdout] 956 │ } [INFO] [stdout]  ⋮ 7 frames hidden ⋮  [INFO] [stdout] 10: core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/panicking.rs:80 [INFO] [stdout] 11: core[6aaeda2c7ad07a48]::result::unwrap_failed [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1867 [INFO] [stdout] 12: >>::unwrap [INFO] [stdout] at /rustc/dec9417b8611e34e787a3e4c37686b5131f9e5c5/library/core/src/result.rs:1233 [INFO] [stdout] 13: integration[c45695cb73300be0]::touch_parent::test_parent_virtual_creates_virtual_project [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch_parent.rs:23 [INFO] [stdout] 21 │ // Verify: virtual project created with the issue [INFO] [stdout] 22 │ // Note: virtual projects are offline-only, so ghost_edit doesn't trigger sync - issue stays pending [INFO] [stdout]  23 >  insta::assert_snapshot!(render_fixture(FixtureRenderer::try_new(&ctx).unwrap(), &out), @r#" [INFO] [stdout] 24 │ //- /newowner/newrepo/.meta.json [INFO] [stdout] 25 │ { [INFO] [stdout] 14: integration[c45695cb73300be0]::touch_parent::test_parent_virtual_creates_virtual_project::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/integration/touch_parent.rs:14 [INFO] [stdout] 12 │ /// Test that --parent=virtual creates a virtual project for a non-existent repo. [INFO] [stdout] 13 │ #[test] [INFO] [stdout]  14 > fn test_parent_virtual_creates_virtual_project() { [INFO] [stdout] 15 │ // Empty context - no existing repos [INFO] [stdout] 16 │ let ctx = TestContext::build(""); [INFO] [stdout]  ⋮ 21 frames hidden ⋮  [INFO] [stdout] 36: clone [INFO] [stdout] at : [INFO] [stdout] [INFO] [stdout] Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering. [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] blocker_integrated::test_blocker_add_creates_blockers_section_if_missing [INFO] [stdout] blocker_integrated::test_blocker_add_in_integrated_mode [INFO] [stdout] blocker_integrated::test_blocker_add_with_nested_context [INFO] [stdout] blocker_integrated::test_blocker_pop_in_integrated_mode [INFO] [stdout] file_naming::test_duplicate_reference_to_existing_issue_succeeds [INFO] [stdout] file_naming::test_duplicate_removes_local_file [INFO] [stdout] file_naming::test_flat_format_preserved_when_no_sub_issues [INFO] [stdout] file_naming::test_old_flat_file_removed_when_sub_issues_appear [INFO] [stdout] file_naming::test_old_placement_discarded_with_pull [INFO] [stdout] issue_preservation::test_blockers_added_during_edit_preserved [INFO] [stdout] issue_preservation::test_blockers_preserved_through_sync [INFO] [stdout] issue_preservation::test_blockers_with_nesting_preserved [INFO] [stdout] issue_preservation::test_closing_nested_issue_creates_bak_file [INFO] [stdout] issue_preservation::test_comments_with_ids_sync_correctly [INFO] [stdout] issue_preservation::test_nested_issues_and_blockers_together [INFO] [stdout] issue_preservation::test_nested_issues_preserved_through_sync [INFO] [stdout] reset_conflict::test_reset_discards_local_subissue_modifications [INFO] [stdout] reset_conflict::test_reset_with_body_edit [INFO] [stdout] reset_conflict::test_reset_with_subissue_edit [INFO] [stdout] sync::test_both_diverged_merge_winner::case_1_remote_wins [INFO] [stdout] sync::test_closing_issue_syncs_state_change [INFO] [stdout] sync::test_comment_shorthand_creates_comment [INFO] [stdout] sync::test_consensus_sink_writes_meta_json_with_timestamps [INFO] [stdout] sync::test_duplicate_sub_issues_filtered_from_remote [INFO] [stdout] sync::test_force_merge_preserves_both_sub_issues::case_1_prefer_local [INFO] [stdout] sync::test_force_merge_preserves_both_sub_issues::case_2_prefer_remote [INFO] [stdout] sync::test_only_local_changed_pushes_local [INFO] [stdout] sync::test_only_remote_changed_takes_remote_with_pull [INFO] [stdout] sync::test_open_by_number_unchanged_succeeds [INFO] [stdout] sync::test_open_unchanged_succeeds [INFO] [stdout] sync::test_pull_fetches_before_editor [INFO] [stdout] sync::test_pull_with_divergence_runs_sync_before_editor [INFO] [stdout] sync::test_reset_syncs_changes_after_editor [INFO] [stdout] sync::test_reset_with_local_source_skips_sync [INFO] [stdout] sync::test_reset_with_remote_url_nukes_local_state [INFO] [stdout] sync::test_reset_with_remote_url_skips_merge_on_divergence [INFO] [stdout] sync::test_undo_shorthand_aborts_sync [INFO] [stdout] sync::test_url_open_creates_local_file_from_remote [INFO] [stdout] touch::test_break_to_edit_allows_mid_execution_modification [INFO] [stdout] touch::test_nested_issue_under_unsynced_parent_offline [INFO] [stdout] touch::test_nested_issue_under_unsynced_parent_online [INFO] [stdout] touch::test_touch_matches_issue_by_substring [INFO] [stdout] touch::test_touch_new_subissue_no_edits_does_not_create [INFO] [stdout] touch::test_touch_path_with_more_segments_after_flat_file_match [INFO] [stdout] touch_parent::test_parent_virtual_creates_virtual_project [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 45 failed; 0 ignored; 0 measured; 0 filtered out; finished in 48.91s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test integration` [INFO] running `Command { std: "docker" "inspect" "8735d677824f6daf5fe745bcecf6e2ce88d53adffbda3f2ed797f106f3c0993d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8735d677824f6daf5fe745bcecf6e2ce88d53adffbda3f2ed797f106f3c0993d", kill_on_drop: false }` [INFO] [stdout] 8735d677824f6daf5fe745bcecf6e2ce88d53adffbda3f2ed797f106f3c0993d