[INFO] cloning repository https://github.com/brevity1swos/sift [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/brevity1swos/sift" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrevity1swos%2Fsift", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrevity1swos%2Fsift'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7f571ed95d2c7bddcb85b543e0785b9c91c5e0a2 [INFO] testing brevity1swos/sift against 1.99.0-beta.8 for beta-1.100-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbrevity1swos%2Fsift" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/brevity1swos/sift [INFO] finished tweaking git repo https://github.com/brevity1swos/sift [INFO] tweaked toml for git repo https://github.com/brevity1swos/sift written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/brevity1swos/sift on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/brevity1swos/sift 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ulid v1.2.1 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.118 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.118 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.118 [INFO] [stderr] Downloaded wasm-bindgen v0.2.118 [INFO] [stderr] Downloaded serde_yaml_ng v0.10.0 [INFO] [stderr] Downloaded assert_cmd v2.2.0 [INFO] [stderr] Downloaded js-sys v0.3.95 [INFO] [stderr] Downloaded rand v0.9.3 [INFO] [stderr] Downloaded mio v1.2.0 [INFO] [stderr] Downloaded compact_str v0.8.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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] 94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0 [INFO] running `Command { std: "docker" "start" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", 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" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", 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" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling hashbrown v0.17.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling rand v0.9.3 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling ulid v1.2.1 [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 siftcore v0.1.1 (/opt/rustwide/workdir/crates/sift-core) [INFO] [stderr] Compiling sift-render v0.1.1 (/opt/rustwide/workdir/crates/sift-tui) [INFO] [stderr] Compiling sift-tui v0.1.1 (/opt/rustwide/workdir/crates/sift-cli) [INFO] [stderr] Compiling sift-hook v0.1.1 (/opt/rustwide/workdir/crates/sift-hook) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.25s [INFO] running `Command { std: "docker" "inspect" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", 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" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling siftcore v0.1.1 (/opt/rustwide/workdir/crates/sift-core) [INFO] [stderr] Compiling sift-render v0.1.1 (/opt/rustwide/workdir/crates/sift-tui) [INFO] [stderr] Compiling sift-hook v0.1.1 (/opt/rustwide/workdir/crates/sift-hook) [INFO] [stderr] Compiling sift-tui v0.1.1 (/opt/rustwide/workdir/crates/sift-cli) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 22.92s [INFO] running `Command { std: "docker" "inspect" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", 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" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", 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/sift_hook-4d06ce10390593d4) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test payload::tests::parse_errors_on_invalid_json ... ok [INFO] [stdout] test payload::tests::parse_user_prompt_submit ... ok [INFO] [stdout] test payload::tests::default_hook_event_has_empty_raw ... ok [INFO] [stdout] test payload::tests::unknown_keys_returns_none_for_non_object_input ... ok [INFO] [stdout] test payload::tests::parse_pretooluse_write ... ok [INFO] [stdout] test payload::tests::unknown_keys_reports_drift_sorted ... ok [INFO] [stdout] test payload::tests::unknown_keys_returns_none_when_all_known ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/cold_start_benchmark.rs (/opt/rustwide/target/debug/deps/cold_start_benchmark-a4a7974f497b0f62) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test cold_start_under_budget ... ignored, slow; run explicitly with `cargo test --release -- --ignored` [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/session_lifecycle.rs (/opt/rustwide/target/debug/deps/session_lifecycle-f22bd90dd63937cf) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test user_prompt_strict_mode_allows_when_pending_empty ... ok [INFO] [stdout] test stop_writes_ended_at_and_summary ... ok [INFO] [stdout] test session_start_creates_dir_and_symlink ... ok [INFO] [stdout] test user_prompt_no_session_allows ... ok [INFO] [stdout] test stop_on_no_session_is_a_noop ... ok [INFO] [stdout] test pre_post_creates_pending_entry ... ok [INFO] [stdout] test user_prompt_strict_mode_blocks_when_pending ... ok [INFO] [stdout] test user_prompt_loose_mode_always_allows ... ok [INFO] [stdout] test user_prompt_bumps_turn_counter ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sift_tui-0632733bed2f79cd) [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test app::tests::cursor_bounds ... ok [INFO] [stdout] test events::tests::n_without_active_search_surfaces_hint ... ok [INFO] [stdout] test events::tests::quit_sets_should_quit_flag ... ok [INFO] [stdout] test app::tests::new_app_reads_pending_entries ... ok [INFO] [stdout] test events::tests::no_match_query_surfaces_status_msg ... ok [INFO] [stdout] test events::tests::enter_accepts_current_entry ... ok [INFO] [stdout] test events::tests::a_no_longer_accepts_in_v04 ... ok [INFO] [stdout] test events::tests::a_opens_annotation_prompt ... ok [INFO] [stdout] test events::tests::next_keypress_clears_stale_status_msg ... ok [INFO] [stdout] test events::tests::n_and_shift_n_cycle_matches_after_search ... ok [INFO] [stdout] test events::tests::slash_enters_search_mode ... ok [INFO] [stdout] test events::tests::search_escape_cancels_without_jumping ... ok [INFO] [stdout] test events::tests::space_accepts_current_entry ... ok [INFO] [stdout] test events::tests::t_key_surfaces_missing_transcript_when_agx_present ... ok [INFO] [stdout] test events::tests::revert_still_works ... ok [INFO] [stdout] test events::tests::search_commit_jumps_to_first_match ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sift-d4c18fb4bc683a34) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test cmd_doctor::tests::report_serializes_with_status_fields ... ok [INFO] [stdout] test cmd_doctor::tests::integration_note_formats_too_old_with_min_version ... ok [INFO] [stdout] test cmd_fsck::tests::accepts_canonical_timestamp_id ... ok [INFO] [stdout] test cmd_fsck::tests::accepts_id_with_dash_suffix_for_collision ... ok [INFO] [stdout] test cmd_fsck::tests::rejects_special_characters ... ok [INFO] [stdout] test cmd_fsck::tests::rejects_traversal_attempts ... ok [INFO] [stdout] test cmd_fsck::tests::rejects_empty_id ... ok [INFO] [stdout] test cmd_doctor::tests::raw_probe_returns_false_for_nonexistent_binary ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/cli_e2e.rs (/opt/rustwide/target/debug/deps/cli_e2e-96b8e5885673a500) [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test accept_all_moves_pending_to_ledger ... ok [INFO] [stdout] test diff_json_includes_unified_and_entry_fields ... ok [INFO] [stdout] test gc_apply_deletes_old_sessions ... ok [INFO] [stdout] test export_json_emits_versioned_schema_with_grouped_turns ... ok [INFO] [stdout] test gc_dry_run_reports_old_sessions ... ok [INFO] [stdout] test every_read_command_emits_json_under_json_flag ... ok [INFO] [stdout] test export_unknown_format_errors_cleanly ... ok [INFO] [stdout] test init_installs_executable_post_commit_hook_by_default ... ok [INFO] [stdout] test accept_by_commit_ignores_commit_paths_without_matching_pending ... ok [INFO] [stdout] test init_refuses_to_overwrite_non_sift_post_commit_hook ... ok [INFO] [stdout] test init_twice_is_idempotent_on_hook ... ok [INFO] [stdout] test accept_by_commit_divergent_entry_stays_pending ... ok [INFO] [stdout] test init_manual_accept_skips_hook_install ... ok [INFO] [stdout] test list_empty_pending ... ok [INFO] [stdout] test mode_strict_persists_in_config ... ok [INFO] [stdout] test gc_compact_current_session ... ok [INFO] [stdout] test list_after_write_via_hook ... ok [INFO] [stdout] test state_accepts_json_flag_and_emits_object ... ok [INFO] [stdout] test state_baseline_returns_pre_states ... ok [INFO] [stdout] test list_path_filter_keeps_only_matching_entries ... ok [INFO] [stdout] test revert_all_on_create_deletes_file ... ok [INFO] [stdout] test status_json_reports_active_session_and_pending ... ok [INFO] [stdout] test state_at_turn_diffs_two_arbitrary_turns ... ok [INFO] [stdout] test accept_by_commit_dry_run_reports_match_without_finalizing ... ok [INFO] [stdout] test accept_by_commit_apply_finalizes_matching_entries ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s [INFO] [stdout] [INFO] [stderr] Running tests/e2e_full_turn.rs (/opt/rustwide/target/debug/deps/e2e_full_turn-a0067bd48cd0f778) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test full_turn_with_two_writes_then_accept_all ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sift_core-6e5766ada38d2e2c) [INFO] [stdout] [INFO] [stdout] running 128 tests [INFO] [stdout] test agx::tests::meets_minimum_rejects_older_version ... ok [INFO] [stdout] test agx::tests::parse_version_rejects_non_numeric ... ok [INFO] [stdout] test agx::tests::detect_with_timeout_does_not_panic_or_hang ... ok [INFO] [stdout] test agx::tests::parse_version_rejects_two_parts ... ok [INFO] [stdout] test agx::tests::parse_version_returns_none_on_empty ... ok [INFO] [stdout] test agx::tests::meets_minimum_accepts_newer_version ... ok [INFO] [stdout] test agx::tests::meets_minimum_accepts_version_at_floor ... ok [INFO] [stdout] test agx::tests::parse_version_strips_build_metadata ... ok [INFO] [stdout] test agx::tests::parse_version_handles_feature_suffix ... ok [INFO] [stdout] test agx::tests::parse_version_handles_plain_semver ... ok [INFO] [stdout] test agx::tests::parse_version_picks_first_triple_token ... ok [INFO] [stdout] test agx::tests::parse_version_rejects_four_parts ... ok [INFO] [stdout] test agx::tests::parse_version_strips_prerelease ... ok [INFO] [stdout] test agx::tests::version_ordering_is_lexicographic ... ok [INFO] [stdout] test correlation::tests::canonical_json_sorts_object_keys ... ok [INFO] [stdout] test config::tests::load_returns_default_if_missing ... ok [INFO] [stdout] test correlation::tests::delimiter_prevents_prefix_collision ... ok [INFO] [stdout] test config::tests::save_then_load_roundtrip ... ok [INFO] [stdout] test config::tests::load_errors_include_file_path_on_invalid_toml ... ok [INFO] [stdout] test correlation::tests::different_tool_inputs_produce_different_hashes ... ok [INFO] [stdout] test config::tests::default_mode_is_loose ... ok [INFO] [stdout] test agx::tests::probe_version_of_missing_binary_is_fast_none ... ok [INFO] [stdout] test correlation::tests::falls_back_to_hash_when_id_missing ... ok [INFO] [stdout] test correlation::tests::falls_back_when_id_is_non_string ... ok [INFO] [stdout] test correlation::tests::hash_is_stable_across_key_order ... ok [INFO] [stdout] test correlation::tests::uses_tool_use_id_when_present ... ok [INFO] [stdout] test diff::tests::stats_empty_on_identical_input ... ok [INFO] [stdout] test diff::tests::stats_counts_added_and_removed_lines ... ok [INFO] [stdout] test diff::tests::stats_handles_empty_inputs ... ok [INFO] [stdout] test diff::tests::stats_handles_input_without_trailing_newline ... ok [INFO] [stdout] test diff::tests::unified_contains_change_markers ... ok [INFO] [stdout] test correlation::tests::falls_back_when_id_is_empty_string ... ok [INFO] [stdout] test entry::tests::missing_rationale_defaults_to_empty ... ok [INFO] [stdout] test diff::tests::unified_empty_strings_returns_empty_output ... ok [INFO] [stdout] test export::tests::missing_transcript_path_round_trips_as_none ... ok [INFO] [stdout] test entry::tests::serializes_to_expected_shape ... ok [INFO] [stdout] test entry::tests::status_change_roundtrip ... ok [INFO] [stdout] test export::tests::empty_ledger_yields_zero_turns_and_entries ... ok [INFO] [stdout] test export::tests::entries_group_by_turn_ascending ... ok [INFO] [stdout] test entry::tests::new_entry_id_returns_26_char_string ... ok [INFO] [stdout] test entry::tests::roundtrip_preserves_all_fields ... ok [INFO] [stdout] test export::tests::multiple_entries_per_turn_preserve_insertion_order ... ok [INFO] [stdout] test export::tests::round_trip_preserves_all_fields ... ok [INFO] [stdout] test export::tests::schema_version_is_one ... ok [INFO] [stdout] test export::tests::unknown_top_level_fields_tolerated_on_parse ... ok [INFO] [stdout] test fsck::tests::clean_session_reports_no_issues ... ok [INFO] [stdout] test fsck::tests::detects_orphan_tombstone_in_changes_jsonl ... ok [INFO] [stdout] test fsck::tests::detects_invalid_json_mid_file ... ok [INFO] [stdout] test fsck::tests::file_kind_all_covers_four_filenames ... ok [INFO] [stdout] test fsck::tests::detects_truncated_trailing_record ... ok [INFO] [stdout] test fsck::tests::detects_duplicate_ids ... ok [INFO] [stdout] test gc::tests::deletes_old_closed_sessions ... ok [INFO] [stdout] test fsck::tests::repair_refuses_to_touch_open_session ... ok [INFO] [stdout] test gc::tests::dry_run_does_not_delete ... ok [INFO] [stdout] test gc::tests::skips_session_dir_without_meta ... ok [INFO] [stdout] test gc::tests::mixed_sessions_categorized_correctly ... ok [INFO] [stdout] test gc::tests::no_sessions_dir_returns_empty_result ... ok [INFO] [stdout] test gc::tests::empty_sessions_dir_returns_empty_result ... ok [INFO] [stdout] test paths::tests::session_dir_joins_id ... ok [INFO] [stdout] test paths::tests::sift_dir_is_under_project_root ... ok [INFO] [stdout] test paths::tests::snapshot_path_errors_on_non_ascii ... ok [INFO] [stdout] test paths::tests::snapshot_path_is_sharded ... ok [INFO] [stdout] test paths::tests::staging_path_uses_correlation_key ... ok [INFO] [stdout] test gc::tests::skips_corrupt_meta ... ok [INFO] [stdout] test policy::tests::deny_env_files ... ok [INFO] [stdout] test paths::tests::snapshot_path_errors_on_short_hex ... ok [INFO] [stdout] test gc::tests::skips_open_sessions ... ok [INFO] [stdout] test policy::tests::review_action ... ok [INFO] [stdout] test fsck::tests::repair_archives_bad_file_and_rewrites_clean ... ok [INFO] [stdout] test policy::tests::empty_policy_allows_everything ... ok [INFO] [stdout] test session::tests::close_errors_on_corrupted_meta ... ok [INFO] [stdout] test policy::tests::first_match_wins ... ok [INFO] [stdout] test session::tests::create_meta_id_matches_started_at_to_the_second ... ok [INFO] [stdout] test policy::tests::missing_file_returns_empty_policy ... ok [INFO] [stdout] test session::tests::create_twice_in_same_second_gets_distinct_ids ... ok [INFO] [stdout] test session::tests::open_current_errors_when_no_symlink ... ok [INFO] [stdout] test session::tests::open_current_reads_the_symlink ... ok [INFO] [stdout] test session::tests::create_makes_dirs_meta_state_and_symlink ... ok [INFO] [stdout] test gc::tests::skips_young_sessions ... ok [INFO] [stdout] test snapshot::tests::get_quarantines_corrupted_blob ... ok [INFO] [stdout] test session::tests::close_writes_ended_at ... ok [INFO] [stdout] test snapshot::tests::get_on_missing_blob_errors_with_hash ... ok [INFO] [stdout] test snapshot::tests::has_returns_false_for_missing_and_true_for_stored ... ok [INFO] [stdout] test state::tests::default_turn_is_zero ... ok [INFO] [stdout] test snapshot::tests::repeated_corruption_on_same_slot_does_not_collide ... ok [INFO] [stdout] test state::tests::load_errors_include_file_path_on_invalid_json ... ok [INFO] [stdout] test snapshot::tests::put_is_idempotent ... ok [INFO] [stdout] test store::tests::compact_idempotent_on_empty_session ... ok [INFO] [stdout] test store::tests::append_and_list_roundtrip ... ok [INFO] [stdout] test state::tests::save_is_atomic_via_rename ... ok [INFO] [stdout] test state::tests::bump_turn_increments_and_sets_timestamp ... ok [INFO] [stdout] test store::tests::empty_file_returns_empty_vec ... ok [INFO] [stdout] test snapshot::tests::two_blobs_in_same_shard_coexist ... ok [INFO] [stdout] test store::tests::finalize_appends_instead_of_rewriting ... ok [INFO] [stdout] test store::tests::finalize_preserves_order_of_remaining_entries ... ok [INFO] [stdout] test store::tests::finalize_moves_entry_from_pending_to_ledger ... ok [INFO] [stdout] test store::tests::finalize_unknown_id_errors_include_id ... ok [INFO] [stdout] test store::tests::list_ledger_reads_ledger_file_not_pending ... ok [INFO] [stdout] test store::tests::compact_pending_removes_tombstones_and_finalized_entries ... ok [INFO] [stdout] test store::tests::edit_flow_preserves_existing_tombstones ... ok [INFO] [stdout] test snapshot::tests::get_returns_content ... ok [INFO] [stdout] test store::tests::restore_snapshot_recreates_file_on_delete_revert ... ok [INFO] [stdout] test store::tests::malformed_lines_are_skipped_and_counted ... ok [INFO] [stdout] test store::tests::multiple_status_changes_last_write_wins ... ok [INFO] [stdout] test store::tests::compact_ledger_folds_status_changes ... ok [INFO] [stdout] test store::tests::restore_snapshot_rewrites_file_on_modify_revert ... ok [INFO] [stdout] test store::tests::orphan_change_for_nonexistent_id_is_ignored ... ok [INFO] [stdout] test store::tests::restore_snapshot_errors_on_modify_with_no_before ... ok [INFO] [stdout] test store::tests::restore_snapshot_deletes_file_on_create_revert ... ok [INFO] [stdout] test store::tests::rewrite_pending_truncates_change_file ... ok [INFO] [stdout] test store::tests::update_ledger_status_appends_to_changes ... ok [INFO] [stdout] test snapshot::tests::put_stores_content_at_sharded_path ... ok [INFO] [stdout] test sweep::tests::detects_orphan_markdown ... ok [INFO] [stdout] test sweep::tests::detects_slop_pattern_globs ... ok [INFO] [stdout] test sweep::tests::multiple_orphan_md_files_each_flagged ... ok [INFO] [stdout] test world::tests::baseline_returns_first_pre_state_per_path ... ok [INFO] [stdout] test sweep::tests::dup_direction_flips_when_first_seen_is_slop ... ok [INFO] [stdout] test sweep::tests::deletes_are_not_flagged_as_slop_or_dup ... ok [INFO] [stdout] test sweep::tests::empty_pending_returns_empty_output ... ok [INFO] [stdout] test sweep::tests::detects_exact_duplicates ... ok [INFO] [stdout] test sweep::tests::orphan_markdown_handles_dot_slash_paths ... ok [INFO] [stdout] test world::tests::delete_op_removes_path_from_world ... ok [INFO] [stdout] test world::tests::reverted_write_still_overrides_earlier_when_included ... ok [INFO] [stdout] test world::tests::reverted_writes_excluded_unless_requested ... ok [INFO] [stdout] test world::tests::later_write_to_same_path_overrides_earlier ... ok [INFO] [stdout] test world::tests::map_is_deterministic_via_btreemap ... ok [INFO] [stdout] test world::tests::state_at_turn_in_empty_session_is_empty ... ok [INFO] [stdout] test world::tests::single_write_at_turn_1_appears_at_or_after_turn_1 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 128 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s [INFO] [stdout] [INFO] [stderr] Doc-tests sift_tui [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests sift_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0", kill_on_drop: false }` [INFO] [stdout] 94b5d07acbb20714cd658050f845f6da23833189a90a2f793d1b16f725ad41e0