[INFO] fetching crate youtrack-mcp-rs 1.1.0...
[INFO] testing youtrack-mcp-rs-1.1.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate youtrack-mcp-rs 1.1.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate youtrack-mcp-rs 1.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate youtrack-mcp-rs 1.1.0
[INFO] tweaked toml for crates.io crate youtrack-mcp-rs 1.1.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate youtrack-mcp-rs 1.1.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate youtrack-mcp-rs 1.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rmcp-macros v3.1.3
[INFO] [stderr]   Downloaded uuid v1.24.1
[INFO] [stderr]   Downloaded rmcp v3.1.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f
[INFO] running `Command { std: "docker" "start" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", 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" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", 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" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling rmcp v3.1.3
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling uuid v1.24.1
[INFO] [stderr]    Compiling pastey v0.2.3
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling darling_core v0.24.0
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.5
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling darling_macro v0.24.0
[INFO] [stderr]    Compiling darling v0.24.0
[INFO] [stderr]    Compiling zerovec v0.11.7
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling rmcp-macros v3.1.3
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling icu_provider v2.3.0
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.14
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.7.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling youtrack-mcp-rs v1.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", 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" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling h2 v0.4.16
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling rmcp v3.1.3
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.4
[INFO] [stderr]    Compiling youtrack-mcp-rs v1.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 52.00s
[INFO] running `Command { std: "docker" "inspect" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", 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" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/youtrack_mcp_rs-a691867465e70961)
[INFO] [stdout] 
[INFO] [stdout] running 236 tests
[INFO] [stdout] test client::agile::tests::list_sprints_batch_exactly_at_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::articles::tests::delete_article_maps_404_to_not_found_with_the_article_id ... ok
[INFO] [stdout] test client::articles::tests::create_article_with_an_unknown_parent_article_fails_without_sending_the_create_request ... ok
[INFO] [stdout] test client::activity::tests::get_issue_activity_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::activity::tests::get_issue_activity_deserializes_a_page_of_activity_items ... ok
[INFO] [stdout] test client::agile::tests::get_sprint_maps_404_to_not_found_with_the_sprint_id ... ok
[INFO] [stdout] test client::articles::tests::get_article_deserializes_a_single_article_with_content ... ok
[INFO] [stdout] test client::agile::tests::get_sprint_deserializes_a_sprint_with_its_issues ... ok
[INFO] [stdout] test client::activity::tests::get_issue_activity_maps_404_to_a_generic_api_error ... ok
[INFO] [stdout] test client::articles::tests::create_article_sends_project_summary_and_content ... ok
[INFO] [stdout] test client::agile::tests::list_agile_boards_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::agile::tests::list_agile_boards_batch_smaller_than_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::articles::tests::list_articles_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::articles::tests::create_article_resolves_a_parent_article_readable_id_to_its_internal_id ... ok
[INFO] [stdout] test client::articles::tests::delete_article_sends_a_delete_request_to_the_article_path ... ok
[INFO] [stdout] test client::agile::tests::add_issue_to_sprint_posts_the_issue_id_to_the_sprint_issues_endpoint ... ok
[INFO] [stdout] test client::articles::tests::list_article_attachments_deserializes_name_and_size ... ok
[INFO] [stdout] test client::articles::tests::get_article_maps_404_to_not_found_with_the_article_id ... ok
[INFO] [stdout] test client::articles::tests::list_articles_batch_smaller_than_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::agile::tests::add_issue_to_sprint_maps_404_to_not_found_with_the_sprint_id ... ok
[INFO] [stdout] test client::articles::tests::update_article_sends_only_the_provided_fields ... ok
[INFO] [stdout] test client::attachments::tests::download_attachment_bytes_rejects_a_cross_host_redirect ... ok
[INFO] [stdout] test client::articles::tests::upload_article_attachment_maps_404_to_not_found_with_the_article_id ... ok
[INFO] [stdout] test client::attachments::tests::get_attachment_maps_404_to_not_found_with_the_attachment_id ... ok
[INFO] [stdout] test client::commands::tests::apply_command_sends_every_issue_in_a_single_request_for_bulk_ids ... ok
[INFO] [stdout] test client::attachments::tests::download_attachment_bytes_maps_404_to_a_generic_api_error ... ok
[INFO] [stdout] test client::attachments::tests::download_attachment_bytes_follows_a_same_host_redirect ... ok
[INFO] [stdout] test client::attachments::tests::list_attachments_deserializes_name_and_size ... ok
[INFO] [stdout] test client::attachments::tests::get_attachment_deserializes_the_download_url ... ok
[INFO] [stdout] test client::articles::tests::update_article_maps_404_to_not_found_with_the_article_id ... ok
[INFO] [stdout] test client::attachments::tests::upload_attachment_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::articles::tests::upload_article_attachment_sends_a_multipart_request_with_the_file_part ... ok
[INFO] [stdout] test client::commands::tests::apply_command_maps_401_to_unauthorized ... ok
[INFO] [stdout] test client::issues::tests::get_issue_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::attachments::tests::upload_attachment_sends_a_multipart_request_with_the_file_part ... ok
[INFO] [stdout] test client::commands::tests::apply_command_sends_the_query_and_a_single_issue_reference ... ok
[INFO] [stdout] test client::comments::tests::add_comment_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::issues::tests::list_links_deserializes_links_with_issues ... ok
[INFO] [stdout] test client::attachments::tests::download_attachment_bytes_rejects_a_body_over_the_size_cap ... ok
[INFO] [stdout] test client::issues::tests::delete_issue_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::attachments::tests::download_attachment_bytes_fetches_the_body_from_the_host_root_not_the_api_base ... ok
[INFO] [stdout] test client::issues::tests::create_issue_sends_project_summary_and_description ... ok
[INFO] [stdout] test client::comments::tests::list_comments_deserializes_a_page_of_comments ... ok
[INFO] [stdout] test client::issues::tests::create_issue_with_an_unknown_custom_field_fails_without_sending_the_create_request ... ok
[INFO] [stdout] test client::comments::tests::list_comments_maps_404_to_a_generic_api_error ... ok
[INFO] [stdout] test client::issues::tests::get_issue_maps_401_to_unauthorized ... ok
[INFO] [stdout] test client::issues::tests::create_issue_with_a_valid_custom_field_encodes_it_in_the_request_body ... ok
[INFO] [stdout] test client::page::tests::batch_exactly_at_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::page::tests::batch_of_limit_plus_one_has_more_pages_with_valid_cursor ... ok
[INFO] [stdout] test client::page::tests::batch_smaller_than_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::page::tests::cursor_decode_rejects_garbage_input ... ok
[INFO] [stdout] test client::metadata::tests::list_saved_searches_maps_401_to_unauthorized ... ok
[INFO] [stdout] test client::page::tests::cursor_round_trips_through_encode_and_decode ... ok
[INFO] [stdout] test client::page::tests::cursor_next_offset_accounts_for_existing_skip ... ok
[INFO] [stdout] test client::issues::tests::get_issue_deserializes_a_single_issue ... ok
[INFO] [stdout] test client::issues::tests::delete_issue_sends_a_delete_request_to_the_issue_path ... ok
[INFO] [stdout] test client::comments::tests::add_comment_sends_the_text_body_and_returns_the_created_comment ... ok
[INFO] [stdout] test client::issues::tests::search_issues_batch_of_limit_plus_one_has_more_pages_with_valid_cursor ... ok
[INFO] [stdout] test client::issues::tests::search_issues_batch_exactly_at_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::issues::tests::update_issue_with_an_unknown_custom_field_fails_without_sending_the_update_request ... ok
[INFO] [stdout] test client::metadata::tests::list_saved_searches_deserializes_a_page_with_owner_and_query ... ok
[INFO] [stdout] test client::tests::delete_maps_404_to_not_found_when_named ... ok
[INFO] [stdout] test client::issues::tests::update_issue_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::tests::get_json_maps_429_with_retry_after_header_to_rate_limited_with_the_parsed_duration ... ok
[INFO] [stdout] test client::issues::tests::update_issue_with_a_valid_custom_field_resolves_the_project_and_encodes_it ... ok
[INFO] [stdout] test client::tests::delete_succeeds_on_a_2xx_response ... ok
[INFO] [stdout] test client::issues::tests::search_issues_batch_smaller_than_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::issues::tests::update_issue_sends_only_the_provided_fields ... ok
[INFO] [stdout] test client::projects::tests::list_projects_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::metadata::tests::list_tags_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::tests::post_json_maps_404_to_not_found_when_named ... ok
[INFO] [stdout] test client::projects::tests::list_project_fields_deserializes_bundle_values ... ok
[INFO] [stdout] test client::time::tests::list_work_items_deserializes_a_page_of_work_items ... ok
[INFO] [stdout] test client::metadata::tests::list_tags_maps_403_to_forbidden ... ok
[INFO] [stdout] test client::tests::get_json_maps_429_without_retry_after_header_to_rate_limited_with_none ... ok
[INFO] [stdout] test client::projects::tests::list_project_fields_maps_403_to_forbidden ... ok
[INFO] [stdout] test client::projects::tests::list_projects_batch_smaller_than_limit_has_no_more_pages ... ok
[INFO] [stdout] test client::metadata::tests::list_tags_deserializes_a_page_of_tags ... ok
[INFO] [stdout] test client::time::tests::delete_work_item_maps_404_to_not_found_with_the_work_item_id ... ok
[INFO] [stdout] test client::tests::request_joins_base_url_without_subpath_and_leading_slash_path ... ok
[INFO] [stdout] test config::tests::empty_token_is_a_typed_error ... ok
[INFO] [stdout] test config::tests::from_env_reads_url_and_token_from_process_environment ... ok
[INFO] [stdout] test config::tests::http_scheme_is_rejected ... ok
[INFO] [stdout] test config::tests::malformed_url_is_rejected ... ok
[INFO] [stdout] test config::tests::missing_token_is_a_typed_error ... ok
[INFO] [stdout] test config::tests::missing_url_is_a_typed_error ... ok
[INFO] [stdout] test client::tests::request_joins_base_url_with_path_and_sets_headers ... ok
[INFO] [stdout] test config::tests::trailing_slash_is_normalized_away ... ok
[INFO] [stdout] test config::tests::url_ending_in_api_suffix_with_trailing_slash_is_rejected ... ok
[INFO] [stdout] test config::tests::url_without_trailing_slash_is_accepted_unchanged ... ok
[INFO] [stdout] test config::tests::url_ending_in_api_suffix_is_rejected ... ok
[INFO] [stdout] test client::time::tests::add_work_item_sends_duration_and_text_and_returns_the_created_item ... ok
[INFO] [stdout] test client::time::tests::add_work_item_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::users::tests::get_current_user_deserializes_the_authenticated_user ... ok
[INFO] [stdout] test client::users::tests::list_watchers_returns_an_empty_vec_when_no_watchers_are_present ... ok
[INFO] [stdout] test client::tests::post_json_sends_the_body_and_deserializes_a_successful_response ... ok
[INFO] [stdout] test error::tests::api_error_uses_description_as_hint_when_present ... ok
[INFO] [stdout] test error::tests::api_error_without_description_gets_generic_hint ... ok
[INFO] [stdout] test error::tests::decode_hint_mentions_the_failing_endpoint ... ok
[INFO] [stdout] test error::tests::forbidden_maps_to_tool_error_with_permission_hint ... ok
[INFO] [stdout] test client::time::tests::add_work_item_omits_text_when_none ... ok
[INFO] [stdout] test error::tests::not_found_hint_mentions_resource_and_id_for_issue ... ok
[INFO] [stdout] test error::tests::rate_limited_with_retry_after_includes_seconds_in_hint ... ok
[INFO] [stdout] test client::time::tests::list_work_items_maps_404_to_a_generic_api_error ... ok
[INFO] [stdout] test error::tests::render_includes_code_message_and_hint_when_hint_present ... ok
[INFO] [stdout] test error::tests::render_omits_hint_parens_when_hint_absent ... ok
[INFO] [stdout] test error::tests::too_many_redirects_maps_to_a_structured_tool_error ... ok
[INFO] [stdout] test error::tests::unauthorized_maps_to_tool_error_with_token_hint ... ok
[INFO] [stdout] test error::tests::unknown_custom_fields_names_the_field_and_lists_the_valid_set_in_the_hint ... ok
[INFO] [stdout] test error::tests::unknown_custom_fields_without_a_valid_set_still_names_the_field ... ok
[INFO] [stdout] test error::tests::validation_with_field_includes_field_name_in_hint ... ok
[INFO] [stdout] test error::tests::validation_without_field_has_no_hint ... ok
[INFO] [stdout] test error::tests::rate_limited_without_retry_after_has_generic_hint ... ok
[INFO] [stdout] test payload::tests::from_value_pairs_rendered_text_with_json_for_issue_summary ... ok
[INFO] [stdout] test render::activity::tests::render_falls_back_to_a_generic_field_label_when_absent ... ok
[INFO] [stdout] test render::activity::tests::render_names_who_when_field_and_the_change ... ok
[INFO] [stdout] test payload::tests::from_value_pairs_rendered_text_with_json_for_project_count ... ok
[INFO] [stdout] test render::activity::tests::render_uses_dashes_for_null_added_or_removed_values ... ok
[INFO] [stdout] test render::command::tests::render_lists_every_issue_and_the_count_for_multiple_issue_ids ... ok
[INFO] [stdout] test render::command::tests::render_names_the_single_issue_for_one_issue_id ... ok
[INFO] [stdout] test render::comment::tests::civil_from_days_converts_a_known_recent_date ... ok
[INFO] [stdout] test render::comment::tests::civil_from_days_converts_the_epoch_to_1970_01_01 ... ok
[INFO] [stdout] test render::comment::tests::format_created_renders_a_dash_when_absent ... ok
[INFO] [stdout] test render::comment::tests::format_created_renders_year_month_day ... ok
[INFO] [stdout] test render::comment::tests::render_falls_back_to_login_and_then_a_placeholder ... ok
[INFO] [stdout] test render::command::tests::render_reports_no_issues_when_the_list_is_empty ... ok
[INFO] [stdout] test render::comment::tests::render_prefers_full_name_over_login_and_indents_the_text ... ok
[INFO] [stdout] test render::format_epoch_millis_tests::renders_a_dash_when_absent ... ok
[INFO] [stdout] test render::format_epoch_millis_tests::renders_a_known_recent_date ... ok
[INFO] [stdout] test render::metadata::tests::saved_search_render_names_owner_and_query ... ok
[INFO] [stdout] test render::metadata::tests::saved_search_render_omits_owner_and_query_when_absent ... ok
[INFO] [stdout] test error::tests::cross_host_redirect_hint_names_the_redirect_target ... ok
[INFO] [stdout] test error::tests::download_too_large_hint_names_the_byte_limit ... ok
[INFO] [stdout] test error::tests::not_found_hint_mentions_resource_and_id_for_article ... ok
[INFO] [stdout] test render::user::tests::render_falls_back_to_login_and_placeholder ... ok
[INFO] [stdout] test render::metadata::tests::tag_render_shows_its_name ... ok
[INFO] [stdout] test render::metadata::tests::tag_render_falls_back_to_a_placeholder_when_unnamed ... ok
[INFO] [stdout] test render::user::tests::render_prefers_full_name_and_lists_login_and_email ... ok
[INFO] [stdout] test render::user::tests::watchers_render_reports_none_when_empty ... ok
[INFO] [stdout] test render::format_epoch_millis_tests::renders_year_month_day_for_the_epoch ... ok
[INFO] [stdout] test render::work_item::tests::render_appends_the_work_item_type_when_present ... ok
[INFO] [stdout] test render::user::tests::watchers_render_lists_every_watcher_by_name ... ok
[INFO] [stdout] test render::work_item::tests::render_appends_indented_text_when_present ... ok
[INFO] [stdout] test client::tests::request_reaches_mock_server_with_expected_path_and_auth_header ... ok
[INFO] [stdout] test render::work_item::tests::render_names_who_when_and_duration ... ok
[INFO] [stdout] test config::tests::validate_maps_403_to_forbidden ... ok
[INFO] [stdout] test client::time::tests::delete_work_item_succeeds_on_a_2xx_response ... ok
[INFO] [stdout] test client::users::tests::list_watchers_maps_404_to_not_found_with_the_issue_id ... ok
[INFO] [stdout] test client::users::tests::get_current_user_maps_401_to_unauthorized ... ok
[INFO] [stdout] test config::tests::validate_maps_401_to_unauthorized ... ok
[INFO] [stdout] test client::users::tests::search_users_sends_the_query_param_and_returns_a_page ... ok
[INFO] [stdout] test client::users::tests::search_users_batch_of_limit_plus_one_has_more_pages ... ok
[INFO] [stdout] test client::users::tests::list_watchers_extracts_users_from_the_nested_watchers_projection ... ok
[INFO] [stdout] test config::tests::validate_maps_other_status_to_api_error ... ok
[INFO] [stdout] test config::tests::validate_succeeds_on_200_from_users_me_endpoint ... ok
[INFO] [stdout] test tools::activity::tests::get_issue_activity_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::agile::tests::list_agile_boards_returns_a_page_of_boards ... ok
[INFO] [stdout] test tools::agile::tests::move_issue_to_sprint_posts_the_issue_id_to_the_sprint ... ok
[INFO] [stdout] test tools::articles::tests::list_articles_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::activity::tests::get_issue_activity_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::agile::tests::list_sprints_maps_forbidden_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::create_article_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::agile::tests::get_sprint_returns_the_sprint_detail_with_its_issues ... ok
[INFO] [stdout] test tools::activity::tests::get_issue_activity_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::agile::tests::move_issue_to_sprint_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::delete_article_returns_a_successful_result_confirming_the_deleted_id ... ok
[INFO] [stdout] test tools::articles::tests::delete_article_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::update_article_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::articles::tests::get_article_returns_a_successful_result_with_content ... ok
[INFO] [stdout] test tools::articles::tests::list_article_attachments_returns_a_page_of_attachments ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::upload_article_attachment_rejects_a_symlinked_destination ... ok
[INFO] [stdout] test tools::articles::tests::get_article_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::upload_article_attachment_uploads_a_normal_file_successfully ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_rejects_a_path_traversal_destination ... ok
[INFO] [stdout] test tools::articles::tests::list_articles_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_rejects_a_cross_host_redirect ... ok
[INFO] [stdout] test tools::articles::tests::upload_article_attachment_rejects_a_path_traversal_attempt ... ok
[INFO] [stdout] test tools::articles::tests::upload_article_attachment_rejects_a_missing_file ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_rejects_a_symlinked_destination ... ok
[INFO] [stdout] test tools::attachments::tests::list_attachments_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_writes_the_file_to_the_destination_path ... ok
[INFO] [stdout] test tools::attachments::tests::list_attachments_returns_a_page_of_attachments ... ok
[INFO] [stdout] test tools::attachments::tests::upload_attachment_rejects_a_path_traversal_attempt ... ok
[INFO] [stdout] test tools::comments::tests::add_comment_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::attachments::tests::upload_attachment_rejects_a_symlinked_source ... ok
[INFO] [stdout] test tools::attachments::tests::upload_attachment_uploads_a_normal_file_successfully ... ok
[INFO] [stdout] test tools::commands::tests::apply_command_maps_401_to_a_tool_error ... ok
[INFO] [stdout] test tools::commands::tests::bulk_command_trims_and_drops_blank_issue_ids ... ok
[INFO] [stdout] test tools::commands::tests::bulk_command_with_no_issue_ids_returns_a_validation_error_without_a_request ... ok
[INFO] [stdout] test tools::comments::tests::list_comments_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::commands::tests::apply_command_to_one_issue_legacy_apply_command_shape ... ok
[INFO] [stdout] test tools::issues::tests::create_issue_with_an_unknown_custom_field_maps_to_a_tool_error_naming_it ... ok
[INFO] [stdout] test tools::commands::tests::apply_command_to_multiple_issues_legacy_bulk_command_shape ... ok
[INFO] [stdout] test tools::local_file::tests::guess_mime_type_recognizes_common_extensions ... ok
[INFO] [stdout] test tools::local_file::tests::validate_destination_path_accepts_an_existing_regular_file_to_overwrite ... ok
[INFO] [stdout] test tools::local_file::tests::validate_destination_path_rejects_a_path_traversal_attempt ... ok
[INFO] [stdout] test tools::local_file::tests::validate_destination_path_accepts_a_path_with_no_existing_entry ... ok
[INFO] [stdout] test tools::local_file::tests::validate_destination_path_rejects_an_existing_directory ... ok
[INFO] [stdout] test tools::local_file::tests::validate_destination_path_rejects_an_existing_symlink ... ok
[INFO] [stdout] test tools::local_file::tests::write_downloaded_file_writes_the_exact_bytes ... ok
[INFO] [stdout] test tools::local_file::tests::write_downloaded_file_maps_an_unwritable_destination_to_a_structured_io_error ... ok
[INFO] [stdout] test tools::comments::tests::list_comments_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::comments::tests::add_comment_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::articles::tests::upload_article_attachment_rejects_an_oversized_file ... ok
[INFO] [stdout] test tools::comments::tests::list_comments_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::attachments::tests::download_attachment_rejects_an_oversized_download ... ok
[INFO] [stdout] test tools::issues::tests::create_issue_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::issues::tests::delete_issue_returns_a_successful_result_confirming_the_deleted_id ... ok
[INFO] [stdout] test tools::issues::tests::delete_issue_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::attachments::tests::upload_attachment_rejects_an_oversized_file ... ok
[INFO] [stdout] test tools::issues::tests::get_issue_maps_unauthorized_to_a_tool_error ... ok
[INFO] [stdout] test tools::metadata::tests::list_project_fields_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::metadata::tests::list_projects_returns_a_page_of_projects ... ok
[INFO] [stdout] test tools::issues::tests::list_links_returns_the_issue_id_alongside_its_links ... ok
[INFO] [stdout] test tools::issues::tests::search_issues_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::time::tests::list_work_items_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::issues::tests::search_issues_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::users::tests::get_current_user_maps_401_to_a_tool_error ... ok
[INFO] [stdout] test tools::metadata::tests::list_tags_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::metadata::tests::list_saved_searches_maps_401_to_a_tool_error ... ok
[INFO] [stdout] test tools::issues::tests::update_issue_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::metadata::tests::list_project_fields_returns_configured_custom_fields ... ok
[INFO] [stdout] test tools::time::tests::add_work_item_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::metadata::tests::list_saved_searches_returns_a_page_with_owner_and_query ... ok
[INFO] [stdout] test tools::time::tests::delete_work_item_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::metadata::tests::list_tags_returns_a_page_of_tags ... ok
[INFO] [stdout] test tools::tests::tool_server_registers_exactly_35_tools ... ok
[INFO] [stdout] test tools::time::tests::add_work_item_with_zero_duration_returns_a_validation_error_without_a_request ... ok
[INFO] [stdout] test tools::time::tests::list_work_items_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::time::tests::delete_work_item_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::users::tests::list_watchers_returns_the_issue_id_alongside_its_watchers ... ok
[INFO] [stdout] test tools::users::tests::get_current_user_returns_a_successful_result_with_rendered_text_and_json ... ok
[INFO] [stdout] test tools::users::tests::search_users_maps_an_invalid_cursor_to_a_validation_error ... ok
[INFO] [stdout] test tools::users::tests::list_watchers_maps_404_to_a_tool_error ... ok
[INFO] [stdout] test tools::users::tests::search_users_returns_a_page_with_rendered_text_and_json ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 236 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.07s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/youtrack_mcp-2bec6a233e9727a2)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::build_server_fails_fast_with_an_actionable_error_when_the_probe_is_unauthorized ... ok
[INFO] [stdout] test tests::build_server_succeeds_when_the_connectivity_probe_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_stdio.rs (/opt/rustwide/target/debug/deps/e2e_stdio-9c8c65f0e1918dbb)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test calling_a_real_tool_over_stdio_reaches_the_youtrack_rest_api ... ok
[INFO] [stdout] test stdio_transport_exposes_exactly_the_35_registered_tools ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests youtrack_mcp_rs
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f", kill_on_drop: false }`
[INFO] [stdout] 64992822b670f01b2298f237402cd36496805b7fcc9dcdb41a20c204cb2f300f
