[INFO] fetching crate nils-forge-cli 1.21.9...
[INFO] testing nils-forge-cli-1.21.9 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate nils-forge-cli 1.21.9 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate nils-forge-cli 1.21.9
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate nils-forge-cli 1.21.9
[INFO] tweaked toml for crates.io crate nils-forge-cli 1.21.9 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nils-forge-cli 1.21.9 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 nils-forge-cli 1.21.9 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d
[INFO] running `Command { std: "docker" "start" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", 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" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d" "/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" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", 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" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling hybrid-array v0.4.12
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling anyhow v1.0.103
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling jiff v0.2.32
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling nils-build-info v1.21.9
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling memo-map v0.3.3
[INFO] [stderr]    Compiling console v0.16.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling is_executable v1.0.6
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling time v0.3.53
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling minijinja v2.21.0
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling indicatif v0.18.6
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling nils-term v1.21.9
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.7
[INFO] [stderr]    Compiling regex v1.13.0
[INFO] [stderr]    Compiling nils-common v1.21.9
[INFO] [stderr]    Compiling nils-agent-out v1.21.9
[INFO] [stderr]    Compiling nils-markdown v1.21.9
[INFO] [stderr]    Compiling nils-agent-workflow-primitives v1.21.9
[INFO] [stderr]    Compiling nils-forge-cli v1.21.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 39.98s
[INFO] running `Command { std: "docker" "inspect" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", 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" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d" "/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]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling nils-test-support v1.21.9
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling nils-forge-cli v1.21.9 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 23.99s
[INFO] running `Command { std: "docker" "inspect" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", 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" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.09s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/nils-forge-cli/8a20549633ae66dc/out/forge_cli-8a20549633ae66dc)
[INFO] [stdout] 
[INFO] [stdout] running 592 tests
[INFO] [stdout] test backend::tests::backend_program_executable_honours_override ... ok
[INFO] [stdout] test backend::tests::is_rate_limit_stderr_matches_known_phrasings ... ok
[INFO] [stdout] test backend::tests::dry_run_payload_renders_plan ... ok
[INFO] [stdout] test backend::tests::redact_keeps_innocent_strings ... ok
[INFO] [stdout] test backend::tests::redact_and_tail_truncates_to_limit ... ok
[INFO] [stdout] test backend::tests::redact_replaces_bearer_token ... ok
[INFO] [stdout] test backend::tests::redact_replaces_github_personal_token ... ok
[INFO] [stdout] test backend::tests::redact_replaces_gitlab_pat ... ok
[INFO] [stdout] test cli::tests::detect_format_from_argv_defaults_to_text ... ok
[INFO] [stdout] test cli::tests::detect_format_from_argv_finds_json ... ok
[INFO] [stdout] test cli::tests::activity_feed_parses_since_and_limit ... ok
[INFO] [stdout] test cli::tests::activity_events_parses_public_only ... ok
[INFO] [stdout] test cli::tests::activity_summary_parses_defaults_and_limit ... ok
[INFO] [stdout] test cli::tests::activity_commits_parses_user_since_and_limit ... ok
[INFO] [stdout] test backend::tests::redact_replaces_github_oauth_token ... ok
[INFO] [stdout] test cli::tests::detect_format_from_argv_handles_equals_form ... ok
[INFO] [stdout] test cli::tests::inbox_cli_parses_gitlab_host_kind_and_limit ... ok
[INFO] [stdout] test cli::tests::parses_auth_status_with_defaults ... ok
[INFO] [stdout] test cli::tests::parses_dry_run_flag ... ok
[INFO] [stdout] test cli::tests::parses_provider_override ... ok
[INFO] [stdout] test backend::tests::process_runner_non_rate_limit_failure_keeps_generic_kind ... ok
[INFO] [stdout] test cli::tests::lists_every_label_v1_subcommand ... ok
[INFO] [stdout] test cli::tests::parses_global_format_json ... ok
[INFO] [stdout] test cli::tests::pr_create_parses_reviewer_and_label_lists ... ok
[INFO] [stdout] test cli::tests::pr_create_rejects_both_body_and_body_file ... ok
[INFO] [stdout] test cli::tests::inbox_cli_rejects_unknown_item_type ... ok
[INFO] [stdout] test cli::tests::gitlab_host_is_not_global ... ok
[INFO] [stdout] test cli::tests::lists_every_activity_v1_subcommand ... ok
[INFO] [stdout] test cli::tests::pr_review_threads_reply_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::inbox_cli_parses_item_type_for_list_status_next ... ok
[INFO] [stdout] test cli::tests::lists_every_issue_v1_subcommand ... ok
[INFO] [stdout] test cli::tests::pr_review_threads_resolve_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::pr_review_thread_file_parses ... ok
[INFO] [stdout] test config::tests::default_when_no_file_found ... ok
[INFO] [stdout] test cli::tests::rejects_unknown_subcommand ... ok
[INFO] [stdout] test config::tests::defaults_apply_when_neither_explicit_nor_config_set ... ok
[INFO] [stdout] test config::tests::bad_scalar_type_yields_invalid_warning_not_panic ... ok
[INFO] [stdout] test cli::tests::pr_review_threads_list_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::pr_merge_allow_unchecked_tasks_requires_reason ... ok
[INFO] [stdout] test cli::tests::pr_review_validate_subcommand_parses ... ok
[INFO] [stdout] test config::tests::invalid_merge_method_value_warns_and_falls_back ... ok
[INFO] [stdout] test cli::tests::pr_review_threads_bare_id_is_rejected ... ok
[INFO] [stdout] test cli::tests::lists_every_inbox_v1_subcommand ... ok
[INFO] [stdout] test config::tests::loader_walks_upward_to_git_toplevel ... ok
[INFO] [stdout] test cli::tests::pr_review_threads_resolve_rejects_note_and_note_file_together ... ok
[INFO] [stdout] test config::tests::loader_stops_at_git_toplevel_even_if_higher_file_exists ... ok
[INFO] [stdout] test config::tests::invalid_toml_yields_warning_not_error ... ok
[INFO] [stdout] test cli::tests::rejects_legacy_json_boolean_flag ... ok
[INFO] [stdout] test config::tests::merge_method_from_str_round_trip ... ok
[INFO] [stdout] test config::tests::parses_all_known_keys ... ok
[INFO] [stdout] test config::tests::resolution_precedence_explicit_wins_over_config_and_default ... ok
[INFO] [stdout] test envelope::tests::emit_success_text_uses_render_closure ... ok
[INFO] [stdout] test error::tests::exit_code_mapping_matches_spec ... ok
[INFO] [stdout] test envelope::tests::emit_success_writes_json_envelope ... ok
[INFO] [stdout] test error::tests::text_envelope_renders_kind_message_and_optional_detail ... ok
[INFO] [stdout] test config::tests::unknown_top_level_key_emits_one_warning ... ok
[INFO] [stdout] test glab_version::tests::ensure_supported_accepts_pinned_minor ... ok
[INFO] [stdout] test config::tests::unknown_section_key_emits_one_warning_per_key ... ok
[INFO] [stdout] test error::tests::json_envelope_omits_details_when_no_detail ... ok
[INFO] [stdout] test error::tests::json_envelope_carries_schema_ok_false_and_error_block ... ok
[INFO] [stdout] test error::tests::kind_discriminators_match_spec ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_handles_version_keyword ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_handles_v_prefix ... ok
[INFO] [stdout] test glab_version::tests::ensure_supported_rejects_other_majors ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_tolerates_pre_release_suffix ... ok
[INFO] [stdout] test glab_version::tests::ensure_supported_rejects_other_minors ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_rejects_garbage ... ok
[INFO] [stdout] test local::runner::tests::parse_api_pr_number_from_comments_path ... ok
[INFO] [stdout] test local::store::tests::base_timestamp_is_2026_01_01 ... ok
[INFO] [stdout] test cli::tests::lists_every_pr_v1_subcommand ... ok
[INFO] [stdout] test local::runner::tests::api_comments_returns_seeded_pr_comments ... ok
[INFO] [stdout] test local::runner::tests::unsupported_call_is_software_error ... ok
[INFO] [stdout] test local::store::tests::open_creates_repo_and_dirs ... ok
[INFO] [stdout] test local::runner::tests::pr_view_reads_seeded_record ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_two_part_version_assumes_patch_zero ... ok
[INFO] [stdout] test local::runner::tests::create_then_view_round_trips ... ok
[INFO] [stdout] test local::store::tests::read_missing_issue_is_not_found ... ok
[INFO] [stdout] test local::store::tests::clock_ticks_are_monotonic_and_persist ... ok
[INFO] [stdout] test glab_version::tests::parse_version_line_handles_plain_form ... ok
[INFO] [stdout] test local::runner::tests::list_filters_by_state_and_labels_with_and_semantics ... ok
[INFO] [stdout] test local::store::tests::timestamp_advances_seconds_minutes_hours ... ok
[INFO] [stdout] test local::store::tests::timestamp_rolls_over_days_and_months ... ok
[INFO] [stdout] test macros::pr_deliver::tests::build_create_args_falls_back_to_repo_default_branch ... ok
[INFO] [stdout] test local::tests::resolve_slug_strips_local_scheme_and_defaults ... ok
[INFO] [stdout] test local::tests::resolve_store_root_missing_is_unavailable ... ok
[INFO] [stdout] test local::tests::resolve_store_root_prefers_flag ... ok
[INFO] [stdout] test local::store::tests::seeded_pr_record_reads_back ... ok
[INFO] [stdout] test macros::pr_deliver::tests::build_create_args_forwards_test_first_evidence ... ok
[INFO] [stdout] test local::runner::tests::comment_edit_close_mutate_the_record ... ok
[INFO] [stdout] test macros::pr_deliver::tests::dry_run_verdict_absent_when_gate_off ... ok
[INFO] [stdout] test macros::pr_deliver::tests::dry_run_full_chain_lists_eight_steps ... ok
[INFO] [stdout] test macros::pr_deliver::tests::dry_run_verdict_fails_feature_without_evidence_when_required ... ok
[INFO] [stdout] test macros::pr_deliver::tests::dry_run_verdict_passes_exempt_kind_when_required ... ok
[INFO] [stdout] test local::store::tests::issue_round_trips_through_store ... ok
[INFO] [stdout] test macros::pr_deliver::tests::issue_closeout_dry_plan_omits_reason_off_github ... ok
[INFO] [stdout] test macros::pr_deliver::tests::lookup_dry_plan_filters_open_prs_on_head_branch ... ok
[INFO] [stdout] test macros::pr_deliver::tests::issue_closeout_dry_plan_renders_exact_completed_close_on_github ... ok
[INFO] [stdout] test macros::pr_deliver::tests::dry_run_verdict_passes_feature_with_complete_evidence ... ok
[INFO] [stdout] test ops::activity::tests::github_commits_call_uses_search_api_shape ... ok
[INFO] [stdout] test macros::pr_deliver::tests::no_merge_dry_plan_excludes_ready_and_merge ... ok
[INFO] [stdout] test macros::pr_deliver::tests::lookup_dry_plan_renders_placeholder_for_unknown_branch ... ok
[INFO] [stdout] test ops::activity::tests::gitlab_branch_is_explicitly_unsupported ... ok
[INFO] [stdout] test ops::auth_status::tests::parses_github_auth_status_with_scopes ... ok
[INFO] [stdout] test ops::auth_status::tests::parses_gitlab_auth_status_without_scopes ... ok
[INFO] [stdout] test ops::activity::tests::local_branch_is_explicitly_unsupported ... ok
[INFO] [stdout] test ops::auth_status::tests::parses_missing_user_as_none ... ok
[INFO] [stdout] test ops::gitlab_api::tests::api_call_renders_hostname_and_path ... ok
[INFO] [stdout] test ops::gitlab_api::tests::encode_project_path_url_encodes_nested_slashes ... ok
[INFO] [stdout] test ops::gitlab_api::tests::host_from_url_extracts_gitlab_host ... ok
[INFO] [stdout] test ops::gitlab_api::tests::project_path_from_mr_url_handles_nested_groups ... ok
[INFO] [stdout] test ops::inbox::tests::classify_gitlab_todo_accepts_canonical_gitlab_paths ... ok
[INFO] [stdout] test ops::inbox::tests::classify_gitlab_todo_unknown_target_type_returns_unknown ... ok
[INFO] [stdout] test ops::auth_status::tests::build_call_invokes_auth_status ... ok
[INFO] [stdout] test ops::gitlab_api::tests::api_call_with_method_fields_renders_typed_fields ... ok
[INFO] [stdout] test ops::inbox::tests::gitlab_identity_predicate_matches_query_plan ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_empty_query_plan_returns_success_without_identity_call ... ok
[INFO] [stdout] test ops::inbox::tests::classify_gitlab_todo_rejects_foreign_host_paths ... ok
[INFO] [stdout] test ops::activity::tests::github_dry_run_me_includes_identity_and_data_plans ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_provider_cache_round_trips_items_as_stale ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_openvpn_probe_redacts_unreadable_profile_path ... ok
[INFO] [stdout] test ops::issue_close::tests::build_close_call_emits_issue_close_id_on_both_providers ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_partial_within_provider_failure_rolls_provider_up_as_failed ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_contract_dedupes_reasons_by_priority ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_vpn_settings_parse_aliases_and_reject_invalid_values ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_provider_resolver_defaults_to_both_providers ... ok
[INFO] [stdout] test ops::issue_closeout::tests::close_failure_is_captured_as_error ... ok
[INFO] [stdout] test ops::issue_closeout::tests::empty_refs_yield_empty_ok_payload ... ok
[INFO] [stdout] test ops::issue_closeout::tests::run_captures_pr_view_fetch_failure_as_step_error ... ok
[INFO] [stdout] test ops::issue_closeout::tests::multiple_refs_each_get_an_outcome ... ok
[INFO] [stdout] test ops::issue_closeout::tests::run_reads_pr_view_refs_and_closes_them ... ok
[INFO] [stdout] test ops::issue_closeout::tests::view_failure_is_captured_as_error_not_panic ... ok
[INFO] [stdout] test ops::issue_comment::tests::build_comment_call_github_uses_api_comment_body ... ok
[INFO] [stdout] test ops::issue_closeout::tests::already_closed_issue_is_left_untouched ... ok
[INFO] [stdout] test ops::issue_close::tests::build_close_call_appends_reason_only_on_github ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_required_vpn_defaults_to_gitlab_https_tcp_probe ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.comment.v1","ok":true,"data":{"provider":"github","number":42,"url":"https://github.com/o/r/issues/42#issuecomment-1"}}
[INFO] [stdout] test ops::issue_comment::tests::build_comment_call_gitlab_uses_issue_note_message ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_parallel_provider_failure_keeps_deterministic_order ... ok
[INFO] [stdout] test ops::issue_closeout::tests::open_issue_is_closed_with_completed_reason ... ok
[INFO] [stdout] test ops::issue_comment::tests::first_url_extracts_comment_link_from_stdout ... ok
[INFO] [stdout] test ops::issue_comment::tests::run_with::happy_github_inline_body ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.comment.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","api","repos/{owner}/{repo}/issues/7/comments","--method","POST","--raw-field","body=hello","--jq",".html_url"]}}
[INFO] [stdout] test ops::issue_comment::tests::run_with::happy_gitlab_inline_body_text_format ... ok
[INFO] [stdout] test ops::issue_comment::tests::read_body_prefers_inline_over_file ... ok
[INFO] [stdout] test ops::issue_comment::tests::run_with::propagates_provider_detection_failure ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.comment.v1","ok":true,"data":{"provider":"github","number":11,"url":"https://github.com/o/r/issues/11#issuecomment-1"}}
[INFO] [stdout] test ops::issue_comment::tests::run_with::missing_body_file_is_software_error ... ok
[INFO] [stdout] test ops::issue_comment::tests::run_with::rejects_empty_body ... ok
[INFO] [stdout] test ops::issue_comment::tests::run_with::dry_run_github_emits_plan_envelope ... ok
[INFO] [stdout] test ops::issue_create::tests::build_create_call_github_uses_body_file_and_labels ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_tcp_vpn_probe_connects_and_reports_unavailable_ports ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.create.v1","ok":true,"data":{"provider":"github","number":99,"url":"https://github.com/acme/widgets/issues/99","title":"new","state":"open","labels":[],"assignees":[]}}
[INFO] [stdout] test ops::issue_create::tests::build_create_call_gitlab_uses_description_inline ... ok
[INFO] [stdout] test ops::issue_create::tests::build_create_call_propagates_repo_override_to_argv ... ok
[INFO] [stdout] test ops::issue_create::tests::parse_create_output_errors_when_no_url ... ok
[INFO] [stdout] test ops::issue_comment::tests::run_with::reads_body_from_file_and_proceeds ... ok
[INFO] [stdout] test ops::issue_create::tests::parse_create_output_extracts_number_from_url ... ok
[INFO] [stdout] test ops::issue_create::tests::read_body_prefers_inline_over_file ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::missing_body_file_is_software_error ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.create.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","issue","create","--title","new","--body-file","/tmp/forge-cli-issue-body-DKCY2M.md"]}}
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.create.v1","ok":true,"data":{"provider":"github","number":42,"url":"https://github.com/acme/widgets/issues/42","title":"new","state":"open","labels":[],"assignees":[]}}
[INFO] [stdout] test ops::issue_create::tests::run_with::create_output_falls_back_to_view_url_when_create_empty_url_but_parsed ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::rejects_escaped_control_markdown_body ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::rejects_title_too_long ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::create_output_without_url_is_software_error ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::dry_run_github_emits_plan_envelope ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::happy_github_creates_then_views ... ok
[INFO] [stdout] test ops::issue_edit::tests::build_edit_call_github_passes_through_optional_title_and_body ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::happy_gitlab_creates_then_views_text_format ... ok
[INFO] [stdout] test ops::issue_edit::tests::build_edit_call_github_uses_add_label_remove_label_flags ... ok
[INFO] [stdout] test ops::issue_edit::tests::build_edit_call_gitlab_uses_label_unlabel_flags ... {"schema_version":"cli.forge-cli.issue.create.v1","ok":true,"data":{"provider":"github","number":11,"url":"https://github.com/o/r/issues/11","title":"new","state":"open","labels":[],"assignees":[]}}
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.edit.v1","ok":true,"data":{"provider":"github","number":7,"url":"https://github.com/o/r/issues/7","state":"open","title":"t","labels":[],"assignees":[]}}
[INFO] [stdout] ok
[INFO] [stdout] test ops::issue_edit::tests::build_edit_call_github_emits_issue_edit_id ... {"schema_version":"cli.forge-cli.issue.edit.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","issue","edit","7"]}}
[INFO] [stdout] ok
[INFO] [stdout] test ops::issue_edit::tests::build_edit_call_gitlab_emits_issue_update_id ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::write_body_tempfile_persists_payload ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::dry_run_text_format ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::happy_github_edits_and_views ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::dry_run_github_emits_plan_envelope ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::happy_gitlab_edits_and_views_text_format ... ok
[INFO] [stdout] test ops::issue_create::tests::run_with::reads_body_from_file_and_proceeds ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.issue.edit.v1","ok":true,"data":{"provider":"github","number":7,"url":"https://github.com/o/r/issues/7","state":"open","title":"t","labels":[],"assignees":[]}}
[INFO] [stdout] test ops::issue_edit::tests::run_with::missing_body_file_is_software_error ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::read_body_prefers_inline_over_file ... ok
[INFO] [stdout] test ops::issue_edit::tests::cli_accepts_label_shorthand_for_add_label ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::read_body_returns_empty_when_neither_set ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::rejects_title_too_long ... ok
[INFO] [stdout] test ops::issue_list::tests::build_github_rest_call_passes_enterprise_hostname ... ok
[INFO] [stdout] test ops::issue_list::tests::build_github_rest_call_targets_issues_endpoint_with_filters_and_page ... ok
[INFO] [stdout] test ops::issue_edit::tests::run_with::reads_body_from_file_and_proceeds ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_clamps_zero_limit_to_one ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_github_includes_optional_filters ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_github_joins_labels_into_csv ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_github_passes_state_and_limit ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_gitlab_maps_state_to_flag_and_repeats_labels ... ok
[INFO] [stdout] test ops::issue_list::tests::build_list_call_gitlab_omits_opened_flag_for_default_open_state ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_cmd_vpn_probe_sanitizes_profile_and_reports_missing_command ... ok
[INFO] [stdout] test ops::issue_list::tests::github_rest_list_routes_labeled_github_with_slug ... ok
[INFO] [stdout] test ops::issue_list::tests::github_rest_list_skips_gitlab ... ok
[INFO] [stdout] test ops::issue_list::tests::github_rest_list_skips_at_me_filter ... ok
[INFO] [stdout] test ops::issue_list::tests::github_rest_list_skips_without_repo_slug ... ok
[INFO] [stdout] test ops::issue_list::tests::github_rest_list_skips_when_no_labels ... ok
[INFO] [stdout] test ops::issue_list::tests::parse_list_output_github_normalises_state_and_collects_labels ... ok
[INFO] [stdout] test ops::issue_list::tests::parse_list_output_accepts_empty_array_for_both_providers ... ok
[INFO] [stdout] test ops::issue_list::tests::parse_list_output_gitlab_accepts_string_or_object_labels ... ok
[INFO] [stdout] test ops::issue_list::tests::parse_list_output_rejects_non_array ... ok
[INFO] [stdout] test ops::issue_list::tests::run_github_rest_list_stops_at_short_page ... ok
[INFO] [stdout] test ops::issue_list::tests::run_github_rest_list_keeps_paging_past_a_pr_dominated_page ... ok
[INFO] [stdout] test ops::issue_reopen::tests::build_reopen_call_emits_issue_reopen_id_on_both_providers ... ok
[INFO] [stdout] test ops::issue_list::tests::parse_rest_page_excludes_prs_and_maps_rest_fields ... ok
[INFO] [stdout] test ops::issue_view::tests::build_view_call_github_includes_comments_field_when_requested ... ok
[INFO] [stdout] test ops::issue_view::tests::build_view_call_github_uses_json_fields ... ok
[INFO] [stdout] test ops::issue_view::tests::build_view_call_gitlab_does_not_change_for_with_comments ... ok
[INFO] [stdout] test ops::issue_list::tests::run_github_rest_list_stops_once_limit_reached_without_walking_all_pages ... ok
[INFO] [stdout] test ops::issue_view::tests::gitlab_host_from_url_extracts_host_segment ... ok
[INFO] [stdout] test ops::issue_view::tests::gitlab_project_path_from_url_extracts_nested_groups ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_github_open_issue ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_github_with_comments_normalises_author_and_url ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_github_without_with_comments_keeps_comments_empty ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_gitlab_closed_normalises_to_closed ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_gitlab_notes_filters_system_notes_and_constructs_url ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_gitlab_notes_handles_concatenated_pages ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_gitlab_notes_handles_empty_array ... ok
[INFO] [stdout] test ops::issue_view::tests::parse_gitlab_opened_normalises_to_open ... ok
[INFO] [stdout] test ops::label::tests::exclusive_group_conflicts_are_rejected ... ok
[INFO] [stdout] test ops::label::tests::extension_labels_are_valid_when_group_allows_extensions ... ok
[INFO] [stdout] test ops::label::tests::audit_reports_missing_drift_and_unknown_shared_labels ... ok
[INFO] [stdout] test ops::label::tests::normalize_color_drops_hash_and_uppercases ... ok
[INFO] [stdout] test ops::label::tests::parse_list_output_accepts_provider_shapes ... ok
[INFO] [stdout] test ops::label::tests::parse_list_output_rejects_invalid_json_shapes ... ok
[INFO] [stdout] test ops::label::tests::provider_calls_render_expected_backend_arguments ... ok
[INFO] [stdout] test ops::label::tests::validation_rejects_unknown_and_non_applicable_labels ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_all_required_success_is_success ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_any_required_failure_is_failure ... ok
[INFO] [stdout] test ops::label::tests::catalog_loader_infers_groups_and_rejects_empty_catalogs ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_empty_checks_is_success ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_cancelled_outranks_pending_but_failure_outranks_cancelled ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_pending_only_required_is_pending ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_required_only_false_includes_optional_checks_in_gating ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_skipped_and_neutral_count_required_but_not_success ... ok
[INFO] [stdout] test ops::pr_checks::tests::build_github_call_carries_id_and_json_fields ... ok
[INFO] [stdout] test ops::pr_checks::tests::aggregate_records_duration_ms ... ok
[INFO] [stdout] test ops::pr_checks::tests::build_github_required_call_uses_required_flag_and_supported_json_fields ... ok
[INFO] [stdout] test ops::pr_checks::tests::check_state_terminal_and_failing_classifications ... ok
[INFO] [stdout] test ops::pr_checks::tests::normalize_prefers_conclusion_over_bucket ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_blank_stdout_is_success ... ok
[INFO] [stdout] test ops::pr_checks::tests::normalize_falls_back_to_bucket_when_no_conclusion ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_empty_array_is_success ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_full_success_fixture ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_handles_missing_name_as_software_error ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_invalid_json_is_software_error ... ok
[INFO] [stdout] test ops::pr_checks::tests::parse_github_snapshot_with_required_output_marks_only_required_names ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::build_status_call_includes_repo_override_when_set ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::build_status_call_uses_branch_flag ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_job_line_compact_form ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_job_line_canonicalises_canceled_to_cancelled ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_all_success ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_job_line_verbose_form ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_empty_pipeline_is_success ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_manual_only_is_neutral_success ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_mixed_states_promotes_failure ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_one_failure ... ok
[INFO] [stdout] test ops::pr_checks::tests::normalize_falls_back_to_state_when_bucket_is_unknown ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_strips_ansi_codes ... ok
[INFO] [stdout] test ops::pr_checks_gitlab::tests::parse_status_text_pending_only ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.close.v1","ok":true,"data":{"provider":"github","number":42,"url":"https://github.com/o/r/pull/42","state":"closed"}}
[INFO] [stdout] test ops::pr_checks_gitlab::tests::strip_ansi_removes_colour_codes ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.close.v1","ok":true,"data":{"provider":"gitlab","number":7,"url":"https://gitlab.com/o/r/-/merge_requests/7","state":"closed"}}
[INFO] [stdout] test ops::pr_close::tests::build_close_call_github_emits_pr_close_id ... ok
[INFO] [stdout] test ops::pr_close::tests::build_close_call_gitlab_emits_mr_close_id ... ok
[INFO] [stdout] test ops::pr_close::tests::build_close_call_pushes_repo_override ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_bubbles_invalid_view_json_as_software_error ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_dry_run_text_path_renders_plan ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_happy_github_closes_then_views ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_happy_gitlab_closes_then_views ... ok
[INFO] [stdout] test ops::pr_comment::tests::build_comment_call_github_uses_pr_comment_body ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_text_format_renders_close_summary ... ok
[INFO] [stdout] test ops::pr_comment::tests::read_body_missing_file_is_software_error ... ok
[INFO] [stdout] test ops::pr_comment::tests::read_body_returns_empty_when_neither_set ... ok
[INFO] [stdout] test ops::pr_comment::tests::build_comment_call_gitlab_uses_mr_note_message ... ok
[INFO] [stdout] test ops::pr_comment::tests::run_with_happy_gitlab_inline_body_text_format ... ok
[INFO] [stdout] test ops::pr_comment::tests::run_with_propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::pr_comment::tests::read_body_returns_file_contents ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.comment.v1","ok":true,"data":{"provider":"github","number":42,"url":"https://github.com/o/r/pull/42"}}
[INFO] [stdout] test ops::pr_comment::tests::read_body_prefers_inline_over_file ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.comment.v1","ok":true,"data":{"provider":"github","number":11,"url":"https://github.com/o/r/pull/11"}}
[INFO] [stdout] test ops::pr_comment::tests::run_with_happy_github_inline_body ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.close.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","close","17"]}}
[INFO] [stdout] test ops::pr_comment::tests::run_with_dry_run_text_format ... ok
[INFO] [stdout] test ops::pr_comments::tests::github_repo_slug_from_pr_and_issue_urls ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.comment.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","comment","7","--body","hello"]}}
[INFO] [stdout] test ops::pr_comments::tests::gitlab_project_path_from_mr_url_handles_nested_groups ... ok
[INFO] [stdout] test ops::pr_comment::tests::run_with_reads_body_from_file_and_proceeds ... ok
[INFO] [stdout] test ops::pr_close::tests::run_with_dry_run_emits_plan_envelope_github ... ok
[INFO] [stdout] test ops::pr_comments::tests::parse_github_comments_extracts_user_author_and_html_url ... ok{"schema_version":"cli.forge-cli.pr.comments.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","api","--paginate","repos/o/r/issues/7/comments?per_page=100"]}}
[INFO] [stdout] 
[INFO] [stdout] test ops::pr_comment::tests::run_with_dry_run_emits_plan_envelope_github ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.comments.v1","ok":true,"data":{"provider":"github","number":7,"url":"https://github.com/o/r/pull/7","comments":[{"url":"https://github.com/o/r/pull/7#issuecomment-1","author":"alice","created_at":"2025-01-01T00:00:00Z","body":"hi"}]}}
[INFO] [stdout] test ops::pr_comments::tests::parse_github_comments_handles_concatenated_pages ... ok
[INFO] [stdout] test ops::pr_comments::tests::run_with_dry_run_emits_plan_envelope_without_running_comments_call ... ok
[INFO] [stdout] test ops::pr_comment::tests::run_with_rejects_missing_body_and_file ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.comments.v1","ok":true,"data":{"provider":"gitlab","number":12,"url":"https://gitlab.example.com/grp/proj/-/merge_requests/12","comments":[{"url":"https://gitlab.example.com/grp/proj/-/merge_requests/12#note_9","author":"alice","created_at":"t","body":"hi"}]}}
[INFO] [stdout] test ops::pr_comments::tests::run_with_github_emits_envelope_and_invokes_two_backend_calls ... ok
[INFO] [stdout] test ops::pr_create::tests::build_create_call_github_default_argv ... ok
[INFO] [stdout] test ops::pr_comments::tests::split_concatenated_arrays_returns_empty_for_empty_stdout ... ok
[INFO] [stdout] test ops::pr_create::tests::build_create_call_gitlab_passes_description_inline ... ok
[INFO] [stdout] test ops::pr_create::tests::build_create_call_skips_draft_when_off ... ok
[INFO] [stdout] test ops::pr_comment::tests::run_with_rejects_empty_body ... ok
[INFO] [stdout] test ops::pr_comments::tests::run_with_gitlab_builds_notes_path_from_mr_view_url ... ok
[INFO] [stdout] test ops::pr_comments::tests::parse_gitlab_notes_skips_system_notes_and_constructs_urls ... ok
[INFO] [stdout] test ops::pr_create::tests::parse_create_output_extracts_url_from_stdout ... ok
[INFO] [stdout] test ops::pr_create::tests::parse_url_number_handles_github_and_gitlab ... ok
[INFO] [stdout] test ops::pr_create::tests::parse_view_output_github_shape ... ok
[INFO] [stdout] test ops::pr_create::tests::parse_view_output_gitlab_legacy_wip_field ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.create.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","create","--draft","--head","feat/sample","--base","main","--title","demo: ok","--body-file","/tmp/forge-cli-body-g61RLw.md","--repo","o/r"]}}
[INFO] [stdout] test ops::pr_create::tests::parse_view_output_gitlab_shape_with_draft_field ... ok
[INFO] [stdout] test ops::pr_create::tests::read_body_prefers_inline_over_file ... ok
[INFO] [stdout] test ops::pr_create::tests::run_with_blocks_feature_when_required_without_evidence ... ok
[INFO] [stdout] test ops::pr_create::tests::read_body_returns_empty_when_neither_set ... ok
[INFO] [stdout] test ops::pr_create::tests::run_with_rejects_branch_kind_mismatch ... ok
[INFO] [stdout] test ops::pr_create::tests::run_with_rejects_dirty_worktree ... ok
[INFO] [stdout] test ops::pr_create::tests::run_with_rejects_missing_summary ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_exempts_non_behavior_kinds ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_passes_when_not_required ... ok
[INFO] [stdout] test ops::pr_create::tests::run_with_dry_run_returns_plan_envelope ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_requires_evidence_for_feature_and_bug ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_accepts_complete_record ... {"schema_version":"cli.forge-cli.pr.edit.v1","ok":true,"data":{"provider":"gitlab","plan":["glab","mr","update","7","--description","## Summary\n\nDoes the thing.\n\n## Test plan\n\n- cargo test\n","--label","ready"]}}
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.edit.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","edit","42","--title","update","--body-file","/tmp/forge-cli-edit-body-4l83K0.md"]}}
[INFO] [stdout] ok
[INFO] [stdout] test ops::pr_edit::tests::build_edit_call_github_emits_add_remove_labels ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_rejects_unreadable_record ... ok
[INFO] [stdout] test ops::pr_create::tests::test_first_gate_rejects_incomplete_record ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.edit.v1","ok":true,"data":{"provider":"gitlab","number":7,"url":"https://gitlab.com/o/r/-/merge_requests/7","state":"open","draft":false,"title":"t","head":"feat/y","base":"main","mergeable":"yes","merged_at":null,"merge_commit_sha":null,"labels":[],"body":null,"closing_issue_refs":[]}}
[INFO] [stdout] test ops::pr_edit::tests::build_edit_call_gitlab_collapses_labels_to_csv ... ok
[INFO] [stdout] test ops::pr_edit::tests::build_edit_call_github_uses_body_file ... ok
[INFO] [stdout] test ops::pr_edit::tests::build_edit_call_gitlab_uses_description_inline ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_dry_run_gitlab_uses_description_inline ... ok
[INFO] [stdout] test ops::issue_list::tests::run_github_rest_list_honors_limit_beyond_two_thousand ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_happy_github_title_only_text_format ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_dry_run_github_with_body_writes_tempfile_and_returns_plan ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.edit.v1","ok":true,"data":{"provider":"github","number":11,"url":"https://github.com/o/r/pull/11","state":"open","draft":false,"title":"t","head":"feat/x","base":"main","mergeable":"yes","merged_at":null,"merge_commit_sha":null,"labels":[],"body":null,"closing_issue_refs":[]}}
[INFO] [stdout] test ops::pr_edit::tests::run_with_invalid_view_json_is_software_error ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_happy_gitlab_labels_only_json_format ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_missing_body_file_returns_software_error ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_rejects_body_missing_summary ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_rejects_title_too_long ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_rejects_body_missing_test_plan ... ok
[INFO] [stdout] test ops::pr_list::tests::build_list_call_clamps_zero_limit_to_one ... ok
[INFO] [stdout] test ops::pr_list::tests::build_list_call_github_includes_optional_filters ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.list.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","list","--state","open","--limit","30","--json","number,url,state,title,headRefName,author"]}}
[INFO] [stdout] test ops::pr_list::tests::build_list_call_github_passes_state_and_limit ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.list.v1","ok":true,"data":{"provider":"github","items":[{"number":1,"url":"u1","state":"open","title":"a","head":"feat/a","author":"alice"}]}}
[INFO] [stdout] test ops::pr_list::tests::build_list_call_gitlab_maps_state_to_flag ... ok
[INFO] [stdout] test ops::pr_edit::tests::run_with_reads_body_from_file_and_proceeds ... ok
[INFO] [stdout] test ops::pr_list::tests::build_list_call_gitlab_omits_opened_flag_for_default_open_state ... ok
[INFO] [stdout] test ops::pr_list::tests::parse_list_output_github ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::dry_run_text_format ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::dry_run_github_emits_plan_envelope ... ok
[INFO] [stdout] test ops::pr_list::tests::parse_list_output_gitlab ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::happy_github_returns_items ... ok
[INFO] [stdout] test ops::pr_edit::tests::write_body_tempfile_persists_payload ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::happy_gitlab_returns_items_text_format ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::invalid_json_array_is_software_error ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::non_array_json_is_software_error ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::parse_item_missing_number_is_software_error ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::parse_item_unknown_state_is_software_error ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::pr_list::tests::run_with::render_text_handles_missing_author ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_body_defaults_empty_on_missing_or_invalid ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_body_github_reads_body_field ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_body_gitlab_reads_description_field ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_merge_sha_errors_on_empty_gitlab_sha ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_merge_sha_errors_software_when_missing ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_merge_sha_github_pulls_oid ... ok
[INFO] [stdout] test ops::pr_merge::tests::extract_merge_sha_gitlab_pulls_merge_commit_sha ... ok
[INFO] [stdout] test ops::pr_merge::tests::gitlab_api_merge_call_uses_put_endpoint_and_head_sha ... ok
[INFO] [stdout] test ops::pr_merge::tests::keep_branch_conflict_fires_only_on_explicit_config_collision ... ok
[INFO] [stdout] test ops::pr_merge::tests::keep_branch_ignores_global_layer_delete_branch ... ok
[INFO] [stdout] test ops::pr_merge::tests::merge_call_gh_drops_delete_branch_when_disabled ... ok
[INFO] [stdout] test ops::pr_merge::tests::merge_call_gh_includes_method_flag_and_delete_branch ... ok
[INFO] [stdout] test ops::pr_merge::tests::merge_call_glab_includes_squash_and_remove_branch ... ok
[INFO] [stdout] test ops::pr_merge::tests::merge_call_glab_merge_method_omits_squash_flag ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.ready.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","ready","9"]}}
[INFO] [stdout] test ops::pr_merge::tests::method_supported_accepts_listed_method ... ok
[INFO] [stdout] test ops::pr_merge::tests::method_supported_passes_through_when_repo_methods_unknown ... ok
[INFO] [stdout] test ops::pr_merge::tests::method_supported_rejects_unlisted_method_with_data_65 ... ok
[INFO] [stdout] test ops::pr_ready::tests::build_ready_call_github_emits_pr_ready_id ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.ready.v1","ok":true,"data":{"provider":"github","number":42,"url":"https://github.com/o/r/pull/42","state":"open","draft":false,"title":"t","head":"feat/x","base":"main","mergeable":"yes","merged_at":null,"merge_commit_sha":null,"labels":[],"body":null,"closing_issue_refs":[]}}
[INFO] [stdout] test ops::pr_ready::tests::build_ready_call_gitlab_emits_mr_update_ready ... ok
[INFO] [stdout] test ops::pr_ready::tests::compute_returns_typed_payload_after_view ... ok
[INFO] [stdout] test ops::pr_ready::tests::compute_rejects_dirty_worktree ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_dry_run_github_emits_plan_envelope ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_dry_run_gitlab_text_format ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_happy_gitlab_text_format ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_invalid_view_json_is_software_error ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_propagates_provider_detection_failure ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_rejects_dirty_worktree_before_backend ... ok
[INFO] [stdout] test ops::pr_ready::tests::run_with_happy_github_marks_ready_and_views ... ok
[INFO] [stdout] test ops::pr_review::tests::add_review_thread_call_renders_file_subject_type ... ok
[INFO] [stdout] test ops::pr_review::tests::build_review_post_call_uses_issue_comment_when_not_submit_review ... ok
[INFO] [stdout] test ops::pr_review::tests::build_review_post_call_uses_reviews_endpoint_when_submit_review ... ok
[INFO] [stdout] test ops::pr_review::tests::decision_maps_to_github_review_event ... ok
[INFO] [stdout] test ops::pr_review::tests::parse_review_thread_specs_defaults_file_thread_without_line ... ok
[INFO] [stdout] test ops::pr_review::tests::parse_review_thread_specs_defaults_line_thread ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.reply.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","api","graphql","-f","query=mutation($tid: ID!, $body: String!) { addPullRequestReviewThreadReply(input: {pullRequestReviewThreadId: $tid, body: $body}) { comment { url } } }","-f","tid=PRRT_abc","-f","body=ack"]}}
[INFO] [stdout] test ops::pr_review::tests::parse_review_thread_specs_rejects_line_zero ... ok
[INFO] [stdout] test ops::pr_review::tests::submit_argv_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] test ops::pr_review::tests::submit_argv_targets_reviews_endpoint_and_maps_event ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.reply.v1","ok":true,"data":{"provider":"github","thread_id":"PRRT_abc","comment_url":"https://github.com/acme/widgets/pull/7#discussion_r9"}}
[INFO] [stdout] test ops::pr_review::tests::submit_argv_omits_body_field_when_none ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::build_reply_call_uses_add_reply_mutation_with_tid_and_body ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::build_reply_call_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::parse_comment_url_extracts_url_or_empty ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_dry_run_plans_nothing ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_local_is_provider_unsupported ... ok{"schema_version":"cli.forge-cli.pr.review-threads.resolve.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","api","graphql","-f","query=mutation($tid: ID!, $body: String!) { addPullRequestReviewThreadReply(input: {pullRequestReviewThreadId: $tid, body: $body}) { comment { url } } }","-f","tid=PRRT_abc","-f","body=note","/tmp/.tmposz5nU/gh","api","graphql","-f","query=mutation($tid: ID!) { resolveReviewThread(input: {threadId: $tid}) { thread { isResolved } } }","-f","tid=PRRT_abc"]}}
[INFO] [stdout] 
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_gitlab_is_provider_unsupported ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_rejects_empty_body ... ok
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_posts_single_reply_and_surfaces_comment_url ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.resolve.v1","ok":true,"data":{"provider":"github","thread_id":"PRRT_abc","resolved":true,"replied":true}}
[INFO] [stdout] test ops::pr_review_thread_reply::tests::run_with_reply_rejects_thread_from_another_pr_before_mutating ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::build_reply_call_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.resolve.v1","ok":true,"data":{"provider":"github","thread_id":"PRRT_abc","resolved":true,"replied":false}}
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::build_reply_call_uses_add_reply_mutation_with_tid_and_body ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::build_resolve_call_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::build_resolve_call_uses_resolve_review_thread_mutation_with_tid ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_dry_run_plans_nothing ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_gitlab_is_provider_unsupported ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_local_is_provider_unsupported ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_note_replies_before_resolving ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_resolve_rejects_thread_from_another_pr_before_mutating ... ok
[INFO] [stdout] test ops::pr_review_thread_resolve::tests::run_with_resolve_only_runs_single_mutation ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::ensure_fails_data_65_with_listing_when_threads_unresolved ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::ensure_passes_trivially_on_local_provider_without_backend_calls ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::ensure_resolves_ok_when_all_threads_resolved ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::github_threads_call_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.v1","ok":true,"data":{"provider":"github","number":7,"url":"https://github.com/acme/widgets/pull/7","total":2,"unresolved":1,"threads":[{"id":"","resolved":false,"outdated":false,"author":"quality-bot","path":"a.rs","created_at":"2026-06-11T04:49:36Z","url":"https://github.com/acme/widgets/pull/7#discussion_r1","body":"finding body\nsecond line"},{"id":"","resolved":true,"outdated":false,"author":"human","path":"b.rs","created_at":"2026-06-11T04:49:36Z","url":"https://github.com/acme/widgets/pull/7#discussion_r1","body":"finding body\nsecond line"}]}}
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.review-threads.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","api","graphql","-f","query=query($owner: String!, $name: String!, $pr: Int!) { repository(owner: $owner, name: $name) { pullRequest(number: $pr) { reviewThreads(first: 100) { nodes { id isResolved isOutdated path comments(first: 1) { nodes { author { login } body createdAt url } } } } } } }","-f","owner=acme","-f","name=widgets","-F","pr=7"]}}
[INFO] [stdout] test ops::pr_review_threads::tests::github_threads_call_uses_graphql_with_owner_name_pr ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::gitlab_threads_call_targets_discussions_from_nested_group_url ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::parse_github_threads_errors_on_missing_nodes ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::parse_github_threads_extracts_state_author_and_path ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::parse_github_threads_populates_thread_node_id ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::parse_gitlab_discussions_skips_non_resolvable_and_tracks_resolution ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::render_text_includes_thread_id_for_follow_up_commands ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::run_with_github_emits_two_calls_and_counts_unresolved ... ok
[INFO] [stdout] test ops::pr_review_threads::tests::run_with_dry_run_plans_threads_call_without_backend_calls ... ok
[INFO] [stdout] test ops::pr_state::tests::github_state_passthrough ... ok
[INFO] [stdout] test ops::pr_state::tests::gitlab_locked_becomes_closed ... ok
[INFO] [stdout] test ops::pr_state::tests::gitlab_opened_becomes_open ... ok
[INFO] [stdout] test ops::pr_state::tests::mergeable_mapping_github ... ok
[INFO] [stdout] test ops::pr_state::tests::mergeable_mapping_gitlab ... ok
[INFO] [stdout] test ops::pr_state::tests::unknown_state_errors_software ... ok
[INFO] [stdout] test ops::pr_tasks::tests::ensure_fails_data_65_with_listing_when_items_unchecked ... ok
[INFO] [stdout] test ops::pr_tasks::tests::ensure_passes_on_empty_body_and_all_checked ... ok
[INFO] [stdout] test ops::pr_tasks::tests::github_view_call_requests_number_url_body ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_accepts_nested_indentation_and_empty_text ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_finds_bullet_and_ordered_items_with_line_numbers ... ok
[INFO] [stdout] {"schema_version":"cli.forge-cli.pr.tasks.v1","ok":true,"data":{"provider":"github","plan":["/tmp/.tmposz5nU/gh","pr","view","7","--json","number,url,body","--repo","acme/widgets"]}}
[INFO] [stdout] test ops::pr_tasks::tests::parse_handles_unclosed_fence_to_end_of_body ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_keeps_deeply_nested_items_inside_open_lists ... {"schema_version":"cli.forge-cli.pr.tasks.v1","ok":true,"data":{"provider":"github","number":7,"url":"https://github.com/acme/widgets/pull/7","total":2,"unchecked":1,"items":[{"checked":false,"marker":" ","text":"a","line":1},{"checked":true,"marker":"x","text":"b","line":2}]}}
[INFO] [stdout] ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_paragraph_closes_list_context ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_skips_fenced_code_blocks_and_non_task_lines ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_skips_indented_code_blocks_outside_lists ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_skips_indented_code_inside_list_items ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_view_github_reads_body ... ok
[INFO] [stdout] test ops::pr_tasks::tests::parse_view_gitlab_reads_description ... ok
[INFO] [stdout] test ops::pr_tasks::tests::run_with_dry_run_plans_view_call_without_running ... ok
[INFO] [stdout] test ops::pr_tasks::tests::run_with_github_counts_unchecked_items ... ok
[INFO] [stdout] test ops::pr_view::tests::build_view_call_github_requests_closing_issue_refs_field ... ok
[INFO] [stdout] test ops::pr_view::tests::build_view_call_github_requests_merge_commit_field ... ok
[INFO] [stdout] test ops::pr_view::tests::build_view_call_github_uses_json_fields ... ok
[INFO] [stdout] test ops::pr_view::tests::build_view_call_gitlab_uses_f_json ... ok
[INFO] [stdout] test ops::pr_view::tests::extract_first_iid_from_list_array ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_closing_issue_refs_default_empty_when_absent ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_extracts_closing_issue_refs ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_merged_pr_extracts_merge_commit_sha ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_extracts_body_and_defaults_to_none_when_absent ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_merged_pr_overrides_state ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_open_pr ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_locked_normalises_to_closed ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_github_open_pr_has_no_merge_commit_sha ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_maps_description_to_body ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_merged_mr_extracts_merge_commit_sha ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_never_populates_closing_issue_refs ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_open_mr_treats_empty_merge_commit_sha_as_none ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_opened_normalises_to_open ... ok
[INFO] [stdout] test ops::pr_view::tests::parse_gitlab_unknown_state_errors_software ... ok
[INFO] [stdout] test ops::pr_wait_checks::tests::pending_then_success_succeeds_on_second_poll ... ok
[INFO] [stdout] test ops::pr_wait_checks::tests::failure_state_marks_terminal_and_emit_failure_returns_runtime_code ... ok
[INFO] [stdout] test ops::pr_wait_checks::tests::step_clock_advances_on_sleep ... ok
[INFO] [stdout] test ops::pr_wait_checks::tests::succeeds_when_first_snapshot_is_terminal_success ... ok
[INFO] [stdout] test ops::repo_view::tests::build_call_github_argv ... ok
[INFO] [stdout] test ops::pr_wait_checks::tests::timed_out_placeholder_has_pending_state ... ok
[INFO] [stdout] test ops::repo_view::tests::build_call_github_includes_repo_slug_when_ctx_has_repo ... ok
[INFO] [stdout] test ops::repo_view::tests::build_call_gitlab_argv ... ok
[INFO] [stdout] test ops::repo_view::tests::malformed_json_is_software_error ... ok
[INFO] [stdout] test ops::repo_view::tests::missing_field_is_software_error ... ok
[INFO] [stdout] test ops::repo_view::tests::parses_github_repo_view_all_methods ... ok
[INFO] [stdout] test ops::repo_view::tests::parses_github_repo_view_squash_only ... ok
[INFO] [stdout] test ops::repo_view::tests::parses_gitlab_repo_view ... ok
[INFO] [stdout] test ops::required_check_gate::tests::all_green_returns_payload_untouched ... ok
[INFO] [stdout] test ops::required_check_gate::tests::error_message_lists_offending_check_names ... ok
[INFO] [stdout] test ops::required_check_gate::tests::failure_dominates_pending_when_both_present ... ok
[INFO] [stdout] test ops::required_check_gate::tests::failure_yields_checks_failed_runtime_with_exit_1 ... ok
[INFO] [stdout] test backend::tests::process_runner_reports_backend_timeout ... ok
[INFO] [stdout] test ops::required_check_gate::tests::schema_literal_matches_pr_checks_v1 ... ok
[INFO] [stdout] test ops::required_check_gate::tests::pending_only_yields_checks_pending_validation_with_data_65 ... ok
[INFO] [stdout] test ops::search::tests::dry_run_emits_search_plan_without_running_backend ... ok
[INFO] [stdout] test ops::search::tests::gitlab_branch_is_explicitly_unsupported ... ok
[INFO] [stdout] test ops::search::tests::issues_call_builds_gh_search_issues_argv ... ok
[INFO] [stdout] test ops::search::tests::limit_is_clamped_to_search_ceiling ... ok
[INFO] [stdout] test ops::search::tests::local_branch_is_explicitly_unsupported ... ok
[INFO] [stdout] test ops::search::tests::parse_empty_array_is_well_formed_empty_payload ... ok
[INFO] [stdout] test ops::search::tests::parse_normalizes_issue_and_pr_items ... ok
[INFO] [stdout] test ops::search::tests::parse_ref_handles_url_issue_pull_slug_and_bare_number ... ok
[INFO] [stdout] test ops::search::tests::parse_ref_rejects_bad_refs_and_missing_context ... ok
[INFO] [stdout] test ops::search::tests::parse_refs_to_output_errors_when_ref_missing ... ok
[INFO] [stdout] test ops::search::tests::parse_refs_to_output_normalizes_cross_referencing_sources ... ok
[INFO] [stdout] test ops::search::tests::prs_call_honours_narrowed_match_fields ... ok
[INFO] [stdout] test ops::search::tests::refs_to_call_adds_hostname_for_enterprise_host ... ok
[INFO] [stdout] test ops::search::tests::refs_to_call_builds_graphql_argv ... ok
[INFO] [stdout] test ops::search::tests::refs_to_local_branch_is_explicitly_unsupported ... ok
[INFO] [stdout] test ops::search::tests::resolve_repo_slug_falls_back_to_remote_path ... ok
[INFO] [stdout] test ops::search::tests::resolve_repo_slug_errors_without_repo_or_remote ... ok
[INFO] [stdout] test provider::tests::classify_host_recognises_ghe_host ... ok
[INFO] [stdout] test ops::search::tests::resolve_repo_slug_prefers_explicit_repo ... ok
[INFO] [stdout] test provider::tests::classify_host_recognises_gitlab_com ... ok
[INFO] [stdout] test provider::tests::classify_host_recognises_self_hosted_gitlab ... ok
[INFO] [stdout] test provider::tests::classify_host_rejects_unknown ... ok
[INFO] [stdout] test provider::tests::detect_derives_repo_slug_from_remote_when_no_override ... ok
[INFO] [stdout] test provider::tests::classify_host_recognises_github_com ... ok
[INFO] [stdout] test provider::tests::detect_explicit_repo_override_wins_over_derived_slug ... ok
[INFO] [stdout] test provider::tests::detect_forced_provider_also_derives_repo_slug ... ok
[INFO] [stdout] test provider::tests::detect_forced_provider_falls_back_to_default_host_without_remote ... ok
[INFO] [stdout] test provider::tests::detect_forced_provider_ignores_unclassifiable_remote ... ok
[INFO] [stdout] test provider::tests::detect_forced_provider_ignores_remote_host_of_other_provider ... ok
[INFO] [stdout] test provider::tests::detect_forced_provider_resolves_host_from_remote ... ok
[INFO] [stdout] test provider::tests::detect_no_remote_errors ... ok
[INFO] [stdout] test provider::tests::detect_from_remote_url ... ok
[INFO] [stdout] test provider::tests::detect_no_remote_leaves_repo_none ... ok
[INFO] [stdout] test provider::tests::detect_unknown_host_errors ... ok
[INFO] [stdout] test backend::tests::process_runner_classifies_rate_limit_exit_as_backend_rate_limited ... ok
[INFO] [stdout] test provider::tests::parse_host_rejects_empty ... ok
[INFO] [stdout] test backend::tests::process_runner_reports_missing_backend ... ok
[INFO] [stdout] test provider::tests::parse_host_https ... ok
[INFO] [stdout] test provider::tests::parse_host_rejects_empty_after_userinfo ... ok
[INFO] [stdout] test provider::tests::parse_host_ssh_scheme ... ok
[INFO] [stdout] test provider::tests::parse_host_ssh_form ... ok
[INFO] [stdout] test provider::tests::parse_host_strips_basic_auth_userinfo_from_https ... ok
[INFO] [stdout] test provider::tests::parse_host_strips_userinfo_from_ssh_scheme_with_port ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_parallel_query_families_observe_concurrent_inflight ... ok
[INFO] [stdout] test provider::tests::parse_host_then_classify_recovers_provider_for_userinfo_remotes ... ok
[INFO] [stdout] test provider::tests::push_github_api_hostname_omitted_for_github_com ... ok
[INFO] [stdout] test provider::tests::push_github_api_hostname_omitted_for_ssh_github_com_alias ... ok
[INFO] [stdout] test provider::tests::push_github_api_hostname_set_for_enterprise_host ... ok
[INFO] [stdout] test rate_limit::tests::cached_probe_reused_within_poll_interval ... ok
[INFO] [stdout] test rate_limit::tests::disabled_gate_is_transparent_passthrough ... ok
[INFO] [stdout] test rate_limit::tests::from_env_parses_disable_tokens_fallbacks_and_clamp ... ok
[INFO] [stdout] test rate_limit::tests::healthy_budget_probes_once_and_runs_without_sleeping ... ok
[INFO] [stdout] test rate_limit::tests::is_graphql_backed_matches_pr_and_graphql_api_only ... ok
[INFO] [stdout] test rate_limit::tests::min_remaining_boundary_is_strict_greater_than ... ok
[INFO] [stdout] test rate_limit::tests::non_graphql_call_is_not_gated ... ok
[INFO] [stdout] test rate_limit::tests::non_rate_limit_error_passes_through_without_retry_or_extra_probe ... ok
[INFO] [stdout] test rate_limit::tests::parse_graphql_remaining_reads_nested_field ... ok
[INFO] [stdout] test rate_limit::tests::partial_final_nap_never_overshoots_max_wait ... ok
[INFO] [stdout] test rate_limit::tests::rate_limited_failure_backs_off_waits_and_retries_once ... ok
[INFO] [stdout] test rate_limit::tests::persistent_throttle_retries_once_then_surfaces_rate_limit_error ... ok
[INFO] [stdout] test rate_limit::tests::run_raw_is_gated_like_run ... ok
[INFO] [stdout] test rate_limit::tests::run_with_timeout_is_gated_like_run ... ok
[INFO] [stdout] test rate_limit::tests::throttled_budget_gives_up_after_max_wait_and_proceeds ... ok
[INFO] [stdout] test rate_limit::tests::throttled_budget_waits_then_proceeds_when_recovered ... ok
[INFO] [stdout] test rate_limit::tests::unreadable_probe_does_not_block ... ok
[INFO] [stdout] test validations::tests::body_headings_respect_custom_overrides ... ok
[INFO] [stdout] test validations::tests::body_sections_accepts_complete_body ... ok
[INFO] [stdout] test validations::tests::body_sections_aggregates_when_both_missing ... ok
[INFO] [stdout] test validations::tests::body_sections_returns_canonical_code_when_only_one_missing ... ok
[INFO] [stdout] test validations::tests::body_summary_rejects_when_section_absent ... ok
[INFO] [stdout] test rate_limit::tests::shared_runner_is_sync_across_threads ... ok
[INFO] [stdout] test validations::tests::body_summary_rejects_when_section_empty ... ok
[INFO] [stdout] test validations::tests::body_summary_accepts_well_formed_body ... ok
[INFO] [stdout] test validations::tests::body_test_plan_rejects_when_section_empty ... ok
[INFO] [stdout] test validations::tests::branch_kind_matches_happy_paths ... ok
[INFO] [stdout] test validations::tests::body_summary_ignores_h3_headings ... ok
[INFO] [stdout] test validations::tests::body_test_plan_rejects_when_section_absent ... ok
[INFO] [stdout] test validations::tests::branch_kind_matches_rejects_crossed_pair ... ok
[INFO] [stdout] test validations::tests::branch_name_accepts_dot_in_slug ... ok
[INFO] [stdout] test validations::tests::branch_name_accepts_full_conventional_commits_set ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_empty_slug ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_leading_hyphen ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_missing_prefix ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_oversized_slug ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_unknown_prefix ... ok
[INFO] [stdout] test validations::tests::branch_name_rejects_uppercase_slug ... ok
[INFO] [stdout] test validations::tests::head_pushed_accepts_matching_shas ... ok
[INFO] [stdout] test validations::tests::head_pushed_rejects_divergent_shas ... ok
[INFO] [stdout] test validations::tests::head_pushed_rejects_missing_upstream ... ok
[INFO] [stdout] test validations::tests::no_escaped_control_markdown_rejects_literal_escape_artifacts ... ok
[INFO] [stdout] test validations::tests::no_local_path_accepts_portable_text ... ok
[INFO] [stdout] test validations::tests::no_local_path_message_names_the_field ... ok
[INFO] [stdout] test validations::tests::no_local_path_rejects_linux_home_path ... ok
[INFO] [stdout] test validations::tests::pr_kind_round_trips_strings ... ok
[INFO] [stdout] test validations::tests::no_local_path_rejects_macos_home_path ... ok
[INFO] [stdout] test validations::tests::render_local_path_detail_caps_and_appends_escape_hatch ... ok
[INFO] [stdout] test validations::tests::run_local_preflight_all_green_for_valid_inputs ... ok
[INFO] [stdout] test validations::tests::run_local_preflight_marks_branch_kind_not_evaluated_on_invalid_branch ... ok
[INFO] [stdout] test validations::tests::run_local_preflight_reports_every_failure_without_short_circuit ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_allowlists_container_and_runner_roots ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_ignores_bare_roots_without_owner ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_reports_line_numbers_and_dedups_per_line ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_owner_only_without_tail ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_stops_tail_at_delimiters ... ok
[INFO] [stdout] test validations::tests::title_length_accepts_short_title ... ok
[INFO] [stdout] test validations::tests::scan_local_paths_strips_trailing_sentence_punctuation ... ok
[INFO] [stdout] test validations::tests::title_length_counts_codepoints_not_bytes ... ok
[INFO] [stdout] test validations::tests::title_length_rejects_over_70_chars ... ok
[INFO] [stdout] test validations::tests::title_length_rejects_empty ... ok
[INFO] [stdout] test validations::tests::worktree_clean_accepts_empty_porcelain ... ok
[INFO] [stdout] test validations::tests::title_length_rejects_trailing_whitespace ... ok
[INFO] [stdout] test validations::tests::worktree_clean_rejects_dirty_porcelain ... ok
[INFO] [stdout] test rate_limit::wiring_guard::ops_construct_runner_via_factory ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_within_provider_error_follows_plan_order_not_completion_order ... ok
[INFO] [stdout] test ops::inbox::tests::inbox_parallel_providers_observe_concurrent_inflight ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 592 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/nils-forge-cli/b8ee42b62ee715d0/out/forge_cli-b8ee42b62ee715d0)
[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/release/build/nils-forge-cli/5d1bddf708a83139/out/integration-5d1bddf708a83139)
[INFO] [stdout] 
[INFO] [stdout] running 255 tests
[INFO] [stdout] test integration::activity::activity_commits_dry_run_clamps_limit_to_github_page_size ... ok
[INFO] [stdout] test integration::activity::activity_events_text_reports_empty_results ... ok
[INFO] [stdout] test integration::activity::activity_commits_dry_run_lists_github_search_plan ... ok
[INFO] [stdout] test integration::activity::activity_feed_local_branch_is_activity_specific_provider_unsupported ... ok
[INFO] [stdout] test integration::activity::activity_feed_dry_run_lists_gitlab_project_plans_and_clamps_limit ... ok
[INFO] [stdout] test integration::cli::activity_cli_help_lists_every_v1_subcommand ... ok
[INFO] [stdout] test integration::activity::activity_local_branch_is_activity_specific_provider_unsupported ... ok
[INFO] [stdout] test integration::activity::activity_commits_github_normalizes_search_results ... ok
[INFO] [stdout] test integration::cli::activity_commits_help_describes_contract_inputs ... ok
[INFO] [stdout] test integration::auth_status::auth_status_github_returns_normalized_envelope ... ok
[INFO] [stdout] test integration::activity::activity_feed_rejects_invalid_since_before_backend ... ok
[INFO] [stdout] test integration::cli::dry_run_repo_view_renders_plan_envelope_for_gitlab ... ok
[INFO] [stdout] test integration::activity::activity_gitlab_branch_is_provider_unsupported ... ok
[INFO] [stdout] test integration::cli::help_lists_every_top_level_subcommand ... ok
[INFO] [stdout] test integration::cli::inbox_cli_help_lists_every_v1_subcommand ... ok
[INFO] [stdout] test integration::cli::issue_help_lists_every_v1_subcommand ... ok
[INFO] [stdout] test integration::cli::pr_help_lists_every_v1_subcommand ... ok
[INFO] [stdout] test integration::cli::label_help_lists_every_v1_subcommand ... ok
[INFO] [stdout] test integration::activity::activity_commits_text_is_scannable ... ok
[INFO] [stdout] test integration::auth_status::auth_status_gitlab_returns_normalized_envelope ... ok
[INFO] [stdout] test integration::cli::pr_review_help_distinguishes_thread_file_posting_and_validate ... ok
[INFO] [stdout] test integration::cli::dry_run_auth_status_renders_plan_envelope ... ok
[INFO] [stdout] test integration::activity::activity_feed_github_normalizes_repo_activity_rows ... ok
[INFO] [stdout] test integration::activity::activity_events_github_resolves_me_and_normalizes_events ... ok
[INFO] [stdout] test integration::activity::activity_summary_github_normalizes_graphql_contributions ... ok
[INFO] [stdout] test integration::exit_codes::exit_codes_use_shared_constants_only ... ok
[INFO] [stdout] test integration::activity::activity_feed_gitlab_normalizes_project_events_without_flattening_provider_semantics ... ok
[INFO] [stdout] test integration::cli::pr_review_threads_missing_subcommand_preserves_json_error_envelope ... ok
[INFO] [stdout] test integration::completion_sync::completion_zsh_emits_non_empty_script_with_compdef_marker ... ok
[INFO] [stdout] test integration::exit_codes::exit_software_for_mangled_repo_view_json ... ok
[INFO] [stdout] test integration::completion_sync::checked_in_bash_completion_matches_live_binary_output ... FAILED
[INFO] [stdout] test integration::exit_codes_full::binary_only_emits_documented_exit_constants ... ok
[INFO] [stdout] test integration::exit_codes_full::checks_failed_maps_to_runtime_1 ... ok
[INFO] [stdout] test integration::exit_codes_full::checks_timeout_maps_to_unavailable_69 ... ok
[INFO] [stdout] test integration::exit_codes_full::every_lockdown_data_kind_maps_to_data_65 ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_data_is_used_by_validation ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_runtime_is_used_by_backend_error ... ok
[INFO] [stdout] test integration::exit_codes::exit_unavailable_for_missing_gh_backend ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_software_is_used_by_software_error ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_software_is_used_by_not_implemented ... ok
[INFO] [stdout] test integration::completion_sync::completion_bash_emits_non_empty_script_with_forge_cli_marker ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_unavailable_is_used_by_backend_missing ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_unavailable_is_used_by_backend_unauthenticated ... ok
[INFO] [stdout] test integration::exit_codes_full::glab_version_unsupported_maps_to_unavailable_69 ... ok
[INFO] [stdout] test integration::exit_codes_full::exit_constant_usage_is_used_by_provider_unsupported ... ok
[INFO] [stdout] test integration::completion_sync::checked_in_zsh_completion_matches_live_binary_output ... FAILED
[INFO] [stdout] test integration::exit_codes::exit_usage_for_unknown_provider_host ... ok
[INFO] [stdout] test integration::fixture_lint::fixture_lint_catches_planted_ghp_token ... FAILED
[INFO] [stdout] test integration::fixture_lint::fixture_lint_passes_on_clean_tempdir ... FAILED
[INFO] [stdout] test integration::auth_status::auth_status_envelope_is_parity_between_backends ... ok
[INFO] [stdout] test integration::exit_codes::exit_usage_for_unknown_subcommand ... ok
[INFO] [stdout] test integration::exit_codes::exit_success_for_auth_status_with_stubbed_gh ... ok
[INFO] [stdout] test integration::inbox::inbox_dry_run_redacts_openvpn_profile_path ... ok
[INFO] [stdout] test integration::conformance::conformance_harness_detects_a_divergence ... ok
[INFO] [stdout] test integration::inbox::inbox_gitlab_vpn_required_tcp_probe_failure_skips_glab ... ok
[INFO] [stdout] test integration::conformance::issue_list_empty_conforms_across_providers ... ok
[INFO] [stdout] test integration::inbox::inbox_gitlab_vpn_required_skips_glab_when_probe_fails ... ok
[INFO] [stdout] test integration::inbox::inbox_github_dedupes_reasons_and_normalizes_items ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_default_plans_identity_and_default_families ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_github_default_plans_pr_and_issue_families ... ok
[INFO] [stdout] test integration::inbox::inbox_contract_all_selected_providers_failed_is_nonzero ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_github_pr_only_skips_issue_searches ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_github_issue_only_skips_pr_searches ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_issue_only_skips_mr_calls ... ok
[INFO] [stdout] test integration::conformance::pr_view_seeded_merged_conforms_for_shape ... ok
[INFO] [stdout] test integration::conformance::issue_view_open_conforms_across_providers ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_skips_identity_when_no_query_needs_it ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_pr_only_skips_issue_calls ... ok
[INFO] [stdout] test integration::inbox::inbox_gitlab_passes_hostname_and_normalizes_api_rows ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_todo_pr_only_keeps_mr_targets ... ok
[INFO] [stdout] test integration::conformance::issue_view_closed_conforms_across_providers ... ok
[INFO] [stdout] test integration::inbox::inbox_list_partial_success_keeps_successful_provider ... ok
[INFO] [stdout] test integration::inbox::inbox_gitlab_host_can_default_from_env ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_todo_issue_only_keeps_issue_targets ... ok
[INFO] [stdout] test integration::issue_atoms::issue_comment_empty_body_exits_data_with_body_missing_summary ... ok
[INFO] [stdout] test integration::inbox::inbox_next_returns_ranked_review_items_first ... ok
[INFO] [stdout] test integration::inbox::inbox_strict_providers_fails_partial_failure_with_provider_details ... ok
[INFO] [stdout] test integration::conformance::pr_checks_seeded_success_conforms_for_shape ... ok
[INFO] [stdout] test integration::inbox::inbox_status_reports_bounded_reason_counts ... ok
[INFO] [stdout] test integration::issue_atoms::issue_create_dry_run_renders_plan_with_title_and_body_file ... ok
[INFO] [stdout] test integration::conformance::issue_view_with_comments_conforms_across_providers ... ok
[INFO] [stdout] test integration::issue_atoms::issue_create_title_over_70_chars_exits_data_with_title_too_long ... ok
[INFO] [stdout] test integration::issue_atoms::issue_close_runs_close_then_view_and_emits_closed_state ... ok
[INFO] [stdout] test integration::issue_atoms::issue_edit_dry_run_renders_plan_with_add_label_remove_label ... ok
[INFO] [stdout] test integration::issue_atoms::issue_edit_revalidates_title_length_when_supplied ... ok
[INFO] [stdout] test integration::inbox::inbox_item_type_gitlab_todo_all_keeps_unclassified_targets ... ok
[INFO] [stdout] test integration::issue_atoms::issue_comment_runs_comment_then_view_and_emits_url ... ok
[INFO] [stdout] test integration::local_ops::pr_checks_reflects_a_seeded_required_failure ... ok
[INFO] [stdout] test integration::local_ops::unsupported_operations_are_rejected_for_local ... ok
[INFO] [stdout] test integration::local_path_guard::allowlisted_ci_runner_path_is_not_blocked ... ok
[INFO] [stdout] test integration::issue_atoms::issue_reopen_runs_reopen_then_view_and_emits_open_state ... ok
[INFO] [stdout] test integration::label_ops::label_audit_gitlab_accepts_json_label_list ... ok
[INFO] [stdout] test integration::local_path_guard::escape_hatch_env_bypasses_the_guard ... ok
[INFO] [stdout] test integration::label_ops::label_audit_github_reports_missing_and_drift ... ok
[INFO] [stdout] test integration::issue_atoms::issue_view_emits_canonical_envelope ... ok
[INFO] [stdout] test integration::label_ops::label_ensure_dry_run_emits_create_and_update_plans ... ok
[INFO] [stdout] test integration::local_path_guard::issue_comment_with_macos_home_path_exits_data_65 ... ok
[INFO] [stdout] test integration::local_path_guard::pr_comment_with_gitlab_home_path_exits_data_65_before_backend ... ok
[INFO] [stdout] test integration::local_path_guard::issue_create_with_local_path_in_title_exits_data_65 ... ok
[INFO] [stdout] test integration::conformance::issue_list_label_filter_conforms_across_providers ... ok
[INFO] [stdout] test integration::local_path_guard::issue_comment_with_local_path_body_file_exits_data_65_without_echoing_path ... ok
[INFO] [stdout] test integration::local_path_guard::text_format_surfaces_kind_and_home_fix_on_stderr ... ok
[INFO] [stdout] test integration::local_ops::pr_read_half_serves_seeded_records ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_dry_run_renders_plan_with_json_fields ... ok
[INFO] [stdout] test integration::parity::parity_harness_catches_deliberate_schema_mismatch ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_all_pending_reports_pending_state ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_cancelled_marks_failure_lane ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_all_success_emits_success_state ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_empty_array_is_success_zero_count ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_mixed_failure_required_only_false_includes_optional_in_gating ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_mixed_failure_marks_required_failed ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_no_required_checks_backend_message_is_success_zero_required ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_falls_back_to_rest_when_rollup_view_is_permission_blocked ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_nonzero_pending_stdout_is_still_parsed ... ok
[INFO] [stdout] test integration::local_ops::issue_lifecycle_is_real_against_the_store ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_completed_check_run_without_conclusion_is_pending ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_fallback_fails_closed_on_truncated_check_runs ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_non_success_conclusions_fail_or_cancel ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_fallback_fails_closed_on_truncated_statuses ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_required_only_false_gates_all_rows_without_warning ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_rest_required_only_empty_snapshot_is_pending ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_gitlab_api_jobs_do_not_probe_glab_version ... ok
[INFO] [stdout] test integration::pr_checks_github::pr_checks_skips_status_rollup_view_on_permission_error ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_all_success_emits_success_state ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_no_pipeline_is_success_zero_count ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_manual_only_is_success_neutral ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_empty_pipeline_is_success_zero_count ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_version_too_new_fails_unavailable ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_branch_with_repo_uses_merge_requests_api ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_mixed_states_promotes_failure ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_one_failure_marks_failure_state ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_pending_only_reports_pending ... ok
[INFO] [stdout] test integration::pr_checks_gitlab::pr_checks_glab_numeric_id_resolves_through_mr_view ... ok
[INFO] [stdout] test integration::pr_create::pr_create_rejects_body_and_body_file_conflict_with_usage_exit ... ok
[INFO] [stdout] test integration::pr_create::pr_create_rejects_body_without_summary_with_data_exit ... ok
[INFO] [stdout] test integration::pr_create::pr_create_rejects_branch_kind_mismatch_with_data_exit ... ok
[INFO] [stdout] test integration::parity::parity_dry_run_ok_flag_is_true_on_both_providers ... ok
[INFO] [stdout] test integration::pr_create::pr_create_missing_head_branch_reports_head_not_pushed ... ok
[INFO] [stdout] test integration::parity::parity_dry_run_envelope_schema_literal_matches_for_every_atom ... ok
[INFO] [stdout] test integration::parity::parity_dry_run_warnings_field_is_omitted_when_empty ... ok
[INFO] [stdout] test integration::parity::parity_dry_run_data_provider_differs_only_in_provider_field ... ok
[INFO] [stdout] test integration::pr_create::pr_create_dry_run_renders_plan_envelope ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_help_lists_every_documented_flag ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_dry_run_lists_all_eight_steps_in_order ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_dry_run_method_override_threads_through_merge_plan ... ok
[INFO] [stdout] test integration::pr_create::pr_create_rejects_dirty_worktree_with_data_exit ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_dry_run_no_merge_excludes_ready_and_merge ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_dry_run_reports_local_preflight_without_backend ... ok
[INFO] [stdout] test integration::pr_create::pr_create_github_full_chain_emits_canonical_envelope ... ok
[INFO] [stdout] test integration::pr_create::pr_create_gitlab_full_chain_emits_canonical_envelope ... ok
[INFO] [stdout] test integration::pr_deliver::pr_deliver_dry_run_threads_labels_into_create_step ... ok
[INFO] [stdout] test integration::pr_create::pr_create_head_flag_uses_named_branch_push_state ... ok
[INFO] [stdout] test integration::pr_create::pr_create_rejects_title_over_70_chars_with_data_exit ... ok
[INFO] [stdout] test integration::pr_create::pr_create_strict_labels_rejects_unknown_catalog_label ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_adopt_revalidates_existing_pr_body_and_fails_closed ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_missing_head_branch_reports_head_not_pushed ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_short_circuits_when_pr_create_validation_fails_with_data_65 ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_full_chain_no_merge_emits_four_steps_and_returns_success ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_dry_run_method_override_uses_merge_flag ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_head_flag_uses_named_branch_push_state ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_dry_run_renders_squash_plan_with_delete_branch ... ok
[INFO] [stdout] test integration::inbox::inbox_cache_fallback_marks_cached_items_stale_while_provider_failed ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_without_body_and_no_open_pr_still_fails_create_body_gate ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_github_merge_step_blocks_on_unchecked_task_items ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_keep_branch_conflicts_with_config_delete_branch_true ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_adopts_existing_open_pr_for_head_branch ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_no_issue_closeout_flag_skips_the_step ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_keep_branch_drops_delete_branch_in_dry_run_plan ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_full_chain_emits_all_seven_steps_with_merge_sha ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_adopt_head_flag_uses_named_branch_push_state ... ok
[INFO] [stdout] test integration::pr_review::pr_review_dry_run_includes_pull_request_guard ... ok
[INFO] [stdout] test integration::pr_review::pr_review_mirror_issue_without_issue_checks_before_reading_body ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_closeout_skips_already_closed_linked_issue ... ok
[INFO] [stdout] test integration::pr_review::pr_review_gitlab_uses_bare_form_when_no_create_subcommand ... ok
[INFO] [stdout] test integration::pr_review::pr_review_missing_comment_file_reports_matching_flag ... ok
[INFO] [stdout] test integration::pr_review::pr_review_gitlab_uses_create_without_flag_when_resolvable_unsupported ... ok
[INFO] [stdout] test integration::pr_review::pr_review_mirror_issue_without_issue_reports_issue_required ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_closes_out_open_linked_issue_after_merge ... ok
[INFO] [stdout] test integration::pr_review::pr_review_rejects_lens_escaped_control_in_mirror_before_backend_call ... ok
[INFO] [stdout] test integration::pr_review::pr_review_rejects_local_paths_before_backend_call ... ok
[INFO] [stdout] test integration::pr_review::pr_review_rejects_lens_local_path_in_mirror_before_backend_call ... ok
[INFO] [stdout] test integration::pr_review::pr_review_propagates_non_404_guard_failure ... ok
[INFO] [stdout] test integration::pr_review::pr_review_posts_gitlab_outcome_and_issue_mirror ... ok
[INFO] [stdout] test integration::pr_review::pr_review_rejects_non_pull_request_id_before_posting ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_gitlab_blocks_on_unchecked_task_items ... ok
[INFO] [stdout] test integration::pr_review::pr_review_submit_native_dry_run_renders_review_submit ... ok
[INFO] [stdout] test integration::pr_review::pr_review_posts_outcome_and_mirrors_issue_activity ... ok
[INFO] [stdout] test integration::pr_review::pr_review_submit_native_approve_allows_empty_body ... ok
[INFO] [stdout] test integration::pr_review::pr_review_submit_native_review_event_on_github ... ok
[INFO] [stdout] test integration::pr_review::pr_review_submit_review_rejects_gitlab ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_gitlab_allow_unresolved_threads_bypasses_gate ... ok
[INFO] [stdout] test integration::pr_review::pr_review_submit_native_approve_422_is_actionable ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_dry_run_renders_thread_creation_plan ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_mirror_issue_without_issue_checks_before_reading_thread_file ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_gitlab ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_gitlab_allow_unchecked_tasks_bypasses_gate_and_records_reason ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_malformed_json ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_creates_resolvable_github_review_thread ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_oversized_body_before_backend ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_cleans_up_pending_review_after_thread_failure ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_oversized_stdin_before_backend ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_cleans_up_pending_review_after_submit_failure ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_without_submit_review ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_too_many_specs_before_backend ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_reports_merge_success_when_issue_close_fails ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_accepts_paginated_file_arrays ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_dry_run_requires_repo_before_diff_plan ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_dry_run_renders_diff_plan_without_backend ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_maps_github_diff_failure_to_typed_error_and_cleans_up ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_requires_id_before_reading_thread_file_stdin ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_requires_id ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_uses_parent_pr_id ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_rejects_left_side_context_line ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_rejects_range_across_hunks ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_inherits_parent_comment_and_thread_files ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_runs_on_local_provider_without_store_backend ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_rejects_reversed_range ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_check_diff_rejects_uncommentable_line ... ok
[INFO] [stdout] test integration::pr_review::pr_review_validate_thread_file_emits_normalized_preflight_without_backend ... ok
[INFO] [stdout] test integration::pr_wait_checks::pr_wait_checks_dry_run_renders_plan_envelope_without_calling_backend ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_rejects_privacy_guard_violations_before_backend ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_gitlab_blocks_on_unresolved_review_threads ... ok
[INFO] [stdout] test integration::pr_review::pr_review_thread_file_submit_422_is_actionable_and_cleans_up ... ok
[INFO] [stdout] test integration::repo_view::repo_view_gitlab_normalizes_envelope ... ok
[INFO] [stdout] test integration::repo_view::repo_view_github_normalizes_envelope ... ok
[INFO] [stdout] test integration::pr_wait_checks::pr_wait_checks_gitlab_api_succeeds_without_version_probe ... ok
[INFO] [stdout] test integration::required_check_gate::failing_required_check_exits_runtime_with_kind_checks_failed ... ok
[INFO] [stdout] test integration::rate_limit_gate::pr_view_preflights_rate_limit_when_gate_enabled ... ok
[INFO] [stdout] test integration::search::search_gitlab_branch_is_provider_unsupported ... ok
[INFO] [stdout] test integration::rate_limit_gate::issue_view_preflights_rate_limit_when_gate_enabled ... ok
[INFO] [stdout] test integration::pr_wait_checks::pr_wait_checks_required_failure_exits_runtime_with_kind_checks_failed ... ok
[INFO] [stdout] test integration::pr_merge::pr_merge_gitlab_uses_api_merge_after_required_checks_pass ... ok
[INFO] [stdout] test integration::search::search_issues_dry_run_lists_gh_search_plan ... ok
[INFO] [stdout] test integration::search::search_issues_empty_result_is_well_formed_envelope ... ok
[INFO] [stdout] test integration::search::search_local_branch_is_provider_unsupported ... ok
[INFO] [stdout] test integration::repo_view::repo_view_parity_envelope_modulo_provider_and_url_host ... ok
[INFO] [stdout] test integration::required_check_gate::all_required_green_returns_payload_with_runtime_runner ... ok
[INFO] [stdout] test integration::validations::sprint3_runtime_and_unavailable_kinds_match_spec ... ok
[INFO] [stdout] test integration::validations::test_first_evidence_kinds_match_spec ... ok
[INFO] [stdout] test integration::validations::validation_kinds_match_spec_catalog ... ok
[INFO] [stdout] test integration::search::search_refs_to_dry_run_lists_graphql_plan ... ok
[INFO] [stdout] test integration::search::search_refs_to_gitlab_branch_is_provider_unsupported ... ok
[INFO] [stdout] test integration::search::search_refs_to_rejects_unparseable_ref ... ok
[INFO] [stdout] test integration::search::search_issues_github_normalizes_hits_including_body_only_match ... ok
[INFO] [stdout] test integration::search::search_issues_text_is_scannable ... ok
[INFO] [stdout] test integration::search::search_prs_github_honours_narrowed_match_and_limit ... ok
[INFO] [stdout] test integration::pr_deliver_chain::pr_deliver_treats_gh_exit_1_after_successful_merge_as_success ... ok
[INFO] [stdout] test integration::search::search_refs_to_github_normalizes_cross_references ... ok
[INFO] [stdout] test integration::required_check_gate::helper_refetches_every_call_no_caching_across_atoms ... ok
[INFO] [stdout] test integration::required_check_gate::pending_required_check_exits_data_with_kind_checks_pending ... ok
[INFO] [stdout] test integration::pr_wait_checks::pr_wait_checks_succeeds_when_terminal_on_third_poll ... ok
[INFO] [stdout] test integration::pr_wait_checks::pr_wait_checks_timeout_exits_unavailable_with_kind_checks_timeout ... ok
[INFO] [stdout] test integration::inbox::inbox_gitlab_only_timeout_is_nonzero ... ok
[INFO] [stdout] test integration::inbox::inbox_provider_timeout_is_provider_local_partial_failure ... ok
[INFO] [stdout] test integration::rate_limit_gate::pr_view_retries_once_after_rate_limited_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- integration::completion_sync::checked_in_bash_completion_matches_live_binary_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'integration::completion_sync::checked_in_bash_completion_matches_live_binary_output' (1974) panicked at tests/integration/completion_sync.rs:38:10:
[INFO] [stdout] locate workspace root
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6208f5cfb8a1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6208f5d10dca - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x6208f5cffdac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6208f5cd5096 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6208f5cf2fc9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x6208f5c54290 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x6208f5cf3182 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6208f5cd5142 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6208f5ccda19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6208f5cd5ead - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x6208f5d114fc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6208f5d11254 - core[a373ad73a504971]::option::expect_failed
[INFO] [stdout]   12:     0x6208f5c30ef7 - integration[6154b5b0f021e171]::integration::completion_sync::workspace_root
[INFO] [stdout]   13:     0x6208f5c320b2 - <integration[6154b5b0f021e171]::integration::completion_sync::checked_in_bash_completion_matches_live_binary_output::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x6208f5c476db - 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:     0x6208f5c548b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x6208f5c4e1a4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x6208f5c57942 - <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:     0x6208f5cfabbf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x705eea98fdfa - <unknown>
[INFO] [stdout]   20:     0x705eeaa233d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- integration::completion_sync::checked_in_zsh_completion_matches_live_binary_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'integration::completion_sync::checked_in_zsh_completion_matches_live_binary_output' (1977) panicked at tests/integration/completion_sync.rs:38:10:
[INFO] [stdout] locate workspace root
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6208f5cfb8a1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6208f5d10dca - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x6208f5cffdac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6208f5cd5096 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6208f5cf2fc9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x6208f5c54290 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x6208f5cf3182 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6208f5cd5142 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6208f5ccda19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6208f5cd5ead - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x6208f5d114fc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6208f5d11254 - core[a373ad73a504971]::option::expect_failed
[INFO] [stdout]   12:     0x6208f5c30ef7 - integration[6154b5b0f021e171]::integration::completion_sync::workspace_root
[INFO] [stdout]   13:     0x6208f5c31dc2 - <integration[6154b5b0f021e171]::integration::completion_sync::checked_in_zsh_completion_matches_live_binary_output::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x6208f5c476db - 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:     0x6208f5c548b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x6208f5c4e1a4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x6208f5c57942 - <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:     0x6208f5cfabbf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x705eea98fdfa - <unknown>
[INFO] [stdout]   20:     0x705eeaa233d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- integration::fixture_lint::fixture_lint_catches_planted_ghp_token stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'integration::fixture_lint::fixture_lint_catches_planted_ghp_token' (2065) panicked at tests/integration/fixture_lint.rs:25:10:
[INFO] [stdout] locate lint script root (cargo test from any depth)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6208f5cfb8a1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6208f5d10dca - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x6208f5cffdac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6208f5cd5096 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6208f5cf2fc9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x6208f5c54290 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x6208f5cf3182 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6208f5cd5142 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6208f5ccda19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6208f5cd5ead - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x6208f5d114fc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6208f5d11254 - core[a373ad73a504971]::option::expect_failed
[INFO] [stdout]   12:     0x6208f5bfa9f6 - <integration[6154b5b0f021e171]::integration::fixture_lint::fixture_lint_catches_planted_ghp_token::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x6208f5c476db - 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]   14:     0x6208f5c548b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x6208f5c4e1a4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x6208f5c57942 - <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]   17:     0x6208f5cfabbf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x705eea98fdfa - <unknown>
[INFO] [stdout]   19:     0x705eeaa233d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- integration::fixture_lint::fixture_lint_passes_on_clean_tempdir stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'integration::fixture_lint::fixture_lint_passes_on_clean_tempdir' (2066) panicked at tests/integration/fixture_lint.rs:67:10:
[INFO] [stdout] locate lint script root
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6208f5cfb8a1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6208f5d10dca - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x6208f5cffdac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6208f5cd5096 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6208f5cf2fc9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x6208f5c54290 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x6208f5cf3182 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6208f5cd5142 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6208f5ccda19 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6208f5cd5ead - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x6208f5d114fc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6208f5d11254 - core[a373ad73a504971]::option::expect_failed
[INFO] [stdout]   12:     0x6208f5bfa2e7 - <integration[6154b5b0f021e171]::integration::fixture_lint::fixture_lint_passes_on_clean_tempdir::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x6208f5c476db - 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]   14:     0x6208f5c548b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x6208f5c4e1a4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x6208f5c57942 - <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]   17:     0x6208f5cfabbf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x705eea98fdfa - <unknown>
[INFO] [stdout]   19:     0x705eeaa233d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     integration::completion_sync::checked_in_bash_completion_matches_live_binary_output
[INFO] [stdout]     integration::completion_sync::checked_in_zsh_completion_matches_live_binary_output
[INFO] [stdout]     integration::fixture_lint::fixture_lint_catches_planted_ghp_token
[INFO] [stdout]     integration::fixture_lint::fixture_lint_passes_on_clean_tempdir
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 251 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.44s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test integration`
[INFO] running `Command { std: "docker" "inspect" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d", kill_on_drop: false }`
[INFO] [stdout] 18b54ceae93c37b77d21d49893ce1572b89c48bcaa980cedd1c9ecf9938cd23d
