test_cancel_during_generation_does_not_send (test_native_protocol_pipeline.EngineTests.test_cancel_during_generation_does_not_send) ... ok test_crash_in_sending_becomes_uncertain (test_native_protocol_pipeline.EngineTests.test_crash_in_sending_becomes_uncertain) ... ok test_database_read_failure_never_announces_healthy_listener (test_native_protocol_pipeline.EngineTests.test_database_read_failure_never_announces_healthy_listener) ... ok test_duplicate_event_only_sent_once (test_native_protocol_pipeline.EngineTests.test_duplicate_event_only_sent_once) ... ok test_manual_reply_during_generation_cancels_send (test_native_protocol_pipeline.EngineTests.test_manual_reply_during_generation_cancels_send) ... ok test_media_is_left_for_manual_handling (test_native_protocol_pipeline.EngineTests.test_media_is_left_for_manual_handling) ... ok test_memory_setting_preserves_only_unanswered_batch_when_disabled (test_native_protocol_pipeline.EngineTests.test_memory_setting_preserves_only_unanswered_batch_when_disabled) ... ok test_model_control_tokens_are_not_sent (test_native_protocol_pipeline.EngineTests.test_model_control_tokens_are_not_sent) ... ok test_model_error_can_retry_before_send (test_native_protocol_pipeline.EngineTests.test_model_error_can_retry_before_send) ... ok test_new_incoming_during_generation_discards_old_answer (test_native_protocol_pipeline.EngineTests.test_new_incoming_during_generation_discards_old_answer) ... ok test_new_message_invalidates_approved_draft (test_native_protocol_pipeline.EngineTests.test_new_message_invalidates_approved_draft) ... ok test_only_current_account_processed (test_native_protocol_pipeline.EngineTests.test_only_current_account_processed) ... ok test_pending_batch_window_is_honored (test_native_protocol_pipeline.EngineTests.test_pending_batch_window_is_honored) ... ok test_pending_review_and_errors_do_not_show_idle (test_native_protocol_pipeline.EngineTests.test_pending_review_and_errors_do_not_show_idle) ... ok test_progress_callback_failure_does_not_repeat_or_block_send (test_native_protocol_pipeline.EngineTests.test_progress_callback_failure_does_not_repeat_or_block_send) ... ok test_progress_follows_receive_generate_send_then_waiting (test_native_protocol_pipeline.EngineTests.test_progress_follows_receive_generate_send_then_waiting) ... ok test_ready_flag_alone_cannot_enable_transport (test_native_protocol_pipeline.EngineTests.test_ready_flag_alone_cannot_enable_transport) ... ok test_restart_after_confirmed_journal_clears_pending_without_send (test_native_protocol_pipeline.EngineTests.test_restart_after_confirmed_journal_clears_pending_without_send) ... ok test_review_requires_approval (test_native_protocol_pipeline.EngineTests.test_review_requires_approval) ... ok test_runtime_uses_protocol_engine_without_visual_construction (test_native_protocol_pipeline.EngineTests.test_runtime_uses_protocol_engine_without_visual_construction) ... ok test_same_name_conversations_use_distinct_ids (test_native_protocol_pipeline.EngineTests.test_same_name_conversations_use_distinct_ids) ... ok test_stop_during_generation_does_not_send (test_native_protocol_pipeline.EngineTests.test_stop_during_generation_does_not_send) ... ok test_text_pipeline_with_native_receipt_and_no_feedback (test_native_protocol_pipeline.EngineTests.test_text_pipeline_with_native_receipt_and_no_feedback) ... ok test_uncertain_send_is_persisted_and_not_retried (test_native_protocol_pipeline.EngineTests.test_uncertain_send_is_persisted_and_not_retried) ... ok test_unknown_receipt_is_paused_without_healthy_poll_log (test_native_protocol_pipeline.EngineTests.test_unknown_receipt_is_paused_without_healthy_poll_log) ... ok test_waiting_progress_and_periodic_read_confirmation_are_throttled (test_native_protocol_pipeline.EngineTests.test_waiting_progress_and_periodic_read_confirmation_are_throttled) ... ok test_cancelled_before_send_does_not_consume_id (test_native_protocol_pipeline.JournalTests.test_cancelled_before_send_does_not_consume_id) ... ok test_changed_payload_same_event_is_blocked (test_native_protocol_pipeline.JournalTests.test_changed_payload_same_event_is_blocked) ... ok test_failure_does_not_automatically_retry (test_native_protocol_pipeline.JournalTests.test_failure_does_not_automatically_retry) ... ok test_invalid_text_rejected (test_native_protocol_pipeline.JournalTests.test_invalid_text_rejected) ... ok test_missing_conversation_blocks_send (test_native_protocol_pipeline.JournalTests.test_missing_conversation_blocks_send) ... ok test_reopen_after_success_never_resends (test_native_protocol_pipeline.JournalTests.test_reopen_after_success_never_resends) ... ok test_success_receipt_and_repeat_returns_saved_result (test_native_protocol_pipeline.JournalTests.test_success_receipt_and_repeat_returns_saved_result) ... ok test_unknown_blocks_retry (test_native_protocol_pipeline.JournalTests.test_unknown_blocks_retry) ... ok test_wrong_account_rejected_before_journaling_or_send (test_native_protocol_pipeline.JournalTests.test_wrong_account_rejected_before_journaling_or_send) ... ok test_actual_web_page_protocol_state_buttons_and_visual_return (test_protocol_features.ProtocolGuiTest.test_actual_web_page_protocol_state_buttons_and_visual_return) ... ok test_detection_state_keeps_binary_paths_out_of_web_payload (test_protocol_features.ProtocolGuiTest.test_detection_state_keeps_binary_paths_out_of_web_payload) ... ok test_probe_worker_coalesces_clicks_and_delivers_failures (test_protocol_features.ProtocolGuiTest.test_probe_worker_coalesces_clicks_and_delivers_failures) ... ok test_qt_and_classic_keep_protocol_even_when_other_settings_are_corrupt (test_protocol_features.ProtocolGuiTest.test_qt_and_classic_keep_protocol_even_when_other_settings_are_corrupt) ... ok test_qt_persists_transport_and_restores_memory_after_disk_failure (test_protocol_features.ProtocolGuiTest.test_qt_persists_transport_and_restores_memory_after_disk_failure) ... ok test_qt_protocol_start_passes_transport_to_background_thread (test_protocol_features.ProtocolGuiTest.test_qt_protocol_start_passes_transport_to_background_thread) ... ok test_transport_change_is_saved_and_rejected_while_running (test_protocol_features.ProtocolGuiTest.test_transport_change_is_saved_and_rejected_while_running) ... ok test_duplicate_names_and_server_ids_remain_isolated_by_exact_account_conversation (test_protocol_features.ProtocolIdContextTest.test_duplicate_names_and_server_ids_remain_isolated_by_exact_account_conversation) ... ok test_missing_account_unknown_conversation_and_group_never_guess (test_protocol_features.ProtocolIdContextTest.test_missing_account_unknown_conversation_and_group_never_guess) ... ok test_atomic_export_does_not_destroy_existing_report_on_failure (test_protocol_features.ProtocolProbeTest.test_atomic_export_does_not_destroy_existing_report_on_failure) ... ok test_installed_client_and_bundled_sdk_never_imply_send_or_login (test_protocol_features.ProtocolProbeTest.test_installed_client_and_bundled_sdk_never_imply_send_or_login) ... ok test_no_client_and_inaccessible_client (test_protocol_features.ProtocolProbeTest.test_no_client_and_inaccessible_client) ... ok test_pe_architecture_and_corrupt_header (test_protocol_features.ProtocolProbeTest.test_pe_architecture_and_corrupt_header) ... ok test_database_failure_is_propagated_and_request_identity_includes_limit (test_protocol_features.ProtocolRoutingTest.test_database_failure_is_propagated_and_request_identity_includes_limit) ... ok test_invalid_explicit_transport_never_defaults_to_visual (test_protocol_features.ProtocolRoutingTest.test_invalid_explicit_transport_never_defaults_to_visual) ... ok test_protocol_start_never_constructs_visual_sender_even_with_true_flag (test_protocol_features.ProtocolRoutingTest.test_protocol_start_never_constructs_visual_sender_even_with_true_flag) ... ok test_only_success_resumes_pending_start (test_protocol_cross_machine.GuiTests.test_only_success_resumes_pending_start) ... ok test_saved_protocol_gets_auto_probe_and_recent_report_is_reused (test_protocol_cross_machine.GuiTests.test_saved_protocol_gets_auto_probe_and_recent_report_is_reused) ... ok test_start_waits_without_constructing_sender (test_protocol_cross_machine.GuiTests.test_start_waits_without_constructing_sender) ... ok test_stop_cancels_delayed_start (test_protocol_cross_machine.GuiTests.test_stop_cancels_delayed_start) ... ok test_account_change_and_exit_during_initialization_are_blocked (test_protocol_cross_machine.ProbeTests.test_account_change_and_exit_during_initialization_are_blocked) ... ok test_custom_install_path_needs_no_sdk (test_protocol_cross_machine.ProbeTests.test_custom_install_path_needs_no_sdk) ... ok test_database_failure_cannot_report_ready (test_protocol_cross_machine.ProbeTests.test_database_failure_cannot_report_ready) ... ok test_missing_database_flag_never_enables_sender (test_protocol_cross_machine.ProbeTests.test_missing_database_flag_never_enables_sender) ... ok test_not_running_still_reports_custom_install (test_protocol_cross_machine.ProbeTests.test_not_running_still_reports_custom_install) ... ok test_real_failure_is_visible_instead_of_sdk_message (test_protocol_cross_machine.ProbeTests.test_real_failure_is_visible_instead_of_sdk_message) ... ok test_unsupported_version_or_architecture_does_not_access_sender (test_protocol_cross_machine.ProbeTests.test_unsupported_version_or_architecture_does_not_access_sender) ... ok test_current_account_ignores_stale_saved_directory (test_protocol_cross_machine.StorageTests.test_current_account_ignores_stale_saved_directory) ... ok test_encrypted_first_install_initializes_only_current_machine_keys (test_protocol_cross_machine.StorageTests.test_encrypted_first_install_initializes_only_current_machine_keys) ... ok test_fresh_account_with_plain_db_needs_no_key_worker (test_protocol_cross_machine.StorageTests.test_fresh_account_with_plain_db_needs_no_key_worker) ... ok test_historical_account_and_empty_sqlite_cannot_prove_readiness (test_protocol_cross_machine.StorageTests.test_historical_account_and_empty_sqlite_cannot_prove_readiness) ... ok test_passive_check_does_not_acquire_keys (test_protocol_cross_machine.StorageTests.test_passive_check_does_not_acquire_keys) ... ok test_registered_data_directory_takes_effect (test_protocol_cross_machine.StorageTests.test_registered_data_directory_takes_effect) ... ok test_registry_uses_both_views_and_ignores_numeric_data_flag (test_protocol_cross_machine.StorageTests.test_registry_uses_both_views_and_ignores_numeric_data_flag) ... ok test_root_account_data_and_file_paths_with_unicode_spaces (test_protocol_cross_machine.StorageTests.test_root_account_data_and_file_paths_with_unicode_spaces) ... ok test_bad_or_oversized_history_is_ignored (test_wecom_native_protocol.NativeHistoryTest.test_bad_or_oversized_history_is_ignored) ... ok test_different_business_results_do_not_imply_open_access (test_wecom_native_protocol.NativeHistoryTest.test_different_business_results_do_not_imply_open_access) ... ok test_history_cannot_enable_sender_or_export_unknown_fields (test_wecom_native_protocol.NativeHistoryTest.test_history_cannot_enable_sender_or_export_unknown_fields) ... ok test_version_mismatch_remains_explicit (test_wecom_native_protocol.NativeHistoryTest.test_version_mismatch_remains_explicit) ... ok test_actual_gray_error_nested_inside_http_200 (test_wecom_native_protocol.NativeReplyTest.test_actual_gray_error_nested_inside_http_200) ... ok test_error_text_is_not_exposed (test_wecom_native_protocol.NativeReplyTest.test_error_text_is_not_exposed) ... ok test_incomplete_transport_wrong_id_and_malformed_json_are_rejected (test_wecom_native_protocol.NativeReplyTest.test_incomplete_transport_wrong_id_and_malformed_json_are_rejected) ... ok test_initialize_and_tools_list_are_transport_results_only (test_wecom_native_protocol.NativeReplyTest.test_initialize_and_tools_list_are_transport_results_only) ... ok test_nested_malformed_response_and_depth_are_bounded (test_wecom_native_protocol.NativeReplyTest.test_nested_malformed_response_and_depth_are_bounded) ... ok test_outer_and_tool_errors_are_never_success (test_wecom_native_protocol.NativeReplyTest.test_outer_and_tool_errors_are_never_success) ... ok test_knowledge_count_comes_from_cloud_instead_of_mcp_servers (test_protocol_knowledge_integration.DesktopKnowledgeStateTest.test_knowledge_count_comes_from_cloud_instead_of_mcp_servers) ... ok test_disabled_knowledge_does_not_change_protocol_delivery (test_protocol_knowledge_integration.ProtocolKnowledgeTest.test_disabled_knowledge_does_not_change_protocol_delivery) ... ok test_gateway_high_risk_is_retained_by_protocol_review_gate (test_protocol_knowledge_integration.ProtocolKnowledgeTest.test_gateway_high_risk_is_retained_by_protocol_review_gate) ... ok test_protocol_gateway_uses_knowledge_then_preserves_approval_and_receipt_dedup (test_protocol_knowledge_integration.ProtocolKnowledgeTest.test_protocol_gateway_uses_knowledge_then_preserves_approval_and_receipt_dedup) ... ok test_bundled_frontend_and_same_origin_api_need_no_nginx (test_protocol_knowledge_integration.StandaloneAdminTest.test_bundled_frontend_and_same_origin_api_need_no_nginx) ... ok test_frontend_cannot_serve_files_outside_dist (test_protocol_knowledge_integration.StandaloneAdminTest.test_frontend_cannot_serve_files_outside_dist) ... ok test_management_link_uses_hash_router (test_protocol_knowledge_integration.StandaloneAdminTest.test_management_link_uses_hash_router) ... ok test_cancelled_context_history_only_keeps_unanswered (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_cancelled_context_history_only_keeps_unanswered) ... ok test_context_enabled_retains_both_roles_and_unanswered_batch (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_context_enabled_retains_both_roles_and_unanswered_batch) ... ok test_image_then_related_text_stays_manual (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_image_then_related_text_stays_manual) ... ok test_old_media_before_own_reply_does_not_block_new_text (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_old_media_before_own_reply_does_not_block_new_text) ... ok test_restart_restores_uncertain_receipt_pause (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_restart_restores_uncertain_receipt_pause) ... ok test_unanswered_batch_not_lost_with_short_context_limit (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_unanswered_batch_not_lost_with_short_context_limit) ... ok test_uncertain_receipt_for_other_account_does_not_pause_current (test_protocol_audit_boundaries.ProtocolAuditBoundaries.test_uncertain_receipt_for_other_account_does_not_pause_current) ... ok ---------------------------------------------------------------------- Ran 94 tests in 12.569s OK