[INFO] fetching crate devs-cli 0.2.0...
[INFO] testing devs-cli-0.2.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate devs-cli 0.2.0 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate devs-cli 0.2.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate devs-cli 0.2.0
[INFO] tweaked toml for crates.io crate devs-cli 0.2.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate devs-cli 0.2.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate devs-cli 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4
[INFO] running `Command { std: "docker" "start" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling roff v0.2.2
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling is_executable v1.0.5
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling clap_complete v4.5.66
[INFO] [stderr]    Compiling clap_mangen v0.2.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling devs-cli v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 43.16s
[INFO] running `Command { std: "docker" "inspect" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling devs-cli v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 30.41s
[INFO] running `Command { std: "docker" "inspect" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/devs-cli/8e48dea5e155c06d/out/devs-8e48dea5e155c06d)
[INFO] [stdout] 
[INFO] [stdout] running 253 tests
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_absolute_path ... ok
[INFO] [stdout] test adapters::config_version::tests::read_version_missing_file_returns_1 ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_absolute_node_binary ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_empty ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_handles_empty_projects_dir ... ok
[INFO] [stdout] test adapters::config_version::tests::write_creates_directory ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_plain_node_script ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_yarn ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_creates_backup ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_writes_version_2 ... ok
[INFO] [stdout] test adapters::config_version::tests::write_then_read_roundtrips ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_splits_v1_files ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::resolve_ps_failure_returns_fallback ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::resolve_multiple_children_uses_first ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::resolve_no_children_returns_fallback ... ok
[INFO] [stdout] test adapters::config_version::tests::read_version_valid_file ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::resolve_one_child_returns_normalized ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::resolve_ps_empty_output_returns_fallback ... ok
[INFO] [stdout] test adapters::noop_terminal_adapter::tests::noop_adapter_succeeds ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_non_node_passthrough ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_is_idempotent ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_abbreviates_paths ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_npm ... ok
[INFO] [stdout] test adapters::shell_tmux_adapter::tests::normalize_npx ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_skips_projects_with_no_local_data ... ok
[INFO] [stdout] test adapters::split_config::tests::machine_local_not_empty_with_state ... ok
[INFO] [stdout] test adapters::split_config::tests::machine_local_is_empty_when_no_data ... ok
[INFO] [stdout] test adapters::split_config::tests::split_then_merge_roundtrips ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_preserves_non_home_paths ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::read_valid_file_returns_config ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::write_color_only_omits_layout ... ok
[INFO] [stdout] test adapters::split_config::tests::portable_config_roundtrip ... ok
[INFO] [stdout] test adapters::split_config::tests::machine_local_config_roundtrip ... ok
[INFO] [stdout] test adapters::split_config::tests::minimal_portable_config_roundtrip ... ok
[INFO] [stdout] test adapters::split_config::tests::split_separates_portable_from_local ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::delete_removes_file ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::read_invalid_toml_returns_error ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::list_empty_when_no_projects ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::delete_nonexistent_returns_error ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::list_ignores_non_toml_files ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::load_v1_format_still_works ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::read_missing_file_returns_none ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::list_returns_sorted_project_names ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::load_merges_both_files ... ok
[INFO] [stdout] test adapters::split_config::tests::machine_local_not_empty_with_sessions ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_creates_file_with_correct_content ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::write_creates_file ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::load_nonexistent_returns_error ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::load_without_local_returns_empty_sessions ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_creates_both_files ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::delete_succeeds_when_no_local_file ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_creates_directory_if_missing ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::load_returns_saved_config ... ok
[INFO] [stdout] test adapters::split_config::tests::empty_local_config_roundtrip ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_skips_local_when_empty ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::delete_removes_both_files ... ok
[INFO] [stdout] test adapters::toml_local_config::tests::roundtrip_write_then_read ... ok
[INFO] [stdout] test cli::claude::tests::start_fails_for_missing_project ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_local_file_contains_sessions_and_state ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_portable_file_excludes_sessions_and_state ... ok
[INFO] [stdout] test cli::claudes::tests::list_empty_sessions_shows_message ... ok
[INFO] [stdout] test cli::claudes::tests::list_fails_for_missing_project ... ok
[INFO] [stdout] test cli::claude_done::tests::done_fails_for_nonexistent_session ... ok
[INFO] [stdout] test cli::claude::tests::resume_finds_session_by_label_and_launches_claude ... ok
[INFO] [stdout] test cli::claude::tests::resume_fails_for_unknown_label ... ok
[INFO] [stdout] test cli::claude_done::tests::done_fails_for_missing_project ... ok
[INFO] [stdout] test cli::claude::tests::resume_fails_for_missing_project ... ok
[INFO] [stdout] test cli::claude_done::tests::done_fails_for_already_done_session ... ok
[INFO] [stdout] test cli::close::tests::close_missing_project_errors ... ok
[INFO] [stdout] test cli::config::tests::config_fails_for_missing_project ... ok
[INFO] [stdout] test cli::claude_done::tests::done_only_marks_specified_session ... ok
[INFO] [stdout] test cli::claude::tests::start_records_session_and_launches_claude ... ok
[INFO] [stdout] test cli::edit::tests::config_path_returns_portable_path_by_default ... ok
[INFO] [stdout] test cli::config::tests::config_prints_existing_project ... ok
[INFO] [stdout] test cli::close::tests::close_save_failure_does_not_kill_session ... ok
[INFO] [stdout] test cli::claudes::tests::list_only_done_sessions_shows_empty_without_all ... ok
[INFO] [stdout] test cli::claudes::tests::list_shows_header_and_active_sessions ... ok
[INFO] [stdout] test cli::claude_done::tests::done_marks_active_session_as_done ... ok
[INFO] [stdout] test cli::edit::tests::config_path_returns_local_path_when_local_is_true ... ok
[INFO] [stdout] test cli::claude::tests::start_generates_unique_ids ... ok
[INFO] [stdout] test cli::close::tests::close_dead_session_errors ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_creates_local_directory ... ok
[INFO] [stdout] test adapters::toml_project_repository::tests::save_removes_local_file_when_data_becomes_empty ... ok
[INFO] [stdout] test cli::claudes::tests::list_with_all_includes_done_sessions ... ok
[INFO] [stdout] test cli::close::tests::close_with_save_saves_then_kills ... ok
[INFO] [stdout] test cli::edit::tests::edit_local_fails_for_missing_project ... ok
[INFO] [stdout] test cli::close::tests::close_kills_session_and_resets_color ... ok
[INFO] [stdout] test cli::edit::tests::edit_fails_for_missing_project ... ok
[INFO] [stdout] test cli::edit::tests::edit_fails_when_no_editor_set ... ok
[INFO] [stdout] test cli::list::tests::list_column_aligned ... ok
[INFO] [stdout] test cli::init::tests::exports_with_no_color ... ok
[INFO] [stdout] test cli::list::tests::list_empty_shows_message ... ok
[INFO] [stdout] test cli::edit::tests::edit_local_creates_parent_directory ... ok
[INFO] [stdout] test cli::list::tests::list_shows_project_names_and_paths ... ok
[INFO] [stdout] test cli::new::tests::flag_color_overrides_local_config ... ok
[INFO] [stdout] test cli::init::tests::exports_color_and_layout ... ok
[INFO] [stdout] test cli::init::tests::exports_with_no_layout ... ok
[INFO] [stdout] test cli::init::tests::strips_layout_string_from_export ... ok
[INFO] [stdout] test cli::new::tests::from_with_multiple_sessions ... ok
[INFO] [stdout] test cli::new::tests::from_with_no_sessions_creates_none ... ok
[INFO] [stdout] test cli::new::tests::from_uses_new_name_path_color ... ok
[INFO] [stdout] test cli::init::tests::written_file_roundtrips ... ok
[INFO] [stdout] test cli::new::tests::from_with_invalid_session_format_fails ... ok
[INFO] [stdout] test cli::new::tests::from_layout_overrides_local_config_layout ... ok
[INFO] [stdout] test cli::new::tests::from_fails_if_source_missing ... ok
[INFO] [stdout] test cli::new::tests::from_overrides_local_config_layout ... ok
[INFO] [stdout] test cli::init::tests::fails_for_missing_project ... ok
[INFO] [stdout] test cli::new::tests::from_copies_layout ... ok
[INFO] [stdout] test cli::new::tests::from_does_not_copy_notes_or_last_state ... ok
[INFO] [stdout] test cli::new::tests::from_with_session_creates_session ... ok
[INFO] [stdout] test adapters::migration::tests::migrate_creates_gitignore ... ok
[INFO] [stdout] test cli::note::tests::note_fails_for_missing_project ... ok
[INFO] [stdout] test cli::new::tests::local_config_provides_layout ... ok
[INFO] [stdout] test cli::new::tests::new_rejects_invalid_color ... ok
[INFO] [stdout] test cli::new::tests::from_without_layout_does_not_fallback_to_local_config ... ok
[INFO] [stdout] test cli::new::tests::local_config_provides_color ... ok
[INFO] [stdout] test cli::new::tests::new_creates_project ... ok
[INFO] [stdout] test cli::note::tests::note_sets_created_at ... ok
[INFO] [stdout] test cli::note::tests::note_appends_to_existing_notes ... ok
[INFO] [stdout] test cli::new::tests::local_config_color_and_layout_both_used ... ok
[INFO] [stdout] test cli::new::tests::local_config_none_unchanged ... ok
[INFO] [stdout] test cli::new::tests::from_works_when_source_has_no_layout ... ok
[INFO] [stdout] test cli::notes::tests::notes_empty_project_shows_no_notes_message ... ok
[INFO] [stdout] test cli::notes::tests::notes_fails_for_missing_project ... ok
[INFO] [stdout] test cli::new::tests::new_from_layout_takes_priority_over_from ... ok
[INFO] [stdout] test cli::notes::tests::notes_all_flag_shows_everything ... ok
[INFO] [stdout] test cli::notes::tests::notes_clear_without_force_fails ... ok
[INFO] [stdout] test cli::notes::tests::notes_default_limit_is_20 ... ok
[INFO] [stdout] test cli::new::tests::new_rejects_duplicate_name ... ok
[INFO] [stdout] test cli::notes::tests::notes_since_filters_by_time ... ok
[INFO] [stdout] test cli::notes::tests::notes_clear_removes_all_notes ... ok
[INFO] [stdout] test cli::notes::tests::notes_clear_empty_without_force_succeeds ... ok
[INFO] [stdout] test cli::notes::tests::notes_since_rejects_invalid_duration ... ok
[INFO] [stdout] test cli::new::tests::new_from_layout_captures_layout ... ok
[INFO] [stdout] test cli::open::tests::expand_cmd_without_existing_session_returns_start ... ok
[INFO] [stdout] test cli::open::tests::expand_cmd_bare_claude_uses_default_label ... ok
[INFO] [stdout] test cli::open::tests::expand_cmd_with_existing_session_returns_resume ... ok
[INFO] [stdout] test cli::open::tests::errors_with_both_flags ... ok
[INFO] [stdout] test cli::open::tests::creates_minimal_session_without_layout ... ok
[INFO] [stdout] test cli::open::tests::creates_declarative_layout_with_splits ... ok
[INFO] [stdout] test cli::open::tests::creates_from_saved_state_skipping_shells ... ok
[INFO] [stdout] test cli::open::tests::expand_cmd_non_claude_passes_through ... ok
[INFO] [stdout] test cli::open::tests::handles_active_claude_sessions ... ok
[INFO] [stdout] test cli::remove::tests::remove_kill_skips_when_session_dead ... ok
[INFO] [stdout] test cli::open::tests::open_applies_layout_string_from_declarative ... ok
[INFO] [stdout] test cli::remove::tests::remove_kill_without_force_fails ... ok
[INFO] [stdout] test cli::remove::tests::remove_kills_tmux_session_when_alive ... ok
[INFO] [stdout] test cli::open::tests::sets_tab_color_on_new_session ... ok
[INFO] [stdout] test cli::resolve::tests::ambiguous_same_path_returns_error ... ok
[INFO] [stdout] test cli::reset::tests::reset_no_saved_state_is_ok ... ok
[INFO] [stdout] test cli::resolve::tests::cwd_exact_match_returns_project_name ... ok
[INFO] [stdout] test cli::resolve::tests::cwd_in_subdirectory_returns_project_name ... ok
[INFO] [stdout] test cli::open::tests::saved_flag_errors_without_saved_state ... ok
[INFO] [stdout] test cli::resolve::tests::explicit_name_passes_through ... ok
[INFO] [stdout] test cli::remove::tests::remove_fails_for_missing_project ... ok
[INFO] [stdout] test cli::remove::tests::remove_deletes_project_with_force ... ok
[INFO] [stdout] test cli::open::tests::open_expands_claude_shorthand_in_layout ... ok
[INFO] [stdout] test cli::open::tests::prefers_saved_state_when_no_flags ... ok
[INFO] [stdout] test cli::save::tests::collapse_non_claude_passthrough ... ok
[INFO] [stdout] test cli::save::tests::collapse_resume ... ok
[INFO] [stdout] test cli::resolve::tests::no_match_returns_actionable_error ... ok
[INFO] [stdout] test cli::save::tests::collapse_default_label ... ok
[INFO] [stdout] test cli::save::tests::collapse_different_project_passthrough ... ok
[INFO] [stdout] test cli::save::tests::collapse_start ... ok
[INFO] [stdout] test cli::resolve::tests::tilde_expansion_matches_absolute_cwd ... ok
[INFO] [stdout] test cli::remove::tests::remove_fails_without_force ... ok
[INFO] [stdout] test cli::save::tests::save_as_default_fails_when_no_tmux_session ... ok
[INFO] [stdout] test cli::save::tests::save_as_default_collapses_devs_claude ... ok
[INFO] [stdout] test cli::open::tests::expand_cmd_done_session_returns_start ... ok
[INFO] [stdout] test cli::reset::tests::reset_clears_saved_state ... ok
[INFO] [stdout] test cli::save::tests::save_as_default_does_not_touch_last_state ... ok
[INFO] [stdout] test cli::status::tests::status_alive_session_with_note ... ok
[INFO] [stdout] test cli::status::tests::status_no_projects ... ok
[INFO] [stdout] test cli::resolve::tests::deepest_match_wins ... ok
[INFO] [stdout] test cli::resolve::tests::empty_repo_returns_error ... ok
[INFO] [stdout] test cli::save::tests::save_as_default_replaces_existing_layout ... ok
[INFO] [stdout] test cli::save::tests::save_overwrites_previous_saved_state ... ok
[INFO] [stdout] test cli::status::tests::status_shows_header_row ... ok
[INFO] [stdout] test cli::save::tests::save_fails_when_no_tmux_session ... ok
[INFO] [stdout] test domain::claude_session::tests::claude_session_active ... ok
[INFO] [stdout] test domain::claude_session::tests::claude_session_done ... ok
[INFO] [stdout] test cli::new::tests::new_rejects_invalid_name ... ok
[INFO] [stdout] test cli::save::tests::save_captures_tmux_state ... ok
[INFO] [stdout] test cli::status::tests::status_dead_session_no_notes ... ok
[INFO] [stdout] test cli::save::tests::save_as_default_writes_layout ... ok
[INFO] [stdout] test cli::new::tests::new_with_color ... ok
[INFO] [stdout] test domain::duration::tests::parse_large_values ... ok
[INFO] [stdout] test domain::duration::tests::parse_minutes ... ok
[INFO] [stdout] test domain::duration::tests::parse_days ... ok
[INFO] [stdout] test domain::duration::tests::parse_hours ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_extracts_commands ... ok
[INFO] [stdout] test domain::duration::tests::rejects_unknown_unit ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_recognizes_extended_shells ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_single_pane ... ok
[INFO] [stdout] test domain::duration::tests::rejects_non_numeric ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_skips_all_shell_commands ... ok
[INFO] [stdout] test domain::duration::tests::rejects_only_unit ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_stores_layout_string ... ok
[INFO] [stdout] test domain::layout::tests::layout_all_split_directions ... ok
[INFO] [stdout] test domain::duration::tests::rejects_empty_string ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_empty_panes ... ok
[INFO] [stdout] test domain::duration::tests::rejects_negative ... ok
[INFO] [stdout] test domain::duration::tests::rejects_zero ... ok
[INFO] [stdout] test domain::layout::tests::from_snapshot_with_full_command_strings ... ok
[INFO] [stdout] test domain::duration::tests::rejects_only_number ... ok
[INFO] [stdout] test domain::local_config::tests::deserialize_empty_toml ... ok
[INFO] [stdout] test domain::layout::tests::layout_main_with_cmd_and_one_split ... ok
[INFO] [stdout] test domain::layout::tests::layout_multiple_splits_with_size ... ok
[INFO] [stdout] test domain::path::tests::abbreviates_home_dir_itself ... ok
[INFO] [stdout] test domain::path::tests::abbreviates_home_prefix ... ok
[INFO] [stdout] test domain::layout::tests::layout_with_layout_string_roundtrip ... ok
[INFO] [stdout] test domain::layout::tests::layout_main_pane_only ... ok
[INFO] [stdout] test domain::path::tests::expand_home_absolute_unchanged ... ok
[INFO] [stdout] test domain::path::tests::expand_and_abbreviate_roundtrip ... ok
[INFO] [stdout] test domain::path::tests::expand_home_none_returns_path ... ok
[INFO] [stdout] test domain::path::tests::expand_home_relative_unchanged ... ok
[INFO] [stdout] test domain::path::tests::expand_home_tilde_in_middle_unchanged ... ok
[INFO] [stdout] test domain::path::tests::expand_home_tilde_alone ... ok
[INFO] [stdout] test domain::path::tests::leaves_non_home_paths_unchanged ... ok
[INFO] [stdout] test domain::local_config::tests::roundtrip_full_config ... ok
[INFO] [stdout] test domain::local_config::tests::roundtrip_layout_only ... ok
[INFO] [stdout] test domain::duration::tests::error_message_includes_input ... ok
[INFO] [stdout] test domain::path::tests::leaves_relative_paths_unchanged ... ok
[INFO] [stdout] test domain::local_config::tests::validate_rejects_invalid_color ... ok
[INFO] [stdout] test domain::local_config::tests::roundtrip_color_only ... ok
[INFO] [stdout] test domain::local_config::tests::validate_accepts_no_color ... ok
[INFO] [stdout] test domain::path::tests::leaves_similar_prefix_paths_unchanged ... ok
[INFO] [stdout] test domain::local_config::tests::validate_accepts_valid_color ... ok
[INFO] [stdout] test domain::note::tests::note_toml_roundtrip ... ok
[INFO] [stdout] test domain::path::tests::abbreviate_home_none_returns_path ... ok
[INFO] [stdout] test domain::project::tests::validate_accepts_hyphens_underscores_digits ... ok
[INFO] [stdout] test domain::project::tests::full_project_config_roundtrip ... ok
[INFO] [stdout] test domain::project::tests::validate_invalid_char_shows_allowed_set ... ok
[INFO] [stdout] test domain::project::tests::minimal_project_config_roundtrip ... ok
[INFO] [stdout] test domain::project::tests::validate_accepts_valid_color_with_hash ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_empty_name ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_name_with_dot ... ok
[INFO] [stdout] test cli::open::tests::default_flag_uses_declarative_over_saved ... ok
[INFO] [stdout] test domain::path::tests::expand_home_tilde_prefix ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_name_with_slash ... ok
[INFO] [stdout] test domain::path::tests::expand_home_tilde_user_unchanged ... ok
[INFO] [stdout] test domain::project::tests::validate_accepts_valid_color_without_hash ... ok
[INFO] [stdout] test domain::project::tests::validate_accepts_valid_metadata ... ok
[INFO] [stdout] test domain::project::tests::validate_empty_name_says_must_not_be_empty ... ok
[INFO] [stdout] test cli::save::tests::save_layout_preserves_full_commands ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_empty_path ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_name_with_colon ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_name_with_space ... ok
[INFO] [stdout] test domain::project::tests::validate_rejects_invalid_color ... ok
[INFO] [stdout] test domain::saved_state::tests::saved_state_roundtrip ... ok
[INFO] [stdout] test domain::saved_state::tests::saved_state_no_panes ... ok
[INFO] [stdout] test cli::note::tests::note_adds_to_project ... ok
[INFO] [stdout] test cli::open::tests::attaches_to_existing_session_with_color ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_tests.rs (/opt/rustwide/target/release/build/devs-cli/53436c30676bf760/out/cli_tests-53436c30676bf760)
[INFO] [stdout] test result: ok. 253 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test completions_generates_output ... ok
[INFO] [stdout] test dynamic_completions_outputs_shell_script ... ok
[INFO] [stdout] test init_without_name_outside_project_shows_error ... ok
[INFO] [stdout] test new_path_is_optional_in_help ... ok
[INFO] [stdout] test config_infers_project_from_cwd ... ok
[INFO] [stdout] test claude_done_single_arg_is_label_with_cwd_inference ... ok
[INFO] [stdout] test from_session_conflicts_with_from ... ok
[INFO] [stdout] test version_flag_prints_version ... ok
[INFO] [stdout] test generate_man_creates_output_directory ... ok
[INFO] [stdout] test init_help_shows_description ... ok
[INFO] [stdout] test completions_generates_bash_output ... ok
[INFO] [stdout] test tmux_help_prints_reference ... ok
[INFO] [stdout] test generate_man_produces_valid_roff ... ok
[INFO] [stdout] test generate_man_creates_files ... ok
[INFO] [stdout] test docs_mention_all_subcommands ... ok
[INFO] [stdout] test config_infers_project_from_subdirectory ... ok
[INFO] [stdout] test dynamic_completions_does_not_run_migration ... ok
[INFO] [stdout] test config_with_explicit_name_ignores_cwd ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4", kill_on_drop: false }`
[INFO] [stdout] 4892a7e2fe7d75d315706b9ac594c29e292a8a93af332ecfefa52e224341bac4
