test_fails_asr_to_manual_and_ignores_other_conversation_snapshot (test_voice_messages.VisualVoiceTests.test_fails_asr_to_manual_and_ignores_other_conversation_snapshot) ... ok test_timeout_notifies_manual_instead_of_sending_guess (test_voice_messages.VisualVoiceTests.test_timeout_notifies_manual_instead_of_sending_guess) ... ok test_waits_without_manual_state_then_allows_transcribed_text (test_voice_messages.VisualVoiceTests.test_waits_without_manual_state_then_allows_transcribed_text) ... ok test_ambiguous_files_and_other_account_do_not_enqueue (test_voice_messages.VoiceDatabaseTests.test_ambiguous_files_and_other_account_do_not_enqueue) ... ok test_cache_collision_across_conversations_is_rejected (test_voice_messages.VoiceDatabaseTests.test_cache_collision_across_conversations_is_rejected) ... ok test_cache_update_on_same_message_becomes_visible_without_new_incoming (test_voice_messages.VoiceDatabaseTests.test_cache_update_on_same_message_becomes_visible_without_new_incoming) ... ok test_empty_asr_result_is_error_not_answer (test_voice_messages.VoiceDatabaseTests.test_empty_asr_result_is_error_not_answer) ... ok test_exact_current_account_path_enqueues_then_returns_transcript (test_voice_messages.VoiceDatabaseTests.test_exact_current_account_path_enqueues_then_returns_transcript) ... ok test_missing_table_and_empty_text_are_not_transcriptions (test_voice_messages.VoiceDatabaseTests.test_missing_table_and_empty_text_are_not_transcriptions) ... ok test_mixed_batch_waits_for_all_voices_and_rejects_foreign_binding (test_voice_messages.VoiceDatabaseTests.test_mixed_batch_waits_for_all_voices_and_rejects_foreign_binding) ... ok test_old_history_and_voice_before_human_reply_are_not_enqueued (test_voice_messages.VoiceDatabaseTests.test_old_history_and_voice_before_human_reply_are_not_enqueued) ... ok test_reads_server_id_cache_as_real_text_preserving_voice_type (test_voice_messages.VoiceDatabaseTests.test_reads_server_id_cache_as_real_text_preserving_voice_type) ... ok test_row_id_is_not_server_id_and_binary_payload_never_reaches_model (test_voice_messages.VoiceDatabaseTests.test_row_id_is_not_server_id_and_binary_payload_never_reaches_model) ... ok test_same_server_id_in_other_account_is_not_used (test_voice_messages.VoiceDatabaseTests.test_same_server_id_in_other_account_is_not_used) ... ok test_context_failure_returns_none_and_can_recover (test_database_reply_priority.BackgroundDatabaseTests.test_context_failure_returns_none_and_can_recover) ... ok test_polling_during_retry_cooldown_does_not_extend_it (test_database_reply_priority.BackgroundDatabaseTests.test_polling_during_retry_cooldown_does_not_extend_it) ... ok test_slow_key_setup_does_not_block_and_late_poll_result_is_retained (test_database_reply_priority.BackgroundDatabaseTests.test_slow_key_setup_does_not_block_and_late_poll_result_is_retained) ... ok test_active_task_receives_followup_instead_of_only_merging_tag (test_database_reply_priority.DatabaseDetectionTests.test_active_task_receives_followup_instead_of_only_merging_tag) ... [引擎B] 已登记新消息 → 客户甲 [引擎B] 已登记新消息 → 客户甲 ok test_duplicate_message_and_ambiguous_name_are_not_queued (test_database_reply_priority.DatabaseDetectionTests.test_duplicate_message_and_ambiguous_name_are_not_queued) ... [引擎B] 已登记新消息 → 客户甲 ok test_failed_enqueue_is_retried_without_new_database_row (test_database_reply_priority.DatabaseDetectionTests.test_failed_enqueue_is_retried_without_new_database_row) ... [引擎B] [!] 投递未执行: busy [引擎B] 已登记新消息 → 客户甲 ok test_last_outgoing_is_not_queued_and_failure_changes_health (test_database_reply_priority.DatabaseDetectionTests.test_last_outgoing_is_not_queued_and_failure_changes_health) ... [引擎B] DB 直读失败: unreadable,备用检测继续运行 ok test_accounts_keep_independent_cursors_and_accept_late_writes (test_database_reply_priority.DatabaseFixture.test_accounts_keep_independent_cursors_and_accept_late_writes) ... ok test_closed_database_reports_failure (test_database_reply_priority.DatabaseFixture.test_closed_database_reports_failure) ... ok test_context_has_sender_direction_and_media_placeholder (test_database_reply_priority.DatabaseFixture.test_context_has_sender_direction_and_media_placeholder) ... ok test_cross_thread_reads_and_wal_only_messages (test_database_reply_priority.DatabaseFixture.test_cross_thread_reads_and_wal_only_messages) ... ok test_duplicate_titles_never_select_another_account (test_database_reply_priority.DatabaseFixture.test_duplicate_titles_never_select_another_account) ... ok test_initial_history_boundary_ms_and_new_account (test_database_reply_priority.DatabaseFixture.test_initial_history_boundary_ms_and_new_account) ... ok test_large_batch_and_same_second_insertion_do_not_skip (test_database_reply_priority.DatabaseFixture.test_large_batch_and_same_second_insertion_do_not_skip) ... ok test_schema_failure_does_not_advance_valid_account_cursor (test_database_reply_priority.DatabaseFixture.test_schema_failure_does_not_advance_valid_account_cursor) ... ok test_service_reconnect_preserves_consumed_database_rows (test_database_reply_priority.DatabaseFixture.test_service_reconnect_preserves_consumed_database_rows) ... ok test_actual_generation_uses_database_text_without_clipboard_or_remote_vision (test_database_reply_priority.PriorityReplyTests.test_actual_generation_uses_database_text_without_clipboard_or_remote_vision) ... [档案] 首次遇到该会话,已暂存(2 行可见历史) [档案] 旧会话档案归属无法唯一证明,已保留但不会自动用于当前会话。 [AI] 本次提取的新内容: 客户甲 2026/09/14 10:00:00 你好 [AI] 回复内容: 有什么可以帮您? ok test_ambiguous_or_unverified_database_names_cannot_map_visual_contacts (test_database_reply_priority.PriorityReplyTests.test_ambiguous_or_unverified_database_names_cannot_map_visual_contacts) ... ok test_current_database_context_overrides_stale_pre_copied_text (test_database_reply_priority.PriorityReplyTests.test_current_database_context_overrides_stale_pre_copied_text) ... [档案] 首次遇到该会话,已建档(2 行可见历史) ok test_database_direction_beats_old_visible_outgoing_bubble (test_database_reply_priority.PriorityReplyTests.test_database_direction_beats_old_visible_outgoing_bubble) ... ok test_database_event_merges_into_existing_external_visual_task (test_database_reply_priority.PriorityReplyTests.test_database_event_merges_into_existing_external_visual_task) ... ok test_database_success_never_touches_clipboard_or_geometry (test_database_reply_priority.PriorityReplyTests.test_database_success_never_touches_clipboard_or_geometry) ... ok test_empty_database_uses_copy_fallback (test_database_reply_priority.PriorityReplyTests.test_empty_database_uses_copy_fallback) ... [档案] 首次遇到该会话,已建档(1 行可见历史) ok test_external_label_maps_to_unique_database_task_without_changing_hashes (test_database_reply_priority.PriorityReplyTests.test_external_label_maps_to_unique_database_task_without_changing_hashes) ... ok test_failed_active_task_yields_to_new_customer (test_database_reply_priority.PriorityReplyTests.test_failed_active_task_yields_to_new_customer) ... ok test_followup_invalidates_reply_generated_for_old_message (test_database_reply_priority.PriorityReplyTests.test_followup_invalidates_reply_generated_for_old_message) ... ok test_followup_preserves_inflight_stage_and_wakes_worker (test_database_reply_priority.PriorityReplyTests.test_followup_preserves_inflight_stage_and_wakes_worker) ... ok test_new_message_arriving_before_send_rejects_stale_reply (test_database_reply_priority.PriorityReplyTests.test_new_message_arriving_before_send_rejects_stale_reply) ... ok test_new_task_does_not_bind_foreground_identity (test_database_reply_priority.PriorityReplyTests.test_new_task_does_not_bind_foreground_identity) ... ok test_uncertain_send_is_not_reset_by_followup (test_database_reply_priority.PriorityReplyTests.test_uncertain_send_is_not_reset_by_followup) ... ok test_wrong_title_or_missing_latest_id_does_not_use_database (test_database_reply_priority.PriorityReplyTests.test_wrong_title_or_missing_latest_id_does_not_use_database) ... ok test_bad_rows_do_not_crash_context_or_skip_later_valid_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_bad_rows_do_not_crash_context_or_skip_later_valid_messages) ... ok test_nonfinite_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_nonfinite_timestamps_are_not_messages) ... ok test_out_of_range_timestamps_are_not_messages (test_database_timestamp_audit.DatabaseTimestampAudit.test_out_of_range_timestamps_are_not_messages) ... ok test_seconds_and_milliseconds_preserve_chronology (test_database_timestamp_audit.DatabaseTimestampAudit.test_seconds_and_milliseconds_preserve_chronology) ... ok 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 模型生成失败,可重试;offline [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 人工审核 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 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) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议发送成功] 同名客户 · 服务器消息 999 ok test_uncertain_send_is_persisted_and_not_retried (test_native_protocol_pipeline.EngineTests.test_uncertain_send_is_persisted_and_not_retried) ... [协议收信] 同名客户 · 已加入回复队列 [协议处理] 同名客户 · 根据当前会话生成回复 [协议处理] 同名客户 · 原账号单聊发送 [协议处理] 同名客户 · 本会话发送结果待人工核对,其他会话继续监听;timeout ok test_unknown_receipt_isolated_with_healthy_poll_log (test_native_protocol_pipeline.EngineTests.test_unknown_receipt_isolated_with_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 ---------------------------------------------------------------------- Ran 84 tests in 3.669s OK