[INFO] fetching crate distill-cli 0.5.3... [INFO] testing distill-cli-0.5.3 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] extracting crate distill-cli 0.5.3 into /workspace/builds/worker-1-tc2/source [INFO] started tweaking crates.io crate distill-cli 0.5.3 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate distill-cli 0.5.3 [INFO] tweaked toml for crates.io crate distill-cli 0.5.3 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate distill-cli 0.5.3 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate distill-cli 0.5.3 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 15a96e34b30e8f024b630863db3510d476b8becde03e470e406e9b7e198c0698 [INFO] running `Command { std: "docker" "start" "-a" "15a96e34b30e8f024b630863db3510d476b8becde03e470e406e9b7e198c0698", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "15a96e34b30e8f024b630863db3510d476b8becde03e470e406e9b7e198c0698", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "15a96e34b30e8f024b630863db3510d476b8becde03e470e406e9b7e198c0698", kill_on_drop: false }` [INFO] [stdout] 15a96e34b30e8f024b630863db3510d476b8becde03e470e406e9b7e198c0698 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bc7991f847c5940f19f6812ca036ad262d59afe94b68ab0905b64cc6b6ccb0d4 [INFO] running `Command { std: "docker" "start" "-a" "bc7991f847c5940f19f6812ca036ad262d59afe94b68ab0905b64cc6b6ccb0d4", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling float-cmp v0.9.0 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling strict-num v0.1.1 [INFO] [stderr] Compiling roxmltree v0.20.0 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling kurbo v0.11.3 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling tiny-skia-path v0.11.4 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Compiling unicode-script v0.5.8 [INFO] [stderr] Compiling unicode-properties v0.1.4 [INFO] [stderr] Compiling unicode-ccc v0.4.0 [INFO] [stderr] Compiling simplecss v0.2.2 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling zune-core v0.4.12 [INFO] [stderr] Compiling unicode-vo v0.1.0 [INFO] [stderr] Compiling xmlwriter v0.1.0 [INFO] [stderr] Compiling pico-args v0.5.0 [INFO] [stderr] Compiling imagesize v0.13.0 [INFO] [stderr] Compiling core_maths v0.1.1 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling unicode-bidi v0.3.18 [INFO] [stderr] Compiling fontconfig-parser v0.5.8 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling pxfm v0.1.28 [INFO] [stderr] Compiling data-url v0.3.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling memmap2 v0.9.10 [INFO] [stderr] Compiling svgtypes v0.15.3 [INFO] [stderr] Compiling tiny-skia v0.11.4 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling zune-jpeg v0.4.21 [INFO] [stderr] Compiling gif v0.13.3 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling rgb v0.8.53 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling rustybuzz v0.20.1 [INFO] [stderr] Compiling fontdb v0.23.0 [INFO] [stderr] Compiling darling_core v0.23.0 [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 serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling usvg v0.45.1 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling resvg v0.45.1 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling distill-cli v0.5.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `launchd_start_calendar_interval` is never used [INFO] [stdout] --> src/schedule/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 26 | impl ScheduleCadence { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 27 | fn launchd_start_calendar_interval(self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "bc7991f847c5940f19f6812ca036ad262d59afe94b68ab0905b64cc6b6ccb0d4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc7991f847c5940f19f6812ca036ad262d59afe94b68ab0905b64cc6b6ccb0d4", kill_on_drop: false }` [INFO] [stdout] bc7991f847c5940f19f6812ca036ad262d59afe94b68ab0905b64cc6b6ccb0d4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3989ff258ff4c2e8f3ef401282d49a9728011de026519c1afe63a901972cadee [INFO] running `Command { std: "docker" "start" "-a" "3989ff258ff4c2e8f3ef401282d49a9728011de026519c1afe63a901972cadee", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling regex-automata v0.4.14 [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 distill-cli v0.5.3 (/opt/rustwide/workdir) [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stdout] warning: method `launchd_start_calendar_interval` is never used [INFO] [stdout] --> src/schedule/mod.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 26 | impl ScheduleCadence { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] 27 | fn launchd_start_calendar_interval(self) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 24.99s [INFO] running `Command { std: "docker" "inspect" "3989ff258ff4c2e8f3ef401282d49a9728011de026519c1afe63a901972cadee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3989ff258ff4c2e8f3ef401282d49a9728011de026519c1afe63a901972cadee", kill_on_drop: false }` [INFO] [stdout] 3989ff258ff4c2e8f3ef401282d49a9728011de026519c1afe63a901972cadee [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] c784a0aa2fc3926daefc7d8eebd960f1e01f1af63234de117be622188091a8e2 [INFO] running `Command { std: "docker" "start" "-a" "c784a0aa2fc3926daefc7d8eebd960f1e01f1af63234de117be622188091a8e2", kill_on_drop: false }` [INFO] [stderr] warning: method `launchd_start_calendar_interval` is never used [INFO] [stderr] --> src/schedule/mod.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 26 | impl ScheduleCadence { [INFO] [stderr] | -------------------- method in this implementation [INFO] [stderr] 27 | fn launchd_start_calendar_interval(self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `distill-cli` (bin "distill") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/distill-1c737289c073710b) [INFO] [stdout] [INFO] [stdout] running 300 tests [INFO] [stdout] test agents::tests::test_agent_kind_command_name ... ok [INFO] [stdout] test agents::tests::test_claude_adapter_config_dir ... ok [INFO] [stdout] test agents::tests::test_codex_adapter_config_dir ... ok [INFO] [stdout] test agents::tests::test_agent_kind_all_returns_supported_variants ... ok [INFO] [stdout] test agents::tests::test_agent_kind_serde_roundtrip ... ok [INFO] [stdout] test agents::tests::test_from_kind_returns_claude_adapter ... ok [INFO] [stdout] test agents::tests::test_agent_kind_display ... ok [INFO] [stdout] test agents::tests::test_claude_write_skill_creates_parent_dir ... ok [INFO] [stdout] test agents::tests::test_claude_read_sessions_returns_jsonl_files ... ok [INFO] [stdout] test agents::tests::test_claude_read_sessions_missing_dir_returns_empty ... ok [INFO] [stdout] test agents::tests::test_from_kind_returns_codex_adapter ... ok [INFO] [stdout] test agents::tests::test_from_kind_returns_opencode_adapter ... ok [INFO] [stdout] test agents::tests::test_claude_write_skill_idempotent ... ok [INFO] [stdout] test agents::tests::test_claude_read_sessions_walks_nested_dirs ... ok [INFO] [stdout] test agents::tests::test_codex_read_sessions_returns_jsonl_files ... ok [INFO] [stdout] test agents::tests::test_claude_write_skill_preserves_existing_structured_content ... ok [INFO] [stdout] test agents::tests::test_codex_write_skill_idempotent ... ok [INFO] [stdout] test agents::tests::test_codex_write_skill_uses_when_to_use_text_for_generated_description ... ok [INFO] [stdout] test agents::tests::test_codex_read_sessions_missing_dir_returns_empty ... ok [INFO] [stdout] test agents::tests::test_find_agent_command_in_path_finds_binary ... ok [INFO] [stdout] test agents::tests::test_find_agent_command_in_path_returns_none_when_missing ... ok [INFO] [stdout] test agents::tests::test_codex_write_multiple_distinct_skills_appends_all ... ok [INFO] [stdout] test agents::tests::test_read_sessions_ignores_non_jsonl_files ... ok [INFO] [stdout] test agents::tests::test_session_content_is_empty ... ok [INFO] [stdout] test agents::tests::test_codex_write_skill_creates_parent_dir ... ok [INFO] [stdout] test agents::tests::test_read_sessions_since_filter_includes_new_files ... ok [INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_epoch_millis_updated_field ... ok [INFO] [stdout] test agents::tests::test_read_sessions_since_filter_excludes_old_files ... ok [INFO] [stdout] test agents::tests::test_opencode_read_sessions_uses_cli_json_output ... ok [INFO] [stdout] test agents::tests::test_opencode_export_session_falls_back_when_format_flag_is_unsupported ... ok [INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_nested_sessions_array ... ok [INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_empty_output ... ok [INFO] [stdout] test agents::tests::test_opencode_write_skill_creates_parent_dir ... ok [INFO] [stdout] test agents::tests::test_opencode_read_sessions_missing_list_returns_error ... ok [INFO] [stdout] test agents::tests::test_opencode_read_sessions_empty_cli_output_returns_empty ... ok [INFO] [stdout] test agents::tests::test_session_path_matches_file_path ... ok [INFO] [stdout] test agents::tests::test_session_serde_roundtrip ... ok [INFO] [stdout] test commands::dedupe::tests::test_normalize_target_key_adds_md_suffix ... ok [INFO] [stdout] test commands::dedupe::tests::test_find_duplicate_groups_normalizes_line_endings_and_trailing_whitespace ... ok [INFO] [stdout] test commands::dedupe::tests::test_find_duplicate_groups_identifies_duplicates ... ok [INFO] [stdout] test commands::dedupe::tests::test_build_remove_proposal_targets_duplicate ... ok [INFO] [stdout] test commands::dedupe::tests::test_sanitize_slug ... ok [INFO] [stdout] test agents::tests::test_write_multiple_distinct_skills_appends_all ... ok [INFO] [stdout] test commands::notify::tests::test_print_pending_proposals_runs_for_single_and_plural ... ok [INFO] [stdout] test commands::notify::tests::test_print_pending_proposals_zero_is_still_safe ... ok [INFO] [stdout] test commands::onboard::tests::test_config_from_spec_preserves_values ... ok [INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_dry_run_does_not_write_proposals ... ok [INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_skips_existing_pending_remove ... ok [INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_disabled_proposal_agent ... ok [INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_unknown_agent ... ok [INFO] [stdout] test commands::review::tests::test_proposal_to_spec_keeps_filename ... ok [INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_writes_remove_proposals ... ok [INFO] [stdout] test commands::onboard::tests::test_default_config_from_detected_prefers_installed_agents ... ok [INFO] [stdout] test commands::review::tests::test_validate_spec_rejects_duplicate_filename ... ok [INFO] [stdout] test commands::onboard::tests::test_export_spec_existing_config_without_hook_sets_install_shell_hook_false ... ok [INFO] [stdout] test commands::scan::tests::test_build_agents_enables_only_known_enabled_agents ... ok [INFO] [stdout] test commands::scan::tests::test_build_agents_keeps_both_supported_agents_when_enabled ... ok [INFO] [stdout] test commands::scan::tests::test_scan_trigger_label_now_true ... ok [INFO] [stdout] test commands::scheduled_run::tests::test_parse_optional_positive_usize_env_zero_disables_limit ... ok [INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_all_agents_disabled ... ok [INFO] [stdout] test commands::scan::tests::test_last_scan_debug_artifact_path_reads_pointer_file ... ok [INFO] [stdout] test commands::scan::tests::test_scan_trigger_label_now_false ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_missing_dirs ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_preserves_config ... ok [INFO] [stdout] test commands::status::tests::test_format_status_default_config ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_counts_shared_skill_dirs ... ok [INFO] [stdout] test commands::status::tests::test_format_status_display_formatting_not_debug ... ok [INFO] [stdout] test commands::status::tests::test_format_status_shows_all_agents ... ok [INFO] [stdout] test commands::status::tests::test_format_status_never_scanned ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_ignores_non_md_files ... ok [INFO] [stdout] test commands::review::tests::test_decision_to_review ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_empty_dirs ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_parses_last_scan_timestamp_field ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_counts_md_files ... ok [INFO] [stdout] test commands::status::tests::test_collect_status_info_reports_overdue_schedule_state_for_missed_run ... ok [INFO] [stdout] test commands::onboard::tests::test_export_spec_existing_config_with_hook_sets_install_shell_hook_true ... ok [INFO] [stdout] test config::tests::test_config_roundtrip_yaml ... ok [INFO] [stdout] test config::tests::test_config_deserialize_without_sync_agents_defaults_empty ... ok [INFO] [stdout] test commands::status::tests::test_format_status_disabled_agent ... ok [INFO] [stdout] test commands::scheduled_run::tests::test_parse_optional_positive_u64_env_uses_default_when_missing ... ok [INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_returns_next_weekly_slot_after_recent_scan ... ok [INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_returns_next_monthly_slot_after_catch_up ... ok [INFO] [stdout] test config::tests::test_interval_display ... ok [INFO] [stdout] test config::tests::test_load_from_missing_optional_fields_uses_defaults ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test commands::status::tests::test_format_status_shows_backlog_count ... ok [INFO] [stdout] test config::tests::test_config_deserialize_from_yaml ... ok [INFO] [stdout] test config::tests::test_ensure_dirs_at_is_idempotent ... ok [INFO] [stdout] test commands::status::tests::test_format_status_with_last_scan ... ok [INFO] [stdout] test commands::status::tests::test_format_status_shows_skill_count ... ok [INFO] [stdout] test config::tests::test_config_save_and_load ... ok [INFO] [stdout] test commands::status::tests::test_format_status_shows_proposal_count ... ok [INFO] [stdout] test config::tests::test_load_from_returns_error_on_missing_file ... ok [INFO] [stdout] test config::tests::test_notification_pref_display ... ok [INFO] [stdout] test config::tests::test_shell_type_detect ... ok [INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_marks_missed_daily_slot_overdue ... ok [INFO] [stdout] test config::tests::test_save_to_load_from_preserves_all_fields ... ok [INFO] [stdout] test config::tests::test_save_to_creates_parent_dirs ... ok [INFO] [stdout] test config::tests::test_save_to_load_from_roundtrip ... ok [INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_iterm_aliases ... ok [INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_kitty ... ok [INFO] [stdout] test notify::tests::test_first_existing_path_picks_first_existing_candidate ... ok [INFO] [stdout] test config::tests::test_ensure_dirs_at_creates_subdirectories ... ok [INFO] [stdout] test notify::tests::test_macos_notifier_is_available_reflects_platform ... ok [INFO] [stdout] test notify::tests::test_notify_scan_complete_zero_proposals ... ok [INFO] [stdout] test notify::tests::test_send_notification_terminal_pref ... ok [INFO] [stdout] test notify::tests::test_first_existing_path_returns_none_when_all_missing ... ok [INFO] [stdout] test notify::tests::test_send_notification_none_pref ... ok [INFO] [stdout] test notify::tests::test_notify_scan_complete_with_proposals ... ok [INFO] [stdout] test notify::tests::test_protocol_from_terminal_name_iterm ... ok [INFO] [stdout] test notify::tests::test_notify_scan_complete_message_format ... ok [INFO] [stdout] test notify::tests::test_protocol_from_terminal_name_prefers_kitty_like ... ok [INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_none_for_unknown ... ok [INFO] [stdout] test notify::tests::test_terminal_notifier_send ... ok [INFO] [stdout] test notify::tests::test_resolve_icon_path_prefers_valid_configured_path ... ok [INFO] [stdout] test onboard::tests::test_build_config_daily_interval ... ok [INFO] [stdout] test onboard::tests::test_build_config_default_answers ... ok [INFO] [stdout] test notify::tests::test_terminal_image_mode_explicit_on_enables_rendering ... ok [INFO] [stdout] test notify::tests::test_write_embedded_icon_to_cache_creates_non_empty_file ... ok [INFO] [stdout] test onboard::tests::test_build_config_agent_entries_match_detected ... ok [INFO] [stdout] test notify::tests::test_terminal_notifier_is_available ... ok [INFO] [stdout] test notify::tests::test_terminal_image_mode_explicit_off_disables_rendering ... ok [INFO] [stdout] test config::tests::test_shell_type_display ... ok [INFO] [stdout] test notify::tests::test_send_native_notification_is_best_effort_without_terminal_fallback ... ok [INFO] [stdout] test notify::tests::test_send_native_notification_is_best_effort_with_terminal_fallback ... ok [INFO] [stdout] test onboard::tests::test_build_config_default_interval_is_weekly ... ok [INFO] [stdout] test onboard::tests::test_build_config_monthly_interval_and_native_notifications ... ok [INFO] [stdout] test onboard::tests::test_build_config_shell_detection_used ... ok [INFO] [stdout] test onboard::tests::test_build_config_enables_only_selected_agents ... ok [INFO] [stdout] test onboard::tests::test_build_config_proposal_agent_codex ... ok [INFO] [stdout] test onboard::tests::test_confirm_action_cycles_in_expected_order ... ok [INFO] [stdout] test onboard::tests::test_detect_agents_claude_only ... ok [INFO] [stdout] test onboard::tests::test_detect_agents_both_installed ... ok [INFO] [stdout] test notify::tests::test_terminal_image_mode_defaults_to_disabled ... ok [INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_reports_unsupported_shell ... ok [INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_skips_hook_when_declined ... ok [INFO] [stdout] test notify::tests::test_linux_notifier_is_available_does_not_panic ... ok [INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_installs_hook_and_scheduler ... ok [INFO] [stdout] test onboard::tests::test_detect_agents_codex_only ... ok [INFO] [stdout] test onboard::tests::test_detect_agents_none_installed ... ok [INFO] [stdout] test onboard::tests::test_jump_to_confirm_resets_action_to_save_and_scan ... ok [INFO] [stdout] test onboard::tests::test_detect_agents_opencode_only ... ok [INFO] [stdout] test onboard::tests::test_jump_to_step_number_with_other_shell_skips_hook_slot ... ok [INFO] [stdout] test onboard::tests::test_step_sequence_hides_hook_for_other_shell ... ok [INFO] [stdout] test preferences::tests::test_load_builds_prefer_and_avoid_signals ... ok [INFO] [stdout] test preferences::tests::test_load_infers_type_from_legacy_filename_only_history ... ok [INFO] [stdout] test preferences::tests::test_load_missing_history_file ... ok [INFO] [stdout] test preferences::tests::test_to_prompt_block_without_history ... ok [INFO] [stdout] test proposal_runner::tests::test_extract_claude_stream_output_uses_last_json_candidate ... ok [INFO] [stdout] test proposal_runner::tests::test_extract_json_value_handles_fenced_blocks ... ok [INFO] [stdout] test proposal_runner::tests::test_extract_opencode_json_output_reads_embedded_result ... ok [INFO] [stdout] test proposal_runner::tests::test_locked_opencode_config_json_denies_mutation_tools ... ok [INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_codex_home_under_debug_run_dir_is_preserved ... ok [INFO] [stdout] test proposal_runner::tests::test_populate_isolated_claude_home_copies_control_plane_only ... ok [INFO] [stdout] test proposal_runner::tests::test_prepare_proposal_command_for_opencode_sets_inline_permissions ... ok [INFO] [stdout] test proposal_runner::tests::test_proposal_agent_mode_detects_known_profiles ... ok [INFO] [stdout] test proposal_runner::tests::test_proposal_agent_command_supports_opencode ... ok [INFO] [stdout] test proposals::tests::test_confidence_serde ... ok [INFO] [stdout] test proposal_runner::tests::test_populate_isolated_codex_home_copies_control_plane_only ... ok [INFO] [stdout] test proposals::tests::test_frontmatter_roundtrip_with_file_target ... ok [INFO] [stdout] test proposals::tests::test_frontmatter_serde_roundtrip ... ok [INFO] [stdout] test proposals::tests::test_infer_skill_name_from_body_returns_none_without_heading ... ok [INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_opencode_home_without_debug_run_dir_cleans_up_on_drop ... ok [INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_codex_home_under_debug_run_dir_reuses_existing_symlinks ... ok [INFO] [stdout] test proposals::tests::test_legacy_target_skill_resolves_to_skill_target ... ok [INFO] [stdout] test review::tests::test_accept_proposal_removes_proposal ... ok [INFO] [stdout] test review::tests::test_accept_proposal_uses_target_skill_filename ... ok [INFO] [stdout] test proposals::tests::test_infer_skill_name_from_body_slugifies_markdown_title ... ok [INFO] [stdout] test proposals::tests::test_proposal_from_invalid_markdown ... ok [INFO] [stdout] test proposals::tests::test_proposal_to_markdown ... ok [INFO] [stdout] test review::tests::test_accept_remove_deletes_existing_shared_skill_directory ... ok [INFO] [stdout] test review::tests::test_accept_remove_proposal_deletes_target_skill ... ok [INFO] [stdout] test proposals::tests::test_proposal_roundtrip ... ok [INFO] [stdout] test review::tests::test_load_proposals_nonexistent_dir ... ok [INFO] [stdout] test proposals::tests::test_proposal_type_serde ... ok [INFO] [stdout] test review::tests::test_load_proposals_ignores_non_md_files ... ok [INFO] [stdout] test review::tests::test_accept_improve_updates_existing_shared_skill_source_and_preserves_frontmatter ... ok [INFO] [stdout] test review::tests::test_accept_proposal_writes_skill ... ok [INFO] [stdout] test review::tests::test_accept_new_proposal_uses_body_title_when_target_missing ... ok [INFO] [stdout] test review::tests::test_accept_proposal_logs_to_history ... ok [INFO] [stdout] test review::tests::test_derive_preference_tags_includes_type_target_and_topic ... ok [INFO] [stdout] test review::tests::test_required_confirmation_for_accept_all_with_removals ... ok [INFO] [stdout] test review::tests::test_proposal_details_warns_when_remove_target_missing ... ok [INFO] [stdout] test review::tests::test_accept_remove_proposal_requires_target_skill ... ok [INFO] [stdout] test review::tests::test_required_confirmation_for_accept_remove ... ok [INFO] [stdout] test review::tests::test_load_proposals_sorted_by_filename ... ok [INFO] [stdout] test review::tests::test_review_all_skip ... ok [INFO] [stdout] test review::tests::test_reject_proposal_logs_to_history ... ok [INFO] [stdout] test review::tests::test_log_decision_appends ... ok [INFO] [stdout] test review::tests::test_review_all_accept ... ok [INFO] [stdout] test review::tests::test_reject_proposal_removes_file ... ok [INFO] [stdout] test review::tests::test_load_proposals_empty_dir ... ok [INFO] [stdout] test run_history::tests::test_append_and_load_run_records_roundtrip ... ok [INFO] [stdout] test review::tests::test_load_proposals_from_dir ... ok [INFO] [stdout] test review::tests::test_review_summary_counts ... ok [INFO] [stdout] test run_history::tests::test_load_run_records_missing_file ... ok [INFO] [stdout] test review::tests::test_review_all_reject ... ok [INFO] [stdout] test review::tests::test_log_decision_entry_is_valid_json ... ok [INFO] [stdout] test review::tests::test_pending_confirmation_maps_to_expected_intent ... ok [INFO] [stdout] test proposal_runner::tests::test_populate_isolated_opencode_home_copies_control_plane_only ... ok [INFO] [stdout] test run_history::tests::test_run_history_ui_filter_cycles ... ok [INFO] [stdout] test run_history::tests::test_summarize_run_records_counts_successes_and_failures ... ok [INFO] [stdout] test run_history::tests::test_load_run_records_returns_newest_first ... ok [INFO] [stdout] test scanner::engine::tests::test_agent_timeout_defaults_to_two_hours ... ok [INFO] [stdout] test scanner::engine::tests::test_agent_timeout_parses_positive_seconds ... ok [INFO] [stdout] test review::tests::test_review_ui_action_focus_cycles ... ok [INFO] [stdout] test scanner::engine::tests::test_backlog_appends_new_sessions_after_existing_queue ... ok [INFO] [stdout] test scanner::engine::tests::test_backlog_seeds_newest_first_on_first_scan ... ok [INFO] [stdout] test review::tests::test_load_proposals_sets_filename_field ... ok [INFO] [stdout] test review::tests::test_log_decision_creates_history_dir ... ok [INFO] [stdout] test scanner::engine::tests::test_build_prompt_references_manifest_and_not_excerpts ... ok [INFO] [stdout] test scanner::engine::tests::test_build_staged_session_summary_extracts_current_opencode_export_shape ... ok [INFO] [stdout] test scanner::engine::tests::test_build_staged_session_summary_extracts_opencode_export_messages_and_tools ... ok [INFO] [stdout] test run_history::tests::test_failed_record_truncates_error_text ... ok [INFO] [stdout] test scanner::engine::tests::test_scan_debug_artifacts_preserve_failure_run ... ok [INFO] [stdout] test scanner::engine::tests::test_select_session_batch_keeps_single_oversized_first_session ... ok [INFO] [stdout] test scanner::engine::tests::test_validate_and_finalize_response_rejects_missing_coverage ... ok [INFO] [stdout] test scanner::engine::tests::test_parse_scan_response_normalizes_relative_paths ... ok [INFO] [stdout] test scanner::reader::tests::test_collect_sessions_keeps_same_basename_from_different_paths ... ok [INFO] [stdout] test scanner::reader::tests::test_collect_sessions_deduplicates ... ok [INFO] [stdout] test scanner::engine::tests::test_stage_timeline_workspace_skips_missing_session_files ... ok [INFO] [stdout] test scanner::engine::tests::test_agent_timeout_accepts_zero_to_disable ... ok [INFO] [stdout] test review::tests::test_draw_review_ui_renders_footer_actions_and_status ... ok [INFO] [stdout] test scanner::reader::tests::test_last_scan_load_missing_file ... ok [INFO] [stdout] test scanner::reader::tests::test_collect_sessions_sorted_by_timestamp ... ok [INFO] [stdout] test scanner::state::tests::test_scan_state_attempted_workflow_waits_for_new_evidence ... ok [INFO] [stdout] test scanner::engine::tests::test_touched_paths_from_audit_log_ignores_non_tool_messages ... ok [INFO] [stdout] test scanner::reader::tests::test_last_scan_roundtrip ... ok [INFO] [stdout] test scanner::timeline::tests::test_render_timeline_window_keeps_requested_middle_range ... ok [INFO] [stdout] test scanner::state::tests::test_scan_state_proposed_workflow_is_not_ready_again ... ok [INFO] [stdout] test scanner::state::tests::test_scan_state_ready_workflow_requires_three_sessions ... ok [INFO] [stdout] test scanner::engine::tests::test_select_session_batch_respects_count_and_raw_byte_cap ... ok [INFO] [stdout] test scanner::timeline::tests::test_codex_timeline_keeps_middle_command_execution ... ok [INFO] [stdout] test scanner::engine::tests::test_touched_paths_from_audit_log_matches_private_prefix_and_double_slashes ... ok [INFO] [stdout] test scanner::engine::tests::test_stage_scan_workspace_truncates_large_session_fields ... ok [INFO] [stdout] test scanner::engine::tests::test_stage_scan_workspace_copies_sessions_and_skills ... ok [INFO] [stdout] test run_history::tests::test_draw_run_history_ui_renders_empty_filter_state ... ok [INFO] [stdout] test schedule::tests::test_launchd_install_creates_plist ... ok [INFO] [stdout] test schedule::tests::test_launchd_plist_path ... ok [INFO] [stdout] test schedule::tests::test_systemd_status_not_installed ... ok [INFO] [stdout] test schedule::tests::test_launchd_status_not_installed ... ok [INFO] [stdout] test schedule::tests::test_launchd_install_fails_if_launchctl_fails ... ok [INFO] [stdout] test scanner::engine::tests::test_scan_debug_artifacts_cleanup_success_run ... ok [INFO] [stdout] test review::tests::test_draw_review_ui_renders_confirmation_modal ... ok [INFO] [stdout] test schedule::tests::test_systemd_unit_paths ... ok [INFO] [stdout] test shell::tests::test_hook_snippet_fish ... ok [INFO] [stdout] test schedule::tests::test_uninstall_is_idempotent_systemd ... ok [INFO] [stdout] test shell::tests::test_hook_snippet_other_is_empty ... ok [INFO] [stdout] test shell::tests::test_hook_snippet_bash ... ok [INFO] [stdout] test shell::tests::test_hook_snippet_zsh ... ok [INFO] [stdout] test schedule::tests::test_uninstall_is_idempotent_launchd ... ok [INFO] [stdout] test schedule::tests::test_launchd_status_installed ... ok [INFO] [stdout] test shell::tests::test_install_hook_appends_to_existing_file ... ok [INFO] [stdout] test shell::tests::test_install_hook_unsupported_shell ... ok [INFO] [stdout] test shell::tests::test_install_hook_fish_creates_dirs ... ok [INFO] [stdout] test schedule::tests::test_systemd_install_fails_if_systemctl_fails ... ok [INFO] [stdout] test schedule::tests::test_launchd_uninstall_removes_plist ... ok [INFO] [stdout] test shell::tests::test_shell_config_path_fish ... ok [INFO] [stdout] test shell::tests::test_shell_config_path_zsh ... ok [INFO] [stdout] test shell::tests::test_shell_config_path_bash ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook_not_found_missing_file ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook ... ok [INFO] [stdout] test shell::tests::test_install_hook_idempotent ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook_fish ... ok [INFO] [stdout] test schedule::tests::test_systemd_status_installed ... ok [INFO] [stdout] test shell::tests::test_install_hook_bash ... ok [INFO] [stdout] test schedule::tests::test_systemd_service_contains_exec_start ... ok [INFO] [stdout] test shell::tests::test_shell_config_path_other ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook_not_found_no_marker ... ok [INFO] [stdout] test schedule::tests::test_launchd_plist_is_valid_xml ... ok [INFO] [stdout] test shell::tests::test_install_hook_zsh ... ok [INFO] [stdout] test schedule::tests::test_launchd_plist_uses_calendar_intervals_for_wake_catch_up ... ok [INFO] [stdout] test run_history::tests::test_draw_run_history_ui_renders_summary_and_details ... ok [INFO] [stdout] test sync::tests::test_load_skills_from_directory ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook_unsupported_shell ... ok [INFO] [stdout] test sync::tests::test_load_skills_ignores_non_md ... ok [INFO] [stdout] test sync::tests::test_load_skills_supports_skill_directories ... ok [INFO] [stdout] test sync::tests::test_load_skills_follows_symlinked_skill_directories ... ok [INFO] [stdout] test sync::tests::test_load_skills_empty_dir ... ok [INFO] [stdout] test sync::tests::test_load_skills_nonexistent_dir ... ok [INFO] [stdout] test schedule::tests::test_systemd_uninstall_removes_files ... ok [INFO] [stdout] test schedule::tests::test_launchd_plist_contains_interval ... ok [INFO] [stdout] test sync::tests::test_load_skills_from_dirs_dedupes_by_name_preferring_first_root ... ok [INFO] [stdout] test sync::tests::test_sync_skills_empty_skills_list ... ok [INFO] [stdout] test sync_agents::tests::test_parse_agent_response_file_target ... ok [INFO] [stdout] test sync::tests::test_run_sync_nonexistent_skills_dir ... ok [INFO] [stdout] test shell::tests::test_uninstall_hook_preserves_surrounding_content ... ok [INFO] [stdout] test sync_agents::tests::test_parse_since_date ... ok [INFO] [stdout] test sync::tests::test_sync_skills_idempotent ... ok [INFO] [stdout] test sync::tests::test_sync_skills_empty_agents_list ... ok [INFO] [stdout] test sync_agents::tests::test_parse_since_invalid ... ok [INFO] [stdout] test sync_agents::tests::test_parse_since_rfc3339 ... ok [INFO] [stdout] test sync::tests::test_load_skill_sources_tracks_origin_paths ... ok [INFO] [stdout] test sync_agents::tests::test_pending_file_targets_reads_targets ... ok [INFO] [stdout] test schedule::tests::test_systemd_install_creates_files ... ok [INFO] [stdout] test sync::tests::test_sync_skills_writes_to_all_agents ... ok [INFO] [stdout] test sync::tests::test_run_sync_from_dirs_includes_shared_directory_skills ... ok [INFO] [stdout] test schedule::tests::test_systemd_timer_contains_calendar ... ok [INFO] [stdout] test sync::tests::test_run_sync_end_to_end ... ok [INFO] [stdout] test sync_agents::tests::test_resolve_projects_dedupes_and_validates_git_repo ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 300 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s [INFO] [stdout] [INFO] [stderr] Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-872a48b29b3659f2) [INFO] [stdout] [INFO] [stdout] running 34 tests [INFO] [stdout] test test_help_flag ... ok [INFO] [stdout] test test_invalid_subcommand ... ok [INFO] [stdout] test test_onboard_apply_json ... ok [INFO] [stdout] test test_dedupe_writes_remove_proposal ... ok [INFO] [stdout] test test_onboard_apply_json_stdin ... ok [INFO] [stdout] test test_notify_check ... ok [INFO] [stdout] test test_runs_without_history ... ok [INFO] [stdout] test test_onboard_apply_json_can_run_initial_scan_immediately ... ok [INFO] [stdout] test test_onboard_write_json_stdout ... ok [INFO] [stdout] test test_review_write_json_stdout ... ok [INFO] [stdout] test test_scan_now_writes_run_history_record ... ok [INFO] [stdout] test test_review_apply_json_stdin ... ok [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all [INFO] [stderr] hint: of your new repositories, which will suppress this warning, call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all [INFO] [stderr] hint: of your new repositories, which will suppress this warning, call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpuwA5AN/repo-history/.git/ [INFO] [stdout] test test_review_no_proposals ... ok [INFO] [stdout] test test_review_apply_json ... ok [INFO] [stdout] test test_onboard_write_json_template ... ok [INFO] [stdout] test test_status_without_config ... ok [INFO] [stdout] test test_review_write_json ... ok [INFO] [stdout] test test_scan_without_now_flag ... ok [INFO] [stdout] test test_scheduled_run_writes_combined_history_record ... ok [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpiNBjWj/repo-two/.git/ [INFO] [stdout] test test_dedupe_dry_run_does_not_write_proposals ... ok [INFO] [stdout] test test_status_with_config ... ok [INFO] [stdout] test test_version_flag ... ok [INFO] [stdout] test test_sync_agents_list_configured_empty ... ok [INFO] [stdout] test test_watch_install_stub ... ok [INFO] [stdout] test test_watch_mutual_exclusion ... ok [INFO] [stdout] test test_sync_agents_dry_run_does_not_write_proposals ... ok [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all [INFO] [stderr] hint: of your new repositories, which will suppress this warning, call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stdout] test test_watch_install_writes_scheduled_run_command ... ok [INFO] [stdout] test test_sync_agents_dry_run_writes_run_history_record ... ok [INFO] [stdout] test test_watch_uninstall_stub ... ok [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpIkmpyb/repo-one/.git/ [INFO] [stdout] test test_sync_agents_save_projects_persists_allowlist ... ok [INFO] [stdout] test test_sync_agents_all_configured_errors_when_empty ... ok [INFO] [stdout] test test_no_args_without_config ... ok [INFO] [stdout] test test_runs_requires_interactive_terminal_when_history_exists ... ok [INFO] [stdout] test test_scan_now_without_config ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s [INFO] [stdout] [INFO] [stderr] Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-22335037373aa720) [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test test_e2e_notify_empty_proposals_dir ... ok [INFO] [stdout] test test_e2e_notify_no_proposals ... ok [INFO] [stdout] test test_e2e_scan_creates_proposals_dir ... ok [INFO] [stdout] test test_e2e_notify_single_proposal ... ok [INFO] [stdout] test test_e2e_notify_with_proposals ... ok [INFO] [stdout] test test_e2e_scan_without_now_runs_scheduled_path ... ok [INFO] [stdout] test test_e2e_status_shows_config ... ok [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all [INFO] [stderr] hint: of your new repositories, which will suppress this warning, call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stdout] Initialized empty Git repository in /tmp/.tmp2RtJUn/demo-project/.git/ [INFO] [stdout] test test_e2e_scan_no_config_error_mentions_config ... ok [INFO] [stdout] test test_e2e_full_flow_status_after_config ... ok [INFO] [stdout] [master (root-commit) 45b70af] Add README [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test test_e2e_scan_opencode_monitored_sessions_with_generic_proposal_agent ... ok [INFO] [stdout] test test_e2e_scan_opencode_proposal_agent_uses_isolated_home_and_inline_permissions ... ok [INFO] [stdout] test test_e2e_sync_agents_opencode_proposal_agent_writes_proposal ... ok [INFO] [stdout] test test_e2e_scan_codex_proposal_agent_with_schema_enforcement ... ok [INFO] [stdout] test test_e2e_scan_debug_dir_captures_workspace_and_outputs ... ok [INFO] [stdout] test test_e2e_scan_reports_existing_shared_skills_and_manifest_flow ... ok [INFO] [stdout] test test_e2e_scan_claude_stream_json_with_coverage ... ok [INFO] [stdout] test test_e2e_preference_learning_roundtrip_review_to_scan_prompt ... ok [INFO] [stdout] test test_e2e_scan_ignores_stale_backlog_session_paths ... ok [INFO] [stdout] test test_e2e_scan_rejects_missing_coverage_and_keeps_backlog ... ok [INFO] [stdout] test test_e2e_scan_first_run_uses_newest_batch_then_drains_backlog ... ok [INFO] [stdout] test test_e2e_scheduled_run_drains_multiple_batches_until_budget ... ok [INFO] [stdout] test test_e2e_scan_large_codex_backlog_respects_byte_cap_and_preserves_remaining_sessions ... ok [INFO] [stdout] test test_e2e_scan_codex_middle_workflow_across_projects_writes_proposal ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c784a0aa2fc3926daefc7d8eebd960f1e01f1af63234de117be622188091a8e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c784a0aa2fc3926daefc7d8eebd960f1e01f1af63234de117be622188091a8e2", kill_on_drop: false }` [INFO] [stdout] c784a0aa2fc3926daefc7d8eebd960f1e01f1af63234de117be622188091a8e2