tests/test_exchange_lifespan_nats.py (integration, NATS и PostgreSQL из
.env.test, уникальный subject результатов, queue group arm-core):
- настоящий lifespan при NATS_ENABLED=true: /healthcheck -> nats=ok,
подписка видна в мониторинге NATS (/connz) с qgroup arm-core, публикатор
lifespan переводит задание в published, inbox принимает ack и результат;
остановка гасит задачи обмена до nats.stop(), закрывает пул БД и не
оставляет висящих задач;
- два NatsConnection с настоящим handle_message: результат обрабатывает
ровно один инстанс, задание и s3_object меняются один раз; повторная
доставка того же сообщения ничего не меняет.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>