[INFO] cloning repository https://github.com/chhuax/PrismTrace
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chhuax/PrismTrace" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchhuax%2FPrismTrace", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchhuax%2FPrismTrace'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 741c3cb46adb6651c253a5589e34f65daac2f333
[INFO] testing chhuax/PrismTrace against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchhuax%2FPrismTrace" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/chhuax/PrismTrace
[INFO] finished tweaking git repo https://github.com/chhuax/PrismTrace
[INFO] tweaked toml for git repo https://github.com/chhuax/PrismTrace written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/chhuax/PrismTrace on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/chhuax/PrismTrace 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3217fcc91e4bba60b79ff7533d5d1f5bbcdfbc36cc661133863234f6ff479352
[INFO] running `Command { std: "docker" "start" "-a" "3217fcc91e4bba60b79ff7533d5d1f5bbcdfbc36cc661133863234f6ff479352", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3217fcc91e4bba60b79ff7533d5d1f5bbcdfbc36cc661133863234f6ff479352", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3217fcc91e4bba60b79ff7533d5d1f5bbcdfbc36cc661133863234f6ff479352", kill_on_drop: false }`
[INFO] [stdout] 3217fcc91e4bba60b79ff7533d5d1f5bbcdfbc36cc661133863234f6ff479352
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0d3abd31b591234df09f73132d7fafb84a3162a6aa9c3594583c1f72ee15bda4
[INFO] running `Command { std: "docker" "start" "-a" "0d3abd31b591234df09f73132d7fafb84a3162a6aa9c3594583c1f72ee15bda4", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling prismtrace-analysis v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-analysis)
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling prismtrace-api v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-api)
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling prismtrace-index v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-index)
[INFO] [stderr]    Compiling prismtrace-core v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-core)
[INFO] [stderr]    Compiling prismtrace-storage v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-storage)
[INFO] [stderr]    Compiling prismtrace-sources v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-sources)
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling prismtrace-host v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-host)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.19s
[INFO] running `Command { std: "docker" "inspect" "0d3abd31b591234df09f73132d7fafb84a3162a6aa9c3594583c1f72ee15bda4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d3abd31b591234df09f73132d7fafb84a3162a6aa9c3594583c1f72ee15bda4", kill_on_drop: false }`
[INFO] [stdout] 0d3abd31b591234df09f73132d7fafb84a3162a6aa9c3594583c1f72ee15bda4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3c99ac2d8155318982a4082f874801a78b06d96974b81c3a6e43c346b0a74782
[INFO] running `Command { std: "docker" "start" "-a" "3c99ac2d8155318982a4082f874801a78b06d96974b81c3a6e43c346b0a74782", kill_on_drop: false }`
[INFO] [stderr]    Compiling prismtrace-core v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-core)
[INFO] [stderr]    Compiling prismtrace-index v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-index)
[INFO] [stderr]    Compiling prismtrace-api v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-api)
[INFO] [stderr]    Compiling prismtrace-analysis v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-analysis)
[INFO] [stderr]    Compiling prismtrace-storage v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-storage)
[INFO] [stderr]    Compiling prismtrace-sources v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-sources)
[INFO] [stderr]    Compiling prismtrace-host v0.1.0 (/opt/rustwide/workdir/crates/prismtrace-host)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.62s
[INFO] running `Command { std: "docker" "inspect" "3c99ac2d8155318982a4082f874801a78b06d96974b81c3a6e43c346b0a74782", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3c99ac2d8155318982a4082f874801a78b06d96974b81c3a6e43c346b0a74782", kill_on_drop: false }`
[INFO] [stdout] 3c99ac2d8155318982a4082f874801a78b06d96974b81c3a6e43c346b0a74782
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 23dd1ec60375915487656ded2ce3e1fc8acdb1994ccf852142c753d4c04005f9
[INFO] running `Command { std: "docker" "start" "-a" "23dd1ec60375915487656ded2ce3e1fc8acdb1994ccf852142c753d4c04005f9", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_analysis-88e32f87b417d020)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_api-78d9fca9d1f623df)
[INFO] [stdout] test tests::analysis_diffs_tool_visibility_snapshots ... ok
[INFO] [stdout] test tests::analysis_projects_prompt_diff_between_adjacent_events ... ok
[INFO] [stdout] test tests::analysis_diffs_skill_visibility_and_diagnoses_missing_facts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_core-eee9cba6f7f16a70)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test tests::api_renders_empty_session_diagnostics_payload ... ok
[INFO] [stdout] test tests::api_renders_capability_projection_payload_with_filter_context ... ok
[INFO] [stdout] test tests::api_renders_session_diagnostics_payload_from_prompt_and_capability_facts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test tests::ipc_message_heartbeat_round_trip ... ok
[INFO] [stdout] test tests::ipc_message_detach_ack_round_trip ... ok
[INFO] [stdout] test tests::ipc_message_http_request_observed_parses_without_body ... ok
[INFO] [stdout] test tests::ipc_message_http_request_observed_round_trip_with_exchange_id ... ok
[INFO] [stdout] test tests::ipc_message_malformed_input_returns_invalid_json_error ... ok
[INFO] [stdout] test tests::ipc_message_trailing_newline_is_handled_correctly ... ok
[INFO] [stdout] test tests::ipc_message_unknown_variant_returns_unknown_variant_error ... ok
[INFO] [stdout] test tests::process_sample_classifies_bare_opencode_process_name_as_node ... ok
[INFO] [stdout] test tests::process_sample_classifies_codex_app_server_as_node ... ok
[INFO] [stdout] test tests::process_sample_classifies_electron_processes ... ok
[INFO] [stdout] test tests::process_sample_classifies_codex_main_app_as_electron ... ok
[INFO] [stdout] test tests::process_sample_classifies_packaged_opencode_binary_as_node ... ok
[INFO] [stdout] test tests::process_sample_classifies_node_processes ... ok
[INFO] [stdout] test tests::process_sample_converts_to_structured_target ... ok
[INFO] [stdout] test tests::process_sample_normalizes_generic_runtime_names_to_script_name_from_command_line ... ok
[INFO] [stdout] test tests::process_sample_skips_common_node_option_value_pairs_when_finding_script_name ... ok
[INFO] [stdout] test tests::runtime_kind_labels_are_stable ... ok
[INFO] [stdout] test tests::process_target_display_name_falls_back_to_executable_name ... ok
[INFO] [stdout] test tests::ipc_message_http_response_observed_round_trip ... ok
[INFO] [stdout] test tests::ipc_message_bootstrap_report_round_trip ... ok
[INFO] [stdout] test tests::process_sample_normalizes_generic_runtime_names_to_executable_name ... ok
[INFO] [stdout] test tests::process_sample_keeps_unknown_when_no_runtime_matches ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_host-bfc137ae19ce4f66)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 213 tests
[INFO] [stdout] test claude_observer::tests::claude_observer_session_surfaces_structured_event_when_transcript_root_is_missing ... ok
[INFO] [stdout] test claude_observer::tests::default_options_use_default_transcript_root ... ok
[INFO] [stdout] test claude_observer::tests::normalize_transcript_record_prefers_parent_uuid_for_turn_id_and_uuid_for_item_id ... ok
[INFO] [stdout] test claude_observer::tests::collect_capability_events_prefers_most_recent_history_when_transcript_exceeds_max_events ... ok
[INFO] [stdout] test claude_observer::tests::collect_capability_events_surfaces_missing_file_and_keeps_healthy_history ... ok
[INFO] [stdout] test claude_observer::tests::discover_transcript_files_skips_vanished_entries ... ok
[INFO] [stdout] test claude_observer::tests::transcript_unknown_record_falls_back_to_unknown_event ... ok
[INFO] [stdout] test claude_observer::tests::transcript_user_record_maps_to_turn_event ... ok
[INFO] [stdout] test codex_observer::tests::capability_event_from_response_counts_codex_mcp_servers ... ok
[INFO] [stdout] test codex_observer::tests::capability_event_from_response_counts_entries ... ok
[INFO] [stdout] test claude_observer::tests::claude_observer_session_surfaces_unobservable_event_when_no_transcripts_are_available ... ok
[INFO] [stdout] test claude_observer::tests::next_event_reads_appended_transcript_line ... ok
[INFO] [stdout] test claude_observer::tests::collect_capability_events_stops_after_max_events ... ok
[INFO] [stdout] test codex_observer::tests::command_looks_like_desktop_codex_owner_accepts_desktop_codex_processes ... ok
[INFO] [stdout] test claude_observer::tests::next_event_surfaces_unobservable_transcript_failure_as_structured_event_or_result ... ok
[INFO] [stdout] test claude_observer::tests::run_claude_observer_emits_structured_unobservable_output_when_root_is_missing ... ok
[INFO] [stdout] test codex_observer::tests::command_looks_like_desktop_codex_owner_rejects_vscode_extension_host ... ok
[INFO] [stdout] test codex_observer::tests::factory_prioritizes_explicit_socket_path ... ok
[INFO] [stdout] test codex_observer::tests::normalize_server_value_maps_known_method_prefixes ... ok
[INFO] [stdout] test claude_observer::tests::run_claude_observer_emits_structured_unobservable_output_when_no_transcripts_exist ... ok
[INFO] [stdout] test claude_observer::tests::run_claude_observer_writes_artifact_records ... ok
[INFO] [stdout] test claude_observer::tests::claude_observer_artifact_writer_persists_handshake_and_event ... ok
[INFO] [stdout] test codex_observer::tests::codex_observer_artifact_writer_persists_handshake_and_event ... ok
[INFO] [stdout] test codex_observer::tests::normalize_server_value_preserves_raw_json_for_unknown_messages ... ok
[INFO] [stdout] test codex_observer::tests::observed_event_kind_for_method_handles_approval_and_tool_markers ... ok
[INFO] [stdout] test codex_observer::tests::select_latest_desktop_codex_socket_skips_non_matching_latest_candidate ... ok
[INFO] [stdout] test console::tests::collect_activity_items_filters_items_by_matching_pid ... ok
[INFO] [stdout] test codex_observer::tests::validate_proxy_socket_endpoint_reports_immediate_eof ... ok
[INFO] [stdout] test codex_observer::tests::validate_proxy_socket_endpoint_accepts_initialize_result ... ok
[INFO] [stdout] test codex_observer::tests::initialize_surfaces_remote_error_message ... ok
[INFO] [stdout] test codex_observer::tests::collect_capability_events_surfaces_remote_error_reply ... ok
[INFO] [stdout] test console::tests::collect_activity_items_orders_request_and_error_by_time ... ok
[INFO] [stdout] test console::tests::collect_activity_items_returns_empty_for_no_known_activity ... ok
[INFO] [stdout] test console::tests::collect_target_summaries_marks_local_targets_as_discoverable ... ok
[INFO] [stdout] test console::tests::collect_target_summaries_uses_runtime_summary_for_single_target ... ok
[INFO] [stdout] test console::tests::collect_target_summaries_filters_non_matching_targets ... ok
[INFO] [stdout] test codex_observer::tests::discover_latest_codex_socket_returns_most_recent_socket ... ok
[INFO] [stdout] test console::tests::console_route_handler_renders_health_without_tcp ... ok
[INFO] [stdout] test console::tests::console_observer_module_no_longer_owns_legacy_detail_adapters ... ok
[INFO] [stdout] test console::tests::console_script_fetches_and_renders_session_capabilities ... ok
[INFO] [stdout] test console::tests::console_script_fetches_and_renders_session_diagnostics ... ok
[INFO] [stdout] test console::tests::console_script_prefers_event_detail_api_for_read_model_event_ids ... ok
[INFO] [stdout] test console::tests::console_script_uses_paginated_session_and_timeline_apis ... ok
[INFO] [stdout] test console::tests::console_server_returns_filtered_targets_api_empty_state_and_context ... ok
[INFO] [stdout] test console::tests::console_server_returns_health_api_payload ... ok
[INFO] [stdout] test codex_observer::tests::normalize_value_reclassifies_late_capability_response ... ok
[INFO] [stdout] test claude_observer::tests::discover_transcript_files_orders_recent_jsonl_first ... ok
[INFO] [stdout] test claude_observer::tests::collect_capability_events_marks_existing_backlog_as_consumed_for_follow ... ok
[INFO] [stdout] test claude_observer::tests::next_event_returns_none_when_no_new_lines_arrive ... ok
[INFO] [stdout] test claude_observer::tests::discover_transcript_files_limits_results_by_recency ... ok
[INFO] [stdout] test claude_observer::tests::collect_capability_events_handles_file_without_trailing_newline_without_replaying_history ... ok
[INFO] [stdout] test claude_observer::tests::next_event_consumes_multiple_appended_lines_without_repeating ... ok
[INFO] [stdout] test claude_observer::tests::next_event_removes_failed_transcript_but_continues_following_other_files ... ok
[INFO] [stdout] test console::tests::console_server_returns_filtered_sessions_api_without_unmatched_sessions ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_session_detail_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_returns_favicon_without_not_found ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_session_events_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_session_capabilities_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_returns_not_found_for_unknown_path ... ok
[INFO] [stdout] test console::tests::console_server_returns_targets_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_session_diagnostics_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_sessions_api_applies_limit_and_cursor ... ok
[INFO] [stdout] test console::tests::console_server_sessions_api_keeps_observer_artifacts_out_of_session_list ... ok
[INFO] [stdout] test console::tests::console_target_filter_config_does_not_match_when_term_only_appears_in_console_flag_args ... ok
[INFO] [stdout] test console::tests::console_target_filter_config_is_disabled_when_terms_are_empty ... ok
[INFO] [stdout] test console::tests::console_target_filter_config_matches_display_name_path_and_command_line ... ok
[INFO] [stdout] test console::tests::console_target_filter_config_matches_when_any_term_hits ... ok
[INFO] [stdout] test console::tests::console_target_filter_config_rejects_non_matching_targets ... ok
[INFO] [stdout] test console::tests::filter_request_summaries_keeps_only_matching_target_display_names ... ok
[INFO] [stdout] test console::tests::load_request_detail_prefers_exact_tool_visibility_request_match ... ok
[INFO] [stdout] test console::tests::load_request_detail_returns_base_detail_for_existing_request ... ok
[INFO] [stdout] test console::tests::load_request_summaries_reads_captured_request_artifacts ... ok
[INFO] [stdout] test console::tests::load_session_detail_splits_same_pid_after_time_window ... ok
[INFO] [stdout] test console::tests::load_session_summaries_do_not_merge_when_only_response_finishes_within_window ... ok
[INFO] [stdout] test console::tests::load_session_summaries_groups_same_pid_even_with_interleaved_other_pid ... ok
[INFO] [stdout] test console::tests::malformed_request_returns_bad_request ... ok
[INFO] [stdout] test console::tests::read_request_path_parses_http_get_requests ... ok
[INFO] [stdout] test console::tests::render_activity_payload_uses_filtered_no_match_empty_state_when_context_is_active ... ok
[INFO] [stdout] test console::tests::render_console_homepage_exposes_ia_data_regions_when_context_is_active ... ok
[INFO] [stdout] test console::tests::render_console_homepage_exposes_theme_switcher ... ok
[INFO] [stdout] test console::tests::render_console_homepage_hides_filter_context_when_unfiltered ... ok
[INFO] [stdout] test console::tests::render_console_homepage_includes_title_and_heading ... ok
[INFO] [stdout] test console::tests::render_console_homepage_keeps_ia_shell_when_filters_are_active ... ok
[INFO] [stdout] test console::tests::render_console_homepage_renders_empty_regions_and_refresh_script ... ok
[INFO] [stdout] test console::tests::render_console_homepage_renders_health_shell_region ... ok
[INFO] [stdout] test console::tests::render_console_homepage_renders_request_detail_and_health_panel_regions ... ok
[INFO] [stdout] test console::tests::render_console_homepage_seeds_initial_request_selection_for_js_hydration ... ok
[INFO] [stdout] test console::tests::render_console_homepage_seeds_initial_session_selection_for_js_hydration ... ok
[INFO] [stdout] test console::tests::console_server_returns_json_error_for_unknown_api_path ... ok
[INFO] [stdout] test console::tests::render_console_homepage_uses_observer_first_shell_copy ... ok
[INFO] [stdout] test console::tests::console_server_session_events_api_applies_limit_and_cursor ... ok
[INFO] [stdout] test console::tests::console_server_returns_json_error_when_request_read_times_out ... ok
[INFO] [stdout] test console::tests::console_server_filtered_request_detail_does_not_leak_unmatched_request ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_event_detail_api_payload ... ok
[INFO] [stdout] test console::tests::render_health_payload_filters_errors_by_matching_pid ... ok
[INFO] [stdout] test console::tests::render_health_payload_includes_source_summary_and_errors ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_request_detail_api_payload ... ok
[INFO] [stdout] test console::tests::console_server_handles_static_asset_while_previous_connection_is_idle ... ok
[INFO] [stdout] test console::tests::console_server_returns_observer_requests_api_payload ... ok
[INFO] [stdout] test console::tests::render_request_detail_payload_marks_missing_detail_with_status ... ok
[INFO] [stdout] test console::tests::console_server_returns_activity_api_payload ... ok
[INFO] [stdout] test console::tests::render_targets_payload_includes_filter_context_when_filters_are_active ... ok
[INFO] [stdout] test console::tests::render_targets_payload_uses_filtered_no_match_empty_state_when_context_is_active ... ok
[INFO] [stdout] test console::tests::render_targets_payload_omits_filter_context_when_unfiltered ... ok
[INFO] [stdout] test console::tests::console_server_filtered_session_detail_does_not_leak_unmatched_session ... ok
[INFO] [stdout] test console::tests::render_sessions_payload_exposes_compatible_list_envelope ... ok
[INFO] [stdout] test console::tests::render_requests_payload_exposes_compatible_list_envelope ... ok
[INFO] [stdout] test console::tests::console_server_returns_request_embedded_tool_capabilities_api_payload ... ok
[INFO] [stdout] test console::tests::render_requests_payload_uses_filtered_no_match_empty_state_when_context_is_active ... ok
[INFO] [stdout] test discovery::tests::parse_ps_line_preserves_command_line_for_node_helpers ... ok
[INFO] [stdout] test discovery::tests::discover_targets_returns_structured_process_targets ... ok
[INFO] [stdout] test discovery::tests::discover_targets_preserves_unknown_runtime_kind ... ok
[INFO] [stdout] test console::tests::write_console_response_renders_activity_items_from_controlled_snapshot ... ok
[INFO] [stdout] test console::tests::render_targets_payload_includes_empty_state_when_no_targets ... ok
[INFO] [stdout] test ipc::tests::check_heartbeat_timeout_returns_none_within_window ... ok
[INFO] [stdout] test ipc::tests::next_event_parses_heartbeat_message ... ok
[INFO] [stdout] test console::tests::console_server_returns_session_detail_api_payload ... ok
[INFO] [stdout] test console::tests::start_console_server_returns_addr_in_use_when_bind_fails ... ok
[INFO] [stdout] test console::tests::run_console_server_writes_startup_report_before_serving ... ok
[INFO] [stdout] test ipc::tests::check_heartbeat_timeout_returns_some_when_timeout_exceeded ... ok
[INFO] [stdout] test ipc::tests::next_event_returns_channel_disconnected_on_eof ... ok
[INFO] [stdout] test discovery::tests::parse_ps_line_returns_none_when_only_pid_is_present ... ok
[INFO] [stdout] test console::tests::write_console_response_renders_target_summary_fields_from_controlled_snapshot ... ok
[INFO] [stdout] test discovery::tests::parse_ps_line_prefers_command_line_executable_when_comm_is_truncated ... ok
[INFO] [stdout] test lifecycle::tests::app_config_uses_explicit_state_root ... ok
[INFO] [stdout] test ipc::tests::next_event_skips_non_ipc_lines_and_returns_next_valid_message ... ok
[INFO] [stdout] test ipc::tests::next_event_returns_disconnected_when_only_non_ipc_lines_then_eof ... ok
[INFO] [stdout] test lifecycle::tests::default_user_state_root_uses_macos_application_support ... ok
[INFO] [stdout] test discovery::tests::parse_ps_line_extracts_pid_and_executable_path ... ok
[INFO] [stdout] test lifecycle::tests::bootstrap_creates_storage_under_the_state_root ... ok
[INFO] [stdout] test lifecycle::tests::collect_host_snapshot_returns_discovered_targets ... ok
[INFO] [stdout] test lifecycle::tests::discovery_report_lists_targets_with_runtime_labels ... ok
[INFO] [stdout] test index::tests::host_callers_depend_on_index_facade_not_split_read_write_stores ... ok
[INFO] [stdout] test observability_read_model::tests::index_read_store_lives_outside_observability_read_model_module ... ok
[INFO] [stdout] test ipc::tests::next_event_returns_heartbeat_timeout_when_reader_reports_transient_timeouts ... ok
[INFO] [stdout] test console::tests::console_server_serves_homepage_over_http ... ok
[INFO] [stdout] test observability_read_model::tests::index_write_store_lives_outside_observability_read_model_module ... ok
[INFO] [stdout] test observability_read_model::tests::writes_index_manifest_for_parsed_source_files ... ok
[INFO] [stdout] test lifecycle::tests::run_claude_observer_session_passes_storage_to_artifact_writer ... ok
[INFO] [stdout] test opencode_observer::tests::capability_snapshot_keeps_opencode_domains_distinct ... ok
[INFO] [stdout] test lifecycle::tests::import_legacy_workspace_artifacts_copies_missing_files_without_overwrite ... ok
[INFO] [stdout] test opencode_observer::tests::default_opencode_observer_options_are_stable ... ok
[INFO] [stdout] test opencode_observer::tests::global_event_falls_back_to_unknown ... ok
[INFO] [stdout] test observability_read_model::tests::index_read_store_uses_persisted_index_without_rescanning_artifact_dirs ... ok
[INFO] [stdout] test observability_read_model::tests::indexes_codex_transcripts_and_excludes_archived_sessions ... ok
[INFO] [stdout] test observability_read_model::tests::indexes_observer_artifacts_as_sessions_and_events ... ok
[INFO] [stdout] test opencode_observer::tests::collect_capability_events_applies_session_and_message_limits_before_fetching_more_messages ... ok
[INFO] [stdout] test observability_read_model::tests::projects_capabilities_from_observer_snapshots_and_tool_events ... ok
[INFO] [stdout] test opencode_observer::tests::global_event_maps_permission_to_approval ... ok
[INFO] [stdout] test opencode_observer::tests::message_part_maps_tool_parts_to_tool_events ... ok
[INFO] [stdout] test observability_read_model::tests::projects_opencode_capabilities_without_codex_domain_aliases ... ok
[INFO] [stdout] test opencode_observer::tests::session_snapshot_maps_to_thread_event ... ok
[INFO] [stdout] test opencode_observer::tests::truncate_adds_suffix_when_text_exceeds_limit ... ok
[INFO] [stdout] test observability_read_model::tests::writes_session_event_and_capability_index_projection_files ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_ignores_non_llm_http_requests ... ok
[INFO] [stdout] test opencode_observer::tests::opencode_observer_artifact_writer_persists_handshake_and_event ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_redacts_sensitive_headers_in_artifact ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_persists_truncated_flag_from_probe ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_persists_openai_request ... ok
[INFO] [stdout] test lifecycle::tests::startup_summary_mentions_bind_address_and_storage_paths ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_does_not_match_provider_name_in_query_string ... ok
[INFO] [stdout] test request_capture::tests::capture_observed_request_summary_omits_query_string ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_reclaims_listener_on_timeout_without_shutdown_handle ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_reuses_request_provider_hint_once_for_matching_response ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_prefers_explicit_provider_hint_override ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_persists_error_status_with_empty_body ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_persists_duration_and_truncation_metadata ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_persists_openai_response ... ok
[INFO] [stdout] test opencode_observer::tests::run_opencode_observer_writes_artifact_records ... ok
[INFO] [stdout] test console::tests::console_server_returns_requests_api_payload ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_redacts_cookie_headers ... ok
[INFO] [stdout] test runtime::tests::build_unexpected_lsof_error_includes_status_and_stderr ... ok
[INFO] [stdout] test runtime::tests::classify_signal_command_error_maps_common_kill_failures ... ok
[INFO] [stdout] test runtime::tests::extract_eval_number_accepts_description_when_value_is_missing ... ok
[INFO] [stdout] test runtime::tests::inspector_bridge_new_returns_reader_with_complete_lines ... ok
[INFO] [stdout] test response_capture::tests::capture_observed_response_skips_unrecognized_provider_without_override ... ok
[INFO] [stdout] test runtime::tests::instrumentation_error_kind_labels_are_stable ... ok
[INFO] [stdout] test runtime::tests::lsof_probe_treats_empty_exit_one_as_no_listener_yet ... ok
[INFO] [stdout] test runtime::tests::parse_listener_ports_returns_all_listening_ports_from_lsof_output ... ok
[INFO] [stdout] test runtime::tests::instrumentation_error_fields_are_accessible ... ok
[INFO] [stdout] test runtime::tests::parse_websocket_debugger_url_extracts_ws_url_from_json_list ... ok
[INFO] [stdout] test console::tests::console_server_returns_request_detail_api_payload ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_writes_summary_for_observed_requests ... ok
[INFO] [stdout] test runtime::tests::pick_debugger_url_from_candidates_uses_port_with_valid_json_list ... ok
[INFO] [stdout] test runtime::tests::remove_active_control_if_matches_keeps_newer_replacement ... ok
[INFO] [stdout] test runtime::tests::resolve_process_pid_retries_when_inspector_context_is_temporarily_undefined ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_detach_succeeds_by_default_in_success_variant ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_detach_fails_returns_error ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_inject_succeeds_in_detach_fails_variant ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_success_returns_reader_over_messages ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_success_with_empty_messages_returns_empty_reader ... ok
[INFO] [stdout] test runtime::tests::process_pid_expression_uses_process_fallbacks_when_global_process_is_missing ... ok
[INFO] [stdout] test runtime::tests::scripted_runtime_inject_fails_returns_error ... ok
[INFO] [stdout] test runtime::tests::worker_control_stop_request_terminates_worker_thread ... ok
[INFO] [stdout] test tests::lifecycle_orchestration_lives_outside_lib_module ... ok
[INFO] [stdout] test runtime::tests::send_detach_signal_keeps_control_handle_when_detach_fails ... ok
[INFO] [stdout] test tests::analysis_projection_types_live_in_prismtrace_analysis_crate ... ok
[INFO] [stdout] test tests::source_contracts_live_in_prismtrace_sources_crate ... ok
[INFO] [stdout] test tests::sources_boundary_exposes_observer_options ... ok
[INFO] [stdout] test tests::api_payload_renderers_live_in_prismtrace_api_crate ... ok
[INFO] [stdout] test tool_visibility::tests::capture_request_embedded_tool_visibility_falls_back_to_functions_array ... ok
[INFO] [stdout] test tool_visibility::tests::capture_request_embedded_tool_visibility_persists_tools_array ... ok
[INFO] [stdout] test lifecycle::tests::run_opencode_observer_session_passes_storage_to_artifact_writer ... ok
[INFO] [stdout] test tool_visibility::tests::capture_request_embedded_tool_visibility_skips_requests_without_tools ... ok
[INFO] [stdout] test tests::collect_console_snapshot_exposes_local_console_url ... ok
[INFO] [stdout] test tests::console_startup_report_mentions_browser_entrypoint ... ok
[INFO] [stdout] test observability_read_model::tests::preserves_manifest_entry_for_unchanged_source_when_new_source_is_added ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_waits_for_worker_timeout_event_before_fallback_timeout ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_requests_shutdown_when_reader_blocks_past_heartbeat_deadline ... ok
[INFO] [stdout] test request_capture::tests::consume_probe_events_refreshes_fallback_deadline_after_each_message ... ok
[INFO] [stdout] test observability_read_model::tests::filters_unarchived_codex_threads_by_workspace_root ... ok
[INFO] [stdout] test observability_read_model::tests::default_codex_indexing_keeps_cwd_as_metadata_not_boundary ... ok
[INFO] [stdout] test observability_read_model::tests::indexes_only_unarchived_interactive_codex_threads_from_state_db ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 213 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.47s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/prismtrace.rs (/opt/rustwide/target/debug/deps/prismtrace-eb605e78d6bb4587)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test tests::claude_observe_args_errors_when_transcript_root_value_is_another_flag ... ok
[INFO] [stdout] test tests::claude_observe_args_parses_explicit_transcript_root ... ok
[INFO] [stdout] test tests::claude_observe_args_uses_default_transcript_root ... ok
[INFO] [stdout] test tests::claude_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::codex_observe_args_errors_when_socket_value_is_another_flag ... ok
[INFO] [stdout] test tests::codex_observe_args_errors_when_socket_value_is_missing ... ok
[INFO] [stdout] test tests::codex_observe_args_returns_default_options_without_socket ... ok
[INFO] [stdout] test tests::codex_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::console_target_filters_arg_errors_when_target_value_is_another_flag ... ok
[INFO] [stdout] test tests::codex_observe_args_parses_explicit_socket_path ... ok
[INFO] [stdout] test tests::console_flag_is_detected_without_conflicting_with_codex_observe_parsing ... ok
[INFO] [stdout] test tests::console_target_filters_arg_errors_when_target_value_is_missing ... ok
[INFO] [stdout] test tests::console_target_filters_arg_parses_multiple_filter_terms_in_order ... ok
[INFO] [stdout] test tests::console_target_filters_arg_parses_single_filter_term ... ok
[INFO] [stdout] test tests::opencode_observe_args_errors_when_url_value_is_another_flag ... ok
[INFO] [stdout] test tests::opencode_observe_args_parses_explicit_base_url ... ok
[INFO] [stdout] test tests::opencode_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::selected_command_picks_claude_observe_command ... ok
[INFO] [stdout] test tests::selected_command_picks_opencode_observe_command ... ok
[INFO] [stdout] test tests::state_root_arg_parses_explicit_state_root_without_affecting_command_selection ... ok
[INFO] [stdout] test tests::selected_command_prioritizes_codex_over_opencode_observe ... ok
[INFO] [stdout] test tests::state_root_arg_requires_value ... ok
[INFO] [stdout] test tests::selected_command_prioritizes_console_over_opencode_observe ... ok
[INFO] [stdout] test tests::console_target_filters_arg_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::opencode_observe_args_errors_when_url_value_is_missing ... ok
[INFO] [stdout] test tests::opencode_observe_args_returns_default_options_without_url ... ok
[INFO] [stdout] test tests::claude_observe_args_errors_when_transcript_root_value_is_missing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/prismtrace_host-23f31dc0aec5dd98)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test tests::claude_observe_args_errors_when_transcript_root_value_is_missing ... ok
[INFO] [stdout] test tests::claude_observe_args_parses_explicit_transcript_root ... ok
[INFO] [stdout] test tests::claude_observe_args_errors_when_transcript_root_value_is_another_flag ... ok
[INFO] [stdout] test tests::claude_observe_args_uses_default_transcript_root ... ok
[INFO] [stdout] test tests::codex_observe_args_errors_when_socket_value_is_another_flag ... ok
[INFO] [stdout] test tests::codex_observe_args_parses_explicit_socket_path ... ok
[INFO] [stdout] test tests::codex_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::codex_observe_args_returns_default_options_without_socket ... ok
[INFO] [stdout] test tests::console_flag_is_detected_without_conflicting_with_codex_observe_parsing ... ok
[INFO] [stdout] test tests::claude_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::console_target_filters_arg_errors_when_target_value_is_another_flag ... ok
[INFO] [stdout] test tests::console_target_filters_arg_errors_when_target_value_is_missing ... ok
[INFO] [stdout] test tests::console_target_filters_arg_parses_multiple_filter_terms_in_order ... ok
[INFO] [stdout] test tests::console_target_filters_arg_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::codex_observe_args_errors_when_socket_value_is_missing ... ok
[INFO] [stdout] test tests::opencode_observe_args_errors_when_url_value_is_another_flag ... ok
[INFO] [stdout] test tests::opencode_observe_args_parses_explicit_base_url ... ok
[INFO] [stdout] test tests::opencode_observe_args_errors_when_url_value_is_missing ... ok
[INFO] [stdout] test tests::opencode_observe_args_returns_default_options_without_url ... ok
[INFO] [stdout] test tests::opencode_observe_args_returns_none_when_flag_is_missing ... ok
[INFO] [stdout] test tests::selected_command_picks_claude_observe_command ... ok
[INFO] [stdout] test tests::selected_command_picks_opencode_observe_command ... ok
[INFO] [stdout] test tests::selected_command_prioritizes_console_over_opencode_observe ... ok
[INFO] [stdout] test tests::console_target_filters_arg_parses_single_filter_term ... ok
[INFO] [stdout] test tests::state_root_arg_requires_value ... ok
[INFO] [stdout] test tests::state_root_arg_parses_explicit_state_root_without_affecting_command_selection ... ok
[INFO] [stdout] test tests::selected_command_prioritizes_codex_over_opencode_observe ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_index-cd13297ec82cf231)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::observability_index_resolves_event_detail_reference ... ok
[INFO] [stdout] test tests::observability_index_replaces_projection_for_one_source_only ... ok
[INFO] [stdout] test tests::observability_index_orders_sessions_by_update_time ... ok
[INFO] [stdout] test tests::observability_index_projection_round_trips_as_jsonl ... ok
[INFO] [stdout] test tests::index_manifest_round_trips_to_disk ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_sources-2e03eb512be27c21)
[INFO] [stdout] test tests::index_manifest_detects_reusable_unchanged_source_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::observer_artifact_source_directory_names_are_backwards_compatible ... ok
[INFO] [stdout] test tests::observer_channel_kind_label_is_stable ... ok
[INFO] [stdout] test tests::observed_event_kind_labels_cover_minimal_surface ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prismtrace_storage-e2f114772304d428)
[INFO] [stdout] test tests::observer_artifact_writer_persists_handshake_and_event_under_source_directory ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test tests::layout_uses_expected_state_paths ... ok
[INFO] [stdout] test tests::index_projection_types_live_in_prismtrace_index_crate ... ok
[INFO] [stdout] test tests::initialize_creates_the_state_directory_tree ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests prismtrace_analysis
[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 prismtrace_api
[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 prismtrace_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] [stderr]    Doc-tests prismtrace_host
[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 prismtrace_index
[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 prismtrace_sources
[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 prismtrace_storage
[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" "23dd1ec60375915487656ded2ce3e1fc8acdb1994ccf852142c753d4c04005f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23dd1ec60375915487656ded2ce3e1fc8acdb1994ccf852142c753d4c04005f9", kill_on_drop: false }`
[INFO] [stdout] 23dd1ec60375915487656ded2ce3e1fc8acdb1994ccf852142c753d4c04005f9
