Skip to content

row 155 F25 REHOME: 51 engine answer tests onto the served reply (exchange_reply.rs) - #877

Merged
MattJackson merged 1 commit into
predevfrom
lane-p3-llm-rehome-reply-1
Oct 15, 2026
Merged

MattJackson merged 1 commit into
predevfrom
lane-p3-llm-rehome-reply-1

Conversation

@MattJackson

Copy link
Copy Markdown
Collaborator

Status row 155 (lane-p3-llm), F25 REHOME. The coverage map (coverage-map-v2.tsv) rehomes these legacy engine answer tests to crates/busbar-plane-llm/tests/exchange_reply.rs. This PR ports the 51 that pin no money figure onto the served reply (exchange::reply Reply / Relay / whole / failure / wire). Each assertion keeps the legacy test's strength: exact statuses, exact head-field values and counts (exactly-once request ids), exact frame shapes and bytes, and the full 3840-case class grid.

They live in a new mod rehomed_answers, appended at the end of the file, with their own helpers. Each test has a doc comment naming the legacy file::test and map row, the 1.5.5 behaviour it pins, and a RED: line saying which failure it catches.

No product code changed. I did not run these tests locally (no cargo build or test on the laptop). ModernCI is the proof.

Where the legacy test needed something the plane does not have, the port pins the same figure another way:

  • Row 559: the plane cannot depend on busbar-kernel-breaker, so the breaker's normalize_raw_error is copied into the test as breaker_rule. The test compares the plane's failure::normalize against that copy across the same 3840 cases.
  • Rows 564 and 565: there is no recorded 1.5.5 engine to compare against, so the oracle is each dialect codec's own write_error (with its minted request_id taken out). For same-dialect answers the test compares the far bytes directly.

Map rows covered (51)

