Skip to content

[MCC-1554792] - R Lib - Trace ID Propagation - #120

Merged
ibaig-mdsol merged 7 commits into
mainfrom
MCC-1554792
Oct 13, 2026
Merged

ibaig-mdsol merged 7 commits into
mainfrom
MCC-1554792

Conversation

@glondhe-mdsol

@glondhe-mdsol glondhe-mdsol commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

(MCC-1554792 - R Lib - Trace ID Propagation)

Why: Users need the trace ID for support reports, without changing return types.

Changes

  • Embedded Python (reticulate) adds a client middleware that reads x-dataconnect-trace-id. .connect() now returns list(client, trace_state).
  • The payload is the fallback: app_metadata, schema metadata (read on the Python side because reticulate's bytes-key conversion was unreliable), and JSON bodies with trace_id stripped.
  • New read-only client$trace_id. Errors carry trace_id and print it.
  • .list_flights() now returns list(flights = …), and the pagination operator is updated.
  • The error parser prefers the :: immediately before {.
  • Dockerfile installs libarrow-flight and checks import pyarrow.flight.
  • Return shapes are unchanged.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved result-contract compatibility issues and outdated test fixtures block approval.

Review effort: Lite
Findings: 3 High severity · 1 Medium severity

Open (4)
What changed in this PR

This pull request adds trace ID propagation across dataset operations, publishing, datetime formats, and fetched table results.

Changes:

  • Extracts trace IDs from Flight metadata and Arrow schema metadata.
  • Updates public result shapes to include trace_id.
  • Extends tests and documentation for the new structures.
File Reviewed changes
tests/​testthat/​test-datetime-formats.R Datetime-format result and propagation tests
tests/​testthat/​test-datasets.R Dataset and table trace propagation tests
R/​table.R Fetched data results now include trace IDs
R/​datasets.R Flight and dataset trace extraction and propagation
R/​dataconnect_client.R Documentation for updated public result shapes
R/​commands.R Command, publishing, and datetime-format trace handling

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread R/commands.R Outdated
Comment thread R/datasets.R Outdated
Comment thread tests/testthat/test-datetime-formats.R Outdated
Comment thread R/commands.R Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread R/connection.R Outdated
Comment thread R/dataconnect_client.R
Comment thread R/datasets.R Outdated
Comment thread R/table.R
Comment thread R/error_handler.R Outdated
@mdsol mdsol deleted a comment from github-actions Bot Sep 30, 2026
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
TestsPassed ✅SkippedFailedTime ⏱
R Package Test Results472 ran472 passed0 skipped0 failed3s 543ms
TestResultTime ⏱
R Package Test Results
Connection_operations..set_dataconnect_token_rejects_empty_token✅ passed151ms
Connection_operations..set_dataconnect_token_rejects_NULL_token✅ passed30ms
Connection_operations..set_dataconnect_token_rejects_missing_token✅ passed23ms
Connection_operations..set_dataconnect_token_sets_DATACONNECT_TOKEN_env_var_for_current_session✅ passed4ms
Connection_operations..set_dataconnect_token_returns_invisible_TRUE✅ passed5ms
Connection_operations..set_dataconnect_token_returns_invisible_TRUE✅ passed1ms
Connection_operations..set_dataconnect_token_permanent_TRUE_writes_token_to_.Renviron✅ passed5ms
Connection_operations..set_dataconnect_token_permanent_TRUE_writes_token_to_.Renviron✅ passed3ms
Connection_operations..set_dataconnect_token_permanent_TRUE_replaces_existing_token_in_.Renviron✅ passed7ms
Connection_operations..set_dataconnect_token_permanent_TRUE_replaces_existing_token_in_.Renviron✅ passed3ms
Connection_operations..set_dataconnect_token_permanent_TRUE_preserves_other_.Renviron_entries✅ passed3ms
Connection_operations..set_dataconnect_token_permanent_TRUE_preserves_other_.Renviron_entries✅ passed2ms
Connection_operations..set_dataconnect_token_permanent_TRUE_warns_on_write_failure_but_still_sets_session_token✅ passed4ms
Connection_operations..set_dataconnect_token_permanent_TRUE_warns_on_write_failure_but_still_sets_session_token✅ passed1ms
Connection_operations..get_client_header_returns_a_named_list✅ passed3ms
Connection_operations..get_client_header_returns_a_named_list✅ passed1ms
Connection_operations..get_client_header_uses_the_correct_header_name✅ passed5ms
Connection_operations..get_client_header_value_starts_with_R_SDK_✅ passed4ms
Connection_operations..get_client_header_value_contains_the_package_version✅ passed4ms
Connection_operations..get_flight_options_returns_NULL_with_warning_when_reticulate_and_arrow_are_unavailable✅ passed3ms
Connection_operations..get_flight_options_returns_NULL_with_warning_when_reticulate_and_arrow_are_unavailable✅ passed2ms
Connection_operations..get_flight_options_warns_and_returns_NULL_when_pyarrow_import_fails_and_arrow_is_unavailable✅ passed3ms
Connection_operations..get_flight_options_warns_and_returns_NULL_when_pyarrow_import_fails_and_arrow_is_unavailable✅ passed2ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed1s 699ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed2ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed1ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed1ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed3ms
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed1ms
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed
Connection_operations..connect_returns_the_client_and_trace_state_from_.get_client✅ passed3ms
Connection_operations..get_client_stops_when_PyArrow_is_not_available✅ passed4ms
Connection_operations.client_trace_middleware_extracts_IDs_from_escaped_IPv6_gRPC_errors✅ passed74ms
Connection_operations.client_trace_middleware_extracts_string_and_bytes_response_headers✅ passed4ms
Connection_operations.client_trace_middleware_extracts_string_and_bytes_response_headers✅ passed11ms
Connection_operations.client_trace_middleware_ignores_trailers_without_a_trace_header✅ passed4ms
Connection_operations.client_trace_middleware_keeps_header_IDs_over_payload_IDs✅ passed12ms
Connection_operations.client_trace_middleware_resets_state_for_each_call✅ passed4ms
Connection_operations.client_trace_middleware_resets_state_for_each_call✅ passed2ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed211ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed3ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed3ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed1ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed3ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed18ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed12ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed1ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed1ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed46ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed1ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed2ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int64_when_catalog_says_int64✅ passed8ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_does_not_cast_double_when_catalog_also_says_double✅ passed6ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_does_not_cast_double_when_catalog_also_says_double✅ passed4ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_handles_NULL_inputs_gracefully✅ passed4ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_handles_NULL_inputs_gracefully✅ passed2ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_skips_columns_not_in_data✅ passed8ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_skips_columns_not_in_data✅ passed
Datasets_pagination._iterates_the_raw_Flight_iterator_returned_by_.list_flights✅ passed73ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed3ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed3ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed2ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed1ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed1ms
Datasets_pagination..get_datasets_uses_total_records_from_first_item_only✅ passed28ms
Datasets_pagination..get_datasets_uses_total_records_from_first_item_only✅ passed1ms
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed3ms
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed1ms
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed3ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed2ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed1ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_rejects_removed_UUID_parameters✅ passed5ms
Datasets_pagination..get_dataset_versions_rejects_removed_UUID_parameters✅ passed4ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed2ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed2ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_rejects_removed_UUID_parameters✅ passed5ms
Datasets_pagination..get_dataset_rejects_removed_UUID_parameters✅ passed4ms
Datasets_pagination..get_datasets_rejects_the_removed_study_uuid_parameter✅ passed4ms
Datasets_pagination..get_studies_sends_correct_criteria_to_.list_flights✅ passed3ms
Datasets_pagination..get_studies_sends_correct_criteria_to_.list_flights✅ passed
Datasets_pagination..get_studies_extracts_total_records_from_first_item_only✅ passed17ms
Datasets_pagination..get_studies_extracts_total_records_from_first_item_only✅ passed1ms
Datasets_pagination..get_studies_calls_.extract_data_with_simplify_data_frame_FALSE✅ passed4ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed4ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed2ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed1ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_handles_empty_results✅ passed3ms
Datasets_pagination..get_studies_handles_empty_results✅ passed
Datasets_pagination..get_studies_handles_empty_results✅ passed1ms
Datasets_pagination..get_studies_handles_empty_results✅ passed
Datasets_pagination..get_studies_handles_NULL_data_from_.extract_data✅ passed3ms
Datasets_pagination..get_studies_handles_NULL_data_from_.extract_data✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed11ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed2ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed1ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed
Datasets_pagination..get_studies_preserves_its_total_records_studies_result_shape✅ passed4ms
Datasets_pagination..get_datasets_preserves_its_total_records_pagination_datasets_result_shape✅ passed4ms
Datasets_pagination..get_dataset_versions_returns_the_version_list_directly✅ passed1ms
Datasets_pagination..extract_app_metadata_reads_the_trace_id_from_FlightInfo_metadata✅ passed4ms
Datasets_pagination..extract_app_metadata_reads_the_trace_id_from_FlightInfo_metadata✅ passed5ms
Datasets_pagination..extract_app_metadata_ignores_malformed_metadata✅ passed5ms
Datasets_pagination..extract_app_metadata_ignores_malformed_metadata✅ passed20ms
Datasets_pagination.dataset_frames_created_while_listing_retain_the_client_s_trace_state✅ passed3ms
Datasets_pagination.dataset_frames_created_while_listing_retain_the_client_s_trace_state✅ passed
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed20ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed2ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed1ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed1ms
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed6ms
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed1ms
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed23ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed1ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed2ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed2ms
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed4ms
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed3ms
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed2ms
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed3ms
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed1ms
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed
Datetime_formats..get_datetime_formats_sends_unsupported_types_to_the_server✅ passed3ms
Datetime_formats..get_datetime_formats_sends_unsupported_types_to_the_server✅ passed
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed4ms
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed2ms
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed4ms
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed2ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed16ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed1ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed7ms
Datetime_formats..get_datetime_formats_result_maps_cleanly_to_publish_datetime_formats_payload✅ passed3ms
Datetime_formats..get_datetime_formats_preserves_the_data.frame_return_shape✅ passed4ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed60ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed4ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed2ms
error_handler.structured_error_trace_IDs_are_retained_and_printed✅ passed24ms
error_handler.structured_error_trace_IDs_are_retained_and_printed✅ passed8ms
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed7ms
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed1ms
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed3ms
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed4ms
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed2ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed3ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed3ms
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed3ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed1ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed4ms
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed2ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_special_characters✅ passed3ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_special_characters✅ passed1ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed4ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed5ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed3ms
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed3ms
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed2ms
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed1ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed3ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed1ms
error_handler.DataConnectError_print_method_works_correctly✅ passed4ms
error_handler.DataConnectError_print_method_works_correctly✅ passed
error_handler.DataConnectError_print_method_works_correctly✅ passed1ms
error_handler.DataConnectError_print_method_works_correctly✅ passed1ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed2ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed1ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed2ms
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed3ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed1ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_print_method_works_correctly✅ passed4ms
error_handler.ErrorDetail_print_method_works_correctly✅ passed
error_handler.ErrorDetail_print_method_works_correctly✅ passed1ms
error_handler.ErrorDetail_print_method_works_correctly✅ passed1ms
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed3ms
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed
error_handler.ErrorDetail_print_method_outputs_extra_fields✅ passed3ms
error_handler.ErrorDetail_print_method_outputs_extra_fields✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed3ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed5ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed9ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed2ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed1ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed2ms
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed3ms
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed
error_handler.errors_without_a_trace_ID_from_the_current_operation_stay_untagged✅ passed4ms
error_handler.errors_without_a_trace_ID_from_the_current_operation_stay_untagged✅ passed2ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed12ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed1ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed3ms
error_handler.client_errors_without_a_trace_ID_retain_their_original_class✅ passed3ms
error_handler.client_errors_without_a_trace_ID_retain_their_original_class✅ passed1ms
error_handler.print.dataconnect_error_does_not_repeat_a_trace_ID_already_in_the_message✅ passed3ms
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed8ms
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed
error_handler.multiple_server_validation_details_appear_only_in_the_details_section✅ passed4ms
error_handler.multiple_server_validation_details_appear_only_in_the_details_section✅ passed1ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed1ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed2ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed3ms
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed1ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed2ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed2ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed3ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed3ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed3ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed2ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed3ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed2ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed3ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed2ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed3ms
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed
error_handler..normalize_enodia_error_gate_pattern_is_case_insensitive✅ passed3ms
error_handler..normalize_enodia_error_gate_pattern_is_case_insensitive✅ passed
error_handler..normalize_enodia_error_strips_trailing_gRPC_debug_context✅ passed3ms
error_handler..normalize_enodia_error_strips_trailing_gRPC_debug_context✅ passed
error_handler..normalize_enodia_error_strips_trailing_Client_context_noise✅ passed3ms
error_handler..normalize_enodia_error_strips_trailing_Client_context_noise✅ passed5ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed3ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed2ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed
error_handler..normalize_enodia_error_preserves_a_structured_trace_ID✅ passed4ms
error_handler..normalize_enodia_error_preserves_a_structured_trace_ID✅ passed
error_handler..normalize_enodia_error_produces_valid_ISO_8601_timestamp✅ passed4ms
error_handler..parse_dataconnect_error_correctly_parses_streaming_error_details✅ passed3ms
error_handler..parse_dataconnect_error_correctly_parses_streaming_error_details✅ passed
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed20ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed3ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed4ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed4ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed2ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed1ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed2ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed6ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed1ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed6ms
Publishing_operations.dry_publish_returns_an_empty_result_when_the_server_returns_no_response✅ passed6ms
Publishing_operations.dry_publish_returns_an_empty_result_when_the_server_returns_no_response✅ passed
Publishing_operations.dry_publish_handles_all_unique_rows_via_server_response✅ passed6ms
Publishing_operations.dry_publish_handles_all_unique_rows_via_server_response✅ passed
Publishing_operations.dry_publish_handles_all_duplicate_rows_via_server_response✅ passed5ms
Publishing_operations.dry_publish_handles_all_duplicate_rows_via_server_response✅ passed1ms
Publishing_operations.dry_publish_returns_server_validated_counts_regardless_of_column_casing✅ passed2ms
Publishing_operations.dry_publish_returns_server_validated_counts_regardless_of_column_casing✅ passed1ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed4ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed1ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed1ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed4ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed1ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed1ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed2ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed6ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed5ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed2ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed2ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed5ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed7ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed2ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed7ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed1ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed1ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed7ms
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed4ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed3ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread R/connection.R Outdated
Comment thread tests/testthat/test-datetime-formats.R
Comment thread tests/testthat/test-error-handler.R Outdated
Comment thread R/commands.R
Comment thread R/datasets.R
Comment thread R/table.R
@glondhe-mdsol
glondhe-mdsol force-pushed the MCC-1554792 branch 2 times, most recently from be6e9bf to 44375bc Compare October 6, 2026 12:19
@glondhe-mdsol
glondhe-mdsol requested a balanced review from Copilot October 6, 2026 12:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread R/commands.R
Comment thread R/connection.R Outdated
Comment thread R/table.R Outdated
Comment thread R/table.R
@glondhe-mdsol
glondhe-mdsol force-pushed the MCC-1554792 branch 2 times, most recently from 9ccc639 to dee6bac Compare October 8, 2026 11:20
@glondhe-mdsol
glondhe-mdsol requested a balanced review from Copilot October 8, 2026 11:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The R/reticulate trace-state integration has an unresolved correctness issue and needs runtime validation.

1 open finding
4 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread R/table.R Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Trace propagation crosses R, Python middleware, and streaming paths that require human runtime integration validation.

2 open findings
1 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread R/connection.R Outdated
Comment thread tests/testthat/test-datasets.R

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Cross-language middleware and shared trace-state changes span every request path and warrant final integration validation.

0 open findings

🧠 Review effort: Balanced

Comment thread R/connection.R Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Cross-language middleware and shared trace-state behavior warrant final human validation against a live Arrow Flight service.

0 open findings

🧠 Review effort: Balanced

@glondhe-mdsol
glondhe-mdsol marked this pull request as ready for review October 13, 2026 16:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Two moderate issues remain in header decoding and pagination trace propagation; the return-shape documentation also needs updating.

1 open finding

🧠 Review effort: Lite

Comment thread R/connection.R
@ibaig-mdsol
ibaig-mdsol merged commit b0e10ee into main Oct 13, 2026
5 checks passed
@ibaig-mdsol
ibaig-mdsol deleted the MCC-1554792 branch October 13, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants