test_explicit_cancel_closes_shared_episode_without_native_io (test_visual_review_assistant.SharedVisualAssistantTests.test_explicit_cancel_closes_shared_episode_without_native_io) ... ok test_explicit_handoff_closes_shared_episode_without_approval (test_visual_review_assistant.SharedVisualAssistantTests.test_explicit_handoff_closes_shared_episode_without_approval) ... ok test_failed_queue_cancel_keeps_shared_episode (test_visual_review_assistant.SharedVisualAssistantTests.test_failed_queue_cancel_keeps_shared_episode) ... ok test_failed_reminder_cancel_is_reported_without_claiming_success (test_visual_review_assistant.SharedVisualAssistantTests.test_failed_reminder_cancel_is_reported_without_claiming_success) ... ok test_real_assistant_conversation_cannot_complete_customer_task (test_visual_review_assistant.SharedVisualAssistantTests.test_real_assistant_conversation_cannot_complete_customer_task) ... ok test_real_failed_send_and_local_persistence_failure_keep_task_until_durable (test_visual_review_assistant.SharedVisualAssistantTests.test_real_failed_send_and_local_persistence_failure_keep_task_until_durable) ... ok test_real_manual_task_without_draft_completes_after_human_reply (test_visual_review_assistant.SharedVisualAssistantTests.test_real_manual_task_without_draft_completes_after_human_reply) ... ok test_real_shared_automated_attempt_is_not_human_reply (test_visual_review_assistant.SharedVisualAssistantTests.test_real_shared_automated_attempt_is_not_human_reply) ... ok test_real_shared_completion_retries_original_episode_after_disk_failure (test_visual_review_assistant.SharedVisualAssistantTests.test_real_shared_completion_retries_original_episode_after_disk_failure) ... ok test_real_shared_human_completion_then_new_risk (test_visual_review_assistant.SharedVisualAssistantTests.test_real_shared_human_completion_then_new_risk) ... ok test_real_shared_local_approval_closes_reminder_without_resuming (test_visual_review_assistant.SharedVisualAssistantTests.test_real_shared_local_approval_closes_reminder_without_resuming) ... ok test_real_terminal_automated_reply_never_completes (test_visual_review_assistant.SharedVisualAssistantTests.test_real_terminal_automated_reply_never_completes) ... ok test_real_terminal_send_requires_distinct_human_and_keeps_original_evidence (test_visual_review_assistant.SharedVisualAssistantTests.test_real_terminal_send_requires_distinct_human_and_keeps_original_evidence) ... ok test_stopped_client_cancel_closes_reminder_in_queue_data_directory (test_visual_review_assistant.SharedVisualAssistantTests.test_stopped_client_cancel_closes_reminder_in_queue_data_directory) ... ok test_active_sending_cancel_or_unrecognized_send_state_cannot_complete (test_visual_review_assistant.VisualAssistantTests.test_active_sending_cancel_or_unrecognized_send_state_cannot_complete) ... ok test_all_ui_attention_states_register_and_notify (test_visual_review_assistant.VisualAssistantTests.test_all_ui_attention_states_register_and_notify) ... ok test_assistant_contact_is_filtered_by_exact_conversation (test_visual_review_assistant.VisualAssistantTests.test_assistant_contact_is_filtered_by_exact_conversation) ... ok test_completed_review_does_not_erase_a_concurrent_replacement (test_visual_review_assistant.VisualAssistantTests.test_completed_review_does_not_erase_a_concurrent_replacement) ... ok test_disabled_config_never_imports_native_or_starts_coordinator (test_visual_review_assistant.VisualAssistantTests.test_disabled_config_never_imports_native_or_starts_coordinator) ... ok test_discarded_draft_marker_is_consumed_once (test_visual_review_assistant.VisualAssistantTests.test_discarded_draft_marker_is_consumed_once) ... ok test_draft_marker_retirement_failure_retains_protection (test_visual_review_assistant.VisualAssistantTests.test_draft_marker_retirement_failure_retains_protection) ... ok test_failed_review_id_save_rolls_back_and_does_not_enqueue (test_visual_review_assistant.VisualAssistantTests.test_failed_review_id_save_rolls_back_and_does_not_enqueue) ... ok test_late_mobile_sync_does_not_hide_new_customer_message (test_visual_review_assistant.VisualAssistantTests.test_late_mobile_sync_does_not_hide_new_customer_message) ... ok test_missing_database_and_cross_account_context_cannot_complete (test_visual_review_assistant.VisualAssistantTests.test_missing_database_and_cross_account_context_cannot_complete) ... ok test_new_customer_message_after_human_reply_starts_fresh_task (test_visual_review_assistant.VisualAssistantTests.test_new_customer_message_after_human_reply_starts_fresh_task) ... ok test_new_database_event_arriving_during_read_is_retained (test_visual_review_assistant.VisualAssistantTests.test_new_database_event_arriving_during_read_is_retained) ... ok test_no_evidence_preserves_review_and_persists_review_id (test_visual_review_assistant.VisualAssistantTests.test_no_evidence_preserves_review_and_persists_review_id) ... ok test_notification_registration_requires_durable_state (test_visual_review_assistant.VisualAssistantTests.test_notification_registration_requires_durable_state) ... ok test_pending_review_is_not_bypassed_by_new_safe_message (test_visual_review_assistant.VisualAssistantTests.test_pending_review_is_not_bypassed_by_new_safe_message) ... ok test_persistence_failure_restores_review_and_old_exchange (test_visual_review_assistant.VisualAssistantTests.test_persistence_failure_restores_review_and_old_exchange) ... ok test_proven_human_reply_discards_old_task_without_approving_or_sending (test_visual_review_assistant.VisualAssistantTests.test_proven_human_reply_discards_old_task_without_approving_or_sending) ... ok test_resumed_skips_blanket_only_and_new_risk_still_requires_review (test_visual_review_assistant.VisualAssistantTests.test_resumed_skips_blanket_only_and_new_risk_still_requires_review) ... ok test_retired_draft_and_review_binding_survive_restart (test_visual_review_assistant.VisualAssistantTests.test_retired_draft_and_review_binding_survive_restart) ... [待回复恢复] 已从磁盘恢复 1 个未完成任务。 [待回复恢复] 已从磁盘恢复 1 个未完成任务。 ok test_retired_draft_only_matches_exact_original_and_verified_identity (test_visual_review_assistant.VisualAssistantTests.test_retired_draft_only_matches_exact_original_and_verified_identity) ... ok test_send_attempt_failure_prevents_dispatch_and_local_completion_keeps_approval (test_visual_review_assistant.VisualAssistantTests.test_send_attempt_failure_prevents_dispatch_and_local_completion_keeps_approval) ... [助理审核] 自动发送留痕失败(OSError),暂缓本次发送;保留人工审核,不猜测人工回复。 ok test_stop_suppresses_read_and_notification (test_visual_review_assistant.VisualAssistantTests.test_stop_suppresses_read_and_notification) ... ok test_terminal_states_require_explicit_human_completion_evidence (test_visual_review_assistant.VisualAssistantTests.test_terminal_states_require_explicit_human_completion_evidence) ... ok test_wrong_account_or_conversation_or_review_evidence_cannot_clear_task (test_visual_review_assistant.VisualAssistantTests.test_wrong_account_or_conversation_or_review_evidence_cannot_clear_task) ... ok test_legacy_visual_queue_upgrades_to_envelope_and_retains_full_evidence (test_handoff_evidence.OfflineEvidenceTests.test_legacy_visual_queue_upgrades_to_envelope_and_retains_full_evidence) ... ok test_write_failure_preserves_original_queue_and_evidence (test_handoff_evidence.OfflineEvidenceTests.test_write_failure_preserves_original_queue_and_evidence) ... ok test_failed_persist_rolls_back_memory_and_keeps_pause (test_handoff_evidence.ProtocolEvidenceTests.test_failed_persist_rolls_back_memory_and_keeps_pause) ... skipped 'visual-only distribution has no protocol engine' test_takeover_record_survives_restart_and_poll_without_becoming_pending (test_handoff_evidence.ProtocolEvidenceTests.test_takeover_record_survives_restart_and_poll_without_becoming_pending) ... skipped 'visual-only distribution has no protocol engine' test_confirmed_handoff_preserves_serialized_evidence_not_delivery (test_visual_handoff_visibility.VisualHandoffTest.test_confirmed_handoff_preserves_serialized_evidence_not_delivery) ... ok test_db_message_must_be_newer_and_same_conversation (test_visual_handoff_visibility.VisualHandoffTest.test_db_message_must_be_newer_and_same_conversation) ... ok test_every_sending_stage_is_protected_even_when_confirmed (test_visual_handoff_visibility.VisualHandoffTest.test_every_sending_stage_is_protected_even_when_confirmed) ... ok test_failed_handoff_save_rolls_back_pending_tombstone_and_evidence (test_visual_handoff_visibility.VisualHandoffTest.test_failed_handoff_save_rolls_back_pending_tombstone_and_evidence) ... ok test_generating_work_is_cancelled_without_approving_or_sending (test_visual_handoff_visibility.VisualHandoffTest.test_generating_work_is_cancelled_without_approving_or_sending) ... ok test_new_task_cannot_receive_an_old_model_result_after_handoff (test_visual_handoff_visibility.VisualHandoffTest.test_new_task_cannot_receive_an_old_model_result_after_handoff) ... ok test_offline_flat_handoff_metadata_loads_without_becoming_a_task (test_visual_handoff_visibility.VisualHandoffTest.test_offline_flat_handoff_metadata_loads_without_becoming_a_task) ... ok test_old_database_event_is_not_requeued_after_restart (test_visual_handoff_visibility.VisualHandoffTest.test_old_database_event_is_not_requeued_after_restart) ... ok test_old_transcript_or_staff_reply_does_not_unlock_handoff (test_visual_handoff_visibility.VisualHandoffTest.test_old_transcript_or_staff_reply_does_not_unlock_handoff) ... ok test_plain_cancel_cannot_bypass_receipt_or_sending_guard (test_visual_handoff_visibility.VisualHandoffTest.test_plain_cancel_cannot_bypass_receipt_or_sending_guard) ... ok test_proven_new_customer_block_resumes_but_retains_old_evidence (test_visual_handoff_visibility.VisualHandoffTest.test_proven_new_customer_block_resumes_but_retains_old_evidence) ... ok test_receipt_unknown_states_always_require_confirmation (test_visual_handoff_visibility.VisualHandoffTest.test_receipt_unknown_states_always_require_confirmation) ... ok test_restart_and_unread_scan_cannot_resend_original (test_visual_handoff_visibility.VisualHandoffTest.test_restart_and_unread_scan_cannot_resend_original) ... ok test_resume_does_not_take_effect_if_disk_save_fails (test_visual_handoff_visibility.VisualHandoffTest.test_resume_does_not_take_effect_if_disk_save_fails) ... ok test_uncertain_requires_confirmation_and_keeps_evidence (test_visual_handoff_visibility.VisualHandoffTest.test_uncertain_requires_confirmation_and_keeps_evidence) ... ok ---------------------------------------------------------------------- Ran 57 tests in 1.748s OK (skipped=2)