row legacy test rehomed as
11 attempt/tests/failed_generation.rs::ungoverned_same_protocol_cohere_error_split_key_faults_the_breaker rehomed_answers::ungoverned_same_protocol_cohere_error_split_key_faults_the_breaker
12 attempt/tests/failed_generation.rs::ungoverned_same_protocol_cohere_complete_split_key_is_no_fault rehomed_answers::ungoverned_same_protocol_cohere_complete_split_key_is_no_fault
89 tests/client_header_forwarding_tests.rs::a_same_dialect_answer_relays_the_upstream_head rehomed_answers::a_same_dialect_answer_relays_the_upstream_head
90 tests/client_header_forwarding_tests.rs::a_same_dialect_error_relays_the_upstream_head rehomed_answers::a_same_dialect_error_relays_the_upstream_head
91 tests/client_header_forwarding_tests.rs::a_translated_answer_relays_no_upstream_head rehomed_answers::a_translated_answer_relays_no_upstream_head
154 tests/forward_pool_integration_tests.rs::test_sse_events_single_data_prefix rehomed_answers::test_sse_events_single_data_prefix
164 tests/forward_pool_integration_tests.rs::test_stream_inspection_tap_usage_parsing rehomed_answers::test_stream_inspection_tap_usage_parsing
183 tests/forward_pool_integration_tests.rs::test_forward_once_cross_protocol_auth_kinds_match_main_path rehomed_answers::test_forward_once_cross_protocol_auth_kinds_match_main_path
201 tests/forward_pool_integration_tests.rs::test_cross_protocol_stream_openai_lane_to_anthropic_client rehomed_answers::test_cross_protocol_stream_openai_lane_to_anthropic_client
326 tests/ingress_indistinguishability_tests.rs::test_cross_protocol_error_kind_mapping rehomed_answers::test_cross_protocol_error_kind_mapping
327 tests/ingress_indistinguishability_tests.rs::test_shape_cross_protocol_error_auth_kinds rehomed_answers::test_shape_cross_protocol_error_auth_kinds
331 tests/ingress_indistinguishability_tests.rs::test_ingress_stream_content_type_by_protocol rehomed_answers::test_ingress_stream_content_type_by_protocol
332 tests/ingress_indistinguishability_tests.rs::test_cross_protocol_response_carries_ingress_ct_and_native_id rehomed_answers::test_cross_protocol_response_carries_ingress_ct_and_native_id
344 tests/ingress_indistinguishability_tests.rs::test_bedrock_ingress_success_carries_amzn_request_id rehomed_answers::test_bedrock_ingress_success_carries_amzn_request_id
345 tests/ingress_indistinguishability_tests.rs::test_anthropic_ingress_success_carries_request_id_header rehomed_answers::test_anthropic_ingress_success_carries_request_id_header
346 tests/ingress_indistinguishability_tests.rs::test_anthropic_ingress_stream_carries_request_id_header rehomed_answers::test_anthropic_ingress_stream_carries_request_id_header
347 tests/ingress_indistinguishability_tests.rs::test_cross_protocol_client_fault_reshapes_error_envelope rehomed_answers::test_cross_protocol_client_fault_reshapes_error_envelope
352 tests/ingress_indistinguishability_tests.rs::test_anthropic_same_proto_error_relays_upstream_request_id_verbatim_once rehomed_answers::test_anthropic_same_proto_error_relays_upstream_request_id_verbatim_once
353 tests/ingress_indistinguishability_tests.rs::test_anthropic_same_proto_passthrough_401_relays_request_id_verbatim_once rehomed_answers::test_anthropic_same_proto_passthrough_401_relays_request_id_verbatim_once
355 tests/ingress_indistinguishability_tests.rs::test_bedrock_converse_stream_buffered_cross_protocol_emits_binary_eventstream rehomed_answers::test_bedrock_converse_stream_buffered_cross_protocol_emits_binary_eventstream
357 tests/ingress_indistinguishability_tests.rs::test_gemini_json_array_buffered_cross_protocol_emits_one_element_array rehomed_answers::test_gemini_json_array_buffered_cross_protocol_emits_one_element_array
358 tests/ingress_indistinguishability_tests.rs::test_gemini_json_array_buffered_via_forward_once_matches_primary rehomed_answers::test_gemini_json_array_buffered_via_forward_once_matches_primary
371 tests/ingress_indistinguishability_tests.rs::test_non_gemini_stream_buffered_cross_protocol_stays_a_plain_object_not_an_array rehomed_answers::test_non_gemini_stream_buffered_cross_protocol_stays_a_plain_object_not_an_array
387 tests/ingress_integration_tests.rs::test_bedrock_converse_routes_and_returns_json rehomed_answers::test_bedrock_converse_routes_and_returns_json
388 tests/ingress_integration_tests.rs::test_bedrock_converse_stream_returns_binary_eventstream rehomed_answers::test_bedrock_converse_stream_returns_binary_eventstream
389 tests/ingress_integration_tests.rs::test_bedrock_same_protocol_stream_passthrough_forwards_upstream_request_id rehomed_answers::test_bedrock_same_protocol_stream_passthrough_forwards_upstream_request_id
390 tests/ingress_integration_tests.rs::test_bedrock_same_protocol_converse_non_stream_forwards_upstream_request_id rehomed_answers::test_bedrock_same_protocol_converse_non_stream_forwards_upstream_request_id
391 tests/ingress_integration_tests.rs::test_bedrock_same_protocol_stream_mid_stream_transport_error_appends_binary_exception rehomed_answers::test_bedrock_same_protocol_stream_mid_stream_transport_error_appends_binary_exception
392 tests/ingress_integration_tests.rs::test_bedrock_ingress_mid_stream_transport_error_appends_binary_exception rehomed_answers::test_bedrock_ingress_mid_stream_transport_error_appends_binary_exception
393 tests/ingress_integration_tests.rs::test_openai_ingress_mid_stream_transport_error_appends_native_sse rehomed_answers::test_openai_ingress_mid_stream_transport_error_appends_native_sse
396 tests/ingress_integration_tests.rs::test_gemini_stream_generate_content_alt_sse_is_event_stream rehomed_answers::test_gemini_stream_generate_content_alt_sse_is_event_stream
397 tests/ingress_integration_tests.rs::test_gemini_alt_sse_mid_stream_transport_error_appends_native_sse_frame rehomed_answers::test_gemini_alt_sse_mid_stream_transport_error_appends_native_sse_frame
409 tests/ingress_integration_tests.rs::test_gemini_json_array_mid_stream_error_closes_array_no_sse rehomed_answers::test_gemini_json_array_mid_stream_error_closes_array_no_sse
411 tests/ingress_integration_tests.rs::test_anthropic_cross_protocol_message_start_full_skeleton rehomed_answers::test_anthropic_cross_protocol_message_start_full_skeleton
412 tests/ingress_integration_tests.rs::test_passthrough_401_cross_protocol_reshaped_to_ingress rehomed_answers::test_passthrough_401_cross_protocol_reshaped_to_ingress
445 tests/ingress_integration_tests.rs::test_openai_ingress_stream_emits_native_openai_frames rehomed_answers::test_openai_ingress_stream_emits_native_openai_frames
446 tests/ingress_integration_tests.rs::test_cohere_ingress_stream_emits_native_cohere_frames rehomed_answers::test_cohere_ingress_stream_emits_native_cohere_frames
447 tests/ingress_integration_tests.rs::test_responses_ingress_stream_emits_native_responses_events rehomed_answers::test_responses_ingress_stream_emits_native_responses_events
449 tests/ingress_integration_tests.rs::test_cohere_ingress_mid_stream_transport_error_appends_native_sse rehomed_answers::test_cohere_ingress_mid_stream_transport_error_appends_native_sse
450 tests/ingress_integration_tests.rs::test_responses_ingress_mid_stream_transport_error_appends_response_failed rehomed_answers::test_responses_ingress_mid_stream_transport_error_appends_response_failed
498 tests/mid_stream_error_tests.rs::test_mid_stream_generic_detail_has_no_leak_markers rehomed_answers::test_mid_stream_generic_detail_has_no_leak_markers
499 tests/mid_stream_error_tests.rs::test_bedrock_ingress_mid_stream_error_is_binary_exception_frame rehomed_answers::test_bedrock_ingress_mid_stream_error_is_binary_exception_frame
500 tests/mid_stream_error_tests.rs::test_sse_ingress_mid_stream_error_uses_native_framing rehomed_answers::test_sse_ingress_mid_stream_error_uses_native_framing
501 tests/mid_stream_error_tests.rs::test_client_fault_kind_mapping rehomed_answers::test_client_fault_kind_mapping
502 tests/mid_stream_error_tests.rs::test_extract_error_message rehomed_answers::test_extract_error_message
503 tests/mid_stream_error_tests.rs::test_is_stream_content_type rehomed_answers::test_is_stream_content_type
559 tests/plane_reply_parity_tests.rs::the_planes_class_rule_is_the_breakers rehomed_answers::the_planes_class_rule_is_the_breakers
564 tests/plane_reply_parity_tests.rs::a_far_end_error_reads_the_same_through_the_plane rehomed_answers::a_far_end_error_reads_the_same_through_the_plane
565 tests/plane_reply_parity_tests.rs::a_far_end_errors_relay_is_the_engines rehomed_answers::a_far_end_errors_relay_is_the_engines
635 tests/wire_tests.rs::unknown_ingress_mid_stream_error_is_a_bare_data_frame_from_core rehomed_answers::unknown_ingress_mid_stream_error_is_a_bare_data_frame_from_core
636 tests/wire_tests.rs::status_word_golden_engine_client_fault_kind rehomed_answers::status_word_golden_engine_client_fault_kind

