[ "tests/test_arc.py::test_build_fragment_prompt", "tests/test_arc.py::test_build_host_prompt_all_kinds_have_contract", "tests/test_arc.py::test_build_host_prompt_dedication", "tests/test_arc.py::test_build_host_prompt_local_weather_is_distinct", "tests/test_arc.py::test_build_system_prompt_broadcast_contains_descriptor_and_contract", "tests/test_arc.py::test_build_system_prompt_broadcast_no_topic_invents", "tests/test_arc.py::test_build_system_prompt_broadcast_uses_topic", "tests/test_arc.py::test_build_system_prompt_caller_contains_descriptor_and_contract", "tests/test_arc.py::test_build_system_prompt_caller_empty_text_is_graceful", "tests/test_arc.py::test_build_system_prompt_unknown_stage_defaults_to_oblivious", "tests/test_arc.py::test_constants", "tests/test_arc.py::test_detect_triggers_clamped", "tests/test_arc.py::test_detect_triggers_generic_question", "tests/test_arc.py::test_detect_triggers_identity", "tests/test_arc.py::test_detect_triggers_non_question", "tests/test_arc.py::test_detect_triggers_reality", "tests/test_arc.py::test_detect_triggers_station", "tests/test_arc.py::test_dj_name_in_persona", "tests/test_arc.py::test_meter_to_stage_boundaries", "tests/test_arc.py::test_meter_to_stage_full_sweep_is_monotonic", "tests/test_arc.py::test_stage_default_mood", "tests/test_arc.py::test_stages_table_shape", "tests/test_content.py::test_caller_intros_nonempty", "tests/test_content.py::test_other_banks_nonempty_and_shaped", "tests/test_content.py::test_rejoins_name_the_dj", "tests/test_content.py::test_song_recs_well_formed", "tests/test_content.py::test_songs_have_required_fields_and_valid_enums", "tests/test_proxy.py::test_broadcast_turn_mock_shape_and_sanitized_text", "tests/test_proxy.py::test_broadcast_turn_uses_host_path_and_sanitizes", "tests/test_proxy.py::test_build_memory_patch", "tests/test_proxy.py::test_call_speak_normalizes_nightwave_before_tts", "tests/test_proxy.py::test_call_turn_answers_without_echoing_the_question", "tests/test_proxy.py::test_call_turn_degenerate_uses_caller_fallback_not_crash", "tests/test_proxy.py::test_call_turn_mock_returns_caller_text_and_meter_delta", "tests/test_proxy.py::test_call_turn_no_memory_on_short_caller", "tests/test_proxy.py::test_call_turn_returns_memory_patch", "tests/test_proxy.py::test_caller_gist", "tests/test_proxy.py::test_clean_dj_text_rejects_degenerate_text_as_none", "tests/test_proxy.py::test_clean_dj_text_rejects_label_leakage", "tests/test_proxy.py::test_clean_dj_text_strips_label_leakage", "tests/test_proxy.py::test_clean_dj_text_unwraps_quotes_and_drops_markdown", "tests/test_proxy.py::test_extract_name_place", "tests/test_proxy.py::test_fmt_clock", "tests/test_proxy.py::test_fragment_user_mentions_another_station", "tests/test_proxy.py::test_get_stalls_returns_cached_clip_list", "tests/test_proxy.py::test_local_weather_falls_back_to_fictional_on_junk", "tests/test_proxy.py::test_resolve_locale_mock", "tests/test_proxy.py::test_segment_dedication_junk_falls_back_to_name", "tests/test_proxy.py::test_segment_dedication_memory_aware", "tests/test_proxy.py::test_segment_dedication_no_memory_is_templated", "tests/test_proxy.py::test_segment_fallback_is_never_failing_and_well_shaped", "tests/test_proxy.py::test_segment_fragment_is_persona_free", "tests/test_proxy.py::test_segment_fragment_junk_falls_back", "tests/test_proxy.py::test_song_intro_no_segue_when_absent", "tests/test_proxy.py::test_song_intro_template_includes_handle", "tests/test_proxy.py::test_song_intro_template_omits_handle_when_absent", "tests/test_proxy.py::test_song_intro_weaves_segue", "tests/test_proxy.py::test_speakable_normalizes_nightwave_for_tts", "tests/test_proxy.py::test_speakable_titlecases_nightwave", "tests/test_proxy.py::test_templated_caller_intro_nonempty", "tests/test_proxy.py::test_templated_rejoin_names_the_dj", "tests/test_proxy.py::test_wmo_phrase_mapping", "tests/test_server.py::test_api_locale_bad_body_still_safe", "tests/test_server.py::test_api_locale_mock", "tests/test_server.py::test_fallback_payload_has_memory_keys" ]