[
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_contact_after_result_view_returns_result_payload",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_resolve_operational_now_uses_requested_at_when_newer",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_builds_style_from_recent_operator_messages_when_profile_is_empty",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_includes_section_context_in_decision_and_message_prompts",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_marks_existing_current_operator_contact_for_update",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_resolves_structured_temporal_request_without_legacy_candidate",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_rewrites_past_schedule_to_future",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_child_uses_date_calculator_output_for_points_messages_and_payload",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_run_contact_after_job_reports_progress",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_submit_contact_after_job_accepts_request",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_submit_contact_after_job_rejects_mismatched_snapshot_fingerprint",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_validate_and_normalize_analysis_request_builds_operator_style_context_from_bot_messages",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_validate_contact_after_decision_shape_aligns_to_business_hours",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_validate_contact_after_messages_requires_exact_json_array_shape",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_validate_contact_after_points_accepts_variable_point_count_and_derives_recommendation",
  "capacidades_ophub/test_analizador_transcripcion_cliente_contact_after.py::test_validate_operator_communication_style_limits_to_50_words",
  "capacidades_ophub/test_analizador_transcripcion_cliente_tasks.py::test_capacidades_ophub_is_registered_via_app_config",
  "capacidades_ophub/test_analizador_transcripcion_cliente_tasks.py::test_run_analizador_transcripcion_cliente_job_reports_progress",
  "capacidades_ophub/test_analizador_transcripcion_cliente_tasks.py::test_run_analizador_transcripcion_cliente_job_uses_django_celery_app",
  "integration/test_contact_after_autonomo_farewell.py::test_execute_contact_after_autonomo_builds_engine_envelope_and_persists",
  "integration/test_contact_after_autonomo_farewell.py::test_execute_contact_after_autonomo_surfaces_non_retryable_finalize_conflict",
  "integration/test_contact_after_autonomo_farewell.py::test_execute_conversation_end_includes_contact_after_module",
  "integration/test_contact_after_autonomo_farewell.py::test_post_contact_after_autonomo_finalize_uses_same_origin_callback",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_create_new_follow_up_after_customer_requests_callback",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_disabled_capability_skips_module",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_internal_note_can_trigger_and_schedule_follow_up",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_retries_same_origin_finalize_until_callback_recovers",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_skip_when_existing_follow_up_is_already_sufficient",
  "integration/test_contact_after_autonomo_simulations.py::test_simulation_update_existing_follow_up_when_customer_moves_deadline",
  "integration/test_follow_up_operativo_conversation_end.py::test_execute_conversation_end_includes_follow_up_operativo_module",
  "integration/test_follow_up_operativo_conversation_end.py::test_execute_follow_up_operativo_builds_envelope_and_persists",
  "integration/test_follow_up_operativo_conversation_end.py::test_execute_follow_up_operativo_skips_finalize_for_normal_conversation",
  "integration/test_follow_up_operativo_conversation_end.py::test_post_follow_up_operativo_finalize_uses_same_origin_callback",
  "services/public_embed/test_frontend_assets.py::test_frame_css_loads_local_nunito_font_and_frame_template_preloads_it",
  "services/public_embed/test_frontend_assets.py::test_frame_entrypoint_delegates_to_modular_runtime",
  "services/public_embed/test_frontend_assets.py::test_frame_frontend_assets_hide_internal_debug_copy_and_remove_decorative_shell_chrome",
  "services/public_embed/test_frontend_assets.py::test_frame_runtime_replays_user_history_and_can_reset_after_terminal_event",
  "services/public_embed/test_frontend_assets.py::test_frame_shell_supports_branding_driven_suggested_questions",
  "services/public_embed/test_frontend_assets.py::test_iframe_runtime_rebootstraps_before_session_expiry",
  "services/public_embed/test_frontend_assets.py::test_loader_defines_floating_boton_opi_shell_without_breaking_inline_mount",
  "services/public_embed/test_frontend_assets.py::test_loader_exposes_programmatic_floating_api_with_new_ophub_default_bootstrap",
  "services/public_embed/test_frontend_assets.py::test_loader_supports_authenticated_token_refresh_hooks",
  "services/public_embed/test_frontend_assets.py::test_loader_uses_svg_close_glyph_with_rounded_square_button",
  "services/public_embed/test_frontend_assets.py::test_markdown_renderer_escapes_html_and_formats_basic_blocks",
  "services/test_business_data_contact_after_config.py::test_build_contact_after_autonomo_envelope_normalizes_required_blocks",
  "services/test_business_data_contact_after_config.py::test_default_empleado_config_disables_contact_after_by_default",
  "services/test_business_data_contact_after_config.py::test_get_empleado_digital_config_loads_and_normalizes_contact_after",
  "services/test_contact_after_autonomo.py::test_extract_temporal_intent_preserves_ambiguous_afternoon_time_with_adjacent_text",
  "services/test_contact_after_autonomo.py::test_load_contact_after_autonomo_client_context_reads_notes_and_follow_ups",
  "services/test_contact_after_autonomo.py::test_run_contact_after_autonomo_creates_new_and_resolves_rfc3339",
  "services/test_contact_after_autonomo.py::test_run_contact_after_autonomo_internal_note_does_not_trigger_false_no_programar_overlap",
  "services/test_contact_after_autonomo.py::test_run_contact_after_autonomo_skips_when_capability_is_disabled",
  "services/test_contact_after_autonomo.py::test_run_contact_after_autonomo_skips_when_existing_follow_up_is_sufficient",
  "services/test_contact_after_autonomo.py::test_run_contact_after_autonomo_updates_existing_when_candidate_requires_refresh",
  "services/test_contact_after_autonomo.py::test_select_contact_after_update_candidate_prefers_same_employee_and_autonomous_record",
  "services/test_follow_up_operativo.py::test_build_follow_up_temporal_request_preserves_explicit_time",
  "services/test_follow_up_operativo.py::test_classify_follow_up_operativo_returns_continue_for_normal_conversation",
  "services/test_follow_up_operativo.py::test_classify_follow_up_operativo_returns_notice_for_explicit_notice",
  "services/test_follow_up_operativo.py::test_classify_follow_up_operativo_returns_notice_for_explicit_notice_with_temporal_text",
  "services/test_follow_up_operativo.py::test_classify_follow_up_operativo_returns_pending_for_natural_past_tense_phrase",
  "services/test_follow_up_operativo.py::test_classify_follow_up_operativo_returns_pending_for_temporal_action",
  "services/test_follow_up_operativo.py::test_format_follow_up_operativo_content_uses_numbered_list_for_multiline",
  "services/test_follow_up_operativo.py::test_handle_follow_up_operativo_immediate_caption_preserves_source_message_for_reaction",
  "services/test_follow_up_operativo.py::test_handle_follow_up_operativo_immediate_reuses_transcription_when_no_match",
  "services/test_follow_up_operativo.py::test_handle_follow_up_operativo_immediate_uses_stable_message_timestamp_for_dedupe",
  "services/test_follow_up_operativo.py::test_handle_follow_up_operativo_immediate_web_chat_falls_back_to_text_emoji",
  "services/test_follow_up_operativo.py::test_handle_follow_up_operativo_immediate_whatsapp_reacts_with_emoji",
  "services/test_follow_up_operativo.py::test_resolve_follow_up_due_datetime_uses_start_when_end_is_missing",
  "services/test_follow_up_operativo.py::test_run_follow_up_content_redaction_falls_back_when_llm_fails",
  "services/test_follow_up_operativo.py::test_run_follow_up_content_redaction_uses_llm_payload",
  "services/test_follow_up_operativo.py::test_run_follow_up_operativo_builds_notice_payload",
  "services/test_follow_up_operativo.py::test_run_follow_up_operativo_builds_pending_payload",
  "services/test_follow_up_operativo.py::test_run_follow_up_operativo_resolves_web_chat_identity_from_login_patterns",
  "services/test_follow_up_operativo.py::test_run_follow_up_operativo_skips_when_identity_is_not_internal",
  "services/test_follow_up_operativo.py::test_select_candidate_message_uses_transcription_echo_from_assistant",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_fails_when_inter_server_token_is_missing",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_falls_back_to_loaded_env_tokens",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_posts_payload_and_parses_success",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_preserves_successful_skipped_status",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_retries_retryable_http_error_then_succeeds",
  "services/test_ophub_finalize_client.py::test_post_ophub_finalize_skips_when_callback_is_missing",
  "webhooks/public_embed/test_frame_shell_view.py::test_frame_module_asset_uses_dedicated_namespace_and_does_not_collide_with_shell",
  "webhooks/public_embed/test_frame_shell_view.py::test_frame_shell_root_renders_without_session_binding",
  "webhooks/public_embed/test_frame_shell_view.py::test_frame_shell_view_sets_security_headers",
  "webhooks/public_embed/test_frame_shell_view.py::test_loader_asset_exposes_wrapper_and_postmessage_contract",
  "webhooks/public_embed/test_frame_shell_view.py::test_loader_asset_supports_etag_revalidation",
  "webhooks/public_embed/test_internal_erp_context_token_view.py::test_erp_context_token_view_keeps_legacy_widget_id_fallback",
  "webhooks/public_embed/test_internal_erp_context_token_view.py::test_erp_context_token_view_requires_inter_server_token",
  "webhooks/public_embed/test_internal_erp_context_token_view.py::test_erp_context_token_view_resolves_canonical_branch_without_public_key",
  "webhooks/public_embed/test_internal_erp_context_token_view.py::test_erp_context_token_view_returns_signed_context",
  "webhooks/public_embed/test_internal_erp_context_token_view.py::test_erp_context_token_view_uses_request_host_when_public_origin_not_configured"
]