RED-able tests

Every test above can go RED: each one's doc comment carries a RED: line naming the regression it catches. Reading the served code, I found no behaviour that differs from the 1.5.5 figure, so I do not expect any of them to be red on predev.

…F25 REHOME, row 155)

The legacy engine's answer tests (crates/busbar-llm/src/engine/**) that the
coverage map rehomes to exchange_reply.rs and that pin no money figure, ported
onto the plane's exchange::reply API at equal strength: exact statuses, head
field values and counts, frame shapes and bytes. Map rows 11 12 89 90 91 154
164 183 201 326 327 331 332 344 345 346 347 352 353 355 357 358 371 387 388
389 390 391 392 393 396 397 409 411 412 445 446 447 449 450 498 499 500 501
502 503 559 564 565 635 636.
@MattJackson

Copy link
Copy Markdown
Collaborator Author

Rule 20 note from #1031 (row 155, draft): disjoint hunks in tests/exchange_reply.rs (ReplyCtx/RelayCtx/WholeCtx literals gain translate_cap). A test merge is clean.

MattJackson added a commit that referenced this pull request Oct 15, 2026
… now exchange_reply's rehome (#877) holds a twin of each
@MattJackson
MattJackson merged commit bc5046d into predev Oct 15, 2026
1 check was pending
@MattJackson
MattJackson deleted the lane-p3-llm-rehome-reply-1 branch October 15, 2026 05:33
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.

1 participant