[INFO] cloning repository https://github.com/chengjon/opendog
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chengjon/opendog" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchengjon%2Fopendog", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchengjon%2Fopendog'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 285e099658a56ae077bec4735e610e813b648d4a
[INFO] testing chengjon/opendog against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchengjon%2Fopendog" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/chengjon/opendog
[INFO] finished tweaking git repo https://github.com/chengjon/opendog
[INFO] tweaked toml for git repo https://github.com/chengjon/opendog written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/chengjon/opendog on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/chengjon/opendog 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c63baa59882769695c2dc385c975ae090cb40f4507cbd4074d402bbe6714f262
[INFO] running `Command { std: "docker" "start" "-a" "c63baa59882769695c2dc385c975ae090cb40f4507cbd4074d402bbe6714f262", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c63baa59882769695c2dc385c975ae090cb40f4507cbd4074d402bbe6714f262", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c63baa59882769695c2dc385c975ae090cb40f4507cbd4074d402bbe6714f262", kill_on_drop: false }`
[INFO] [stdout] c63baa59882769695c2dc385c975ae090cb40f4507cbd4074d402bbe6714f262
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c062cdc119365fbec4d50df207e81a2329bdff4b0fadd13877bca82c54c835c6
[INFO] running `Command { std: "docker" "start" "-a" "c062cdc119365fbec4d50df207e81a2329bdff4b0fadd13877bca82c54c835c6", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling procfs v0.18.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling rmcp v1.5.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling pastey v0.2.2
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling sd-notify v0.5.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rmcp-macros v1.5.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling procfs-core v0.18.0
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling tracing-journald v0.3.2
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling opendog v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "c062cdc119365fbec4d50df207e81a2329bdff4b0fadd13877bca82c54c835c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c062cdc119365fbec4d50df207e81a2329bdff4b0fadd13877bca82c54c835c6", kill_on_drop: false }`
[INFO] [stdout] c062cdc119365fbec4d50df207e81a2329bdff4b0fadd13877bca82c54c835c6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 29ba18907d6eec554abaf0fe6f08bae465c5bc03c0581546de2a73578f0d58e2
[INFO] running `Command { std: "docker" "start" "-a" "29ba18907d6eec554abaf0fe6f08bae465c5bc03c0581546de2a73578f0d58e2", kill_on_drop: false }`
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling rmcp v1.5.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling process-wrap v9.1.0
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling opendog v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 45.55s
[INFO] running `Command { std: "docker" "inspect" "29ba18907d6eec554abaf0fe6f08bae465c5bc03c0581546de2a73578f0d58e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "29ba18907d6eec554abaf0fe6f08bae465c5bc03c0581546de2a73578f0d58e2", kill_on_drop: false }`
[INFO] [stdout] 29ba18907d6eec554abaf0fe6f08bae465c5bc03c0581546de2a73578f0d58e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4cb0806fb9f478c52f1029f240c2654fe674a9c915c4d7b725aad8fde450579a
[INFO] running `Command { std: "docker" "start" "-a" "4cb0806fb9f478c52f1029f240c2654fe674a9c915c4d7b725aad8fde450579a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/opendog-ec172ba49d311627)
[INFO] [stdout] 
[INFO] [stdout] running 211 tests
[INFO] [stdout] test cli::tests::daemon_control_unavailable_error_includes_recovery_hints ... ok
[INFO] [stdout] test config::paths::tests::registry_path_lives_under_data_dir ... ok
[INFO] [stdout] test config::tests::apply_global_config_patch_preserves_explicit_empty_replacement ... ok
[INFO] [stdout] test config::paths::tests::opendog_home_overrides_home_derived_default ... ok
[INFO] [stdout] test config::paths::tests::home_falls_back_to_dot_opendog_when_override_is_missing ... ok
[INFO] [stdout] test cli::tests::trim_agent_guidance_payload_limits_priority_lists ... ok
[INFO] [stdout] test config::tests::apply_project_config_patch_preserves_explicit_empty_override ... ok
[INFO] [stdout] test config::tests::config_patch_empty_detection_counts_incremental_fields ... ok
[INFO] [stdout] test config::tests::config_patch_empty_detection_is_precise ... ok
[INFO] [stdout] test cli::tests::config_cli_rejects_mixed_overwrite_and_incremental_ignore_flags ... ok
[INFO] [stdout] test config::tests::config_patch_explicit_empty_replacement_is_not_empty ... ok
[INFO] [stdout] test config::tests::changed_config_fields_reports_only_real_differences ... ok
[INFO] [stdout] test config::tests::config_patch_whitespace_only_values_are_empty_after_normalization ... ok
[INFO] [stdout] test config::tests::config_patch_supports_incremental_add_and_remove ... ok
[INFO] [stdout] test config::tests::project_config_patch_explicit_empty_replacement_is_not_empty ... ok
[INFO] [stdout] test config::tests::ignore_pattern_matching_supports_segments_and_wildcards ... ok
[INFO] [stdout] test config::tests::project_config_patch_can_restore_global_inheritance ... ok
[INFO] [stdout] test contracts::tests::versioned_error_payload_builds_error_contract ... ok
[INFO] [stdout] test contracts::tests::versioned_payload_builds_top_level_contract ... ok
[INFO] [stdout] test config::tests::resolve_project_config_prefers_project_overrides ... ok
[INFO] [stdout] test config::tests::project_config_patch_keeps_inherited_field_unset_when_incremental_edit_is_noop ... ok
[INFO] [stdout] test config::tests::project_config_patch_supports_incremental_override_edits ... ok
[INFO] [stdout] test config::paths::tests::project_db_path_lives_under_data_projects_dir ... ok
[INFO] [stdout] test control::tests::control_request_deserialization_defaults_omitted_incremental_patch_vectors ... ok
[INFO] [stdout] test contracts::tests::versioned_project_payload_builds_project_contract ... ok
[INFO] [stdout] test cli::tests::config_cli_rejects_inherit_and_incremental_process_flags ... ok
[INFO] [stdout] test cli::tests::config_cli_help_lists_incremental_flags ... ok
[INFO] [stdout] test control::tests::map_connect_error_marks_missing_socket_as_daemon_unavailable ... ok
[INFO] [stdout] test control::tests::map_connect_error_marks_live_daemon_without_socket_as_control_unavailable ... ok
[INFO] [stdout] test core::export::tests::json_export_includes_portable_contract_fields ... ok
[INFO] [stdout] test core::export::tests::csv_export_uses_deterministic_header ... ok
[INFO] [stdout] test contracts::tests::versioned_project_error_payload_builds_project_error_contract ... ok
[INFO] [stdout] test core::report::tests::report_window_parse_rejects_unknown_values ... ok
[INFO] [stdout] test core::export::tests::export_rows_supports_stats_unused_and_core_views ... ok
[INFO] [stdout] test core::monitor::tests::record_file_event_stores_project_relative_paths ... ok
[INFO] [stdout] test core::monitor::tests::process_scan_results_counts_every_sighting_and_avoids_duration_double_count ... ok
[INFO] [stdout] test control::tests::handle_request_lists_no_monitors_initially ... ok
[INFO] [stdout] test control::tests::handle_request_start_returns_error_for_unknown_project ... ok
[INFO] [stdout] test core::report::tests::usage_trend_report_builds_bucketed_deltas ... ok
[INFO] [stdout] test core::report::tests::time_window_report_respects_24h_7d_and_30d_boundaries ... ok
[INFO] [stdout] test control::tests::handle_request_applies_incremental_global_config_updates ... ok
[INFO] [stdout] test core::retention::tests::cleanup_all_can_prune_old_history_without_touching_current_snapshot_or_stats ... ok
[INFO] [stdout] test core::retention::tests::cleanup_validation_requires_explicit_action_parameters ... ok
[INFO] [stdout] test control::tests::handle_request_stop_reports_not_running_when_missing ... ok
[INFO] [stdout] test control::tests::start_monitor_is_idempotent ... ok
[INFO] [stdout] test core::report::tests::snapshot_comparison_detects_added_removed_and_modified_files ... ok
[INFO] [stdout] test core::retention::tests::cleanup_dry_run_counts_old_activity_without_deleting_rows ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_keeps_unknown_kind_empty ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_marks_hot_file_activity_staleness ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_marks_hot_file_overlap_basis ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_marks_hot_file_repo_risk_from_high_risk_level ... ok
[INFO] [stdout] test core::stats::tests::test_get_file_detail ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_marks_unused_snapshot_staleness_and_hardcoded_overlap ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::parameter_normalization::normalize_data_risk_filters_reject_invalid_values ... ok
[INFO] [stdout] test core::stats::tests::test_get_core_files ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_distinguishes_mock_and_hardcoded_candidates ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_runtime_shared_many_weak_literals_still_becomes_hardcoded ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_runtime_shared_thin_combo_with_weak_path_token_is_not_hardcoded ... ok
[INFO] [stdout] test core::stats::tests::test_get_file_detail_missing ... ok
[INFO] [stdout] test control::tests::reload_project_config_picks_up_latest_global_defaults ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_test_only_and_example_weak_tokens_remain_mock_candidates ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_runtime_shared_weak_token_with_mock_content_stays_mock_candidate ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_runtime_shared_weak_token_only_stays_hardcoded_only ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::mock_data_report_derives_hardcoded_focus_from_runtime_shared_high_severity_hits ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::mock_data_report_derives_mixed_focus_when_mixed_files_exist_after_hardcoded_filtering ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_runtime_shared_weak_literal_pair_is_not_hardcoded ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::mock_data_report_derives_none_focus_when_no_candidates_exist ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::mock_data_report_derives_mock_focus_when_only_mock_candidates_exist ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::mock_data_report_filtering_respects_type_and_priority ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_unknown_path_weak_token_with_mock_content_becomes_mock_candidate ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::report_detection::detect_mock_data_report_unknown_path_weak_token_only_is_not_mock_candidate ... ok
[INFO] [stdout] test core::retention::tests::cleanup_validation_rejects_vacuum_in_dry_run_mode ... ok
[INFO] [stdout] test control::tests::handle_request_returns_data_risk_payloads ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_marks_review_focus_projection_absent_when_no_priority_project ... ok
[INFO] [stdout] test mcp::review_candidates::tests::build_review_candidate_marks_hot_file_repo_risk_from_large_diff ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::workspace_aggregation::workspace_data_risk_overview_payload_prioritizes_hardcoded_projects ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::workspace_aggregation::workspace_rule_aggregation_sums_counts_across_projects ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_exposes_external_truth_boundary_for_verification_only ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_exposes_unified_entry_envelope ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_keeps_not_git_repository_advisory_for_external_truth_boundary ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::single_project_guidance::data_risk_guidance_runtime_shared_thin_combo_with_weak_path_token_stays_none ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_marks_external_truth_boundary_absent_when_no_priority_project ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::single_project_guidance::data_risk_guidance_runtime_shared_weak_literal_pair_stays_none ... ok
[INFO] [stdout] test mcp::tests::data_risk_cases::single_project_guidance::data_risk_guidance_surfaces_counts_and_candidates ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_projects_selected_execution_sequence ... ok
[INFO] [stdout] test core::stats::tests::test_get_summary ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::error_contracts::daemon_control_unavailable_error_includes_remediation ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::error_contracts::project_scoped_error_uses_tool_contract ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::error_contracts::validation_error_uses_tool_contract ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::params_and_scoping::agent_guidance_params_deserialize_project_scope_and_top ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::params_and_scoping::merged_guidance_params_deserialize_project_scope_top_and_detail ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::params_and_scoping::scoped_projects_or_error_filters_requested_project ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::params_and_scoping::decision_entrypoints_prefer_merged_guidance_tool_for_refresh_paths ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::lifecycle_guidance::start_monitor_guidance_adapts_when_already_running ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::lifecycle_guidance::tool_guidance_wraps_payload_with_next_steps ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::lifecycle_guidance::register_project_guidance_uses_multi_step_flow ... ok
[INFO] [stdout] test core::stats::tests::test_get_stats_with_data ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::stats_guidance::stats_guidance_marks_observation_ready_when_summary_has_activity_but_entries_are_empty ... ok
[INFO] [stdout] test core::stats::tests::test_get_stats_empty ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_projects_selected_snapshot_sequence ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_projects_selected_start_monitor_sequence ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::stats_guidance::stats_guidance_adapts_when_no_activity_exists ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_payload_projects_selected_verification_sequence ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::workspace_data_risk_summaries::collect_workspace_data_risk_summaries_sorts_by_hardcoded_priority ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::mixed_workspace_with_workspace_corroboration_becomes_medium_high ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::mixed_workspace_without_workspace_corroboration_stays_medium ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::generic_mono_repo_with_only_workspace_marker_becomes_low_confidence ... ok
[INFO] [stdout] test control::tests::update_project_config_reloads_running_monitor_state ... ok
[INFO] [stdout] test control::tests::handle_request_returns_shared_decision_payloads ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::project_guidance_behaviors::stats_guidance::stats_guidance_mentions_hottest_file_when_available ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::docs_only_profile_moves_into_medium_high_confidence ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::mono_repo_high_confidence_workspace_paths_remain_high ... ok
[INFO] [stdout] test core::stats::tests::test_get_unused_files ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::unknown_profile_stays_low_with_current_fallback_commands ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::workspace_aggregates::toolchain_signals::workspace_toolchain_aggregation_treats_docs_only_as_trusted ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_review_focus_projection_keeps_review_focus_null_for_non_review_action ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::workspace_aggregates::toolchain_signals::workspace_toolchain_aggregation_treats_medium_high_as_trusted ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::basics_contracts::decision_brief_envelope::decision_brief_review_focus_projection_mirrors_review_focus_for_unused_review ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::unused_guidance_reuses_shared_cleanup_reason ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::unused_guidance_marks_first_candidate_as_primary ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::project_toolchain_detection::project_toolchain_layer_detects_additional_project_shapes ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::workspace_aggregates::toolchain_signals::agent_guidance_aggregates_workspace_toolchain_signals ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::lifecycle_edges::agent_guidance_adapts_when_no_projects_exist ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::lifecycle_edges::agent_guidance_prefers_snapshot_flow_when_top_project_lacks_baseline ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::execution_sequences::agent_guidance_summarizes_repo_stabilization_sequences ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::workspace_aggregates::verification_evidence::agent_guidance_aggregates_workspace_verification_evidence ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::unused_guidance_marks_later_candidates_as_secondary ... ok
[INFO] [stdout] test mcp::tests::overview_constraints::build_constraints_boundaries_layer_includes_default_guardrails_and_blockers ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::unused_guidance_marks_overlap_in_candidate_basis ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::workspace_advice::agent_guidance_exposes_external_truth_boundary_for_repo_state_and_verification ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::stats_guidance_marks_companion_unused_candidate_as_secondary_with_basis ... ok
[INFO] [stdout] test mcp::tests::overview_constraints::project_overview_fuses_verification_and_repo_readiness ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::verification_sequences::agent_guidance_summarizes_verification_sequences ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::analysis_payloads::export_project_evidence_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::analysis_payloads::cleanup_project_data_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::analysis_payloads::unused_files_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::workspace_advice::agent_guidance_exposes_review_focus_projection_for_hot_file_review ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::analysis_payloads::stats_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::config_payloads::config_update_payloads_include_reload_state ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::workspace_advice::agent_guidance_includes_shell_and_tool_advice ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::config_payloads::global_config_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::storage_maintenance::agent_guidance_reports_storage_maintenance_candidates ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::config_payloads::project_config_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::config_payloads::project_config_reload_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::delete_project_payload_reports_not_found_consistently ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::stop_monitor_payload_reports_missing_monitor_consistently ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::snapshot_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::verification_payloads::run_verification_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::verification_payloads::record_verification_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::command_detection::detect_project_commands_prefers_node_when_package_json_exists ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::project_actions::readiness_actions::recommend_project_action_prefers_review_unused_when_data_exists ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::list_projects_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::verification_payloads::verification_status_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::project_actions::monitoring_state::recommend_project_action_prefers_generate_activity_when_monitored_but_idle ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::command_detection::detect_project_commands_prefers_rust_workspace_commands ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::project_actions::monitoring_state::recommend_project_action_prefers_start_when_not_monitored ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::register_project_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::payload_contracts::project_payloads::start_monitor_payload_has_versioned_contract ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::native_command_selection::project_actions::readiness_actions::recommend_project_action_uses_project_native_commands ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_exposes_attention_scores_and_reasons ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::stats_guidance_surfaces_refactor_gate_level_in_execution_strategy ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_batches_attention_queue_safely_when_empty ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_batches_three_attention_projects_without_overflowing_later ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_batches_single_attention_project_into_immediate_only ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::prioritization_scoring::determine_action_eligibility_blocks_hotspot_review_when_refactor_gate_is_blocked ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_batches_attention_queue_into_immediate_next_and_later ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::prioritization_scoring::score_review_actions_penalizes_hotspot_review_more_than_unused_review_for_large_diff ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::observation_sequence::recommend_project_action_emits_activity_generation_sequence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::observation_sequence::recommend_project_action_emits_start_monitor_sequence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::observation_sequence::recommend_project_action_keeps_null_sequence_for_non_sequenced_review_actions ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::observation_sequence::recommend_project_action_emits_snapshot_refresh_sequence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::readiness_progression::recommend_project_action_prefers_snapshot_refresh_when_snapshot_is_stale ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::readiness_progression::recommend_project_action_raises_confidence_when_verification_passes ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::layer_scores::workspace_portfolio_layer_batches_two_attention_projects_without_overflowing_next_or_later ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::readiness_progression::recommend_project_action_lowers_hotspot_confidence_when_repo_risk_is_high ... ok
[INFO] [stdout] test mcp::tests::portfolio_commands::workspace_portfolio::attention_priorities::workspace_portfolio_prioritizes_attention_urgency_over_data_risk_volume ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::repo_stabilization_sequence::recommend_project_action_emits_repo_stabilization_sequence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::repo_truth_boundaries::recommend_project_action_exposes_repo_truth_gaps_for_mid_operation_repo ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_emits_unused_review_focus ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_keeps_review_focus_null_when_stale_activity_preempts_review ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_keeps_review_focus_null_for_non_review_actions ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_emits_hot_file_review_focus_for_high_repo_risk ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::repo_stabilization_sequence::recommend_project_action_keeps_null_sequence_for_non_stabilization_actions ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_emits_hot_file_review_focus_for_large_diff ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::review_focus::recommend_project_action_keeps_review_focus_null_when_stale_snapshot_preempts_review ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_gates::recommend_project_action_prefers_verification_when_missing ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_gates::recommend_project_action_marks_advisory_only_gaps_as_caution ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::observation_sequence::recommend_project_action_keeps_repo_stabilization_ahead_of_observation_sequence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::reason_stability::recommend_project_action_reason_mentions_why_hotspot_review_lost ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::workspace_strategy::workspace_strategy_profile_prefers_shell_when_repo_is_unstable ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::git_status_inputs::detect_lockfile_anomalies_flags_missing_manifest_pair ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::repo_risk_findings::repo_risk_findings_expose_priority_and_confidence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::git_status_inputs::parse_status_porcelain_extracts_branch_and_paths ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_sequence::recommend_project_action_keeps_null_sequence_for_non_sequenced_review_actions ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::toolchain_and_unused::stats_and_unused::stats_guidance_marks_hot_file_candidate_as_primary_with_basis ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::repo_truth_boundaries::recommend_project_action_keeps_non_git_boundary_advisory ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::repo_truth_projection::repo_truth_gap_projection_maps_repo_truth_blind_spots ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::verification_readiness::verification_status_layer_flags_stale_evidence ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_sequence::recommend_project_action_allows_empty_verification_command_lists ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::workspace_portfolio::workspace_portfolio_prioritizes_high_risk_dirty_projects ... ok
[INFO] [stdout] test mcp::tests::guidance_basics::workspace_guidance::observation_sequences::agent_guidance_summarizes_observation_sequences ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::repo_truth_projection::repo_truth_gap_projection_keeps_non_git_projects_out_of_mandatory_git_checks ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_sequence::recommend_project_action_emits_failing_verification_sequence_before_repo_stabilization ... ok
[INFO] [stdout] test core::stats::tests::test_get_summary_empty ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_sequence::recommend_project_action_emits_missing_verification_sequence_from_toolchain_commands ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::repo_risk_layers::repo_risk_findings::repo_status_risk_layer_marks_non_git_roots_explicitly ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::action_recommendations::project_recommendations::verification_gates::recommend_project_action_prioritizes_failing_verification ... ok
[INFO] [stdout] test mcp::tests::repo_and_readiness::verification_readiness::verification_status_layer_reports_missing_kinds_and_safety_gates ... ok
[INFO] [stdout] test mcp::tests::tool_surface::mcp_tool_surface_excludes_operator_only_mutation_tools ... ok
[INFO] [stdout] test core::verification::tests::executes_verification_command_and_records_result ... ok
[INFO] [stdout] test core::verification::tests::records_and_reads_latest_verification_runs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 211 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/opendog-4a34f08f39eb6fd2)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-d7d395adb737f369)
[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] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test storage_project_snapshot::test_delete_nonexistent_project ... ok
[INFO] [stdout] test storage_project_snapshot::test_invalid_project_id_rejected ... ok
[INFO] [stdout] test storage_project_snapshot::test_create_project ... ok
[INFO] [stdout] test storage_project_snapshot::test_create_duplicate_project_fails ... ok
[INFO] [stdout] test storage_project_snapshot::test_project_db_creates_tables ... ok
[INFO] [stdout] test storage_project_snapshot::test_effective_project_config_uses_global_defaults_and_project_overrides ... ok
[INFO] [stdout] test storage_project_snapshot::test_delete_project ... ok
[INFO] [stdout] test storage_project_snapshot::test_registry_creates_schema ... ok
[INFO] [stdout] test storage_project_snapshot::test_open_project_db ... ok
[INFO] [stdout] test storage_project_snapshot::test_project_incremental_process_updates_materialize_inherited_defaults ... ok
[INFO] [stdout] test cli_export::test_cli_export_writes_json_and_csv_artifacts ... ok
[INFO] [stdout] test storage_project_snapshot::test_list_projects ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_basic_scan ... ok
[INFO] [stdout] test storage_project_snapshot::test_wal_mode_enabled ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_filters_ignored_dirs ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_incremental_update ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_handles_permission_errors ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_records_metadata ... ok
[INFO] [stdout] test storage_project_snapshot::test_snapshot_file_type_filter ... ok
[INFO] [stdout] test storage_project_snapshot::test_project_isolation ... ok
[INFO] [stdout] test cli_guidance::decision_brief_text::test_cli_decision_brief_text_includes_verification_and_toolchain_summary ... ok
[INFO] [stdout] test cli_guidance::agent_guidance_text::test_cli_agent_guidance_text_includes_workspace_verification_summary ... ok
[INFO] [stdout] test cli_guidance::json_outputs::test_cli_json_outputs_for_guidance_and_data_risk ... ok
[INFO] [stdout] test mcp_session_reuse::mcp_sessions_reuse_daemon_backed_monitor_state_without_manual_daemon_start ... ok
[INFO] [stdout] test mcp_session_reuse::mcp_sessions_reuse_shared_state_when_opendog_home_is_explicit ... ok
[INFO] [stdout] test daemon_control::test_daemon_control_roundtrip ... ok
[INFO] [stdout] test daemon_process_cli::test_daemon_process_cli_smoke ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.67s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests opendog
[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" "4cb0806fb9f478c52f1029f240c2654fe674a9c915c4d7b725aad8fde450579a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4cb0806fb9f478c52f1029f240c2654fe674a9c915c4d7b725aad8fde450579a", kill_on_drop: false }`
[INFO] [stdout] 4cb0806fb9f478c52f1029f240c2654fe674a9c915c4d7b725aad8fde450579a
