[INFO] cloning repository https://github.com/sase-org/sase-core [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sase-org/sase-core" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsase-org%2Fsase-core", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsase-org%2Fsase-core'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 76d4a2201de2865a39dc5b3231d88623f0bf1387 [INFO] testing sase-org/sase-core against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsase-org%2Fsase-core" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-1-tc2/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/sase-org/sase-core [INFO] finished tweaking git repo https://github.com/sase-org/sase-core [INFO] tweaked toml for git repo https://github.com/sase-org/sase-core written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/sase-org/sase-core on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/sase-org/sase-core 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 317d29cc5909f2bc8c81afc002e47886c50954a7ecb6d97c46aff91b15be0b98 [INFO] running `Command { std: "docker" "start" "-a" "317d29cc5909f2bc8c81afc002e47886c50954a7ecb6d97c46aff91b15be0b98", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "317d29cc5909f2bc8c81afc002e47886c50954a7ecb6d97c46aff91b15be0b98", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "317d29cc5909f2bc8c81afc002e47886c50954a7ecb6d97c46aff91b15be0b98", kill_on_drop: false }` [INFO] [stdout] 317d29cc5909f2bc8c81afc002e47886c50954a7ecb6d97c46aff91b15be0b98 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d3b310b51afca1e9a55edf5ef592f3e44df69e7f85afe034f4ba0d4e59dd51a1 [INFO] running `Command { std: "docker" "start" "-a" "d3b310b51afca1e9a55edf5ef592f3e44df69e7f85afe034f4ba0d4e59dd51a1", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling cc v1.2.61 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling target-lexicon v0.12.16 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling untrusted v0.9.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling pyo3-build-config v0.22.6 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling fluent-uri v0.1.4 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling base64 v0.21.7 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling pem v3.0.6 [INFO] [stderr] Compiling rustls-pemfile v1.0.4 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling sync_wrapper v0.1.2 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling webpki-roots v0.25.4 [INFO] [stderr] Compiling unindent v0.2.4 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling pyo3-ffi v0.22.6 [INFO] [stderr] Compiling pyo3-macros-backend v0.22.6 [INFO] [stderr] Compiling pyo3 v0.22.6 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling tokio v1.52.2 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling simple_asn1 v0.6.4 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling tower-http v0.5.2 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.6 [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 pyo3-macros v0.22.6 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling sct v0.7.1 [INFO] [stderr] Compiling rustls-webpki v0.101.7 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling lsp-types v0.97.0 [INFO] [stderr] Compiling jsonwebtoken v9.3.1 [INFO] [stderr] Compiling idna_adapter v1.2.2 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-rustls v0.24.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling sase_core v0.1.2 (/opt/rustwide/workdir/crates/sase_core) [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling hyper-rustls v0.24.2 [INFO] [stderr] Compiling reqwest v0.11.27 [INFO] [stderr] Compiling tower-lsp-server v0.21.1 [INFO] [stderr] Compiling sase_gateway v0.1.2 (/opt/rustwide/workdir/crates/sase_gateway) [INFO] [stderr] Compiling sase_xprompt_lsp v0.1.2 (/opt/rustwide/workdir/crates/sase_xprompt_lsp) [INFO] [stderr] Compiling sase_core_py v0.1.2 (/opt/rustwide/workdir/crates/sase_core_py) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 07s [INFO] running `Command { std: "docker" "inspect" "d3b310b51afca1e9a55edf5ef592f3e44df69e7f85afe034f4ba0d4e59dd51a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3b310b51afca1e9a55edf5ef592f3e44df69e7f85afe034f4ba0d4e59dd51a1", kill_on_drop: false }` [INFO] [stdout] d3b310b51afca1e9a55edf5ef592f3e44df69e7f85afe034f4ba0d4e59dd51a1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 01b3ea5bc18e8f3c4063487bec2348f4b6e05a0dd48850341262e791979984a8 [INFO] running `Command { std: "docker" "start" "-a" "01b3ea5bc18e8f3c4063487bec2348f4b6e05a0dd48850341262e791979984a8", kill_on_drop: false }` [INFO] [stderr] Compiling sase_xprompt_lsp v0.1.2 (/opt/rustwide/workdir/crates/sase_xprompt_lsp) [INFO] [stderr] Compiling sase_core v0.1.2 (/opt/rustwide/workdir/crates/sase_core) [INFO] [stderr] Compiling sase_core_py v0.1.2 (/opt/rustwide/workdir/crates/sase_core_py) [INFO] [stderr] Compiling sase_gateway v0.1.2 (/opt/rustwide/workdir/crates/sase_gateway) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 49.02s [INFO] running `Command { std: "docker" "inspect" "01b3ea5bc18e8f3c4063487bec2348f4b6e05a0dd48850341262e791979984a8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01b3ea5bc18e8f3c4063487bec2348f4b6e05a0dd48850341262e791979984a8", kill_on_drop: false }` [INFO] [stdout] 01b3ea5bc18e8f3c4063487bec2348f4b6e05a0dd48850341262e791979984a8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7fc80888b9754c16b2adde5ec01af26f538a048b627771ed4799e0603b516bad [INFO] running `Command { std: "docker" "start" "-a" "7fc80888b9754c16b2adde5ec01af26f538a048b627771ed4799e0603b516bad", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sase_core-caad330614008cad) [INFO] [stdout] [INFO] [stdout] running 421 tests [INFO] [stdout] test agent_cleanup::execution::tests::bundle_filename_and_shard_match_dismissed_layout ... ok [INFO] [stdout] test agent_cleanup::execution::tests::release_workspace_text_removes_matching_claim_and_cleans_field ... ok [INFO] [stdout] test agent_cleanup::planner::tests::all_panels_kill_and_dismiss_partitions_targets ... ok [INFO] [stdout] test agent_cleanup::planner::tests::dismissable_statuses_include_tale_done ... ok [INFO] [stdout] test agent_cleanup::execution::tests::release_workspace_text_removes_empty_running_field ... ok [INFO] [stdout] test agent_cleanup::execution::tests::delete_agent_artifact_markers_removes_loader_files_only ... ok [INFO] [stdout] test agent_cleanup::planner::tests::dismiss_side_effects_allow_duplicate_historical_names ... ok [INFO] [stdout] test agent_cleanup::planner::tests::focused_panel_selects_matching_tag_and_dismisses_completed ... ok [INFO] [stdout] test agent_cleanup::planner::tests::no_op_plan_reports_none_severity ... ok [INFO] [stdout] test agent_cleanup::planner::tests::explicit_identities_select_only_marked_targets ... ok [INFO] [stdout] test agent_cleanup::execution::tests::mark_running_hook_mentor_and_comment_suffixes_as_killed ... ok [INFO] [stdout] test agent_cleanup::planner::tests::tag_scope_uses_parent_tag_for_workflow_children_but_skips_child_directly ... ok [INFO] [stdout] test agent_cleanup::planner::tests::workflow_parent_cascade_deduplicates_child_inputs ... ok [INFO] [stdout] test agent_cleanup::planner::tests::unknown_kill_kind_is_skipped ... ok [INFO] [stdout] test agent_group_archive::tests::missing_group_name_loads_as_none ... ok [INFO] [stdout] test agent_launch::tests::allocate_and_claim_picks_first_available_workspace ... ok [INFO] [stdout] test agent_launch::tests::claim_workspace_rejects_duplicate_nonzero_but_allows_zero ... ok [INFO] [stdout] test agent_launch::tests::fanout_plan_round_trips_slots ... ok [INFO] [stdout] test agent_group_archive::tests::missing_ref_prompt_preview_loads_as_none ... ok [INFO] [stdout] test agent_cleanup::execution::tests::save_dismissed_bundle_json_writes_sharded_pretty_json ... ok [INFO] [stdout] test agent_group_archive::tests::whitespace_group_name_normalizes_to_none ... ok [INFO] [stdout] test agent_group_archive::tests::save_list_and_load_preserve_group_name ... ok [INFO] [stdout] test agent_group_archive::tests::load_group_keeps_refs_when_bundle_files_are_missing ... ok [INFO] [stdout] test agent_group_archive::tests::corrupt_and_missing_group_files_are_tolerated ... ok [INFO] [stdout] test agent_cleanup::execution::tests::save_dismissed_bundle_json_replaces_existing_bundle ... ok [INFO] [stdout] test agent_group_archive::tests::mark_group_revived_preserves_metadata ... ok [INFO] [stdout] test agent_launch::tests::launch_request_round_trips_json_shape ... ok [INFO] [stdout] test agent_launch::tests::prepare_agent_launch_deferred_and_home_claim_shapes ... ok [INFO] [stdout] test agent_group_archive::tests::recent_groups_tolerate_corrupt_files_and_mark_revived ... ok [INFO] [stdout] test agent_launch::tests::prepared_wire_preserves_null_claim_request ... ok [INFO] [stdout] test agent_launch::tests::timestamp_batch_allocates_unique_visible_timestamps ... ok [INFO] [stdout] test agent_launch::tests::timestamp_batch_rejects_invalid_format ... ok [INFO] [stdout] test agent_launch::tests::timestamp_batch_starts_after_previous_allocation ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_extracts_repeat_slots ... ok [INFO] [stdout] test agent_launch::tests::prepare_agent_launch_writes_prompt_and_shapes_process_data ... ok [INFO] [stdout] test agent_launch::tests::transfer_workspace_claim_matches_pid_and_preserves_claim_name ... ok [INFO] [stdout] test agent_name_template::tests::compares_by_auto_sequence_order ... ok [INFO] [stdout] test agent_launch::tests::workspace_claims_parse_valid_rows_and_ignore_malformed ... ok [INFO] [stdout] test agent_name_template::tests::derives_namespace_template_shapes ... ok [INFO] [stdout] test agent_name_template::tests::generates_shortlex_tokens ... ok [INFO] [stdout] test agent_name_template::tests::matches_template_tokens ... ok [INFO] [stdout] test agent_name_template::tests::parses_exactly_one_marker ... ok [INFO] [stdout] test agent_name_template::tests::renders_template_shapes ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_splits_multi_prompt_outside_fences ... ok [INFO] [stdout] test agent_group_archive::tests::recent_groups_replace_same_group_id ... ok [INFO] [stdout] test agent_scan::index::tests::index_query_wire_round_trips_active_limit ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_model_alt_ids_preserve_named_model_branches ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_preserves_named_alt_ids_and_values_only ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_time_directive_is_not_previous_wait ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_composes_cartesian_alt_ids ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_splits_models_and_alternatives ... ok [INFO] [stdout] test agent_cleanup::planner::tests::dismiss_side_effects_preserve_names ... ok [INFO] [stdout] test agent_launch::tests::fanout_planner_allocates_unnamed_alt_ids_after_named_ids ... ok [INFO] [stdout] test agent_scan::index::tests::query_keeps_corrupt_existing_index_strict ... ok [INFO] [stdout] test agent_archive::tests::query_agent_archive_returns_paged_summary_rows ... ok [INFO] [stdout] test agent_archive::tests::mark_agent_archive_bundles_revived_updates_bundle_and_index ... ok [INFO] [stdout] test agent_scan::index::tests::anonymous_appears_as_agent_workflow_is_not_hidden ... ok [INFO] [stdout] test agent_scan::index::tests::explicit_workflow_state_hidden_is_still_filtered ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_appended_feedback_submitted_at ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_done_creation_before_completed_filter ... ok [INFO] [stdout] test agent_scan::index::tests::migration_recomputes_hidden_for_v1_indexes ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_running_to_done_transition ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_newly_added_run_started_at ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_hidden_to_visible_before_visible_filter ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_waiting_deletion_to_running ... ok [INFO] [stdout] test agent_scan::index::tests::query_skips_rescan_when_signatures_match ... ok [INFO] [stdout] test bead::config::tests::load_current_shape ... ok [INFO] [stdout] test bead::config::tests::missing_file_returns_supplied_default ... ok [INFO] [stdout] test agent_group_archive::tests::recent_groups_are_capped_and_list_newest_first ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_pending_question_creation_and_deletion ... ok [INFO] [stdout] test bead::jsonl::tests::corrupt_lines_are_skipped ... ok [INFO] [stdout] test bead::jsonl::tests::export_sorts_by_id_and_uses_compact_json ... ok [INFO] [stdout] test bead::jsonl::tests::import_defaults_missing_epic_count_to_none ... ok [INFO] [stdout] test bead::jsonl::tests::import_defaults_missing_model_to_empty ... ok [INFO] [stdout] test bead::jsonl::tests::import_preserves_legend_epic_count ... ok [INFO] [stdout] test bead::jsonl::tests::import_preserves_model ... ok [INFO] [stdout] test bead::jsonl::tests::import_defaults_missing_plan_tiers_from_phase_children ... ok [INFO] [stdout] test bead::jsonl::tests::import_rejects_model_control_characters ... ok [INFO] [stdout] test agent_scan::index::tests::query_self_heals_appended_plan_submitted_at ... ok [INFO] [stdout] test bead::config::tests::save_matches_python_pretty_json_shape ... ok [INFO] [stdout] test bead::mutation::tests::create_rejects_epic_count_on_non_legend_plan ... ok [INFO] [stdout] test bead::mutation::tests::create_rejects_model_control_characters ... ok [INFO] [stdout] test agent_scan::index::tests::hidden_inclusive_full_history_can_inspect_dismissed_rows ... ok [INFO] [stdout] test bead::mutation::tests::close_plan_cascades_open_children_before_parent ... ok [INFO] [stdout] test bead::mutation::tests::create_and_update_model ... ok [INFO] [stdout] test bead::mutation::tests::create_and_update_legend_epic_count ... ok [INFO] [stdout] test agent_scan::index::tests::rebuild_indexes_scanner_equivalent_records ... ok [INFO] [stdout] test bead::mutation::tests::mark_ready_rejects_phase_and_idempotent_plan ... ok [INFO] [stdout] test agent_scan::index::tests::terminal_workflow_state_rows_are_recent_completed_rows ... ok [INFO] [stdout] test bead::schema::tests::metadata_migration_adds_only_missing_columns ... ok [INFO] [stdout] test bead::schema::tests::migration_detection_matches_python_helpers ... ok [INFO] [stdout] test agent_scan::index::tests::recent_completed_limit_does_not_bound_active_rows ... ok [INFO] [stdout] test agent_scan::index::tests::active_query_excludes_dismissed_identity_after_rebuild ... ok [INFO] [stdout] test agent_scan::index::tests::wait_completed_records_are_indexed_as_running ... ok [INFO] [stdout] test bead::wire::tests::bug_id_requires_changespec_name ... ok [INFO] [stdout] test bead::wire::tests::legend_plan_allows_positive_epic_count ... ok [INFO] [stdout] test bead::wire::tests::legacy_defaults_match_python_jsonl_loader ... ok [INFO] [stdout] test bead::wire::tests::model_rejects_control_characters ... ok [INFO] [stdout] test agent_scan::index::tests::recent_completed_rows_remain_visible_when_not_dismissed ... ok [INFO] [stdout] test agent_scan::index::tests::rebuild_replaces_corrupt_existing_index ... ok [INFO] [stdout] test bead::wire::tests::non_positive_epic_count_is_invalid ... ok [INFO] [stdout] test bead::work::tests::copies_legend_model_to_land_model ... ok [INFO] [stdout] test bead::schema::tests::schema_contains_current_constraints ... ok [INFO] [stdout] test bead::wire::tests::empty_optional_strings_normalize_to_none ... ok [INFO] [stdout] test bead::mutation::tests::create_top_level_uses_current_store_max_and_persists_counter ... ok [INFO] [stdout] test bead::wire::tests::non_legend_epic_count_is_invalid ... ok [INFO] [stdout] test bead::wire::tests::phase_rejects_plan_only_fields ... ok [INFO] [stdout] test bead::wire::tests::phase_requires_parent ... ok [INFO] [stdout] test bead::work::tests::epic_work_plan_copies_phase_and_land_models ... ok [INFO] [stdout] test bead::work::tests::land_waits_on_every_launched_phase_in_wave_order ... ok [INFO] [stdout] test bead::work::tests::detects_cycles ... ok [INFO] [stdout] test bead::work::tests::legend_child_epic_uses_legend_launch_tag ... ok [INFO] [stdout] test bead::work::tests::non_legend_parent_does_not_change_epic_launch_tag ... ok [INFO] [stdout] test bead::work::tests::plans_diamond_dag_in_waves ... ok [INFO] [stdout] test agent_scan::index::tests::tier1_active_query_is_bounded_to_newest_incomplete_rows ... ok [INFO] [stdout] test bead::work::tests::plans_legend_epics_in_linear_wait_chain ... ok [INFO] [stdout] test bead::work::tests::rejects_legend_without_design_path ... ok [INFO] [stdout] test bead::work::tests::rejects_missing_legend_epic_count ... ok [INFO] [stdout] test bead::work::tests::rejects_non_legend_plan_for_legend_work ... ok [INFO] [stdout] test bead::work::tests::rejects_non_positive_legend_epic_count ... ok [INFO] [stdout] test bead::work::tests::rejects_open_out_of_epic_blocker ... ok [INFO] [stdout] test bead::work::tests::rejects_phase_for_legend_work ... ok [INFO] [stdout] test editor::completion::tests::builds_catalog_completions_with_marker_filters ... ok [INFO] [stdout] test editor::completion::tests::builds_snippet_completions_by_case_insensitive_prefix ... ok [INFO] [stdout] test bead::work::tests::standalone_epic_uses_epic_launch_tag ... ok [INFO] [stdout] test bead::mutation::tests::mark_ready_allows_legend_plan ... ok [INFO] [stdout] test editor::completion::tests::builds_argument_name_completions ... ok [INFO] [stdout] test editor::definition::tests::preserves_catalog_definition_range ... ok [INFO] [stdout] test editor::definition::tests::resolves_namespaced_shorthand_and_slash_skill_definitions ... ok [INFO] [stdout] test editor::definition::tests::resolves_inline_and_standalone_xprompt_definitions ... ok [INFO] [stdout] test editor::definition::tests::returns_none_for_missing_entries_or_source_targets ... ok [INFO] [stdout] test editor::completion::tests::classifies_primary_completion_modes ... ok [INFO] [stdout] test editor::completion::tests::snippet_context_does_not_steal_higher_priority_tokens ... ok [INFO] [stdout] test editor::completion::tests::detects_narrow_argument_contexts ... ok [INFO] [stdout] test editor::definition::tests::validates_local_file_definition_paths_conservatively ... ok [INFO] [stdout] test agent_group_archive::tests::save_and_list_pages_saved_groups_newest_first ... ok [INFO] [stdout] test bead::mutation::tests::event_backed_child_id_reuse_after_remove_matches_jsonl_semantics ... ok [INFO] [stdout] test bead::mutation::tests::mutations_create_canonical_events_and_regenerate_projection ... ok [INFO] [stdout] test agent_scan::index::tests::upsert_and_delete_one_artifact_row ... ok [INFO] [stdout] test bead::mutation::tests::preclaim_epic_work_plan_updates_once_and_returns_rollback ... ok [INFO] [stdout] test bead::mutation::tests::preclaim_epic_work_plan_validation_is_all_or_nothing ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_valid_input_aliases_and_defaults ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_invalid_snippet_tags_keywords_and_skill_metadata ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_initial_diagnostics ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_known_frontmatter_input_type_aliases ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_flow_style_frontmatter_input_type_diagnostic ... ok [INFO] [stdout] test editor::diagnostics::tests::incomplete_forms_do_not_emit_required_arg_noise ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_frontmatter_local_xprompts ... ok [INFO] [stdout] test editor::directive::tests::directive_completion_includes_time_alias ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_shortform_frontmatter_input_type_diagnostic ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_unknown_top_level_and_invalid_name ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_frontmatter_yaml_and_shape_diagnostics ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_longform_frontmatter_input_type_diagnostic ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_xprompt_argument_contract_diagnostics ... ok [INFO] [stdout] test editor::diagnostics::tests::memory_long_source_path_supplies_implicit_memory_tag ... ok [INFO] [stdout] test editor::file::tests::orders_directories_first_and_filters_dotfiles ... ok [INFO] [stdout] test editor::directive::tests::resolves_documented_aliases ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_valid_argument_forms_and_bool_spellings ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_flow_style_input_default_on_offending_scalar ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_invalid_input_defaults ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_current_document_local_xprompts_and_validates_args ... ok [INFO] [stdout] test editor::diagnostics::tests::reports_input_shape_name_duplicate_identifier_and_unknown_fields ... ok [INFO] [stdout] test editor::diagnostics::tests::accepts_input_descriptions_and_reports_invalid_shapes ... ok [INFO] [stdout] test editor::file::tests::preserves_at_prefix_and_marks_symlinked_directories ... ok [INFO] [stdout] test editor::hover::tests::builds_frontmatter_field_hover ... ok [INFO] [stdout] test editor::hover::tests::builds_xprompt_and_argument_hover ... ok [INFO] [stdout] test editor::hover::tests::frontmatter_hover_ignores_body_and_non_field_positions ... ok [INFO] [stdout] test editor::token::tests::extracts_expected_tokens ... ok [INFO] [stdout] test editor::token::tests::extracts_mid_token_ranges ... ok [INFO] [stdout] test editor::token::tests::maps_lsp_utf16_positions_defensively ... ok [INFO] [stdout] test editor::token::tests::recognizes_memory_long_markdown_source_paths ... ok [INFO] [stdout] test editor::token::tests::recognizes_prompt_widget_snippet_trigger_tokens ... ok [INFO] [stdout] test editor::xprompt_args::tests::parses_parenthesized_named_and_positional_args ... ok [INFO] [stdout] test editor::xprompt_args::tests::parses_colon_plus_hitl_and_namespaced_forms ... ok [INFO] [stdout] test editor::xprompt_args::tests::preserves_commas_and_equals_inside_quotes_and_text_blocks ... ok [INFO] [stdout] test episode::tests::v1_episode_json_deserializes_with_compatibility_defaults ... ok [INFO] [stdout] test episode::tests::stable_ids_ignore_source_order ... ok [INFO] [stdout] test git_query::parsers::tests::branch_name_detached_head_returns_none ... ok [INFO] [stdout] test git_query::parsers::tests::branch_name_strips_surrounding_whitespace ... ok [INFO] [stdout] test episode::tests::canonical_episode_json_sorts_collections ... ok [INFO] [stdout] test git_query::parsers::tests::branch_name_whitespace_only_returns_none ... ok [INFO] [stdout] test git_query::parsers::tests::conflicted_files_empty_stdout_returns_empty ... ok [INFO] [stdout] test git_query::parsers::tests::conflicted_files_preserves_path_order ... ok [INFO] [stdout] test git_query::parsers::tests::conflicted_files_strips_blank_lines ... ok [INFO] [stdout] test git_query::parsers::tests::conflicted_files_only_blank_lines_returns_empty ... ok [INFO] [stdout] test git_query::parsers::tests::branch_name_empty_stdout_returns_none ... ok [INFO] [stdout] test git_query::parsers::tests::local_changes_dirty_tree_returns_stripped_text ... ok [INFO] [stdout] test git_query::parsers::tests::branch_name_simple_value ... ok [INFO] [stdout] test git_query::parsers::tests::local_changes_whitespace_only_returns_none ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_copy_with_score_carries_paired_paths ... ok [INFO] [stdout] test episode::tests::verify_episode_sources_reports_missing_and_changed_sources ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_empty_stream_returns_empty ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_mixed_simple_and_rename_in_one_stream ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_skips_empty_status_tokens ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_rename_with_score_carries_paired_paths ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_simple_status_letters ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_truncated_rename_falls_back_to_single_path ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_truncated_status_only_drops_entry ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_falls_back_to_root_when_remote_blank ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_falls_back_to_root_when_remote_none ... ok [INFO] [stdout] test git_query::parsers::tests::name_status_trailing_nul_is_ignored ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_https_remote_with_dot_git ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_https_remote_without_dot_git ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_path_like_remote ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_remote_dot_git_only_returns_none ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_remote_takes_priority_over_root ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_returns_none_when_both_inputs_empty ... ok [INFO] [stdout] test git_query::parsers::tests::workspace_name_ssh_remote_with_dot_git ... ok [INFO] [stdout] test host_bridge::tests::snippet_catalog_wire_accepts_minimal_entry_json ... ok [INFO] [stdout] test notifications::mobile::tests::hitl_response_planner_matches_existing_shapes ... ok [INFO] [stdout] test host_bridge::tests::xprompt_catalog_entry_wire_accepts_old_and_new_definition_path_json ... ok [INFO] [stdout] test host_bridge::tests::static_helper_bridge_returns_structured_catalog_response ... ok [INFO] [stdout] test notifications::mobile::tests::mobile_notification_contract_snapshot_is_stable ... ok [INFO] [stdout] test notifications::mobile::tests::planner_errors_are_deterministic ... ok [INFO] [stdout] test notifications::mobile::tests::plan_response_planner_covers_all_choices ... ok [INFO] [stdout] test notifications::mobile::tests::prefix_resolution_makes_collisions_explicit ... ok [INFO] [stdout] test notifications::mobile::tests::priority_and_error_classifiers_are_disjoint ... ok [INFO] [stdout] test host_bridge::tests::static_helper_bridge_returns_snippet_catalog_response ... ok [INFO] [stdout] test parser::tests::changespec_header_detection_requires_whitespace_then_word ... ok [INFO] [stdout] test notifications::mobile::tests::action_result_contract_snapshot_is_stable ... ok [INFO] [stdout] test parser::tests::changespec_header_separates_specs_without_blank_lines ... ok [INFO] [stdout] test parser::tests::description_preserves_internal_blank_lines_then_trims ... ok [INFO] [stdout] test notifications::pending_actions::tests::pending_store_merges_legacy_telegram_shape ... ok [INFO] [stdout] test notifications::mobile::tests::question_planner_supports_index_label_id_and_custom_answers ... ok [INFO] [stdout] test parser::tests::empty_value_lines_become_none_or_empty_per_python_rules ... ok [INFO] [stdout] test notifications::pending_actions::tests::pending_state_detects_stale_and_external_plan_response ... ok [INFO] [stdout] test parser::tests::invalid_utf8_returns_parse_error_wire ... ok [INFO] [stdout] test parser::tests::new_name_inside_a_spec_starts_a_new_spec ... ok [INFO] [stdout] test parser::tests::multi_line_description_strips_two_space_continuation ... ok [INFO] [stdout] test notifications::pending_actions::tests::cleanup_stale_pending_actions_removes_only_expired_entries ... ok [INFO] [stdout] test parser::tests::empty_input_yields_no_specs ... ok [INFO] [stdout] test parser::tests::parent_cl_pr_bug_scalars_round_trip ... ok [INFO] [stdout] test parser::tests::parses_direct_name_spec_without_header ... ok [INFO] [stdout] test parser::tests::parses_headered_spec_with_inline_description ... ok [INFO] [stdout] test parser::tests::project_basename_strips_extension_and_archive_suffix ... ok [INFO] [stdout] test editor::xprompt_args::tests::marks_open_forms_without_parsing_required_args ... ok [INFO] [stdout] test git_query::parsers::tests::local_changes_clean_tree_returns_none ... ok [INFO] [stdout] test parser::tests::drops_incomplete_specs_missing_name_or_status ... ok [INFO] [stdout] test parser::tests::rust_end_line_is_real_not_placeholder ... ok [INFO] [stdout] test parser::tests::two_blank_lines_separate_specs ... ok [INFO] [stdout] test parser::tests::span_excludes_trailing_blank_separator ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_accepts_canonical_inactive_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_defaults_missing_state_to_active ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_accepts_canonical_sibling_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_warns_and_defaults_invalid_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_warns_on_duplicate_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_accepts_sibling_target_state ... ok [INFO] [stdout] test notifications::pending_actions::tests::pending_store_registers_and_resolves_prefixes ... ok [INFO] [stdout] test host_bridge::tests::command_helper_bridge_invokes_editor_snippet_catalog ... ok [INFO] [stdout] test project_spec::tests::lifecycle_read_normalizes_legacy_inactive_states ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_inserts_before_first_name ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_inserts_before_running_and_preserves_crlf ... ok [INFO] [stdout] test project_spec::tests::archive_detection_accepts_canonical_and_legacy_extensions ... ok [INFO] [stdout] test project_spec::tests::lifecycle_project_records_include_aliases_and_collision_warnings ... ok [INFO] [stdout] test project_spec::tests::lifecycle_project_records_filter_and_sort_projects ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_normalizes_legacy_target_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_rejects_invalid_target_state ... ok [INFO] [stdout] test project_spec::tests::lifecycle_update_replaces_existing_state_line ... ok [INFO] [stdout] test project_spec::tests::project_aliases_read_defaults_missing_aliases_to_empty ... ok [INFO] [stdout] test project_spec::tests::project_aliases_read_sorts_dedupes_and_warns ... ok [INFO] [stdout] test query::searchable::tests::project_dir_name_basic ... ok [INFO] [stdout] test project_spec::tests::project_aliases_update_rejects_invalid_or_duplicate_aliases ... ok [INFO] [stdout] test query::tests::canonical_and_inside_or_gets_parens ... ok [INFO] [stdout] test project_spec::tests::project_aliases_update_removes_existing_aliases ... ok [INFO] [stdout] test query::tests::ast_round_trips_through_json ... ok [INFO] [stdout] test query::tests::canonical_any_special_implicit_and ... ok [INFO] [stdout] test project_spec::tests::project_aliases_update_inserts_before_running_and_preserves_crlf ... ok [INFO] [stdout] test project_spec::tests::project_aliases_update_replaces_existing_aliases_sorted ... ok [INFO] [stdout] test project_spec::tests::project_spec_filenames_are_canonical_sase ... ok [INFO] [stdout] test project_spec::tests::project_spec_path_conversions_emit_canonical_extension ... ok [INFO] [stdout] test query::tests::canonical_case_sensitive_string ... ok [INFO] [stdout] test query::tests::canonical_implicit_and ... ok [INFO] [stdout] test query::tests::canonical_error_suffix_running_markers ... ok [INFO] [stdout] test query::tests::canonical_not_around_and_gets_parens ... ok [INFO] [stdout] test query::tests::canonical_escape_string_value ... ok [INFO] [stdout] test project_spec::tests::project_spec_basename_accepts_active_and_archive_extensions ... ok [INFO] [stdout] test project_spec::tests::project_aliases_update_inserts_before_first_name ... ok [INFO] [stdout] test query::tests::canonical_not_string ... ok [INFO] [stdout] test query::tests::canonical_or ... ok [INFO] [stdout] test query::tests::canonical_property_filter_shorthands ... ok [INFO] [stdout] test query::tests::canonical_status_property ... ok [INFO] [stdout] test query::tests::parse_case_sensitive_string ... ok [INFO] [stdout] test query::tests::parse_any_special_expands_to_or ... ok [INFO] [stdout] test query::tests::parse_error_suffix_and_string ... ok [INFO] [stdout] test query::tests::parse_error_missing_operand ... ok [INFO] [stdout] test query::tests::canonical_or_inside_and_gets_parens ... ok [INFO] [stdout] test query::tests::parse_error_empty_query ... ok [INFO] [stdout] test query::tests::parse_error_unmatched_paren ... ok [INFO] [stdout] test query::tests::parse_implicit_and ... ok [INFO] [stdout] test query::tests::parse_not_running_agent_shorthand ... ok [INFO] [stdout] test query::tests::parse_implicit_and_with_parens ... ok [INFO] [stdout] test query::tests::parse_not_tightest ... ok [INFO] [stdout] test query::tests::parse_not_running_process_shorthand ... ok [INFO] [stdout] test query::tests::parse_or_loosest ... ok [INFO] [stdout] test query::tests::parse_property_match ... ok [INFO] [stdout] test query::tests::parse_standalone_exclamation_is_error_suffix ... ok [INFO] [stdout] test query::tests::parser_error_wire_kind_is_parser ... ok [INFO] [stdout] test query::tests::tokenize_any_special_only_standalone ... ok [INFO] [stdout] test query::tests::token_round_trips_through_json ... ok [INFO] [stdout] test query::tests::tokenize_at_not_standalone_is_error ... ok [INFO] [stdout] test query::tests::tokenize_dollar_not_standalone_is_error ... ok [INFO] [stdout] test query::tests::tokenize_double_exclamation_not_standalone_is_two_nots ... ok [INFO] [stdout] test query::tests::tokenize_case_sensitive_string ... ok [INFO] [stdout] test query::tests::tokenize_double_exclamation_standalone_is_not_error_suffix ... ok [INFO] [stdout] test query::tests::tokenize_invalid_escape ... ok [INFO] [stdout] test query::tests::tokenize_invalid_property_key ... ok [INFO] [stdout] test query::tests::tokenize_bare_word_with_numbers ... ok [INFO] [stdout] test query::tests::tokenize_not_dollar_with_space ... ok [INFO] [stdout] test query::tests::tokenize_not_keyword_with_error_suffix ... ok [INFO] [stdout] test query::tests::tokenize_not_at_with_space ... ok [INFO] [stdout] test query::tests::tokenize_paren_and_keywords ... ok [INFO] [stdout] test query::tests::tokenize_property_quoted_value ... ok [INFO] [stdout] test query::tests::tokenize_quoted_with_escapes ... ok [INFO] [stdout] test query::tests::tokenize_property_shorthands ... ok [INFO] [stdout] test query::tests::tokenize_standalone_at_and_bang ... ok [INFO] [stdout] test query::tests::tokenize_status_shorthand_invalid ... ok [INFO] [stdout] test query::tests::tokenize_status_shorthand_uppercase ... ok [INFO] [stdout] test query::tests::tokenize_triple_specials ... ok [INFO] [stdout] test query::tests::tokenize_unterminated_string ... ok [INFO] [stdout] test query::tests::tokenize_status_shorthands ... ok [INFO] [stdout] test query::tests::tokenizer_error_wire_kind_is_tokenizer ... ok [INFO] [stdout] test sections::tests::commits_drawers_attach_to_current_entry ... ok [INFO] [stdout] test sections::tests::commits_proposal_letter_carries_through ... ok [INFO] [stdout] test sections::tests::hooks_command_then_status_line ... ok [INFO] [stdout] test sections::tests::hooks_new_command_flushes_previous_hook ... ok [INFO] [stdout] test sections::tests::commits_line_starts_new_entry_and_strips_trailing_suffix ... ok [INFO] [stdout] test sections::tests::hooks_running_agent_suffix_split_from_summary ... ok [INFO] [stdout] test sections::tests::commits_body_lines_use_six_space_indent_and_dot_for_blank ... ok [INFO] [stdout] test sections::tests::comments_basic_and_with_error_suffix ... ok [INFO] [stdout] test sections::tests::deltas_requires_exactly_two_leading_spaces ... ok [INFO] [stdout] test sections::tests::deltas_glyph_to_change_type_mapping ... ok [INFO] [stdout] test query::tests::canonical_simple_string ... ok [INFO] [stdout] test query::tests::parse_bare_word ... ok [INFO] [stdout] test query::tests::parse_double_not_collapses_to_two_nots ... ok [INFO] [stdout] test sections::tests::commits_running_agent_and_rejected_proposal_suffixes ... ok [INFO] [stdout] test status::constants::tests::unmodified_status_passes_through ... ok [INFO] [stdout] test status::constants::tests::valid_transitions_allow_known_pairs ... ok [INFO] [stdout] test status::constants::tests::unknown_statuses_rejected ... ok [INFO] [stdout] test status::constants::tests::legacy_ready_to_mail_suffix_stripped ... ok [INFO] [stdout] test status::constants::tests::terminal_statuses_have_no_outgoing_transitions ... ok [INFO] [stdout] test status::field_updates::tests::apply_status_update_idempotent_when_status_already_matches ... ok [INFO] [stdout] test status::constants::tests::workspace_suffix_does_not_block_validation ... ok [INFO] [stdout] test status::field_updates::tests::apply_status_update_no_matching_changespec_is_noop ... ok [INFO] [stdout] test status::field_updates::tests::read_status_matches_first_changespec ... ok [INFO] [stdout] test status::field_updates::tests::read_status_preserves_workspace_suffix ... ok [INFO] [stdout] test status::field_updates::tests::read_status_returns_none_when_missing ... ok [INFO] [stdout] test status::constants::tests::workspace_suffix_stripped_from_status ... ok [INFO] [stdout] test status::field_updates::tests::apply_status_update_preserves_unrelated_lines ... ok [INFO] [stdout] test status::field_updates::tests::apply_status_update_replaces_only_target_status ... ok [INFO] [stdout] test status::name::tests::next_suffix_reserves_legacy_double_underscore_slot ... ok [INFO] [stdout] test status::name::tests::next_suffix_skips_existing ... ok [INFO] [stdout] test status::name::tests::next_suffix_starts_at_one ... ok [INFO] [stdout] test status::planner::tests::archive_action_from_archive_under_no_validate ... ok [INFO] [stdout] test status::planner::tests::archive_action_to_archive_on_submitted ... ok [INFO] [stdout] test status::planner::tests::archive_action_none_within_archive_class ... ok [INFO] [stdout] test status::planner::tests::archive_action_none_within_main_class ... ok [INFO] [stdout] test status::planner::tests::archived_terminal_no_further_transitions ... ok [INFO] [stdout] test status::planner::tests::invalid_transition_error_format_matches_python ... ok [INFO] [stdout] test status::planner::tests::invalid_transition_validate_false_allows ... ok [INFO] [stdout] test status::planner::tests::invalid_transition_validate_true_rejects ... ok [INFO] [stdout] test status::planner::tests::legacy_ready_to_mail_suffix_stripped_for_validation ... ok [INFO] [stdout] test status::planner::tests::parent_constraint_skipped_for_reverted_branch ... ok [INFO] [stdout] test status::name::tests::has_suffix_recognises_single_and_double_underscore ... ok [INFO] [stdout] test status::planner::tests::draft_to_ready_no_suffix_clears_mentors_only ... ok [INFO] [stdout] test status::planner::tests::parent_wip_blocks_child_to_mailed ... ok [INFO] [stdout] test status::planner::tests::ready_to_draft_appends_suffix_and_sets_mentor ... ok [INFO] [stdout] test status::planner::tests::ready_to_draft_blocked_by_invalid_children ... ok [INFO] [stdout] test status::planner::tests::reverted_terminal_no_further_transitions ... ok [INFO] [stdout] test status::planner::tests::schema_version_mismatch_returns_error ... ok [INFO] [stdout] test status::planner::tests::submitted_terminal_no_further_transitions ... ok [INFO] [stdout] test status::planner::tests::unknown_status_rejected_under_validation ... ok [INFO] [stdout] test status::planner::tests::wip_to_draft_no_suffix_no_mentor ... ok [INFO] [stdout] test status::planner::tests::ready_to_draft_picks_lowest_free_suffix ... ok [INFO] [stdout] test status::planner::tests::wip_to_ready_blocked_by_sibling_unreverted_children ... ok [INFO] [stdout] test status::planner::tests::workspace_suffix_normalised_for_validation ... ok [INFO] [stdout] test status::wire::tests::json_shape_keeps_optional_fields_as_null ... ok [INFO] [stdout] test sections::tests::timestamps_hybrid_bracketed_yymmdd_parses ... ok [INFO] [stdout] test sections::tests::timestamps_new_format_parses ... ok [INFO] [stdout] test status::wire::tests::plan_round_trips_through_json ... ok [INFO] [stdout] test status::field_updates::tests::read_status_matches_second_changespec ... ok [INFO] [stdout] test sections::tests::timestamps_legacy_bracketed_format_still_parses ... ok [INFO] [stdout] test status::planner::tests::parent_ready_does_not_block_mailed ... ok [INFO] [stdout] test status::planner::tests::wip_to_ready_with_suffix_strips ... ok [INFO] [stdout] test status::wire::tests::request_round_trips_through_json ... ok [INFO] [stdout] test status::wire::tests::schema_mismatch_returns_error ... ok [INFO] [stdout] test suffix::tests::none_input_returns_none_pair ... ok [INFO] [stdout] test status::planner::tests::draft_to_ready_with_suffix_strips_and_clears_mentors ... ok [INFO] [stdout] test suffix::tests::metahook_promotes_error_to_metahook_complete ... ok [INFO] [stdout] test suffix::tests::long_prefixes_take_priority_over_short ... ok [INFO] [stdout] test suffix::tests::standalone_markers_have_empty_value ... ok [INFO] [stdout] test suffix::tests::unknown_prefix_returns_value_unchanged ... ok [INFO] [stdout] test wire::tests::empty_lists_serialize_as_arrays_not_null ... ok [INFO] [stdout] test wire::tests::changespec_field_order_matches_python ... ok [INFO] [stdout] test wire::tests::none_fields_serialize_as_json_null ... ok [INFO] [stdout] test wire::tests::source_span_round_trips ... ok [INFO] [stdout] test wire::tests::parse_error_wire_shape ... ok [INFO] [stdout] test wire::tests::delta_wire_uses_long_form ... ok [INFO] [stdout] test suffix::tests::legacy_tilde_colon_is_plain ... ok [INFO] [stdout] test suffix::tests::entry_ref_recognizes_digit_optional_letter ... ok [INFO] [stdout] test wire::tests::populated_changespec_round_trips ... ok [INFO] [stdout] test xprompt_catalog::tests::computes_known_project_local_config_definition_range ... ok [INFO] [stdout] test xprompt_catalog::tests::config_workflows_are_ignored_but_file_backed_project_workflows_load ... ok [INFO] [stdout] test xprompt_catalog::tests::known_project_workspaces_prefers_sase_spec_with_gp_fallback ... ok [INFO] [stdout] test xprompt_catalog::tests::parses_markdown_frontmatter_local_xprompts_without_global_entry ... ok [INFO] [stdout] test xprompt_catalog::tests::loads_plugin_file_and_config_catalog_sources ... ok [INFO] [stdout] test xprompt_catalog::tests::filters_step_inputs_and_formats_defaults ... ok [INFO] [stdout] test xprompt_catalog::tests::converts_native_xprompt_snippet_templates ... ok [INFO] [stdout] test xprompt_catalog::tests::loads_markdown_and_workflow_with_canonical_insertions ... ok [INFO] [stdout] test xprompt_catalog::tests::parses_xprompt_workflow_and_input_descriptions ... ok [INFO] [stdout] test xprompt_catalog::tests::loads_native_snippet_catalog_with_user_overrides ... ok [INFO] [stdout] test xprompt_catalog::tests::yaml_child_key_range_finds_immediate_quoted_children ... ok [INFO] [stdout] test xprompt_catalog::tests::pseudo_sources_do_not_get_definition_paths ... ok [INFO] [stdout] test xprompt_catalog::tests::parity_fixture_covers_supported_catalog_sources ... ok [INFO] [stdout] test parser::tests::save_pending_entries_flushes_at_field_boundary ... ok [INFO] [stdout] test sections::tests::mentors_entry_ref_suffix_marks_type_entry_ref ... ok [INFO] [stdout] test sections::tests::mentors_draft_marker_is_stripped ... ok [INFO] [stdout] test sections::tests::mentors_legacy_profiles_without_counts_split_on_whitespace ... ok [INFO] [stdout] test sections::tests::mentors_running_status_without_timestamp_parses_as_none ... ok [INFO] [stdout] test sections::tests::mentors_entry_with_count_then_status ... ok [INFO] [stdout] test parser::tests::full_section_parity_emits_structured_entries ... ok [INFO] [stdout] test agent_scan::index::tests::stale_dismissed_suffixes_do_not_consume_active_limit ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 421 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.97s [INFO] [stdout] [INFO] [stderr] Running tests/agent_scan_parity.rs (/opt/rustwide/target/debug/deps/agent_scan_parity-70f568224a697a98) [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test missing_root_returns_empty_snapshot ... ok [INFO] [stdout] test exact_dir_scan_honors_project_and_workflow_filters ... ok [INFO] [stdout] test home_running_record_has_running_marker ... ok [INFO] [stdout] test failed_record_carries_error_and_traceback ... ok [INFO] [stdout] test only_workflow_dirs_filters_records ... ok [INFO] [stdout] test disable_prompt_step_markers ... ok [INFO] [stdout] test mentor_dir_is_walked ... ok [INFO] [stdout] test retried_records_link_via_lineage_fields ... ok [INFO] [stdout] test max_prompt_snippet_bytes_truncates ... ok [INFO] [stdout] test scalar_agent_meta_timestamps_are_normalized_to_lists ... ok [INFO] [stdout] test options_round_trip_through_snapshot ... ok [INFO] [stdout] test bounded_newest_first_limits_completed_without_hiding_incomplete ... ok [INFO] [stdout] test exact_dir_scan_returns_only_requested_valid_unique_dirs ... ok [INFO] [stdout] test malformed_agent_meta_is_skipped ... ok [INFO] [stdout] test bounded_not_before_applies_to_completed_rows_only ... ok [INFO] [stdout] test done_record_parses_done_marker ... ok [INFO] [stdout] test records_are_sorted_deterministically ... ok [INFO] [stdout] test pending_question_marker_is_absent_when_file_missing ... ok [INFO] [stdout] test disable_raw_prompt_snippet ... ok [INFO] [stdout] test scan_returns_one_record_per_artifact_dir ... ok [INFO] [stdout] test pending_question_marker_is_surfaced_when_present ... ok [INFO] [stdout] test running_record_carries_agent_meta ... ok [INFO] [stdout] test stats_count_decode_errors ... ok [INFO] [stdout] test waiting_marker_decode_error_does_not_crash ... ok [INFO] [stdout] test selective_marker_options_skip_payloads_but_keep_done_presence ... ok [INFO] [stdout] test running_record_carries_agent_meta_tag ... ok [INFO] [stdout] test running_record_carries_string_output_variables ... ok [INFO] [stdout] test running_record_carries_wait_completed_at ... ok [INFO] [stdout] test workflow_root_record_has_state_and_steps ... ok [INFO] [stdout] test snapshot_serializes_to_json ... ok [INFO] [stdout] test workflow_state_hidden_is_parsed_and_indexed ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s [INFO] [stdout] [INFO] [stderr] Running tests/bead_event_parity.rs (/opt/rustwide/target/debug/deps/bead_event_parity-f9a41cf968c354c4) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test event_validation_rejects_operation_payload_mismatch ... ok [INFO] [stdout] test reducer_handles_current_mutation_operation_variants ... ok [INFO] [stdout] test cross_stream_dependencies_resolve_after_all_creates ... ok [INFO] [stdout] test legacy_empty_timestamps_still_import_to_valid_events ... ok [INFO] [stdout] test jsonl_import_to_events_reduces_to_byte_compatible_projection ... ok [INFO] [stdout] test event_import_preserves_legacy_defaults_and_corrupt_jsonl_tolerance ... ok [INFO] [stdout] test reducer_removes_plan_children_and_dependency_edges_on_cascade_remove ... ok [INFO] [stdout] test serialized_event_store_fixture_matches_import_and_reduces ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/bead_read_parity.rs (/opt/rustwide/target/debug/deps/bead_read_parity-83139a1264743472) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test doctor_reports_invalid_event_store_without_legacy_fallback ... ok [INFO] [stderr] Running tests/bead_storage_parity.rs (/opt/rustwide/target/debug/deps/bead_storage_parity-ea17c6cb9901d42b) [INFO] [stdout] test read_queries_match_python_contract_ordering ... ok [INFO] [stdout] test event_store_wins_over_stale_legacy_projection ... ok [INFO] [stdout] test event_store_supports_read_queries_without_legacy_projection ... ok [INFO] [stdout] test doctor_reports_orphans_in_stale_legacy_projection ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test import_missing_file_returns_empty_outcome ... ok [INFO] [stdout] test load_config_fixture_matches_python_shape ... ok [INFO] [stdout] test current_schema_fixture_loads_hierarchy_dependencies_and_metadata ... ok [INFO] [stdout] test legend_epic_count_round_trips_jsonl ... ok [INFO] [stdout] test legacy_jsonl_fixtures_get_python_defaults ... ok [INFO] [stdout] test export_current_fixture_is_byte_compatible ... ok [INFO] [stdout] test corrupt_and_empty_fixtures_match_python_tolerance ... ok [INFO] [stdout] test import_from_file_uses_same_parser ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/episode_wire_parity.rs (/opt/rustwide/target/debug/deps/episode_wire_parity-1f4defedbc0ca56d) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test v1_episode_fixture_deserializes_with_legacy_defaults ... ok [INFO] [stdout] test python_episode_fixture_deserializes_into_rust_type ... ok [INFO] [stdout] test rust_json_equals_python_episode_fixture ... 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] Running tests/git_query_parity.rs (/opt/rustwide/target/debug/deps/git_query_parity-9cf1fe63607ea86c) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test git_query_wire_schema_version_is_one ... ok [INFO] [stdout] test derive_workspace_name_returns_none_when_both_inputs_empty ... ok [INFO] [stdout] test derive_workspace_name_https_remote_without_dot_git_suffix ... ok [INFO] [stdout] test derive_workspace_name_falls_back_to_root_path_when_remote_blank ... ok [INFO] [stdout] test derive_workspace_name_ssh_remote_with_dot_git_suffix ... ok [INFO] [stdout] test derive_workspace_name_falls_back_to_root_path_when_remote_none ... ok [INFO] [stdout] test derive_workspace_name_remote_dot_git_only_returns_none ... ok [INFO] [stdout] test parse_branch_name_simple_value ... ok [INFO] [stdout] test parse_branch_name_strips_surrounding_whitespace ... ok [INFO] [stdout] test parse_branch_name_detached_head_returns_none ... ok [INFO] [stdout] test derive_workspace_name_path_like_remote ... ok [INFO] [stdout] test parse_branch_name_empty_stdout_returns_none ... ok [INFO] [stdout] test derive_workspace_name_remote_takes_priority_over_root ... ok [INFO] [stdout] test git_name_status_entry_wire_serializes_to_python_shape ... ok [INFO] [stdout] test git_name_status_entry_wire_round_trips_through_json ... ok [INFO] [stdout] test parse_branch_name_whitespace_only_returns_none ... ok [INFO] [stdout] test parse_conflicted_files_preserves_path_order ... ok [INFO] [stdout] test parse_conflicted_files_strips_blank_lines ... ok [INFO] [stdout] test parse_conflicted_files_empty_stdout_returns_empty_list ... ok [INFO] [stdout] test parse_conflicted_files_only_blank_lines_returns_empty ... ok [INFO] [stdout] test parse_local_changes_clean_tree_returns_none ... ok [INFO] [stdout] test parse_local_changes_dirty_tree_returns_stripped_text ... ok [INFO] [stdout] test parse_local_changes_whitespace_only_returns_none ... ok [INFO] [stdout] test parse_name_status_copy_with_score_carries_paired_paths ... ok [INFO] [stdout] test parse_name_status_skips_empty_status_tokens ... ok [INFO] [stdout] test parse_name_status_empty_stream_returns_empty_list ... ok [INFO] [stdout] test parse_name_status_rename_with_score_carries_paired_paths ... ok [INFO] [stdout] test parse_name_status_mixed_simple_and_rename_in_one_stream ... ok [INFO] [stdout] test parse_name_status_trailing_nul_is_ignored ... ok [INFO] [stdout] test parse_name_status_simple_status_letters ... ok [INFO] [stdout] test parse_name_status_truncated_rename_falls_back_to_single_path ... ok [INFO] [stdout] test derive_workspace_name_https_remote_with_dot_git_suffix ... ok [INFO] [stdout] test parse_name_status_truncated_status_only_drops_entry ... ok [INFO] [stdout] [INFO] [stderr] Running tests/golden_corpus_parity.rs (/opt/rustwide/target/debug/deps/golden_corpus_parity-12917dc8b301fde5) [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test archive_corpus_matches_python_golden_after_end_line_normalization ... ok [INFO] [stdout] test rust_real_end_line_is_strictly_greater_than_python_placeholder ... ok [INFO] [stdout] test project_corpus_matches_python_golden_after_end_line_normalization ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/notification_store_parity.rs (/opt/rustwide/target/debug/deps/notification_store_parity-bc44ab0fbe2a8349) [INFO] [stdout] [INFO] [stdout] running 26 tests [INFO] [stdout] test notification_json_shape_uses_expected_wire_keys ... ok [INFO] [stdout] test notification_loads_legacy_defaults_and_skips_bad_rows ... ok [INFO] [stdout] test notification_missing_file_returns_empty_snapshot ... ok [INFO] [stdout] test notification_append_counts_returns_metadata_without_rows ... ok [INFO] [stdout] test notification_phase1_contract_fixture_loads_with_expected_counts ... ok [INFO] [stdout] test notification_append_and_rewrite_round_trip_jsonl ... ok [INFO] [stdout] test notification_counts_match_python_priority_rules ... ok [INFO] [stdout] test notification_append_counts_produces_byte_identical_jsonl ... ok [INFO] [stdout] test notification_expire_snoozes_handles_aware_and_naive_timestamps ... ok [INFO] [stdout] test notification_dismiss_agent_completions_no_op_when_already_dismissed ... ok [INFO] [stdout] test notification_dismiss_agent_completions_matching_agents_is_completion_only ... ok [INFO] [stdout] test notification_dismiss_matching_agents_covers_notification_action_shapes ... ok [INFO] [stdout] test notification_rewrite_counts_preserves_unseen_rows ... ok [INFO] [stdout] test notification_rewrite_counts_returns_metadata_without_rows ... ok [INFO] [stdout] test notification_dismiss_matching_agents_covers_user_agent_view_error_report ... ok [INFO] [stdout] test notification_rewrite_all_preserves_unseen_rows ... ok [INFO] [stdout] test notification_dismiss_agent_completions_matches_user_agent_jump_and_error ... ok [INFO] [stdout] test notification_mute_and_snooze_follow_python_semantics ... ok [INFO] [stdout] test notification_rewrite_counts_produces_byte_identical_jsonl ... ok [INFO] [stdout] test notification_batch_dismiss_and_rewrite_all_update_the_store ... ok [INFO] [stdout] test notification_rewrite_preserves_unseen_rows ... ok [INFO] [stdout] test notification_state_update_counts_skips_returned_snapshot ... ok [INFO] [stdout] test notification_state_updates_mutate_only_intended_rows ... ok [INFO] [stdout] test notification_tags_round_trip_through_append_load_and_rewrite ... ok [INFO] [stdout] test notification_append_plus_rewrite_counts_concurrency_preserves_valid_rows ... ok [INFO] [stdout] test notification_append_plus_rewrite_concurrency_preserves_valid_rows ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s [INFO] [stdout] [INFO] [stderr] Running tests/python_wire_parity.rs (/opt/rustwide/target/debug/deps/python_wire_parity-55953beae710c771) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stderr] Running tests/query_evaluator_parity.rs (/opt/rustwide/target/debug/deps/query_evaluator_parity-c5bd4132f2d77b8d) [INFO] [stdout] test python_fixture_deserializes_into_rust_type ... ok [INFO] [stdout] test rust_json_equals_python_fixture ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test ancestor_walk_avoids_cycles ... ok [INFO] [stdout] test persistent_corpus_matches_golden_matrix_samples ... ok [INFO] [stdout] test persistent_corpus_reuses_derived_data_across_repeated_evaluations ... ok [INFO] [stdout] test substring_semantics_not_regex ... ok [INFO] [stdout] test evaluation_matrix_boolean_ops ... ok [INFO] [stdout] test batch_evaluation_is_idempotent ... ok [INFO] [stdout] test evaluation_matrix_status_shorthands ... ok [INFO] [stdout] test persistent_corpus_keeps_ancestor_memo_query_specific ... ok [INFO] [stdout] test evaluation_matrix_property_shorthands ... ok [INFO] [stdout] test evaluation_matrix_escapes_are_literal ... ok [INFO] [stdout] test batch_and_oneshot_agree ... ok [INFO] [stdout] test evaluation_matrix_error_running_shorthands ... ok [INFO] [stdout] test evaluation_matrix_property_filters ... ok [INFO] [stdout] test evaluation_matrix_quoted_strings ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sase_core_rs-f44148e63a74f52d) [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test tests::plan_agent_cleanup_binding_rejects_schema_mismatch ... ok [INFO] [stdout] test tests::query_compile_errors_are_python_value_errors ... ok [INFO] [stdout] test tests::notification_store_binding_rejects_bad_update_shape ... ok [INFO] [stdout] test tests::plan_agent_cleanup_binding_round_trips_json_shape ... ok [INFO] [stdout] test tests::notification_store_counts_binding_omits_rows_and_persists ... ok [INFO] [stdout] test tests::query_handle_bindings_reject_wrong_handle_types ... ok [INFO] [stdout] test tests::query_handles_evaluate_one_query_against_multiple_corpora ... ok [INFO] [stdout] test tests::query_handles_evaluate_multiple_queries_against_one_corpus ... ok [INFO] [stdout] test tests::notification_store_append_and_rewrite_counts_bindings_omit_rows ... ok [INFO] [stdout] test tests::query_handles_match_legacy_one_shot_results ... ok [INFO] [stdout] test tests::notification_store_binding_round_trips_json_shape ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sase_gateway-9601edf354b40fba) [INFO] [stdout] [INFO] [stdout] running 82 tests [INFO] [stdout] test daemon::tests::daemon_mobile_bind_policy_is_skipped_when_mobile_http_disabled ... ok [INFO] [stdout] test daemon::tests::daemon_default_paths_are_host_local_under_sase_home ... ok [INFO] [stdout] test daemon::tests::daemon_host_identity_is_path_safe ... ok [INFO] [stdout] test daemon::tests::daemon_run_root_override_drives_default_socket_path ... ok [INFO] [stdout] test daemon::tests::daemon_socket_path_override_is_preserved ... ok [INFO] [stdout] test push::tests::fcm_payload_contains_hint_only_data ... ok [INFO] [stdout] test push::tests::fcm_provider_posts_expected_http_v1_shape ... ok [INFO] [stdout] test contract::tests::committed_contract_snapshot_is_current ... ok [INFO] [stdout] test routes::tests::event_resume_outside_buffer_returns_resync_required ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_exit_failure_maps_to_unavailable ... ok [INFO] [stdout] test routes::tests::event_resume_after_restart_returns_resync_required ... ok [INFO] [stdout] test routes::tests::attachment_download_requires_gateway_auth ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_xprompt_catalog_returns_new_helper_fields ... ok [INFO] [stdout] test routes::tests::agents_without_token_returns_typed_unauthorized_error ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_changespec_tags_returns_command_output ... ok [INFO] [stdout] test routes::tests::attachment_tokens_are_bound_to_device ... ok [INFO] [stdout] test routes::tests::action_artifacts_are_declared_as_attachments ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_update_exit_codes_map_to_stable_errors ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_not_found_maps_to_helper_not_found ... ok [INFO] [stdout] test routes::tests::helper_host_bridge_errors_map_to_stable_api_codes ... ok [INFO] [stdout] test routes::tests::health_route_returns_stable_record ... ok [INFO] [stdout] test routes::tests::events_without_token_returns_typed_unauthorized_error ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_update_status_returns_command_output ... ok [INFO] [stdout] test routes::tests::event_resume_replays_buffered_records_after_last_event_id ... ok [INFO] [stdout] test routes::tests::events_with_token_returns_sse_response ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_malformed_json_maps_to_unavailable ... ok [INFO] [stdout] test routes::tests::expired_attachment_tokens_return_typed_error ... ok [INFO] [stdout] test routes::tests::command_helper_bridge_update_start_returns_command_output ... ok [INFO] [stdout] test routes::tests::helper_routes_without_token_return_typed_unauthorized_errors ... ok [INFO] [stdout] test routes::tests::notification_state_mutation_without_token_returns_typed_unauthorized_error ... ok [INFO] [stdout] test routes::tests::notification_detail_returns_notes_action_and_attachments ... ok [INFO] [stdout] test routes::tests::notification_detail_not_found_returns_typed_error ... ok [INFO] [stdout] test routes::tests::invalid_and_revoked_tokens_are_unauthorized ... ok [INFO] [stdout] test routes::tests::notification_state_mutation_not_found_returns_typed_error ... ok [INFO] [stdout] test routes::tests::fake_helper_bridge_routes_return_stable_success_shapes ... ok [INFO] [stdout] test routes::tests::command_agent_bridge_routes_return_command_output ... ok [INFO] [stdout] test routes::tests::notification_mark_read_updates_store_and_audits ... ok [INFO] [stdout] test routes::tests::notification_dismiss_updates_store_and_emits_refresh_event ... ok [INFO] [stdout] test routes::tests::pair_start_returns_short_lived_code_without_token ... ok [INFO] [stdout] test routes::tests::notifications_without_token_returns_typed_unauthorized_error ... ok [INFO] [stdout] test routes::tests::pair_finish_rejects_expired_code ... ok [INFO] [stdout] test routes::tests::hitl_actions_write_response_and_dismiss_notification ... ok [INFO] [stdout] test routes::tests::notifications_list_filters_and_orders_newest_first ... ok [INFO] [stdout] test routes::tests::hitl_and_question_action_errors_are_deterministic ... ok [INFO] [stdout] test routes::tests::production_agent_bridge_returns_typed_unavailable_error ... ok [INFO] [stdout] test routes::tests::pair_finish_persists_device_and_returns_token_once ... ok [INFO] [stdout] test routes::tests::notification_detail_mints_short_lived_download_tokens ... ok [INFO] [stdout] test routes::tests::notifications_list_uses_host_action_state ... ok [INFO] [stdout] test routes::tests::push_subscriptions_require_auth ... ok [INFO] [stdout] test routes::tests::production_helper_bridge_returns_typed_unavailable_error ... ok [INFO] [stdout] test server::tests::default_bind_is_loopback ... ok [INFO] [stdout] test routes::tests::unknown_route_returns_typed_not_found_error ... ok [INFO] [stdout] test routes::tests::notifications_list_can_include_dismissed_and_silent_rows ... ok [INFO] [stdout] test routes::tests::session_without_token_returns_typed_unauthorized_error ... ok [INFO] [stdout] test server::tests::explicit_non_loopback_opt_in_is_allowed ... ok [INFO] [stdout] test server::tests::listener_serves_health_over_http ... ok [INFO] [stdout] test server::tests::non_loopback_bind_requires_explicit_opt_in ... ok [INFO] [stdout] test storage::tests::token_pairing_persists_only_hash ... ok [INFO] [stdout] test routes::tests::session_returns_authenticated_device ... ok [INFO] [stdout] test wire::tests::event_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::health_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::mobile_helper_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::mobile_xprompt_catalog_entry_deserializes_legacy_shape ... ok [INFO] [stdout] test wire::tests::mobile_agent_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::error_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::pairing_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::push_hint_mapping_uses_safe_event_projection ... ok [INFO] [stdout] test wire::tests::session_wire_json_snapshot ... ok [INFO] [stdout] test wire::tests::push_subscription_wire_json_snapshot ... ok [INFO] [stdout] test routes::tests::plan_action_approve_writes_response_and_dismisses_notification ... ok [INFO] [stdout] test storage::tests::push_subscription_register_update_and_revoke_is_atomic ... ok [INFO] [stdout] test routes::tests::unsafe_or_oversized_attachments_do_not_receive_tokens ... ok [INFO] [stdout] test routes::tests::push_subscription_duplicate_updates_existing_record ... ok [INFO] [stdout] test routes::tests::test_push_provider_records_hint_attempts ... ok [INFO] [stdout] test routes::tests::push_subscription_validation_and_audit_do_not_leak_provider_token ... ok [INFO] [stdout] test routes::tests::push_subscription_register_list_and_revoke_round_trip ... ok [INFO] [stdout] test server::tests::listener_smoke_exercises_pairing_auth_and_session ... ok [INFO] [stdout] test routes::tests::plan_action_errors_are_deterministic ... ok [INFO] [stdout] test routes::tests::fake_agent_bridge_routes_return_stable_success_shapes ... ok [INFO] [stdout] test routes::tests::question_actions_support_option_and_custom_answers ... ok [INFO] [stdout] test routes::tests::plan_action_run_and_feedback_match_existing_response_shapes ... ok [INFO] [stdout] test routes::tests::mobile_notification_actions_attachment_smoke_harness ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 82 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sase_gateway-03f5e749ced60768) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test tests::parse_agent_bridge_command_short_flag ... ok [INFO] [stdout] test tests::parse_allow_non_loopback_short_flag ... ok [INFO] [stdout] test tests::parse_bind_long_flag ... ok [INFO] [stdout] test tests::parse_contract_out_short_flag ... ok [INFO] [stdout] test tests::parse_push_flags ... ok [INFO] [stdout] test tests::parse_helper_bridge_command_short_flag ... ok [INFO] [stdout] test tests::parse_sase_home_short_flag ... ok [INFO] [stdout] test tests::parse_bind_short_flag ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sase_xprompt_lsp-df8b42f315745484) [INFO] [stdout] [INFO] [stdout] running 23 tests [INFO] [stdout] test catalog_cache::tests::snippet_cache_refreshes_from_helper ... ok [INFO] [stdout] test catalog_cache::tests::snippet_cache_returns_stale_entries_on_helper_failure ... ok [INFO] [stdout] test catalog_cache::tests::snippet_cache_uses_rust_fallback_when_helper_unavailable ... ok [INFO] [stdout] test lsp_convert::tests::converts_editor_range_to_lsp_range ... ok [INFO] [stdout] test lsp_convert::tests::completion_item_uses_replacement_text_edit ... ok [INFO] [stdout] test lsp_convert::tests::converts_sase_snippet_template_to_lsp_snippet_syntax ... ok [INFO] [stdout] test server::tests::detects_snippet_support_from_client_capabilities ... ok [INFO] [stdout] test catalog_cache::tests::direct_launch_keeps_rust_catalog_when_helper_unavailable ... ok [INFO] [stdout] test server::tests::document_eligibility_narrows_plain_markdown ... ok [INFO] [stdout] test catalog_cache::tests::direct_launch_without_plugin_metadata_merges_helper_and_rust_catalogs ... ok [INFO] [stdout] test catalog_cache::tests::wrapper_launch_with_plugin_metadata_uses_fast_rust_catalog ... ok [INFO] [stdout] test server::tests::catalog_invalidation_tracks_xprompt_source_dirs ... ok [INFO] [stdout] test server::tests::definition_returns_none_for_pseudo_or_missing_sources ... ok [INFO] [stdout] test server::tests::definition_uses_definition_path_outside_workspace_root ... ok [INFO] [stdout] test server::tests::completes_xprompt_from_static_catalog ... ok [INFO] [stdout] test server::tests::bare_trigger_snippets_require_client_snippet_support ... ok [INFO] [stdout] test server::tests::xprompt_snippet_completion_returns_one_row_per_match ... ok [INFO] [stdout] test server::tests::diagnostics_for_uri_text_accepts_markdown_local_xprompts ... ok [INFO] [stdout] test server::tests::exposes_hover_diagnostics_code_actions_and_definition ... ok [INFO] [stdout] test server::tests::diagnostics_for_uri_text_honors_memory_long_file_uri ... ok [INFO] [stdout] test server::tests::definition_preserves_catalog_definition_range ... ok [INFO] [stdout] test server::tests::bare_trigger_snippet_completion_uses_snippet_items ... ok [INFO] [stdout] test server::tests::xprompt_snippet_completions_use_single_row_skeletons ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 23 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/sase_xprompt_lsp-f5bd475cf6a8ff88) [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] Running tests/jsonrpc_stdio.rs (/opt/rustwide/target/debug/deps/jsonrpc_stdio-ab8f0dce584ea802) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test stdio_jsonrpc_unsupported_markdown_has_no_xprompt_behavior ... ok [INFO] [stdout] test stdio_jsonrpc_bare_snippet_completion ... ok [INFO] [stdout] test stdio_jsonrpc_frontmatter_diagnostics ... ok [INFO] [stdout] test stdio_jsonrpc_initialize_and_completion ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] Doc-tests sase_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 sase_core_rs [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 sase_gateway [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 sase_xprompt_lsp [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" "7fc80888b9754c16b2adde5ec01af26f538a048b627771ed4799e0603b516bad", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7fc80888b9754c16b2adde5ec01af26f538a048b627771ed4799e0603b516bad", kill_on_drop: false }` [INFO] [stdout] 7fc80888b9754c16b2adde5ec01af26f538a048b627771ed4799e0603b516bad