[INFO] cloning repository https://github.com/tsmarsh/moth
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tsmarsh/moth" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftsmarsh%2Fmoth", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftsmarsh%2Fmoth'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1586cf5284b1920679a5a4862d11f54fb514b891
[INFO] testing tsmarsh/moth against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftsmarsh%2Fmoth" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/tsmarsh/moth
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/tsmarsh/moth
[INFO] tweaked toml for git repo https://github.com/tsmarsh/moth written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/tsmarsh/moth on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/tsmarsh/moth 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded lazy-regex-proc_macros v3.4.2
[INFO] [stderr]   Downloaded lazy-regex v3.4.2
[INFO] [stderr]   Downloaded gherkin v0.14.0
[INFO] [stderr]   Downloaded scc v2.4.0
[INFO] [stderr]   Downloaded synthez-codegen v0.3.1
[INFO] [stderr]   Downloaded clap_complete v4.5.61
[INFO] [stderr]   Downloaded typed-builder v0.15.2
[INFO] [stderr]   Downloaded synthez-core v0.3.1
[INFO] [stderr]   Downloaded cucumber v0.21.1
[INFO] [stderr]   Downloaded cucumber-codegen v0.21.1
[INFO] [stderr]   Downloaded nom_locate v4.2.0
[INFO] [stderr]   Downloaded peg-macros v0.6.3
[INFO] [stderr]   Downloaded peg-runtime v0.6.3
[INFO] [stderr]   Downloaded ignore v0.4.25
[INFO] [stderr]   Downloaded typed-builder-macro v0.15.2
[INFO] [stderr]   Downloaded sealed v0.5.0
[INFO] [stderr]   Downloaded globset v0.4.18
[INFO] [stderr]   Downloaded peg v0.6.3
[INFO] [stderr]   Downloaded synthez v0.3.1
[INFO] [stderr]   Downloaded cucumber-expressions v0.3.0
[INFO] [stderr]   Downloaded icu_properties v2.1.1
[INFO] [stderr]   Downloaded icu_properties_data v2.1.1
[INFO] [stderr]   Downloaded sdd v3.0.10
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bad60d7289de199533b70f71adb770119dff258a05a7ad2b2f3b95a731995ddd
[INFO] running `Command { std: "docker" "start" "-a" "bad60d7289de199533b70f71adb770119dff258a05a7ad2b2f3b95a731995ddd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bad60d7289de199533b70f71adb770119dff258a05a7ad2b2f3b95a731995ddd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bad60d7289de199533b70f71adb770119dff258a05a7ad2b2f3b95a731995ddd", kill_on_drop: false }`
[INFO] [stdout] bad60d7289de199533b70f71adb770119dff258a05a7ad2b2f3b95a731995ddd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 22a379ac7243b5613cbe4f0ae02505776a9c307de81a464b8a95f7d70fd10c2c
[INFO] running `Command { std: "docker" "start" "-a" "22a379ac7243b5613cbe4f0ae02505776a9c307de81a464b8a95f7d70fd10c2c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.28
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.2.47
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling libgit2-sys v0.17.0+1.8.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap_complete v4.5.61
[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 serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling moth v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.41s
[INFO] running `Command { std: "docker" "inspect" "22a379ac7243b5613cbe4f0ae02505776a9c307de81a464b8a95f7d70fd10c2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "22a379ac7243b5613cbe4f0ae02505776a9c307de81a464b8a95f7d70fd10c2c", kill_on_drop: false }`
[INFO] [stdout] 22a379ac7243b5613cbe4f0ae02505776a9c307de81a464b8a95f7d70fd10c2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b2a888501792cebf80a07ec03d5066887219ab7f31224628c18a7e4101ea4c17
[INFO] running `Command { std: "docker" "start" "-a" "b2a888501792cebf80a07ec03d5066887219ab7f31224628c18a7e4101ea4c17", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling peg-runtime v0.6.3
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling sdd v3.0.10
[INFO] [stderr]    Compiling inflections v1.1.1
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling drain_filter_polyfill v0.1.3
[INFO] [stderr]    Compiling inventory v0.3.21
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling peg-macros v0.6.3
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling scc v2.4.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling peg v0.6.3
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling nom_locate v4.2.0
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling globwalk v0.9.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling sealed v0.5.0
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling typed-builder-macro v0.15.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.4.2
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling smart-default v0.7.1
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling synthez-core v0.3.1
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling lazy-regex v3.4.2
[INFO] [stderr]    Compiling synthez-codegen v0.3.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling synthez v0.3.1
[INFO] [stderr]    Compiling typed-builder v0.15.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling cucumber-expressions v0.3.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling clap_complete v4.5.61
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling cucumber-codegen v0.21.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling gherkin v0.14.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling serial_test v3.2.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling cucumber v0.21.1
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling git2 v0.19.0
[INFO] [stderr]    Compiling moth v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 59.20s
[INFO] running `Command { std: "docker" "inspect" "b2a888501792cebf80a07ec03d5066887219ab7f31224628c18a7e4101ea4c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2a888501792cebf80a07ec03d5066887219ab7f31224628c18a7e4101ea4c17", kill_on_drop: false }`
[INFO] [stdout] b2a888501792cebf80a07ec03d5066887219ab7f31224628c18a7e4101ea4c17
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 845d90b0210f3ddac311a9ac8e79f331ad6fcff885e29f23295485e06a3beed8
[INFO] running `Command { std: "docker" "start" "-a" "845d90b0210f3ddac311a9ac8e79f331ad6fcff885e29f23295485e06a3beed8", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/moth-34c9a7c41e50ec65)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test cmd::report::tests::test_detect_changes_moved ... ok
[INFO] [stdout] test cmd::report::tests::test_change_event_as_str ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_created ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_deleted ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_edited ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_slug_edit ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_no_change ... ok
[INFO] [stdout] test cmd::report::tests::test_escape_csv ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_empty_brackets ... ok
[INFO] [stdout] test config::tests::test_config_validation ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_no_prefix ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_no_space ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_multiline ... ok
[INFO] [stdout] test cmd::report::tests::test_parse_story_filename_invalid ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_special_chars_rejected ... ok
[INFO] [stdout] test cmd::report::tests::test_parse_story_filename_with_hyphenated_slug ... ok
[INFO] [stdout] test cmd::report::tests::test_parse_story_filename ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_valid ... ok
[INFO] [stdout] test issue::tests::test_issue_title ... ok
[INFO] [stdout] test issue::tests::test_parse_issue_prefix_extra_spaces ... ok
[INFO] [stdout] test issue::tests::test_severity_from_str ... ok
[INFO] [stdout] test issue::tests::test_issue_filename_with_order ... ok
[INFO] [stdout] test issue::tests::test_generate_id ... ok
[INFO] [stdout] test store::tests::test_title_to_slug ... ok
[INFO] [stdout] test store::tests::test_title_to_slug_edge_cases ... ok
[INFO] [stdout] test issue::tests::test_parse_issue_prefix_no_prefix ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_severity_edit ... ok
[INFO] [stdout] test issue::tests::test_issue_filename ... ok
[INFO] [stdout] test issue::tests::test_extract_issue_id_uppercase_rejected ... ok
[INFO] [stdout] test cmd::report::tests::test_detect_changes_multiple ... ok
[INFO] [stdout] test issue::tests::test_parse_issue_prefix_valid ... ok
[INFO] [stdout] test issue::tests::test_parse_issue_prefix_no_message ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/moth-6f2e062a666d86ce)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cucumber.rs (/opt/rustwide/target/debug/deps/cucumber-4fe9674205da1c30)
[INFO] [stdout] Initialized moth in /tmp/.tmpKMRJEp/.moth
[INFO] [stdout] Feature: Git hook management
[INFO] [stdout]   Scenario: Install hook in git repository
[INFO] [stdout] Installed moth hook
[INFO] [stdout] Hook installed at: /tmp/.tmpKMRJEp/.git/hooks/prepare-commit-msg
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And a git repository is initialized
[INFO] [stdout]    ✔  When the user installs the hook
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the prepare-commit-msg hook exists
[INFO] [stdout]   Scenario: Install hook when already installed
[INFO] [stdout] Initialized moth in /tmp/.tmpLDyJEC/.moth
[INFO] [stdout] Installed moth hook
[INFO] [stdout] Hook installed at: /tmp/.tmpLDyJEC/.git/hooks/prepare-commit-msg
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Moth hook is already installed
[INFO] [stdout]    ✔  And a git repository is initialized
[INFO] [stdout]    ✔  And the hook is installed
[INFO] [stdout]    ✔  When the user installs the hook
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]   Scenario: Install hook with force overwrites existing
[INFO] [stdout] Initialized moth in /tmp/.tmpi2Qd60/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Installed moth hook (replaced existing)
[INFO] [stdout] Hook installed at: /tmp/.tmpi2Qd60/.git/hooks/prepare-commit-msg
[INFO] [stdout]    ✔  And a git repository is initialized
[INFO] [stdout]    ✔  And a custom prepare-commit-msg hook exists
[INFO] [stdout]    ✔  When the user installs the hook with force
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the prepare-commit-msg hook exists
[INFO] [stdout]   Scenario: Uninstall hook
[INFO] [stdout] Initialized moth in /tmp/.tmpLfZbUZ/.moth
[INFO] [stdout] Installed moth hook
[INFO] [stdout] Hook installed at: /tmp/.tmpLfZbUZ/.git/hooks/prepare-commit-msg
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Removed moth hook
[INFO] [stdout]    ✔  And a git repository is initialized
[INFO] [stdout]    ✔  And the hook is installed
[INFO] [stdout]    ✔  When the user uninstalls the hook
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the prepare-commit-msg hook does not exist
[INFO] [stdout]   Scenario: Uninstall when no hook exists
[INFO] [stdout] Initialized moth in /tmp/.tmpbbdOOR/.moth
[INFO] [stdout] No prepare-commit-msg hook found
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And a git repository is initialized
[INFO] [stdout]    ✔  When the user uninstalls the hook
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]   Scenario: Install hook without git repository fails
[INFO] [stdout] Initialized moth in /tmp/.tmpORO8Cm/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user installs the hook
[INFO] [stdout]    ✔  Then the command fails with "No .git directory"
[INFO] [stdout] Feature: Initialize moth workspace
[INFO] [stdout]   Scenario: Initialize creates directory structure
[INFO] [stdout] Initialized moth in /tmp/.tmpBCXGFH/.moth
[INFO] [stdout]    ✔  Given an empty directory
[INFO] [stdout]    ✔  When the user runs init
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And a .moth directory exists
[INFO] [stdout]    ✔  And a config.yml file exists
[INFO] [stdout]    ✔  And ready, doing, done directories exist
[INFO] [stdout]   Scenario: Double initialization fails
[INFO] [stdout] Initialized moth in /tmp/.tmpmJxi6g/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user runs init
[INFO] [stdout]    ✔  Then the command fails with "already initialized"
[INFO] [stdout]   Scenario: Commands without init fail - new
[INFO] [stdout]    ✔  Given an empty directory
[INFO] [stdout]    ✔  When the user creates issue "Test"
[INFO] [stdout]    ✔  Then the command fails
[INFO] [stdout]   Scenario: Commands without init fail - list
[INFO] [stdout]    ✔  Given an empty directory
[INFO] [stdout]    ✔  When the user lists issues
[INFO] [stdout]    ✔  Then the command fails
[INFO] [stdout] Feature: Issue management
[INFO] [stdout] Initialized moth in /tmp/.tmpkblajF/.moth
[INFO] [stdout]   Scenario: Create issue with default severity
[INFO] [stdout] Created o1qvf: Fix Login Bug [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user creates issue "Fix login bug"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]    ✔  And the issue has severity "med"
[INFO] [stdout]   Scenario: Create issue with severity
[INFO] [stdout] Initialized moth in /tmp/.tmpbDoWX7/.moth
[INFO] [stdout] Created oixxp: Fix Login Bug [high]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user creates issue "Fix login bug" with severity "high"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]    ✔  And the issue has severity "high"
[INFO] [stdout]   Scenario: Create issue with invalid severity fails
[INFO] [stdout] Initialized moth in /tmp/.tmpkprv8l/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user creates issue "Test" with severity "invalid"
[INFO] [stdout]    ✔  Then the command fails with "Invalid severity"
[INFO] [stdout]   Scenario: Create issue with --start flag moves to doing
[INFO] [stdout] Initialized moth in /tmp/.tmp8AVoIF/.moth
[INFO] [stdout] Created k7zu6: Test Issue With Start [med]
[INFO] [stdout] Moved k7zu6 to doing
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user creates issue "Test issue with start" with --start flag
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "doing" status
[INFO] [stdout]    ✔  And 0 issues exist in "ready" status
[INFO] [stdout]   Scenario: Create issue respects no_edit config
[INFO] [stdout] Initialized moth in /tmp/.tmpg9NgHo/.moth
[INFO] [stdout] Created xr4vp: Test Issue With No Edit [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And the config has no_edit set to true
[INFO] [stdout]    ✔  When the user creates issue "Test issue with no_edit" without --no-edit
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]   Scenario: Show issue displays content
[INFO] [stdout] Initialized moth in /tmp/.tmpTvEx6O/.moth
[INFO] [stdout] Created ttqu7: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user shows the current issue
[INFO] [stdout]    ✔  Then the command fails with "No current issue"
[INFO] [stdout]   Scenario: Show with nonexistent id fails
[INFO] [stdout] Initialized moth in /tmp/.tmpfDqTXL/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user shows issue "nonexistent"
[INFO] [stdout]    ✔  Then the command fails with "No issue found"
[INFO] [stdout]   Scenario: Delete issue removes it
[INFO] [stdout] Initialized moth in /tmp/.tmpBAXsve/.moth
[INFO] [stdout] Created qjzm4: Test Issue [med]
[INFO] [stdout] Deleted qjzm4: Test Issue
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user deletes the last created issue
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And no issues exist
[INFO] [stdout]   Scenario: Delete nonexistent issue fails
[INFO] [stdout] Initialized moth in /tmp/.tmpug9KJp/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user deletes issue "nonexistent"
[INFO] [stdout]    ✔  Then the command fails
[INFO] [stdout]   Scenario: Partial ID matching works
[INFO] [stdout] Initialized moth in /tmp/.tmpYZdHpL/.moth
[INFO] [stdout] Created y3i1f: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  Then partial ID matching works for the issue
[INFO] [stdout] Feature: Issue listing and filtering
[INFO] [stdout] Initialized moth in /tmp/.tmpKZQXwX/.moth
[INFO] [stdout]   Scenario: List shows issues
[INFO] [stdout] Created dmjki: Issue 1 [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Created z1kro: Issue 2 [high]
[INFO] [stdout]    ✔  And an issue "Issue 1" exists
[INFO] [stdout] ready
[INFO] [stdout]   z1kro [high] Issue 2
[INFO] [stdout]   dmjki [med] Issue 1
[INFO] [stdout]    ✔  And an issue "Issue 2" exists with severity "high"
[INFO] [stdout]    ✔  When the user lists issues
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 2 issues exist in "ready" status
[INFO] [stdout]   Scenario: List filters by status - ready
[INFO] [stdout] Initialized moth in /tmp/.tmpPP2Vcq/.moth
[INFO] [stdout] Created gd7eb: Ready Issue [med]
[INFO] [stdout] ready
[INFO] [stdout]   gd7eb [med] Ready Issue
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Ready issue" exists
[INFO] [stdout]    ✔  When the user lists issues with status "ready"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]   Scenario: List filters by status - doing
[INFO] [stdout] Initialized moth in /tmp/.tmpDTSMC2/.moth
[INFO] [stdout] Created pszyp: Ready Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Ready issue" exists
[INFO] [stdout]    ✔  When the user lists issues with status "doing"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 0 issues exist in "doing" status
[INFO] [stdout] Feature: Issue priority management
[INFO] [stdout] Initialized moth in /tmp/.tmpQjaWkJ/.moth
[INFO] [stdout]   Scenario: Set priority to a specific number
[INFO] [stdout] Created yzh9o: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Set priority of yzh9o to 1
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "1"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the issue has priority 1
[INFO] [stdout]   Scenario: Set priority to top
[INFO] [stdout] Initialized moth in /tmp/.tmpJQkBBd/.moth
[INFO] [stdout] Created puc6h: First Issue [med]
[INFO] [stdout] Created g8e0f: Second Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Set priority of g8e0f to 1
[INFO] [stdout]    ✔  And an issue "First issue" exists
[INFO] [stdout]    ✔  And an issue "Second issue" exists
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "top"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]   Scenario: Set priority to bottom removes priority
[INFO] [stdout] Initialized moth in /tmp/.tmp0gxcBJ/.moth
[INFO] [stdout] Created hfuvv: Test Issue [med]
[INFO] [stdout] Set priority of hfuvv to 1
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout] Removed priority from hfuvv
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "1"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "bottom"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the issue has no priority
[INFO] [stdout]   Scenario: Compact renumbers priorities
[INFO] [stdout] Initialized moth in /tmp/.tmpA83oOJ/.moth
[INFO] [stdout] Created gl2c4: First Issue [med]
[INFO] [stdout] Created u1j52: Second Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Set priority of u1j52 to 5
[INFO] [stdout]    ✔  And an issue "First issue" exists
[INFO] [stdout]    ✔  And an issue "Second issue" exists
[INFO] [stdout] Compacted 1 prioritized issues in ready
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "5"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  When the user compacts priorities
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]   Scenario: Priority on non-prioritized status fails
[INFO] [stdout] Initialized moth in /tmp/.tmpgJlu7D/.moth
[INFO] [stdout] Created e0ftv: Test Issue [med]
[INFO] [stdout] Moved e0ftv to doing
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  And the issue is started
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "1"
[INFO] [stdout]    ✔  Then the command fails with "not configured for prioritization"
[INFO] [stdout]   Scenario: Invalid priority position fails
[INFO] [stdout] Initialized moth in /tmp/.tmpett2gA/.moth
[INFO] [stdout] Created xf59j: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user sets priority of the last issue to "invalid"
[INFO] [stdout]    ✔  Then the command fails with "Invalid position"
[INFO] [stdout] Feature: Issue severity management
[INFO] [stdout] Initialized moth in /tmp/.tmpJs4lQP/.moth
[INFO] [stdout]   Scenario: Change severity from med to high
[INFO] [stdout] Created o345p: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout] Changed severity of o345p from med to high
[INFO] [stdout]    ✔  Then the issue has severity "med"
[INFO] [stdout]    ✔  When the user changes severity of the last issue to "high"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the issue has severity "high"
[INFO] [stdout]   Scenario: Change severity from med to crit
[INFO] [stdout] Initialized moth in /tmp/.tmpHItGY6/.moth
[INFO] [stdout] Created b9zxl: Test Issue [med]
[INFO] [stdout] Changed severity of b9zxl from med to crit
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user changes severity of the last issue to "crit"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the issue has severity "crit"
[INFO] [stdout]   Scenario: Change severity from med to low
[INFO] [stdout] Initialized moth in /tmp/.tmpbo2DjX/.moth
[INFO] [stdout] Created rr3h3: Test Issue [med]
[INFO] [stdout] Changed severity of rr3h3 from med to low
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user changes severity of the last issue to "low"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And the issue has severity "low"
[INFO] [stdout]   Scenario: Change severity with invalid level fails
[INFO] [stdout] Initialized moth in /tmp/.tmppfhRUx/.moth
[INFO] [stdout] Created rio9z: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user changes severity of the last issue to "invalid"
[INFO] [stdout]    ✔  Then the command fails with "Invalid severity"
[INFO] [stdout]   Scenario: Change severity of nonexistent issue fails
[INFO] [stdout] Initialized moth in /tmp/.tmpTnvM9U/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user changes severity of issue "nonexistent" to "high"
[INFO] [stdout]    ✔  Then the command fails with "No issue found"
[INFO] [stdout] Feature: Issue workflow management
[INFO] [stdout] Initialized moth in /tmp/.tmpmdIqxK/.moth
[INFO] [stdout]   Scenario: Start moves issue to doing
[INFO] [stdout] Created k8ev6: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Moved k8ev6 to doing
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user starts the last created issue
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "doing" status
[INFO] [stdout]    ✔  And 0 issues exist in "ready" status
[INFO] [stdout]   Scenario: Done moves issue to done
[INFO] [stdout] Initialized moth in /tmp/.tmpOpjbwD/.moth
[INFO] [stdout] Created rq5lk: Test Issue [med]
[INFO] [stdout] Moved rq5lk to done
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user marks the last created issue as done
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "done" status
[INFO] [stdout]    ✔  And 0 issues exist in "ready" status
[INFO] [stdout]   Scenario: Done with no args finishes current
[INFO] [stdout] Initialized moth in /tmp/.tmpISWtR0/.moth
[INFO] [stdout] Created m2k89: Test Issue [med]
[INFO] [stdout] Moved m2k89 to doing
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Moved m2k89 to done
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  And the issue is started
[INFO] [stdout]    ✔  When the user marks the current issue as done
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "done" status
[INFO] [stdout]   Scenario: Done with no args and no current fails
[INFO] [stdout] Initialized moth in /tmp/.tmp7lnLhQ/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user marks the current issue as done
[INFO] [stdout]    ✔  Then the command fails with "No current issue"
[INFO] [stdout]   Scenario: Move changes status
[INFO] [stdout] Initialized moth in /tmp/.tmpirY7DY/.moth
[INFO] [stdout] Created tg7g3: Test Issue [med]
[INFO] [stdout] Moved tg7g3 to doing
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user moves the last created issue to "doing"
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "doing" status
[INFO] [stdout]    ✔  And 0 issues exist in "ready" status
[INFO] [stdout]   Scenario: Move with invalid status fails
[INFO] [stdout] Initialized moth in /tmp/.tmpwYgBZR/.moth
[INFO] [stdout] Created vqhvl: Test Issue [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  When the user moves the last created issue to "invalid"
[INFO] [stdout]    ✔  Then the command fails with "Unknown status"
[INFO] [stdout]   Scenario: Full workflow from ready to done
[INFO] [stdout] Initialized moth in /tmp/.tmpgrNy0t/.moth
[INFO] [stdout] Created zuqnj: Fix Bug [high]
[INFO] [stdout] Created mm7mz: Add Feature [med]
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] Moved mm7mz to doing
[INFO] [stdout]    ✔  And an issue "Fix bug" exists with severity "high"
[INFO] [stdout]    ✔  And an issue "Add feature" exists
[INFO] [stdout]    ✔  When the user starts the last created issue
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout] Moved mm7mz to done
[INFO] [stdout]    ✔  And 1 issue exists in "doing" status
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]    ✔  When the user marks the current issue as done
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]    ✔  And 1 issue exists in "done" status
[INFO] [stdout]    ✔  And 1 issue exists in "ready" status
[INFO] [stdout]    ✔  And 0 issues exist in "doing" status
[INFO] [stdout]   Scenario: Show no args shows current issue
[INFO] [stdout] Initialized moth in /tmp/.tmpZFKEIe/.moth
[INFO] [stdout] Created x8i7l: Test Issue [med]
[INFO] [stdout] Moved x8i7l to doing
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout] ID: x8i7l | Severity: med | Status: doing
[INFO] [stdout] Title: Test Issue
[INFO] [stdout] ---
[INFO] [stdout] 
[INFO] [stdout]    ✔  And an issue "Test issue" exists
[INFO] [stdout]    ✔  And the issue is started
[INFO] [stdout]    ✔  When the user shows the current issue
[INFO] [stdout]    ✔  Then the command succeeds
[INFO] [stdout]   Scenario: Show no args with no current fails
[INFO] [stdout] Initialized moth in /tmp/.tmpTp4882/.moth
[INFO] [stdout]    ✔  Given a moth workspace is initialized
[INFO] [stdout]    ✔  When the user shows the current issue
[INFO] [stdout]    ✔  Then the command fails with "No current issue"
[INFO] [stdout] [Summary]
[INFO] [stdout] 7 features
[INFO] [stdout] 43 scenarios (43 passed)
[INFO] [stdout] 208 steps (208 passed)
[INFO] [stderr]      Running tests/e2e_shell_test.rs (/opt/rustwide/target/debug/deps/e2e_shell_test-504e2b70b1cd02d7)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test test_e2e_commands_without_init_fail ... ok
[INFO] [stdout] test test_e2e_full_workflow ... ok
[INFO] [stdout] test test_e2e_init_creates_directory ... ok
[INFO] [stdout] test test_e2e_init_twice_fails ... ok
[INFO] [stdout] test test_e2e_ls_shows_issues ... ok
[INFO] [stdout] test test_e2e_new_creates_issue ... ok
[INFO] [stdout] test test_e2e_ls_filters_by_status ... ok
[INFO] [stdout] test test_e2e_mv_with_invalid_status ... ok
[INFO] [stdout] test test_e2e_new_with_invalid_severity ... ok
[INFO] [stdout] test test_e2e_mv_changes_status ... ok
[INFO] [stdout] test test_e2e_new_respects_no_edit_config ... ok
[INFO] [stdout] test test_e2e_show_displays_content ... ok
[INFO] [stdout] test test_e2e_show_with_nonexistent_id ... ok
[INFO] [stdout] test test_e2e_done_moves_to_done ... ok
[INFO] [stdout] test test_e2e_partial_id_matching ... ok
[INFO] [stdout] test test_e2e_new_with_start_flag_moves_to_doing ... ok
[INFO] [stdout] test test_e2e_rm_with_nonexistent_id ... ok
[INFO] [stdout] test test_e2e_rm_deletes_issue ... ok
[INFO] [stdout] test test_e2e_start_moves_to_doing ... ok
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-0abe94d3d6a9ad85)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.25s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 28 tests
[INFO] [stdout] test test_done_moves_issue_to_done ... ok
[INFO] [stdout] test test_new_with_hooks ... ignored
[INFO] [stdout] test test_done_no_args_finishes_current ... ok
[INFO] [stdout] test test_partial_id_ambiguous ... ok
[INFO] [stdout] test test_done_uses_current_file_over_latest ... ok
[INFO] [stdout] test test_full_workflow ... ok
[INFO] [stdout] test test_show_displays_issue_content ... ok
[INFO] [stdout] test test_issue_sorting_by_severity ... ok
[INFO] [stdout] test test_list_shows_all_except_done_by_default ... ok
[INFO] [stdout] test test_mv_moves_issue_to_custom_status ... ok
[INFO] [stdout] test test_mv_fails_with_invalid_status ... ok
[INFO] [stdout] test test_show_with_partial_id ... ok
[INFO] [stdout] test test_new_creates_issue ... ok
[INFO] [stdout] test test_new_with_default_severity ... ok
[INFO] [stdout] test test_new_fails_with_empty_title ... ok
[INFO] [stdout] test test_new_respects_no_edit_config ... ok
[INFO] [stdout] test test_init_fails_when_already_initialized ... ok
[INFO] [stdout] test test_operations_work_after_missing_directories_restored ... ok
[INFO] [stdout] test test_done_no_args_no_current ... ok
[INFO] [stdout] test test_rm_deletes_issue ... ok
[INFO] [stdout] test test_rm_fails_with_nonexistent_id ... ok
[INFO] [stdout] test test_init_creates_moth_directory ... ok
[INFO] [stdout] test test_show_no_args_no_current ... ok
[INFO] [stdout] test test_show_no_args_shows_current ... ok
[INFO] [stdout] test test_start_moves_issue_to_doing ... ok
[INFO] [stdout] test test_new_fails_with_invalid_severity ... ok
[INFO] [stdout] test test_store_recreates_missing_directories ... ok
[INFO] [stdout] test test_show_fails_with_nonexistent_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests moth
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "845d90b0210f3ddac311a9ac8e79f331ad6fcff885e29f23295485e06a3beed8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "845d90b0210f3ddac311a9ac8e79f331ad6fcff885e29f23295485e06a3beed8", kill_on_drop: false }`
[INFO] [stdout] 845d90b0210f3ddac311a9ac8e79f331ad6fcff885e29f23295485e06a3beed8
