tests/gateway/test_ephemeral_reply.py::test_unwrap_plain_string_is_passthrough tests/gateway/test_ephemeral_reply.py::test_unwrap_none_is_passthrough tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_explicit_ttl_on_capable_adapter tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_zeros_ttl_on_incapable_adapter tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_default_ttl_from_config tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_default_ttl_zero_disables tests/gateway/test_ephemeral_reply.py::test_unwrap_ephemeral_handles_unreadable_config tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_calls_delete_after_ttl tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_swallows_errors tests/gateway/test_ephemeral_reply.py::test_schedule_ephemeral_delete_outside_event_loop_is_noop tests/gateway/test_ephemeral_reply.py::test_process_message_unwraps_ephemeral_before_send tests/gateway/test_ephemeral_reply.py::test_process_message_ephemeral_reply_does_not_auto_upload_bare_paths tests/gateway/test_ephemeral_reply.py::test_process_message_incapable_platform_does_not_schedule_delete tests/gateway/test_ephemeral_reply.py::test_process_message_plain_string_behaves_unchanged