[INFO] fetching crate gruff-rs 0.5.0...
[INFO] testing gruff-rs-0.5.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate gruff-rs 0.5.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate gruff-rs 0.5.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate gruff-rs 0.5.0
[INFO] tweaked toml for crates.io crate gruff-rs 0.5.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate gruff-rs 0.5.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gruff-rs 0.5.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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | homepage = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 | repository = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gruff-rs` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3
[INFO] running `Command { std: "docker" "start" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", 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" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", 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" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | homepage = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 | repository = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gruff-rs` (manifest) generated 1 warning
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling bstr v1.13.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling clap_derive v4.6.4
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling clap_complete v4.6.9
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling globset v0.4.20
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling ignore v0.4.33
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling gruff-rs v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 34s
[INFO] running `Command { std: "docker" "inspect" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", 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" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | homepage = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 | repository = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gruff-rs` (manifest) generated 1 warning
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling gruff-rs v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 50.14s
[INFO] running `Command { std: "docker" "inspect" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", 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" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:64:12
[INFO] [stderr]    |
[INFO] [stderr] 64 | homepage = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 | repository = "https://github.com/blundergoat/gruff-rs"
[INFO] [stderr]    |              -----------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `gruff-rs` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/gruff-rs/652876e6fbd78818/out/gruff_rs-652876e6fbd78818)
[INFO] [stdout] 
[INFO] [stdout] running 338 tests
[INFO] [stdout] test built_in_rules::secret_rules::pii_rules::tests::phone_placeholder_leaves_realistic_numbers_flagged ... ok
[INFO] [stdout] test built_in_rules::helpers::high_entropy_tests::high_entropy_skips_model_identifiers_without_masking_secrets ... ok
[INFO] [stdout] test built_in_rules::rust_other_rules::path_traversal_rules::tests::strip_prefix_without_canonicalize_is_not_validation ... ok
[INFO] [stdout] test cli::tests::fail_threshold_deserialize_yaml_rejects_bogus ... ok
[INFO] [stdout] test cli::tests::fail_threshold_deserialize_yaml_rejects_never ... ok
[INFO] [stdout] test cli::tests::fail_threshold_from_str_accepts_canonical_values ... ok
[INFO] [stdout] test cli::tests::fail_threshold_from_str_is_case_insensitive_and_trims ... ok
[INFO] [stdout] test cli::tests::fail_threshold_from_str_rejects_legacy_and_typo_values ... ok
[INFO] [stdout] test cli::tests::fail_threshold_round_trips_via_as_str ... ok
[INFO] [stdout] test built_in_rules::rust_other_rules::behavior_rules::tls_sql::tests::format_template_extraction_handles_raw_escaped_and_multiline_literals ... ok
[INFO] [stdout] test source::coverage_tests::is_partial_flags_any_uncovered_discoverable_file ... ok
[INFO] [stdout] test built_in_rules::text_rules::github_metadata_rules::tests::narrow_or_out_of_block_permissions_stay_silent ... ok
[INFO] [stdout] test built_in_rules::text_rules::github_metadata_rules::tests::per_permission_write_is_detected_regardless_of_quoting ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_rejects_missing_schema_version ... ok
[INFO] [stdout] test built_in_rules::helpers::high_entropy_tests::high_entropy_integrity_hashes_include_sha1 ... ok
[INFO] [stdout] test cli::tests::fail_threshold_deserialize_is_case_insensitive ... ok
[INFO] [stdout] test built_in_rules::helpers::high_entropy_tests::high_entropy_structured_predicates_accept_only_inert_shapes ... ok
[INFO] [stdout] test built_in_rules::rust_other_rules::path_traversal_rules::tests::canonicalize_with_containment_check_counts_as_validation ... ok
[INFO] [stdout] test tests::calibration::json_report_uses_schema_version ... ok
[INFO] [stdout] test built_in_rules::text_rules::github_metadata_rules::tests::inline_write_all_scalar_is_detected_regardless_of_quoting ... ok
[INFO] [stdout] test built_in_rules::secret_rules::pii_rules::tests::phone_placeholder_covers_555_exchange_and_reserved_area_codes ... ok
[INFO] [stdout] test cli::tests::fail_threshold_from_str_rejects_never_with_documented_message ... ok
[INFO] [stdout] test tests::config_and_selectors::config::minimum_severity_accepts_valid_keys_and_values ... ok
[INFO] [stdout] test tests::config_and_selectors::config::plain_path_patterns_match_segment_boundaries ... ok
[INFO] [stdout] test built_in_rules::rust_other_rules::behavior_rules::tls_sql::tests::sql_template_shape_gate_uses_literal_fragments_only ... ok
[INFO] [stdout] test built_in_rules::helpers::high_entropy_tests::high_entropy_predicates_keep_jwt_segment_flaggable ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_accepts_schema_version_and_records_it ... ok
[INFO] [stdout] test tests::config_and_selectors::config::accepted_abbreviations_replace_builtins ... ok
[INFO] [stdout] test tests::config_and_selectors::config::minimum_severity_empty_block_is_accepted ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_rejects_wrong_schema_version ... ok
[INFO] [stdout] test tests::config_and_selectors::config::minimum_severity_rejects_unknown_threshold_values ... ok
[INFO] [stdout] test tests::config_and_selectors::config::minimum_severity_rejects_non_gating_subcommands ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_rejects_unknown_root_keys_and_rule_ids ... ok
[INFO] [stdout] test tests::config_and_selectors::config::minimum_severity_rejects_non_mapping_shape ... ok
[INFO] [stdout] test tests::config_and_selectors::config::unsupported_config_extensions_are_rejected ... ok
[INFO] [stdout] test cli::tests::fail_threshold_deserialize_accepts_canonical_lowercase ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_rejects_threshold_maps_and_unknown_options ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_list_rules_includes_configured_rules_and_selectors ... ok
[INFO] [stdout] test tests::config_and_selectors::config::threshold_overrides_require_one_value_and_one_severity ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_config_rejects_duplicate_id_missing_prefix_bad_regex_and_bad_settings ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::fingerprint_stable_for_custom_rule ... ok
[INFO] [stdout] test tests::config_and_selectors::exclusions::exclusion_config_reuses_rule_selector_parsing ... ok
[INFO] [stdout] test tests::config_and_selectors::exclusions::exclusion_config_rejects_missing_reason_unknown_rule_and_bad_shapes ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::fail_on_new_forces_fail_over_warn_gate ... ok
[INFO] [stdout] test tests::config_and_selectors::exclusions::exclusion_filter_counts_rule_path_message_and_unmatched_entries ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_config_error_diagnostic_is_exit_2 ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_drives_classify_precedence_over_fail_on ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_evaluate_is_pure_over_severity_counts ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_scope_all_counts_pre_baseline_findings ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_scope_new_requires_applied_baseline ... ok
[INFO] [stdout] test tests::calibration::rule_calibration_matrix_covers_every_rule ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::accepted_abbreviations_match_family_contract ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::default_config_emits_every_built_in_rule ... ok
[INFO] [stdout] test tests::config_and_selectors::config::legacy_config_byte_identical_rule_blocks_remain_selector_neutral ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::default_config_explains_ignores_and_baseline_starting_point ... ok
[INFO] [stdout] test tests::config_and_selectors::config::rust_yaml_config_is_the_only_default_config_name ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::default_config_round_trips_through_load_config ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::generated_config_reproduces_builtin_rule_defaults ... ok
[INFO] [stderr] gruff-rs: could not parse existing /tmp/.tmpCFYvBO/malformed.yaml for ignore preservation (did not find expected ',' or ']' at line 2 column 1, while parsing a flow sequence at line 1 column 8); proceeding with defaults only
[INFO] [stdout] test tests::config_and_selectors::init_command::init_preserves_existing_ignore_entries_on_regenerate ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::init_preserves_existing_minimum_severity_on_regenerate ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::read_existing_minimum_severity_returns_empty_for_missing_or_malformed ... ok
[INFO] [stdout] test tests::config_and_selectors::rule_registry::file_length_keeps_ratified_substantive_line_bar ... ok
[INFO] [stdout] test tests::config_and_selectors::config::standalone_severity_override_changes_security_finding ... ok
[INFO] [stdout] test tests::config_and_selectors::rule_registry::registry_rejects_duplicate_rule_ids_and_sorts_definitions ... ok
[INFO] [stdout] test tests::config_and_selectors::rule_registry::rule_catalogue_process_command_related_rules_use_canonical_ids ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::read_existing_ignore_patterns_returns_empty_for_missing_or_malformed ... ok
[INFO] [stdout] test tests::config_and_selectors::rule_registry::rule_catalogue_rejects_dangling_related_rules ... ok
[INFO] [stdout] test tests::config_and_selectors::rule_registry::registry_reserves_custom_namespace ... ok
[INFO] [stdout] test tests::config_and_selectors::secret_previews::config_secret_preview_accepts_documented_camel_case_key ... ok
[INFO] [stdout] test tests::config_and_selectors::secret_previews::secret_preview_mitigations_name_the_accepted_suppression_key ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::default_disabled_rules_need_explicit_opt_in ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::enabled_builtin_families_tracks_rule_selectors ... ok
[INFO] [stdout] test tests::config_and_selectors::secret_previews::config_secret_preview_rejects_undocumented_snake_case_key ... ok
[INFO] [stdout] test tests::config_and_selectors::config::config_disables_rules_and_overrides_threshold ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_comments_scope_handles_nested_block_comments ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::list_rules_selector_preview_is_deterministic ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_comments_scope_matches_comments_not_strings ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::selector_config_supports_empty_pillar_prefix_exact_negative_and_custom_blocks ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::selector_set_matches_registry_with_negative_precedence ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::selector_config_rejects_unknown_pillar_prefix_exact_and_shapes ... ok
[INFO] [stdout] test tests::parser::masker_invariants::comments_pass_the_string_mask_then_fall_to_the_comment_mask ... ok
[INFO] [stdout] test tests::parser::masker_invariants::char_literal_holding_a_quote_does_not_swallow_following_code ... ok
[INFO] [stdout] test tests::parser::masker_invariants::extract_rust_comments_reports_lines_and_doc_flags ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_findings_pass_selection_exclusion_baseline_and_diff ... ok
[INFO] [stdout] test tests::parser::masker_invariants::doc_comment_quote_does_not_open_a_string ... ok
[INFO] [stdout] test tests::parser::masker_invariants::lifetimes_are_not_masked_as_char_literals ... ok
[INFO] [stdout] test tests::parser::masker_invariants::extracted_comment_lines_stay_in_bounds ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_include_exclude_paths_are_honored ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_no_match_is_ok ... ok
[INFO] [stdout] test tests::parser::masker_invariants::string_literal_contents_are_masked ... ok
[INFO] [stdout] test tests::parser::masker_invariants::maskers_preserve_byte_length_and_newline_offsets ... ok
[INFO] [stdout] test tests::parser::masker_invariants::rust_masking_preserves_non_ascii_byte_offsets_and_nested_comments ... ok
[INFO] [stdout] test tests::parser::masker_invariants::serde_default_reference_survives_as_a_call_site ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_text_scope_emits_deterministic_findings_with_builtins ... ok
[INFO] [stdout] test tests::parser::masker_invariants::masking_is_idempotent ... ok
[INFO] [stdout] test tests::config_and_selectors::custom_rules::custom_rule_rust_code_scope_masks_strings_and_comments ... ok
[INFO] [stdout] test tests::config_and_selectors::init_command::generated_config_disables_opt_in_rules ... ok
[INFO] [stdout] test tests::config_and_selectors::config::standalone_severity_override_changes_dependency_finding ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::gate_block_parses_strictly ... ok
[INFO] [stdout] test tests::config_and_selectors::exclusions::report_level_exclusions_hide_findings_without_skipping_discovery ... ok
[INFO] [stdout] test tests::config_and_selectors::gate::shared_analysis_does_not_force_gate_diagnostics_on_summary_consumers ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::exact_rust_rule_selector_does_not_emit_neighbor_families ... ok
[INFO] [stdout] test tests::config_and_selectors::secret_previews::config_secret_previews_preserve_legacy_suppression_without_serializing_alias ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::selected_rules_keep_rust_parse_when_rule_needs_ast ... ok
[INFO] [stdout] test tests::config_and_selectors::selectors::selected_text_only_rules_skip_rust_parse_work ... ok
[INFO] [stdout] test tests::project_tests::project_rules::architecture_rules_flag_module_shape_and_public_surface ... ok
[INFO] [stdout] test tests::project_tests::dead_code::dead_code_project_candidates_use_conservative_cross_file_evidence ... ok
[INFO] [stdout] test tests::project_tests::dead_code::dead_code_partial_context_suppresses_cross_file_candidate ... ok
[INFO] [stdout] test tests::project_tests::dead_code::dead_code_diff_patch_partial_context_suppresses_candidate ... ok
[INFO] [stdout] test tests::project_tests::dead_code::dead_code_single_file_crate_reports_unused_private_item_on_narrow_path ... ok
[INFO] [stdout] test tests::renderers::dashboard::dashboard_scan_rejects_absolute_or_escaping_paths ... ok
[INFO] [stdout] test tests::project_tests::dead_code::project_dead_code_ignores_comment_mentions_and_test_cfg_helpers ... ok
[INFO] [stdout] test tests::renderers::output::github_renderer_escapes_annotation_properties ... ok
[INFO] [stdout] test tests::renderers::output::github_renderer_is_unchanged_for_hostile_markdown_report ... ok
[INFO] [stdout] test tests::renderers::dashboard::dashboard_scan_rejects_symlink_pointing_outside_root ... ok
[INFO] [stdout] test tests::renderers::output::markdown_renderer_keeps_hostile_finding_fields_in_one_inert_bullet ... ok
[INFO] [stdout] test tests::renderers::output::report_renderers_escape_and_preserve_contracts ... ok
[INFO] [stdout] test tests::renderers::output::summary_top_file_limit_is_not_capped_by_score_report ... ok
[INFO] [stdout] test tests::project_tests::dead_code::project_dead_code_skips_attribute_exported_and_allowed_items ... ok
[INFO] [stdout] test tests::renderers::pillar_sections::html_pillars_section_matches_canonical_contract ... ok
[INFO] [stdout] test tests::renderers::output::text_renderers_surface_ignored_paths_and_baseline_guidance ... ok
[INFO] [stdout] test tests::renderers::pillar_sections::markdown_pillars_section_matches_canonical_contract ... ok
[INFO] [stdout] test tests::renderers::pillar_sections::non_score_pillars_are_inapplicable_and_excluded_from_composite ... ok
[INFO] [stdout] test tests::renderers::pillar_sections::pillar_ties_sort_by_canonical_label_not_enum_order ... ok
[INFO] [stdout] test tests::renderers::pillar_sections::summary_json_pillar_shape_includes_canonical_fields_with_penalty ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_location_ignores_column_without_start_line ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_contract_covers_rules_locations_levels_and_metadata ... ok
[INFO] [stdout] test tests::project_tests::dead_code_coverage::dead_code_partial_context_suppresses_candidate_when_rust_read_fails ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_maps_diagnostics_to_invocation_notifications ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_marks_clean_invocation_successful ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_suppression_results_carry_external_justification ... ok
[INFO] [stdout] test tests::project_tests::dead_code_coverage::project_dead_code_suppressed_when_a_sibling_fails_to_parse ... ok
[INFO] [stdout] test tests::project_tests::project_model::missing_readme_is_project_scoped ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_uri_encodes_reserved_path_characters ... ok
[INFO] [stdout] test tests::project_tests::project_model::project_model_handles_missing_and_invalid_cargo_metadata ... ok
[INFO] [stdout] test tests::renderers::sarif::sarif_parse_error_keeps_text_rule_results ... ok
[INFO] [stdout] test tests::renderers::sensitive_data::private_key_scan_survives_multibyte_context_window ... ok
[INFO] [stdout] test tests::project_tests::dead_code_coverage::project_dead_code_honors_module_level_allow_dead_code ... ok
[INFO] [stdout] test tests::project_tests::project_rules::architecture_rules_accept_small_modules_and_validate_threshold ... ok
[INFO] [stdout] test tests::project_tests::dead_code::dead_code_partial_context_coverage_tracks_actual_rust_file_universe ... ok
[INFO] [stdout] test tests::project_tests::project_rules::dependency_rules_accept_clean_manifest_and_config_threshold ... ok
[INFO] [stdout] test tests::project_tests::project_rules::dependency_rules_flag_local_manifest_and_lockfile_posture ... ok
[INFO] [stdout] test tests::project_tests::project_rules::dependency_rules_scan_target_specific_manifest_tables ... ok
[INFO] [stdout] test tests::project_tests::project_rules::missing_readme_accepts_common_case_variants ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::cfg_test_items_are_test_context_but_cfg_attr_is_not_a_gate ... ok
[INFO] [stdout] test tests::renderers::output::report_json_keeps_deterministic_finding_order ... ok
[INFO] [stdout] test tests::project_tests::project_model::project_model_indexes_manifest_modules_items_and_calls_deterministically ... ok
[INFO] [stdout] test tests::renderers::sensitive_data::disabling_gcp_rule_keeps_generic_private_key_coverage ... ok
[INFO] [stdout] test tests::renderers::sensitive_data::identity_independent_sensitive_metadata_uses_zero_payload_markers ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::high_entropy_string_skips_structured_non_secret_values ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::line_rules_skip_prose_in_comments ... ok
[INFO] [stdout] test tests::renderers::sensitive_data::sensitive_data_renderers_do_not_leak_new_secret_values ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::dead_private_function_ignores_comment_and_string_mentions ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::rustdoc_function_guards::function_docs_accept_only_supported_outer_rustdoc ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::rustdoc_function_guards::function_docs_use_block_rustdoc_for_every_rule ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::rustdoc_function_guards::function_length_excludes_rustdoc_and_attributes ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::rustdoc_function_guards::missing_public_doc_recognizes_block_rustdoc ... ok
[INFO] [stdout] test tests::rule_behaviours::comment_masking_guards::unreachable_code_ignores_terminator_mentions_in_comments ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::api_key_pattern_ignores_words_ending_in_sk ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::boolean_prefix_accepts_idioms_and_flags_passive ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::safety_rationale_guards::nearby_safety_rationale_accepts_case_and_multiline_comments ... ok
[INFO] [stdout] test tests::renderers::dashboard::dashboard_scan_preserves_cwd_and_report_paths ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::safety_rationale_guards::nearby_safety_rationale_follows_block_comment_boundaries ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::external_public_rules_skip_crate_visible_items ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::safety_rationale_guards::same_line_safety_rationale_ignores_string_literals ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::safety_rationale_guards::safety_rationale_examples_match_documented_contract ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::safety_rationale_guards::nearby_safety_rationale_stops_at_code_and_sixteen_lines ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::function_length_skips_declarative_vec_body ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::high_entropy_string_keeps_real_secret_shapes ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::high_entropy_string_skips_integrity_hashes ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::path_traversal_reaches_accessor_receivers_and_let_mut_bindings ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::mixed_cfg_any_test_feature_stays_production_reachable ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::network_security_test_context_guards::network_security_test_context_policy_matrix ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::network_security_test_context_guards::unsafe_deserialization_reports_turbofish_sinks ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::process_command_silent_after_char_literal_quote ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::unnecessary_clone_candidate_skips_consumed_or_owned_uses ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::unnecessary_clone_candidate_skips_test_context ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::unwrap_expect_skips_cfg_test_module ... ok
[INFO] [stdout] test tests::rule_behaviours::false_positive_guards::api_key_pattern_still_reports_a_real_vendor_key ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::naming_options_round_trip_through_config ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::unsafe_block_ignores_comment_only_examples ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::complexity_rules_ignore_comment_keywords_and_question_marks ... ok
[INFO] [stdout] test tests::rule_behaviours::idiomatic_handling::unsafe_block_still_sees_safety_rationale_comment ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::long_test_ignores_setup_before_first_assertion ... ok
[INFO] [stdout] test tests::renderers::sensitive_data::reordered_service_account_key_is_still_reported ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::path_traversal_requires_filesystem_join_and_recognises_segment_sanitizer ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::tls_true_binding_does_not_leak_across_functions ... ok
[INFO] [stdout] test tests::rule_behaviours::mission_retune_guards::tls_true_binding_flags_within_one_function ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::file_length_counts_comment_markers_inside_strings_as_code ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::file_length_ignores_comments_after_a_quote_char_literal ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::file_length_leaves_block_comment_padding_free ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::process_command_requires_std_import_provenance ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::file_length_skips_markdown_shell_and_agent_hooks_not_source ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_container_images_require_digest_pins ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_broad_permissions_ignores_step_inputs ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_directory_discovery_keeps_action_metadata_out_of_scope ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_events_require_top_level_on_placement ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_explicit_action_metadata_applies_shared_step_rules_only ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_invalid_utf8_uses_existing_read_error_path ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_remote_shell_requires_payload_reaching_shell ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_remote_shell_tracks_split_block_pipelines ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_retained_pypa_action_is_a_silent_negative ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_security_events_accept_scalar_on_values ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_step_keys_accept_quoted_and_indented_block_forms ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::github_actions_uses_requires_step_placement ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::process_command_ignores_name_suffixes_and_comment_risk ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::file_length_no_config_gate_matches_ratified_bar ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::process_command_skips_builders_and_fixed_pid_cleanup ... ok
[INFO] [stdout] test tests::rule_behaviours::release_noise_guards::short_variable_accepts_aws_context_abbreviations_only ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::rule_fixtures_prove_complexity_and_naming_rules ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::dead_code_unused_private_function_recognises_indirect_references ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::file_length_skips_dependency_lockfiles ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::format_in_loop_skips_static_probe_and_report_message_construction ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::opt_in_unwrap_rule_skips_assertion_subject_but_reports_setup_unwrap ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::performance_loop_rules_ignore_loop_words_in_comments ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::placeholder_identifier_checks_loop_and_closure_bindings ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::sensitive_data_rules_skip_common_placeholder_and_detector_contexts ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::short_variable_skips_short_lived_bindings ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::short_variable_uses_configured_abbreviations ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_rejects_value_interpolation_beside_placeholder_list ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::concurrency_rules_flag_narrow_async_and_channel_patterns ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::error_handling_rules_flag_production_hazards_and_skip_tests ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::performance_rules_flag_loop_scoped_hotspots ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_run_emits_per_rule_deltas_with_introduced_and_removed_counts ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::lock_across_await_requires_guard_shaped_acquisitions ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::external_public_module_declaration_uses_module_file_docs ... ok
[INFO] [stdout] test tests::rule_behaviours::rust_rules::rule_fixtures_prove_security_sensitive_and_test_quality_rules ... ok
[INFO] [stdout] test tests::scenarios::baseline::outcome_b_keeps_structured_pii_baseline_matching_byte_compatible ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_keeps_supported_statement_families ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_handles_fixed_placeholder_arity ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_keeps_attack_shapes ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_proof_is_scoped_to_current_function_and_exact_name ... ok
[INFO] [stdout] test tests::rule_behaviours::rubric_false_positive_guards::unnecessary_clone_candidate_skips_standalone_call_argument ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_skips_non_sql_format_calls ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_keeps_unbounded_identifier_interpolation ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_requires_sql_shapes_across_supported_sinks ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_deltas_do_not_over_count_duplicate_findings ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_generation_and_exact_suppression_are_stable ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_generation_and_failure_modes_are_reported_cleanly ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_tri_state_all_new_and_no_baseline_short_circuit ... ok
[INFO] [stdout] test tests::scenarios::baseline::baseline_tri_state_counts_classify_new_unchanged_absent ... ok
[INFO] [stdout] test tests::scenarios::baseline::full_tree_run_produces_no_per_rule_deltas ... ok
[INFO] [stdout] test tests::rule_behaviours::sql_dynamic_query_guards::sql_dynamic_query_flags_from_less_select ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_api_key_pattern_detects_common_formats ... ok
[INFO] [stdout] test tests::scenarios::diff::cli::diff_flags_accept_changed_region_forms ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::changed_region_hunk_scope_excludes_signature_only_finding ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::changed_region_symbol_scope_keeps_signature_finding_for_changed_body ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_complexity_metrics_size_skip_test_context ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_diagnostics_are_sarif_notifications_without_failed_execution ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_filter_emits_per_rule_deltas_for_inside_and_outside_findings ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_filter_excludes_context_lines ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_dead_code_reports_unused_generic_functions ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_filter_keeps_only_changed_lines_and_line_less_findings ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_dead_code_skips_test_attr_and_main ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_hardcoded_env_value_detects_structured_config_keys ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_accepts_flags_before_and_after_paths ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_capabilities_advertise_gruff_hook_v1 ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_hardcoded_env_value_skips_test_fixture_strings ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_narrow_security_rules_have_false_positive_guards ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_diff_base_export_handles_non_ascii_filenames ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_secret_rng_rule_has_false_positive_guards ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_security_process_command_detects_code_not_fixture_text ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_diff_requires_the_unsafe_git_opt_in ... ok
[INFO] [stdout] test tests::scenarios::diff::changed_ranges::changed_ranges_symbol_scope_widens_to_enclosing_function ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_security_rubric_improvements_have_false_positive_guards ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_stable_identity_survives_line_shift_and_measured_value_change ... ok
[INFO] [stdout] test tests::scenarios::diff::parser::diff_patch_parser_handles_quoted_paths_and_plus_content_lines ... ok
[INFO] [stdout] test tests::scenarios::diff::changed_ranges::no_baseline_resurfaces_baselined_findings_in_changed_region ... ok
[INFO] [stdout] test tests::scenarios::diff::parser::diff_patch_parser_maps_new_side_lines_for_renames_crlf_and_deletions ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_naming_short_variable_ignores_underscore_binding ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_process_command_records_risk_signals ... ok
[INFO] [stdout] test tests::scenarios::discovery::check_ignore_engine_matches_discovery ... ok
[INFO] [stdout] test tests::scenarios::diff::changed_ranges::changed_region_json_carries_top_level_suppressed_count_and_scopes_findings ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_analysis_filters_after_baseline_without_failing_on_summary_diagnostic ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_rejects_non_unified_input_before_suppressing_findings ... ok
[INFO] [stdout] test tests::scenarios::diff::filter::diff_patch_scope_all_gate_counts_baselined_findings_in_changed_region ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_baseline_new_only_suppresses_existing_file_scope_and_keeps_new_threshold_crossing ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_changed_region_drops_file_scope_without_anchor_residual ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::detail_json_exposes_structured_payload ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_diff_base_export_handles_newline_filenames ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::detail_text_renders_all_sections_for_an_enriched_rule ... ok
[INFO] [stdout] test tests::scenarios::calibration_extras::calibration_performance_loop_rules_catch_single_line_loops ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::detail_text_skips_optional_sections_for_unenriched_rules ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::unknown_rule_id_errors_with_suggestions ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::unknown_rule_id_with_no_near_match_errors_without_suggestions ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::unknown_rule_suggestion_pool_includes_custom_ids ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_diff_new_only_keeps_a_newly_added_duplicate_line_finding ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_diff_new_only_uses_stable_identity_for_file_scope_thresholds ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_full_scan_emits_file_and_line_scopes_with_remediation_and_metadata ... ok
[INFO] [stdout] test tests::scenarios::diff::hook::hook_reports_ignored_paths_and_config_errors_in_band ... ok
[INFO] [stdout] test tests::scenarios::smoke::scoring_includes_all_static_pillars_and_weights_findings ... ok
[INFO] [stdout] test tests::scenarios::discovery::broad_scan_keeps_invalid_utf8_security_text_fatal ... ok
[INFO] [stdout] test tests::scenarios::discovery::broad_scan_skips_invalid_utf8_low_risk_text_non_fatally ... ok
[INFO] [stdout] test tests::scenarios::discovery::check_ignore_gitignore_matcher_loads_nested_gitignore_files ... ok
[INFO] [stdout] test tests::scenarios::discovery::config_ignore_is_authoritative_for_explicit_file_args ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::config_entry_for_one_command_does_not_leak_to_another ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::custom_rules_cannot_set_exclude_from_score ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::excluded_rule_findings_do_not_affect_composite_penalty ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::excluded_security_rule_diagnostics_are_sorted_by_rule_id ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::excluding_non_security_rule_emits_no_diagnostic ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::fingerprint_byte_identical_to_pre_m02_formula ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::exclude_from_score_rejects_non_boolean_value ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::analyse_resolution_falls_through_cli_then_config_then_default ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::non_excluded_rule_scores_normally ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::report_resolution_returns_none_default_when_unset ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::stable_identity_distinguishes_files ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::stable_identity_distinguishes_rule_ids ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::stable_identity_falls_back_to_message_when_symbol_is_none ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::excluding_security_rule_emits_warning_diagnostic ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::stable_identity_is_invariant_under_line_shifts ... ok
[INFO] [stdout] test tests::scenarios::discovery::config_ignore_is_authoritative_in_diff_patch_mode ... ok
[INFO] [stdout] test tests::scenarios::discovery::discovery_includes_security_relevant_text_names_and_extensions ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_json_omits_per_rule_deltas_unless_populated ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::stable_identity_is_sixteen_hex_chars ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_json_never_includes_hint ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_text_omits_hint_below_threshold ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_text_ranks_rule_deltas_by_absolute_net_then_rule_id ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_text_renders_rule_deltas_before_the_composite_score_line ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::rule_delta_blocks_omit_on_full_tree_runs ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_text_shows_hint_above_threshold ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::summary_text_renders_rule_deltas_above_the_score_line ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::summary_surfaces_per_rule_deltas_in_text_and_json ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::summary_omits_per_rule_deltas_when_absent ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::summary_top_rules_carries_severity_confidence_description ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::analyse_markdown_renders_rule_deltas_before_score_line ... ok
[INFO] [stdout] test tests::scenarios::discovery::explicit_invalid_utf8_file_stays_fatal_and_visible ... ok
[INFO] [stdout] test tests::scenarios::discovery::include_ignored_still_honours_config_ignore ... ok
[INFO] [stdout] test tests::scenarios::summary_enrichment::summary_top_rules_severity_reflects_configured_override ... ok
[INFO] [stdout] test tests::scenarios::discovery::project_ignore_globs_match_external_hidden_directories ... ok
[INFO] [stdout] test tests::scenarios::list_rules_detail::detail_resolves_custom_rule_ids_end_to_end ... ok
[INFO] [stdout] test tests::scenarios::smoke::analysis_finds_core_rust_smells ... ok
[INFO] [stdout] test tests::scenarios::smoke::fixture_scan_contract_preserves_existing_sample_findings ... ok
[INFO] [stdout] test tests::scenarios::smoke::invalid_rust_reports_parse_error_and_keeps_text_rules ... ok
[INFO] [stdout] test tests::scenarios::smoke::parameter_count_threshold_allows_seven_and_flags_eight ... ok
[INFO] [stdout] test tests::scenarios::smoke::parser_handles_raw_strings_macros_impls_and_test_attributes ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::outcome_b_keeps_structured_pii_hook_new_only_identity_compatible ... ok
[INFO] [stdout] test tests::scenarios::stable_identity::outcome_b_keeps_structured_pii_message_and_identity_contract ... ok
[INFO] [stdout] test tests::scenarios::smoke::source_discovery_covers_ignores_text_files_and_missing_paths ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 338 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.77s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/release_security_contract.rs (/opt/rustwide/target/release/build/gruff-rs/24a8f916dacbf815/out/release_security_contract-24a8f916dacbf815)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stderr] error: test failed, to rerun pass `--test release_security_contract`
[INFO] [stdout] test codex_env_permissions_cover_nonstandard_variants ... FAILED
[INFO] [stdout] test live_release_paths_are_pinned_and_least_privilege ... FAILED
[INFO] [stdout] test mutable_action_tag_is_rejected_by_contract ... FAILED
[INFO] [stdout] test unchecked_actionlint_checksum_is_rejected_by_contract ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- codex_env_permissions_cover_nonstandard_variants stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'codex_env_permissions_cover_nonstandard_variants' (1457) panicked at tests/release_security_contract.rs:63:33:
[INFO] [stdout] /opt/rustwide/workdir/.codex/config.toml must be readable: No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58b0b652a271 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58b0b653ef0a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x58b0b652e4ac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58b0b65061e6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58b0b65225a9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x58b0b649dca0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x58b0b6522762 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58b0b6506292 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58b0b64fee19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58b0b6506e9d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x58b0b653f63c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58b0b644f739 - release_security_contract[2b6c07f554fe5351]::read_workspace_text::{closure#0}
[INFO] [stdout]   12:     0x58b0b644fe2d - release_security_contract[2b6c07f554fe5351]::read_workspace_text
[INFO] [stdout]   13:     0x58b0b6452e42 - <release_security_contract[2b6c07f554fe5351]::codex_env_permissions_cover_nonstandard_variants::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x58b0b64910eb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x58b0b649e2c5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x58b0b6497bb4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x58b0b64a1352 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x58b0b652976f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x720296e41dfa - <unknown>
[INFO] [stdout]   20:     0x720296ed53d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- live_release_paths_are_pinned_and_least_privilege stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'live_release_paths_are_pinned_and_least_privilege' (1458) panicked at tests/release_security_contract.rs:63:33:
[INFO] [stdout] /opt/rustwide/workdir/.github/workflows/ci.yml must be readable: No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58b0b652a271 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58b0b653ef0a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x58b0b652e4ac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58b0b65061e6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58b0b65225a9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x58b0b649dca0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x58b0b6522762 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58b0b6506292 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58b0b64fee19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58b0b6506e9d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x58b0b653f63c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58b0b644f739 - release_security_contract[2b6c07f554fe5351]::read_workspace_text::{closure#0}
[INFO] [stdout]   12:     0x58b0b644fe2d - release_security_contract[2b6c07f554fe5351]::read_workspace_text
[INFO] [stdout]   13:     0x58b0b6453795 - <release_security_contract[2b6c07f554fe5351]::live_release_paths_are_pinned_and_least_privilege::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x58b0b64910eb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x58b0b649e2c5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x58b0b6497bb4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x58b0b64a1352 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x58b0b652976f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x720296e41dfa - <unknown>
[INFO] [stdout]   20:     0x720296ed53d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- mutable_action_tag_is_rejected_by_contract stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'mutable_action_tag_is_rejected_by_contract' (1459) panicked at tests/release_security_contract.rs:63:33:
[INFO] [stdout] /opt/rustwide/workdir/.github/workflows/ci.yml must be readable: No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58b0b652a271 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58b0b653ef0a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x58b0b652e4ac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58b0b65061e6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58b0b65225a9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x58b0b649dca0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x58b0b6522762 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58b0b6506292 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58b0b64fee19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58b0b6506e9d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x58b0b653f63c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58b0b644f739 - release_security_contract[2b6c07f554fe5351]::read_workspace_text::{closure#0}
[INFO] [stdout]   12:     0x58b0b644fe2d - release_security_contract[2b6c07f554fe5351]::read_workspace_text
[INFO] [stdout]   13:     0x58b0b6452b3a - <release_security_contract[2b6c07f554fe5351]::mutable_action_tag_is_rejected_by_contract::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x58b0b64910eb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x58b0b649e2c5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x58b0b6497bb4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x58b0b64a1352 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x58b0b652976f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x720296e41dfa - <unknown>
[INFO] [stdout]   20:     0x720296ed53d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- unchecked_actionlint_checksum_is_rejected_by_contract stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'unchecked_actionlint_checksum_is_rejected_by_contract' (1460) panicked at tests/release_security_contract.rs:63:33:
[INFO] [stdout] /opt/rustwide/workdir/scripts/dependency-install.sh must be readable: No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x58b0b652a271 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x58b0b653ef0a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x58b0b652e4ac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x58b0b65061e6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x58b0b65225a9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x58b0b649dca0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x58b0b6522762 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x58b0b6506292 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x58b0b64fee19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x58b0b6506e9d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x58b0b653f63c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x58b0b644f739 - release_security_contract[2b6c07f554fe5351]::read_workspace_text::{closure#0}
[INFO] [stdout]   12:     0x58b0b644fe2d - release_security_contract[2b6c07f554fe5351]::read_workspace_text
[INFO] [stdout]   13:     0x58b0b6455406 - <release_security_contract[2b6c07f554fe5351]::unchecked_actionlint_checksum_is_rejected_by_contract::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x58b0b64910eb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x58b0b649e2c5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x58b0b6497bb4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x58b0b64a1352 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x58b0b652976f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x720296e41dfa - <unknown>
[INFO] [stdout]   20:     0x720296ed53d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     codex_env_permissions_cover_nonstandard_variants
[INFO] [stdout]     live_release_paths_are_pinned_and_least_privilege
[INFO] [stdout]     mutable_action_tag_is_rejected_by_contract
[INFO] [stdout]     unchecked_actionlint_checksum_is_rejected_by_contract
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3", kill_on_drop: false }`
[INFO] [stdout] e80ae7c52596b6b437fe9e287b78a10877e57f6844850743fc8d056e30ce45f3
