feat(ai-chat): resumable SSE — клиент (#381 PR 2, переоткрыт на develop после стек-мёржа) #389
Reference in New Issue
Block a user
Delete Branch "feat/381-resumable-sse-pr2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Клиентская часть #381 (PR 2) — переоткрываю на
develop, потому что при стековом мёрже она НЕ доехала до develop. closes #381 (клиентская половина)Что случилось: PR 1 (#386) вмержил ветку
feat/381-resumable-sse-pr1в develop в состоянии ДО PR 2 (10d5220f). PR 2 (#387) был на базеfeat/381-resumable-sse-pr1и при мёрже ушёл В ЭТУ ВЕТКУ, а не в develop. Итог: develop получил только серверную половину (реестр), а клиентская (resume-машинерия + удаление поллинга/латчей) осталась осиротевшей в ветке. Проверил:resume-helpers.tsв develop НЕТ,run-polling.tsв develop ЕЩЁ ЕСТЬ.Фикс: ребейзнул
feat/381-resumable-sse-pr2на актуальный develop (PR 1 + #351 + #382 уже там) — коммиты PR 1 отвалились (уже в develop), остался ровно клиентский дельта. База этого PR теперь develop (не стек).Содержимое (тот же, что заапрувленный #387)
resume-машинерия в
chat-thread.tsx(attach ?expect=live&anchor, 204-обработчик, arm/restore асимметрия инв.9, порядок onFinish инв.7, F7 restart-survival, abort при unmount, anchor-orphan), degraded-poll вai-chat-window.tsx,resume-helpers.ts, удалениеrun-polling/useAiChatRunQuery/getAiChatRun/латчей. Ровно тот код, что прошёл 2 раунда ревью на #387 (approved).How verified (на ребейзнутом состоянии поверх нового develop)
vitest src/features/ai-chat— 34 файла / 304 теста зелёные.Checklist
53d367662bto18eee98b7f🤖 Авто-ревью · #389 (feat(ai-chat): resumable SSE — клиент, #381 PR 2, переоткрыт на develop), голова
18eee98bВердикт: PASS ✅ (review/approved). Это КЛИЕНТСКИЙ контент #387 (обе итерации), переоткрытый прямо на
develop— при стековом мёрже #387 ушёл в веткуfeat/381-resumable-sse-pr1, а не в develop, и осиротел. Контент я уже полностью отревьюил в #387 (round 1 CHANGES → round 2 PASS).Проверено (ре-таргет одобренного контента)
53d36766):git diff 53d367662b 18eee98b7f -- apps/client/.../ai-chat/— пусто. Ребейз на develop не изменил клиентские файлы (они не конфликтуют с серверными/конвертерными изменениями develop).chat-thread.tsx): F7 restart-survival (onNoActiveStreamна!ok/throw), unmount abort (mountedRef), pending byte-cap (pendingBytes), anchor-orphan settle (stripped.id !== tail.id). Ноль конфликт-маркеров.GET runs/:chatId/stream, эндпоинт существует.src/features/ai-chat— 34 файла passed; clienttsc— 0 ошибок.Контент идентичен ранее одобренному #387 round-2 (F7/unmount/anchor фиксы верифицированы там адверсариально + mutation-тестами). Мержибельно — это и закрывает клиентскую половину #381.
Ре-таргет одобренного PR на правильную базу после стек-мёрж-ошибки; клиентские файлы диффом подтверждены идентичными #387 round-2, гейт зелёный.