fdc37de3e8
B1: переименование строки ошибки (#394) не обновило 4 предсуществующих share-ассерта → полный серверный сьют был красный. Обновлены ассерты в public-share-chat.spec.ts и public-share-chat-tools.service.spec.ts под новую классифицированную строку. B2: /health первая проба после старта врала DOWN при живом Redis (lazyConnect + enableOfflineQueue:false + maxRetriesPerRequest:1 → первый ping до открытия сокета). Добавлен ensureConnected() с bounded-таймаутом перед первым ping; покрывает и путь пересоздания после onModuleDestroy. Тест UP-с-первой-пробы против реального ioredis (mutation-verified). Устранён open-handle leak в redis.health.spec (drain ioredis force-destroy-таймера в teardown; без forceExit) и окно ложного DOWN при конкурентных пробах (мемоизированный connectingPromise). B3: комментарий про orphan-чат при провале beginRun (insert до begin). B4: описание listPages упоминает поле truncated в tree-режиме. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>