[INFO] fetching crate tngl 0.2.0... [INFO] testing tngl-0.2.0 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate tngl 0.2.0 into /workspace/builds/worker-3-tc1/source [INFO] started tweaking crates.io crate tngl 0.2.0 [INFO] finished tweaking crates.io crate tngl 0.2.0 [INFO] tweaked toml for crates.io crate tngl 0.2.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate tngl 0.2.0 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate tngl 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ad9035112c0c290f811fafc839ca1a7388aa745174cad0b1509a45d6bf2c7dc3 [INFO] running `Command { std: "docker" "start" "-a" "ad9035112c0c290f811fafc839ca1a7388aa745174cad0b1509a45d6bf2c7dc3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ad9035112c0c290f811fafc839ca1a7388aa745174cad0b1509a45d6bf2c7dc3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad9035112c0c290f811fafc839ca1a7388aa745174cad0b1509a45d6bf2c7dc3", kill_on_drop: false }` [INFO] [stdout] ad9035112c0c290f811fafc839ca1a7388aa745174cad0b1509a45d6bf2c7dc3 [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 05f7118971d1e7abe5a0dc8b54d1fecc49fb898c8c732156a6277b372382256c [INFO] running `Command { std: "docker" "start" "-a" "05f7118971d1e7abe5a0dc8b54d1fecc49fb898c8c732156a6277b372382256c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling ignore v0.4.25 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling tngl v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.50s [INFO] running `Command { std: "docker" "inspect" "05f7118971d1e7abe5a0dc8b54d1fecc49fb898c8c732156a6277b372382256c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "05f7118971d1e7abe5a0dc8b54d1fecc49fb898c8c732156a6277b372382256c", kill_on_drop: false }` [INFO] [stdout] 05f7118971d1e7abe5a0dc8b54d1fecc49fb898c8c732156a6277b372382256c [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 54fef559a77d8c9cf150e2b86c6e839e65d80ff01eae873d7f5f0856cbbf647a [INFO] running `Command { std: "docker" "start" "-a" "54fef559a77d8c9cf150e2b86c6e839e65d80ff01eae873d7f5f0856cbbf647a", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling tngl v0.2.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.55s [INFO] running `Command { std: "docker" "inspect" "54fef559a77d8c9cf150e2b86c6e839e65d80ff01eae873d7f5f0856cbbf647a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "54fef559a77d8c9cf150e2b86c6e839e65d80ff01eae873d7f5f0856cbbf647a", kill_on_drop: false }` [INFO] [stdout] 54fef559a77d8c9cf150e2b86c6e839e65d80ff01eae873d7f5f0856cbbf647a [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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9b1cecb2d9ac470a5cf5a38af2a563d8e60e4e88f0b3718a3aa7bc8ce459c8a1 [INFO] running `Command { std: "docker" "start" "-a" "9b1cecb2d9ac470a5cf5a38af2a563d8e60e4e88f0b3718a3aa7bc8ce459c8a1", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tngl-323d1affea3ce1e2) [INFO] [stdout] [INFO] [stdout] running 250 tests [INFO] [stdout] test commands::edit::tests::config_editor_takes_priority ... ok [INFO] [stdout] test commands::inspect::tests::all_reachable_in_cycle ... ok [INFO] [stdout] test commands::inspect::tests::apply_mismatch_label_sets_both_sides ... ok [INFO] [stdout] test commands::inspect::tests::all_unreachable_when_graph_empty ... ok [INFO] [stdout] test commands::inspect::tests::comment_mismatches_detects_disagreement ... ok [INFO] [stdout] test commands::inspect::tests::comment_mismatches_ignores_matching_labels ... ok [INFO] [stdout] test commands::inspect::tests::dangling_edges_detected ... ok [INFO] [stdout] test commands::inspect::tests::edges_for_node_found ... ok [INFO] [stdout] test commands::inspect::tests::edges_for_node_not_found ... ok [INFO] [stdout] test commands::inspect::tests::incoming_edge_marks_current_node_reachable ... ok [INFO] [stdout] test commands::init::tests::creates_wrapper_script ... ok [INFO] [stdout] test commands::init::tests::creates_tangle_directory ... ok [INFO] [stdout] test commands::inspect::tests::integration_load_and_inspect ... ok [INFO] [stdout] test commands::inspect::tests::isolated_orphan_is_also_unreachable ... ok [INFO] [stdout] test commands::init::tests::creates_graph_tngl ... ok [INFO] [stdout] test commands::init::tests::tangle_dir_excluded_from_graph ... ok [INFO] [stdout] test commands::inspect::tests::orphans_empty_when_all_have_edges ... ok [INFO] [stdout] test commands::init::tests::does_not_overwrite_existing_wrapper ... ok [INFO] [stdout] test commands::init::tests::skips_git_hooks_when_declined ... ok [INFO] [stdout] test commands::init::tests::creates_tnglignore ... ok [INFO] [stdout] test commands::init::tests::creates_config_tngl ... ok [INFO] [stdout] test commands::init::tests::graph_tngl_all_nodes_are_orphans ... ok [INFO] [stdout] test commands::intentionalize_orphans::tests::does_not_duplicate_existing_markers ... ok [INFO] [stdout] test commands::list::tests::list_edges_empty_when_no_edges ... ok [INFO] [stdout] test commands::inspect::tests::unreachable_when_no_incoming_edges ... ok [INFO] [stdout] test commands::list::tests::list_edges_preserves_graph_order ... ok [INFO] [stdout] test commands::init::tests::does_not_overwrite_existing_tnglignore ... ok [INFO] [stdout] test commands::inspect::tests::no_dangling_when_all_targets_present ... ok [INFO] [stdout] test commands::init::tests::installs_git_hooks_when_accepted ... ok [INFO] [stdout] test commands::init::tests::error_if_already_initialised ... ok [INFO] [stdout] test commands::intentionalize_orphans::tests::marks_unattended_orphans_only ... ok [INFO] [stdout] test commands::open::tests::bundled_folders_render_collapsed_in_export_tree ... ok [INFO] [stdout] test commands::open::tests::export_filters_nodes_and_tangles_by_visibility ... ok [INFO] [stdout] test commands::open::tests::relation_mapping_for_anchor_matches_tui_semantics ... ok [INFO] [stdout] test commands::status::tests::compute_from_does_not_guess_missing_disk_state ... ok [INFO] [stdout] test commands::inspect::tests::orphans_returns_only_isolated_nodes ... ok [INFO] [stdout] test commands::status::tests::dangling_hint_ignores_distant_match ... ok [INFO] [stdout] test commands::status::tests::dangling_hint_suggests_close_match ... ok [INFO] [stdout] test commands::status::tests::can_disable_uncommented_edge_warnings ... ok [INFO] [stdout] test commands::status::tests::compute_reports_untracked_descendants_for_link_subtree ... ok [INFO] [stdout] test commands::status::tests::compute_does_not_report_folder_orphan_scope_conflict ... ok [INFO] [stdout] test commands::status::tests::clean_when_in_sync ... ok [INFO] [stdout] test commands::open::tests::tree_rows_keep_hierarchical_scaffold ... ok [INFO] [stdout] test commands::status::tests::compute_reports_untracked_descendants_for_orphan_subtree ... ok [INFO] [stdout] test commands::status::tests::detects_orphan_nodes ... ok [INFO] [stdout] test commands::status::tests::detects_missing_files ... ok [INFO] [stdout] test commands::status::tests::warns_on_uncommented_edges_by_default ... ok [INFO] [stdout] test commands::status::tests::compute_respects_config_for_uncommented_edges ... ok [INFO] [stdout] test commands::status::tests::detects_dangling_edges ... ok [INFO] [stdout] test commands::status::tests::detects_untracked_files ... ok [INFO] [stdout] test commands::update::tests::adds_new_files_as_orphans ... ok [INFO] [stdout] test commands::status::tests::intentional_orphan_is_not_reported_as_unattended ... ok [INFO] [stdout] test commands::status::tests::missing_file_reports_dangling_edge_count ... ok [INFO] [stdout] test commands::status::tests::missing_isolated_node_not_duplicated_as_orphan ... ok [INFO] [stdout] test commands::status::tests::no_issues_with_only_orphans ... ok [INFO] [stdout] test commands::inspect::tests::undirected_edge_makes_both_ends_reachable ... ok [INFO] [stdout] test commands::status::tests::integration_with_real_files ... ok [INFO] [stdout] test commands::update::tests::does_not_auto_mirror_incoming_edges ... ok [INFO] [stdout] test commands::update::tests::empty_folder_orphan_tag_remains_valid ... ok [INFO] [stdout] test commands::update::tests::folder_orphan_with_children_stays_as_orphan ... ok [INFO] [stdout] test commands::update::tests::existing_mirror_with_different_label_is_kept ... ok [INFO] [stdout] test commands::update::tests::adds_new_folders_before_files ... ok [INFO] [stdout] test commands::update::tests::does_not_auto_mirror_directed_edges ... ok [INFO] [stdout] test commands::update::tests::collapsing_subtree_keeps_following_comment_lines ... ok [INFO] [stdout] test commands::open::tests::html_contains_interactive_bindings ... ok [INFO] [stdout] test commands::update::tests::does_not_auto_mirror_undirected_edges ... ok [INFO] [stdout] test commands::update::tests::linked_orphan_conflict_fails_in_silent_mode ... ok [INFO] [stdout] test commands::update::tests::keeps_existing_edges_without_adding_mirrors ... ok [INFO] [stdout] test commands::status::tests::compute_does_not_report_bundle_collapse_as_pending_update ... ok [INFO] [stdout] test commands::update::tests::delete_mode_removes_node_and_edges ... ok [INFO] [stdout] test commands::update::tests::does_not_insert_nested_mirror_edges ... ok [INFO] [stdout] test commands::update::tests::linked_orphan_can_be_unmarked_and_update_continues ... ok [INFO] [stdout] test commands::update::tests::delete_mode_removes_orphan_missing_node ... ok [INFO] [stdout] test commands::update::tests::orphaned_link_subtree_conflict_fails_in_silent_mode ... ok [INFO] [stdout] test commands::update::tests::folder_orphan_with_children_no_longer_auto_converts ... ok [INFO] [stdout] test commands::update::tests::ignored_child_removal_preserves_blank_line_spacing ... ok [INFO] [stdout] test commands::update::tests::inserts_new_subtree_before_root_files ... ok [INFO] [stdout] test commands::update::tests::internal_nodes_removed_without_prompt_logic ... ok [INFO] [stdout] test commands::update::tests::linked_folder_with_link_subtree_does_not_conflict_and_keeps_children ... ok [INFO] [stdout] test commands::update::tests::folder_orphan_prompt_callback_not_used_anymore ... ok [INFO] [stdout] test commands::update::tests::orphaned_link_subtree_can_be_converted_and_update_continues ... ok [INFO] [stdout] test commands::update::tests::preview_reports_pending_lint_cleanup ... ok [INFO] [stdout] test commands::update::tests::orphaned_link_subtree_yes_to_all_converts_multiple_once ... ok [INFO] [stdout] test commands::update::tests::prompt_mode_delete_via_accept_fn ... ok [INFO] [stdout] test commands::update::tests::preview_does_not_report_bundle_as_pending_collapse_change ... ok [INFO] [stdout] test commands::update::tests::preserve_mode_marks_missing_node ... ok [INFO] [stdout] test commands::update::tests::mirrored_edges_are_not_duplicated ... ok [INFO] [stdout] test commands::update::tests::preview_reports_folder_orphan_scope_paths ... ok [INFO] [stdout] test commands::update::tests::no_write_when_no_changes ... ok [INFO] [stdout] test commands::update::tests::update_lints_floating_orphan_tags ... ok [INFO] [stdout] test commands::update::tests::orphan_deleted_node_silently_removed_regardless_of_on_delete ... ok [INFO] [stdout] test commands::update::tests::prompt_mode_skip_via_accept_fn ... ok [INFO] [stdout] test commands::update::tests::update_keeps_orphan_subtree_tag_for_empty_folder_on_disk ... ok [INFO] [stdout] test commands::update::tests::uses_default_config_when_config_missing ... ok [INFO] [stdout] test commands::update::tests::prompt_mode_preserve_via_accept_fn ... ok [INFO] [stdout] test parser::config::tests::defaults_on_empty_input ... ok [INFO] [stdout] test commands::update::tests::linked_orphan_yes_to_all_resolves_multiple_conflicts_once ... ok [INFO] [stdout] test commands::update::tests::orphan_subtree_children_remain_when_tag_removed ... ok [INFO] [stdout] test commands::update::tests::lint_collapses_extra_blank_lines_in_graph ... ok [INFO] [stdout] test parser::config::tests::error_on_bad_bool ... ok [INFO] [stdout] test parser::config::tests::error_on_bad_on_delete ... ok [INFO] [stdout] test parser::config::tests::error_on_malformed_line ... ok [INFO] [stdout] test parser::config::tests::ignores_comments_and_blanks ... ok [INFO] [stdout] test commands::update::tests::silent_adds_without_printing ... ok [INFO] [stdout] test parser::config::tests::parses_all_on_delete_variants ... ok [INFO] [stdout] test commands::update::tests::removing_link_subtree_does_not_introduce_extra_blank_spacing ... ok [INFO] [stdout] test parser::graph::tests::add_edge_to_orphan ... ok [INFO] [stdout] test parser::config::tests::parses_warn_uncommented_edges_false ... ok [INFO] [stdout] test parser::graph::tests::add_edge_node_not_found ... ok [INFO] [stdout] test parser::graph::tests::add_node_respects_existing_two_space_indent ... ok [INFO] [stdout] test parser::graph::tests::add_edge_under_nested_node_uses_nested_indent ... ok [INFO] [stdout] test parser::graph::tests::add_node_appends_with_blank_separator ... ok [INFO] [stdout] test parser::graph::tests::add_node_inserts_by_hierarchy_before_root_file ... ok [INFO] [stdout] test parser::graph::tests::add_node_to_empty_doc ... ok [INFO] [stdout] test parser::graph::tests::add_node_under_folder_with_edges_avoids_extra_blank_before_first_child ... ok [INFO] [stdout] test parser::config::tests::parses_editor ... ok [INFO] [stdout] test parser::config::tests::parses_default_contents ... ok [INFO] [stdout] test parser::config::tests::ignores_unknown_keys ... ok [INFO] [stdout] test commands::update::tests::orphan_subtree_keeps_children_on_update ... ok [INFO] [stdout] test parser::graph::tests::add_edge_respects_existing_tab_indent ... ok [INFO] [stdout] test parser::config::tests::parses_empty_editor_as_none ... ok [INFO] [stdout] test parser::graph::tests::add_edge_does_not_affect_other_nodes ... ok [INFO] [stdout] test parser::config::tests::parses_false_values ... ok [INFO] [stdout] test commands::update::tests::update_orders_edges_undir_then_out_then_in ... ok [INFO] [stdout] test parser::graph::tests::collapsed_subtree_roots_includes_link_subtree ... ok [INFO] [stdout] test commands::update::tests::orphan_tagged_deleted_node_does_not_tag_new_node ... ok [INFO] [stdout] test parser::graph::tests::convert_orphan_to_orphan_subtree_rewrites_marker ... ok [INFO] [stdout] test parser::graph::tests::error_edge_bad_arrow ... ok [INFO] [stdout] test parser::graph::tests::crlf_roundtrip ... ok [INFO] [stdout] test parser::graph::tests::error_edge_missing_colon ... ok [INFO] [stdout] test parser::graph::tests::add_edge_appends_after_existing ... ok [INFO] [stdout] test parser::graph::tests::convert_link_subtree_to_orphan_subtree_preserves_indent ... ok [INFO] [stdout] test parser::graph::tests::explicit_link_subtree_markers_detects_folder_roots ... ok [INFO] [stdout] test parser::graph::tests::convert_link_subtree_to_orphan_subtree_rewrites_marker ... ok [INFO] [stdout] test parser::graph::tests::error_edge_missing_target ... ok [INFO] [stdout] test parser::graph::tests::error_edge_before_any_node ... ok [INFO] [stdout] test parser::graph::tests::intentional_orphan_subtree_roots_returns_folder_roots_only ... ok [INFO] [stdout] test parser::graph::tests::explicit_orphan_markers_detects_both_tag_types ... ok [INFO] [stdout] test parser::graph::tests::intentional_orphans_ignores_floating_tags ... ok [INFO] [stdout] test parser::graph::tests::intentional_orphans_marker_and_subtree ... ok [INFO] [stdout] test parser::graph::tests::from_graph_empty_label_edge ... ok [INFO] [stdout] test parser::graph::tests::from_graph_empty ... ok [INFO] [stdout] test parser::graph::tests::error_duplicate_node ... ok [INFO] [stdout] test parser::graph::tests::from_graph_separates_nodes_with_blank_line ... ok [INFO] [stdout] test parser::graph::tests::from_graph_single_orphan ... ok [INFO] [stdout] test parser::graph::tests::lint_collapses_consecutive_blank_lines ... ok [INFO] [stdout] test parser::graph::tests::mark_link_subtree_inserts_marker ... ok [INFO] [stdout] test parser::graph::tests::lint_removes_floating_orphan_tags ... ok [INFO] [stdout] test parser::graph::tests::lint_removes_invalid_link_subtree_tag_on_file ... ok [INFO] [stdout] test parser::graph::tests::lint_normalizes_tag_and_edge_indentation_to_node_depth ... ok [INFO] [stdout] test parser::graph::tests::from_graph_with_edges ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_subtree_rejects_file_nodes ... ok [INFO] [stdout] test parser::graph::tests::multiple_blank_lines_preserved ... ok [INFO] [stdout] test parser::graph::tests::node_path_with_spaces_in_name ... ok [INFO] [stdout] test parser::graph::tests::remove_edge_present ... ok [INFO] [stdout] test parser::graph::tests::remove_edge_not_present ... ok [INFO] [stdout] test parser::graph::tests::remove_last_tagged_node_removes_separator_blank ... ok [INFO] [stdout] test parser::graph::tests::remove_node_not_present ... ok [INFO] [stdout] test parser::graph::tests::remove_node_also_removes_attached_orphan_tag ... ok [INFO] [stdout] test parser::graph::tests::mark_missing_inserts_comment ... ok [INFO] [stdout] test parser::graph::tests::remove_edges_targeting_none ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_aligns_with_nested_node_indent ... ok [INFO] [stdout] test parser::graph::tests::remove_middle_node_preserves_following_tagged_block ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_inserts_simple_marker ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_no_duplicate ... ok [INFO] [stdout] test parser::graph::tests::remove_node_present ... ok [INFO] [stdout] test parser::graph::tests::remove_edges_targeting_multiple_sources ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_subtree_aligns_with_nested_node_indent ... ok [INFO] [stdout] test parser::graph::tests::remove_edges_targeting_basic ... ok [INFO] [stdout] test parser::graph::tests::replace_edge_label_preserves_tab_indent ... ok [INFO] [stdout] test parser::graph::tests::remove_node_only_node ... ok [INFO] [stdout] test parser::graph::tests::replace_edge_label_updates_matching_edge_only ... ok [INFO] [stdout] test parser::graph::tests::mark_orphan_subtree_inserts_marker ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_blank_lines_preserved ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_comments_preserved ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_directed_edge_empty_label ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_directed_edge_with_label ... ok [INFO] [stdout] test parser::graph::tests::remove_middle_node_preserves_separator_spacing ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_empty ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_folder_node ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_incoming_edge ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_indented_comment_preserved ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_indented_node ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_link_subtree_tag ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_multiple_nodes ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_orphan_after_edges ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_orphan_tags ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_preserves_whitespace_aligned_edges ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_single_orphan_no_trailing_newline ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_single_orphan_with_newline ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_spec_example ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_tab_indent ... ok [INFO] [stdout] test parser::graph::tests::roundtrip_undirected_edge ... ok [INFO] [stdout] test parser::graph::tests::sort_edges_by_kind_orders_undir_then_out_then_in ... ok [INFO] [stdout] test parser::graph::tests::to_graph_comments_and_blanks_ignored ... ok [INFO] [stdout] test parser::graph::tests::to_graph_directed_edge ... ok [INFO] [stdout] test parser::graph::tests::to_graph_edge_after_blank_belongs_to_node ... ok [INFO] [stdout] test parser::graph::tests::to_graph_empty_label ... ok [INFO] [stdout] test parser::graph::tests::to_graph_incoming_edge ... ok [INFO] [stdout] test parser::graph::tests::to_graph_multiple_nodes_and_edges ... ok [INFO] [stdout] test parser::graph::tests::to_graph_parses_indented_nodes ... ok [INFO] [stdout] test parser::graph::tests::to_graph_preserves_node_order ... ok [INFO] [stdout] test parser::graph::tests::to_graph_single_orphan ... ok [INFO] [stdout] test parser::graph::tests::to_graph_undirected_edge ... ok [INFO] [stdout] test parser::graph::tests::unmark_link_subtree_removes_bundle_and_keeps_orphan ... ok [INFO] [stdout] test parser::graph::tests::lint_keeps_orphan_subtree_on_empty_folder ... ok [INFO] [stdout] test parser::graph::tests::unmark_orphan_removes_marker_only ... ok [INFO] [stdout] test parser::graph::tests::unmark_orphan_subtree_removes_orphan_and_keeps_bundle ... ok [INFO] [stdout] test scanner::diff::tests::both_untracked_and_missing ... ok [INFO] [stdout] test scanner::diff::tests::clean_when_identical ... ok [INFO] [stdout] test scanner::diff::tests::empty_filesystem_empty_graph ... ok [INFO] [stdout] test scanner::diff::tests::missing_detected ... ok [INFO] [stdout] test scanner::diff::tests::output_is_sorted ... ok [INFO] [stdout] test scanner::diff::tests::output_keeps_children_grouped_before_root_files ... ok [INFO] [stdout] test scanner::diff::tests::output_prioritizes_folders_before_files ... ok [INFO] [stdout] test scanner::diff::tests::untracked_detected ... ok [INFO] [stdout] test scanner::tree::tests::basic_scan ... ok [INFO] [stdout] test scanner::tree::tests::dotfiles_included_by_default ... ok [INFO] [stdout] test scanner::tree::tests::internal_tngl_files_excluded ... ok [INFO] [stdout] test scanner::tree::tests::tangle_dir_excluded ... ok [INFO] [stdout] test scanner::tree::tests::children_grouped_with_folder_before_root_files ... ok [INFO] [stdout] test tests::inspect_rejects_multiple_query_flags ... ok [INFO] [stdout] test scanner::tree::tests::tnglignore_respected ... ok [INFO] [stdout] test tui::canvas::tests::enter_in_details_mode_is_noop ... ok [INFO] [stdout] test tui::canvas::tests::finalize_move_clears_details_lock_and_returns_focus_to_anchor ... ok [INFO] [stdout] test scanner::tree::tests::empty_tree ... ok [INFO] [stdout] test tests::inspect_accepts_single_query_flag ... ok [INFO] [stdout] test tui::canvas::tests::m_in_details_enters_move_mode ... ok [INFO] [stdout] test scanner::tree::tests::tnglignore_glob_pattern ... ok [INFO] [stdout] test tui::canvas::tests::bundling_folder_warns_before_removing_child_edges ... ok [INFO] [stdout] test scanner::tree::tests::folders_prioritized_before_files ... ok [INFO] [stdout] test tangle::tests::find_root_fails_without_init ... ok [INFO] [stdout] test tangle::tests::find_root_from_direct ... ok [INFO] [stdout] test scanner::tree::tests::gitignore_respected ... ok [INFO] [stdout] test scanner::tree::tests::sorted_output ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_unmarks_linked_orphan_bundle_to_bundle ... ok [INFO] [stdout] test tangle::tests::find_root_from_subdir ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_applies_bundle_tag_for_bundled_roots ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_marks_unattended_orphans ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_noop_preserves_text_exactly ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_preserves_tags_and_comments_on_edit ... ok [INFO] [stdout] test tui::canvas::tests::merge_graph_into_document_unmarks_linked_orphans ... ok [INFO] [stdout] test tui::canvas::tests::move_mode_rejects_self_loop_target ... ok [INFO] [stdout] test tui::canvas::tests::move_mode_starts_on_current_endpoint_position ... ok [INFO] [stdout] test tui::canvas::tests::move_mode_preview_tracks_focused_node ... ok [INFO] [stdout] test scanner::tree::tests::git_dir_excluded ... ok [INFO] [stdout] test scanner::tree::tests::folders_end_with_slash ... ok [INFO] [stdout] test tui::canvas::tests::move_mode_left_right_cycles_edge_type ... ok [INFO] [stdout] test tui::canvas::tests::render_visibility_temporarily_opens_collapsed_connected_folder ... ok [INFO] [stdout] test tui::canvas::tests::render_visibility_does_not_auto_open_when_connection_overlay_hidden ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 250 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9b1cecb2d9ac470a5cf5a38af2a563d8e60e4e88f0b3718a3aa7bc8ce459c8a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9b1cecb2d9ac470a5cf5a38af2a563d8e60e4e88f0b3718a3aa7bc8ce459c8a1", kill_on_drop: false }` [INFO] [stdout] 9b1cecb2d9ac470a5cf5a38af2a563d8e60e4e88f0b3718a3aa7bc8ce459c8a1