[INFO] fetching crate streamweave-attractor 0.3.0...
[INFO] testing streamweave-attractor-0.3.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate streamweave-attractor 0.3.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate streamweave-attractor 0.3.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate streamweave-attractor 0.3.0
[INFO] tweaked toml for crates.io crate streamweave-attractor 0.3.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate streamweave-attractor 0.3.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate streamweave-attractor 0.3.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap v4.5.58
[INFO] [stderr]   Downloaded proptest v1.10.0
[INFO] [stderr]   Downloaded clap_builder v4.5.58
[INFO] [stderr]   Downloaded streamweave v0.10.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e
[INFO] running `Command { std: "docker" "start" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_builder v4.5.58
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling syn v2.0.115
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.58
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling streamweave v0.10.1
[INFO] [stderr]    Compiling streamweave-attractor v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `build_codergen_outcome` is never used
[INFO] [stdout]   --> src/nodes/execute_handler.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn build_codergen_outcome(node: &AttractorNode) -> NodeOutcome {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_handler` is never used
[INFO] [stdout]   --> src/nodes/execute_handler.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub(crate) fn execute_handler(input: &ExecuteHandlerInput) -> Result<NodeOutcome, String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectEdgeInput` is never constructed
[INFO] [stdout]   --> src/nodes/select_edge.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SelectEdgeInput {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_edge` is never used
[INFO] [stdout]   --> src/nodes/select_edge.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) fn select_edge(input: &SelectEdgeInput) -> SelectEdgeOutput {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_condition` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub(crate) fn evaluate_condition(cond: &str, _outcome: &NodeOutcome, context: &RunContext) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_label` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub(crate) fn normalize_label(l: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `best_by_weight_then_lexical` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) fn best_by_weight_then_lexical(edges: Vec<&AttractorEdge>) -> &AttractorEdge {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling streamweave v0.10.1
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling streamweave-attractor v0.3.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `build_codergen_outcome` is never used
[INFO] [stdout]   --> src/nodes/execute_handler.rs:50:15
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) fn build_codergen_outcome(node: &AttractorNode) -> NodeOutcome {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_handler` is never used
[INFO] [stdout]   --> src/nodes/execute_handler.rs:65:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub(crate) fn execute_handler(input: &ExecuteHandlerInput) -> Result<NodeOutcome, String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectEdgeInput` is never constructed
[INFO] [stdout]   --> src/nodes/select_edge.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SelectEdgeInput {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_edge` is never used
[INFO] [stdout]   --> src/nodes/select_edge.rs:38:15
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) fn select_edge(input: &SelectEdgeInput) -> SelectEdgeOutput {
[INFO] [stdout]    |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate_condition` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:114:15
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub(crate) fn evaluate_condition(cond: &str, _outcome: &NodeOutcome, context: &RunContext) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_label` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub(crate) fn normalize_label(l: &str) -> String {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `best_by_weight_then_lexical` is never used
[INFO] [stdout]    --> src/nodes/select_edge.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) fn best_by_weight_then_lexical(edges: Vec<&AttractorEdge>) -> &AttractorEdge {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 02s
[INFO] running `Command { std: "docker" "inspect" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: function `build_codergen_outcome` is never used
[INFO] [stderr]   --> src/nodes/execute_handler.rs:50:15
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub(crate) fn build_codergen_outcome(node: &AttractorNode) -> NodeOutcome {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_handler` is never used
[INFO] [stderr]   --> src/nodes/execute_handler.rs:65:15
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub(crate) fn execute_handler(input: &ExecuteHandlerInput) -> Result<NodeOutcome, String> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelectEdgeInput` is never constructed
[INFO] [stderr]   --> src/nodes/select_edge.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct SelectEdgeInput {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `select_edge` is never used
[INFO] [stderr]   --> src/nodes/select_edge.rs:38:15
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub(crate) fn select_edge(input: &SelectEdgeInput) -> SelectEdgeOutput {
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `evaluate_condition` is never used
[INFO] [stderr]    --> src/nodes/select_edge.rs:114:15
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub(crate) fn evaluate_condition(cond: &str, _outcome: &NodeOutcome, context: &RunContext) -> bool {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `normalize_label` is never used
[INFO] [stderr]    --> src/nodes/select_edge.rs:142:15
[INFO] [stderr]     |
[INFO] [stderr] 142 | pub(crate) fn normalize_label(l: &str) -> String {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `best_by_weight_then_lexical` is never used
[INFO] [stderr]    --> src/nodes/select_edge.rs:152:15
[INFO] [stderr]     |
[INFO] [stderr] 152 | pub(crate) fn best_by_weight_then_lexical(edges: Vec<&AttractorEdge>) -> &AttractorEdge {
[INFO] [stderr]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `streamweave-attractor` (lib) generated 7 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/streamweave_attractor-2c9466e881ac55b5)
[INFO] [stdout] 
[INFO] [stdout] running 157 tests
[INFO] [stdout] test compiler_test::compile_rejects_invalid_entry_node_id ... ok
[INFO] [stdout] test compiler_test::compile_rejects_exec_without_command ... ok
[INFO] [stdout] test compiler_test::compile_trivial_start_exit ... ok
[INFO] [stdout] test compiler_test::compile_pre_push_dot ... ok
[INFO] [stdout] test compiler_test::compile_accepts_valid_entry_node_id_for_resume ... ok
[INFO] [stdout] test compiler_test::compile_err_no_exit ... ok
[INFO] [stdout] test dot_parser_test::err_no_digraph ... ok
[INFO] [stdout] test dot_parser_test::extract_edge_attrs_gets_label_condition_weight ... ok
[INFO] [stdout] test dot_parser_test::parse_identifier_returns_id_and_rest ... ok
[INFO] [stdout] test compiler_test::compile_with_conditional_routing ... ok
[INFO] [stdout] test dot_parser_test::parse_edge_with_label_condition_weight ... ok
[INFO] [stdout] test compiler_test::compile_err_no_start ... ok
[INFO] [stdout] test dot_parser_test::parse_number_parses_positive_and_negative ... ok
[INFO] [stdout] test dot_parser_test::parse_quoted_value_escapes ... ok
[INFO] [stdout] test dot_parser_test::parse_node_goal_gate_max_retries ... ok
[INFO] [stdout] test dot_parser_test::parse_with_comments ... ok
[INFO] [stdout] test dot_parser_test::resolve_handler_from_shape_maps_shapes ... ok
[INFO] [stdout] test dot_parser_test::strip_comments_removes_line_and_block ... ok
[INFO] [stdout] test dot_parser_test::parse_pre_push_dot_all_nodes ... ok
[INFO] [stdout] test dot_parser_test::unescape_quoted_string_handles_escapes ... ok
[INFO] [stdout] test dot_parser_test::parse_identifier_returns_none_for_empty ... ok
[INFO] [stdout] test dot_parser_test::parse_negative_number ... ok
[INFO] [stdout] test dot_parser_test::parse_subgraph_skipped ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::apply_updates_preferred_label ... ok
[INFO] [stdout] test execution_log_io::tests::write_execution_log_partial_omits_finished_at ... ok
[INFO] [stdout] test execution_log_io::tests::load_execution_log_roundtrip_and_resume_state ... ok
[INFO] [stdout] test compiler_test::run_streamweave_graph_trivial_start_exit ... ok
[INFO] [stdout] test dot_parser_test::parse_rankdir_with_semicolon ... ok
[INFO] [stdout] test dot_parser_test::parse_simple_dot ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::node_execute_applies_updates ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::node_execute_skips_wrong_type ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::process_apply_context_updates_item_returns_none_for_wrong_type ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::apply_updates_merges_context ... ok
[INFO] [stdout] test dot_parser_test::parse_node_attrs_builds_node ... ok
[INFO] [stdout] test dot_parser_test::parse_node_default_attrs ... ok
[INFO] [stdout] test nodes::apply_context_updates_test::process_apply_context_updates_item_returns_some_for_valid_input ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::gate_ok_when_not_at_exit ... ok
[INFO] [stdout] test dot_parser_test::parse_resolve_handler_shapes ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::gate_not_ok_when_goal_gate_fail ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::gate_ok_when_goal_gate_success ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::node_execute_skips_wrong_type ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::execute_handler_test::build_codergen_outcome_includes_last_stage ... ok
[INFO] [stdout] test dot_parser_test::parse_value_escape_sequences ... ok
[INFO] [stdout] test dot_parser_test::parse_value_parses_quoted_and_number ... ok
[INFO] [stdout] test nodes::execute_handler_test::codergen_handler ... ok
[INFO] [stdout] test dot_parser_test::parse_multiple_chain_edges ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::goal_gate_passed_false_for_fail ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::goal_gate_passed_for_success_and_partial_success ... ok
[INFO] [stdout] test nodes::execute_handler_test::node_execute_sends_error_on_wrong_type ... ok
[INFO] [stdout] test nodes::check_goal_gates_test::node_execute_checks_gates ... ok
[INFO] [stdout] test nodes::execute_handler_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::execute_handler_test::start_handler ... ok
[INFO] [stdout] test nodes::execute_handler_test::unknown_handler_stub ... ok
[INFO] [stdout] test nodes::execute_handler_test::node_execute_runs_handler ... ok
[INFO] [stdout] test nodes::find_start_test::find_start_id_returns_none_when_no_start ... ok
[INFO] [stdout] test dot_parser_test::apply_graph_attrs_sets_goal ... ok
[INFO] [stdout] test nodes::execute_handler_test::exit_handler ... ok
[INFO] [stdout] test nodes::find_start_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::find_start_test::process_find_start_item_returns_none_for_wrong_type ... ok
[INFO] [stdout] test nodes::fix_node_test::node_execute_forwards_one_item ... ok
[INFO] [stdout] test nodes::fix_node_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::find_start_test::node_execute_skips_wrong_type ... ok
[INFO] [stdout] test nodes::find_start_test::process_find_start_item_returns_some_for_graph_with_start ... ok
[INFO] [stdout] test nodes::parse_dot_test::new_creates_node ... ok
[INFO] [stdout] test nodes::parse_dot_test::process_dot_returns_err_on_invalid ... ok
[INFO] [stdout] test nodes::parse_dot_test::node_execute_emits_error_on_invalid_dot ... ok
[INFO] [stdout] test nodes::parse_dot_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::parse_dot_test::process_parse_dot_item_parse_error_for_invalid_dot ... ok
[INFO] [stdout] test nodes::parse_dot_test::process_parse_dot_item_wrong_type_for_non_string ... ok
[INFO] [stdout] test nodes::select_edge_test::best_by_weight_then_lexical_picks_highest_weight ... ok
[INFO] [stdout] test nodes::select_edge_test::done_when_no_edges_and_success ... ok
[INFO] [stdout] test nodes::parse_dot_test::node_execute_parses_valid_dot ... ok
[INFO] [stdout] test nodes::select_edge_test::evaluate_condition_has_tasks_false ... ok
[INFO] [stdout] test nodes::parse_dot_test::process_parse_dot_item_graph_for_valid_dot ... ok
[INFO] [stdout] test nodes::parse_dot_test::process_dot_parses_valid_dot ... ok
[INFO] [stdout] test nodes::parse_dot_test::node_execute_err_missing_input ... ok
[INFO] [stdout] test nodes::select_edge_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::select_edge_test::evaluate_condition_has_tasks_true ... ok
[INFO] [stdout] test nodes::select_edge_test::normalize_label_strips_prefixes ... ok
[INFO] [stdout] test nodes::select_edge_test::evaluate_condition_outcome_equals ... ok
[INFO] [stdout] test nodes::find_start_test::find_start_id_returns_start_node_id ... ok
[INFO] [stdout] test nodes::find_start_test::new_creates_node ... ok
[INFO] [stdout] test nodes::select_edge_test::node_execute_selects_edge ... ok
[INFO] [stdout] test nodes::find_start_test::node_execute_emits_start_id ... ok
[INFO] [stdout] test nodes::select_edge_test::node_execute_skips_wrong_type ... ok
[INFO] [stdout] test nodes::select_edge_test::done_false_when_no_edges_and_fail ... ok
[INFO] [stdout] test nodes::select_edge_test::select_best_by_weight_then_lexical ... ok
[INFO] [stdout] test nodes::select_edge_test::select_by_condition_outcome_neq ... ok
[INFO] [stdout] test nodes::select_edge_test::select_by_preferred_label ... ok
[INFO] [stdout] test nodes::select_edge_test::select_by_suggested_next_ids ... ok
[INFO] [stdout] test nodes::validate_graph_test::node_execute_emits_error_on_invalid_graph ... ok
[INFO] [stdout] test nodes::validate_graph_test::node_trait_methods ... ok
[INFO] [stdout] test nodes::validate_graph_test::validate_err_no_exit ... ok
[INFO] [stdout] test nodes::validate_graph_test::validate_err_no_start ... ok
[INFO] [stdout] test nodes::validate_graph_test::validate_ok_with_start_and_exit ... ok
[INFO] [stdout] test runner_test::build_prompt_with_context_empty_context_returns_static ... ok
[INFO] [stdout] test runner_test::format_context_for_prompt_empty ... ok
[INFO] [stdout] test runner_test::format_context_for_prompt_includes_keys_sorted ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_fail ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_invalid_json ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_invalid_outcome ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_partial_success ... ok
[INFO] [stdout] test nodes::validate_graph_test::node_execute_sends_error_on_wrong_type ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_success ... ok
[INFO] [stdout] test nodes::validate_graph_test::node_execute_validates_and_forwards ... ok
[INFO] [stdout] test runner_test::parse_agent_json_response_empty ... ok
[INFO] [stdout] test nodes::select_edge_test::select_by_condition_has_tasks ... ok
[INFO] [stdout] test nodes::select_edge_test::select_by_condition_outcome_eq ... ok
[INFO] [stdout] test nodes::select_edge_test::select_unconditional_edge ... ok
[INFO] [stdout] test runner_test::build_prompt_with_context_prepends_context_block ... ok
[INFO] [stdout] test types::attractor_graph_test::find_exit_by_shape ... ok
[INFO] [stdout] test types::attractor_node_test::is_exit_by_id_exit_uppercase ... ok
[INFO] [stdout] test types::attractor_edge_test::clone_edge ... ok
[INFO] [stdout] test types::attractor_node_test::is_exit_by_id_exit ... ok
[INFO] [stdout] test types::attractor_node_test::is_exit_by_shape_msquare_lowercase ... ok
[INFO] [stdout] test types::attractor_node_test::is_start_by_id_start_uppercase ... ok
[INFO] [stdout] test types::attractor_edge_test::construct_edge ... ok
[INFO] [stdout] test types::attractor_graph_test::outgoing_edges_empty ... ok
[INFO] [stdout] test types::attractor_edge_test::edge_with_attrs ... ok
[INFO] [stdout] test types::attractor_node_test::is_start_by_shape_mdiamond_lowercase ... ok
[INFO] [stdout] test types::attractor_node_test::is_start_neither ... ok
[INFO] [stdout] test types::attractor_node_test::is_terminal_when_exit ... ok
[INFO] [stdout] test types::attractor_node_test::is_exit_neither ... ok
[INFO] [stdout] test types::attractor_node_test::is_start_by_id_start ... ok
[INFO] [stdout] test types::attractor_node_test::is_terminal_when_not_exit ... ok
[INFO] [stdout] test types::attractor_node_test::shape_is_start_and_id_helpers ... ok
[INFO] [stdout] test types::attractor_graph_test::find_exit_none ... ok
[INFO] [stdout] test types::execution_state_test::is_done_false_when_unknown_node ... ok
[INFO] [stdout] test types::attractor_graph_test::outgoing_edges ... ok
[INFO] [stdout] test types::node_outcome_test::error_accepts_string ... ok
[INFO] [stdout] test types::graph_payload_test::initial_sets_start_node_and_empty_completed ... ok
[INFO] [stdout] test types::graph_payload_test::from_resume_state_restores_context_and_completed ... ok
[INFO] [stdout] test types::node_outcome_test::error_creates_error_outcome ... ok
[INFO] [stdout] test types::attractor_node_test::is_exit_by_shape_msquare ... ok
[INFO] [stdout] test types::attractor_node_test::is_start_by_shape_mdiamond ... ok
[INFO] [stdout] test types::execution_log::tests::execution_log_serializes_to_json ... ok
[INFO] [stdout] test types::outcome_status_test::display_partial_success ... ok
[INFO] [stdout] test types::outcome_status_test::display_retry ... ok
[INFO] [stdout] test types::execution_log::tests::execution_step_entry_serializes_to_json ... ok
[INFO] [stdout] test types::node_outcome_test::success_accepts_string ... ok
[INFO] [stdout] test types::node_outcome_test::success_creates_success_outcome ... ok
[INFO] [stdout] test types::outcome_status_test::display_error ... ok
[INFO] [stdout] test types::execution_state_test::is_done_when_at_exit ... ok
[INFO] [stdout] test types::resume_state_test::resume_state_roundtrip_serde ... ok
[INFO] [stdout] test types::resume_state_test::construct_resume_state ... ok
[INFO] [stdout] test types::attractor_graph_test::find_start_by_shape ... ok
[INFO] [stdout] test runner_test::run_agent_uses_exit_code_when_stdout_empty_and_exit_nonzero ... ok
[INFO] [stdout] test types::attractor_graph_test::find_start_none ... ok
[INFO] [stdout] test types::outcome_status_test::display_success ... ok
[INFO] [stdout] test types::execution_state_test::is_done_false_when_at_non_exit ... ok
[INFO] [stdout] test types::outcome_status_test::eq_variants ... ok
[INFO] [stdout] test types::resume_state_test::clone_resume_state ... ok
[INFO] [stdout] test runner_test::run_agent_returns_parsed_outcome_when_agent_prints_success_json ... ok
[INFO] [stdout] test runner_test::run_agent_uses_exit_code_when_stdout_empty_and_exit_zero ... ok
[INFO] [stdout] test runner_test::run_agent_returns_error_outcome_when_agent_prints_fail_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 157 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/run_dot.rs (/opt/rustwide/target/debug/deps/run_dot-7c0cf4c8e6c3f831)
[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/integration.rs (/opt/rustwide/target/debug/deps/integration-b04fea28f3cc1c0e)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test integration_lib_minimal_succeeds ... ok
[INFO] [stdout] test integration_lib_test_success_only_succeeds ... ok
[INFO] [stdout] test integration_lib_exec_fail_exit_returns_failure ... ok
[INFO] [stdout] test integration_lib_two_runs_without_resume_both_run_fully ... ok
[INFO] [stdout] test integration_lib_test_out_error_succeeds ... ok
[INFO] [stdout] test integration_lib_pre_push_exec_only_succeeds ... ok
[INFO] [stdout] test integration_exec_fail_exit_dot_fails ... ok
[INFO] [stdout] test integration_test_out_error_dot_succeeds ... ok
[INFO] [stdout] test integration_minimal_dot_succeeds ... ok
[INFO] [stdout] test integration_pre_push_exec_only_dot_succeeds ... ok
[INFO] [stdout] test integration_test_success_only_dot_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.48s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/run_dot_integration.rs (/opt/rustwide/target/debug/deps/run_dot_integration-5eee8c8be270c3f7)
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test resume_from_partial_log ... ok
[INFO] [stdout] test run_dir_writes_execution_log ... ok
[INFO] [stdout] test resume_from_completed_log_returns_already_completed ... ok
[INFO] [stdout] test execution_log_path_writes_execution_log_json ... ok
[INFO] [stdout] test resume_from_execution_log_completes ... ok
[INFO] [stdout] test pre_push_dot_via_run_compiled_graph ... ok
[INFO] [stdout] test codergen_json_response_fail_path ... ok
[INFO] [stdout] test codergen_json_response_success_path ... ok
[INFO] [stdout] test codergen_json_response_partial_success_path ... ok
[INFO] [stdout] test run_dot_dry_run_missing_file_exits_1 ... ok
[INFO] [stdout] test run_dot_execution_log_cli_overrides_env ... ok
[INFO] [stdout] test run_dot_prints_usage_without_args ... ok
[INFO] [stdout] test tdd_codergen_error_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test tdd_cyclic_codergen_error_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test tdd_codergen_success_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test tdd_exec_error_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test tdd_cyclic_exec_error_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test tdd_exec_success_path_graph_completes_within_timeout ... ok
[INFO] [stdout] test run_dot_dry_run_invalid_dot_exits_1 ... ok
[INFO] [stdout] test run_dot_dry_run_valid_dot_exits_0 ... ok
[INFO] [stdout] test test_out_error_dot_error_path_then_fix_to_exit ... ok
[INFO] [stdout] test run_dot_execution_log_env_path_uses_that_path ... ok
[INFO] [stdout] test run_dot_execution_log_cli_default_path_under_stage_dir ... ok
[INFO] [stdout] test run_dot_prints_run_summary_after_pipeline ... ok
[INFO] [stdout] test run_dot_execution_log_env_true_uses_default_path ... ok
[INFO] [stdout] test run_dot_json_outputs_valid_json_with_expected_fields ... ok
[INFO] [stdout] test run_dot_exits_1_for_missing_file ... ok
[INFO] [stdout] test run_dot_execution_log_cli_writes_log_file ... ok
[INFO] [stdout] test run_dot_succeeds_with_minimal_start_exit_dot ... ok
[INFO] [stdout] test run_dot_summary_prints_outcome_step_count_duration ... ok
[INFO] [stdout] test run_dot_execution_log_env_1_uses_default_path ... ok
[INFO] [stdout] test run_dot_resume_cli_completes_from_execution_log ... ok
[INFO] [stdout] test run_dot_timeout_exits_124 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.22s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests streamweave_attractor
[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" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e", kill_on_drop: false }`
[INFO] [stdout] 5a05ffe5af849cc193af13bb245f4ee7cbbb4fc885492c90120bcf6c579fae8e
