📱 Доска iOS

всеканоны и докиворкеры↗ веб-доска
IOS-043 · Дефект · Чат · ios

iOS-клиент НЕ использует потоковый ответ чата — ждёт целиком 14 секунд

На проверке P1 · важно ведёт: ios-uitest-session-20260728-m4 эпик: IOS-001
Суть
В дампе owner-а: transport=single-response, chunks=1, bodyBytes=19334, elapsedMs=14323. То есть клиент ждал ответ ЦЕЛИКОМ 14 секунд и получил его одним куском. Потоковую отдачу chat-global я посадил на прод ещё сегодня (0fbea66a), но iOS ею не пользуется. Для owner-а это 14 секунд пустого экрана на каждый вопрос — даже когда ничего не висит.
Чем закрывается (приёмка)
В дампе transport=stream и chunks заметно больше единицы; первые слова ответа появляются на экране за секунду-две, а не через 14.
Доказательства
Commit 1128d96a + follow-up 067fdc87. GlobalChatServiceTests GREEN 10/10. Clean combined patch rebuilt by cherry-picking only those two commits onto parent 7f6fdc69: /Users/milamarty/Downloads/IOS-043-GLOBAL-CHAT-SSE-CONSUMPTION-CLEAN-1128d96a-067fdc87.patch SHA256 a65996983745e6e2c0a1461cac2401d3ec340747467a8d33d19473b13932906a, apply-check on clean parent 7f6fdc69 RC=0. Separate follow-up patch remains /Users/milamarty/Downloads/IOS-043-GLOBAL-CHAT-OPEN-SSE-RESULT-067fdc87.patch SHA256 bcc962b971694288082fda838a31bf34a8e122394de495a4275e9c81ea15a03a. Client sends Accept: text/event-stream, consumes accepted/result/done, returns result before stream EOF. Prod server does not emit delta chunks, so original chunks>1 acceptance is server-side impossible until backend streams deltas.
Починено в
1128d96a+067fdc87
Лента
2026-07-29T23:51:45.159Z · вахтёр-кодекс
00:51 ложная пустая очередь снята: board остаётся todo/P1 и назначен chat-линии. Воркер направлен на безслотовую диагностику single-response/stream consumption; следующее build-window после уже защищённого IOS-020 зарезервировано за chat priority #1.
2026-07-29T23:55:29.413Z · вахтёр-кодекс
00:55 build-slot RELEASE после GREEN IOS-020: chat priority #1 получил окно для ровно focused IOS-043 xcode/UI acceptance, если он нужен; broad sweep запрещён. Focused GlobalChatServiceTests уже 9/9 RC0.
2026-07-29T23:57:42.272Z · вахтёр-кодекс
00:57 готово к интеграции: commit 1128d96a; prod SSE probe accepted,result,done; GlobalChatServiceTests 9/9 RC0; patch /Users/milamarty/Downloads/ios043-global-chat-sse-consumption.patch, SHA256 2ef9b001464659cfd648b4abf8a0ceb8552ae97ef7dc61915e9dedcc9e8cfc6c, git apply --check на parent пройден.
2026-07-30T00:09:46.857Z · вахтёр-кодекс
КООРДИНАТОР: QA credential был напечатан в tmux transcript текущей shell-командой (значение здесь не повторяется). После завершения уже идущего priority-1 test credential считать скомпрометированным: ротировать password и обновить secure source; линии запрещено печатать/переиспользовать старое значение.
2026-07-30T00:44:05.195Z · ios-uitest-session-20260728-m4
handoff: client SSE consumption готов. Commit 1128d96a + follow-up 067fdc87. Доказательство: GlobalChatServiceTests GREEN 10/10; open-result regression возвращает SSE result без ожидания закрытия соединения: GLOBAL_CHAT_OPEN_STREAM_RESULT_BENCH elapsedMs=0 responseBytes=105. Patch: /Users/milamarty/Downloads/ios009-global-chat-open-sse-result-067fdc87.patch SHA256 bcc962b971694288082fda838a31bf34a8e122394de495a4275e9c81ea15a03a apply-check RC=0. Важная поправка к acceptance: prod SSE даёт accepted/result/done без delta, поэтому chunks>1 клиентом не достижимо до серверных delta-событий; клиент теперь показывает transport=sse и не ждёт EOF после result.
2026-07-30T01:47:02.777Z · вахтёр
Воркер ios-uitest-session-20260728-m4 — stalled: тишина в панели 30 мин (порог 20). Тикет не двигается.
2026-07-30T01:57:07.022Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 77 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:02:08.784Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 82 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:07:13.705Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 87 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:12:15.457Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 92 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:17:17.012Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 97 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:47:31.644Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 128 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:52:33.365Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 133 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T02:57:35.148Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 138 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:02:36.896Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 143 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:07:38.629Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 148 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:07:51.440Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 148 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:12:40.442Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 153 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:17:17.414Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 157 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:17:42.040Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 158 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:22:43.621Z · вахтёр
Воркер ios-uitest-session-20260728-m4 ЖДЁТ УЖЕ 163 мин подряд и не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:37:48.726Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T03:57:55.187Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T04:07:58.969Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T04:28:06.375Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T04:33:08.825Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T04:34:44.221Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-30T04:38:10.663Z · вахтёр
Воркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка:   gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
Воркер
ждёт ios-uitest-session-20260728-m4 M4 · gpt-5.5 medium движение в панели: 8 мин назад не продвигается: 15 мин
  gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
Подключиться и смотреть/перехватить руками. Колесо мыши листает; клавишами — Ctrl-b затем [, выход из прокрутки q. Отсоединиться — Ctrl-b затем d:
ssh -t poolpooly@192.168.1.74 "ssh -t milamarty@192.168.1.114 '/opt/homebrew/bin/tmux -L gui attach -t ios-uitest-session-20260728-m4'"
Прочитать историю панели без подключения — листается и ищется (/ поиск, q выход), воркеру не помешает:
ssh poolpooly@192.168.1.74 "ssh milamarty@192.168.1.114 '/opt/homebrew/bin/tmux -L gui capture-pane -p -S -5000 -t ios-uitest-session-20260728-m4'" | less -R
Если при входе tmux покажет «.config/tmux/tmux.conf: Permission denied» — нажми q, это косметика: каталог ~/.config на M4 принадлежит root, сессия работает. Лечится один раз с паролем на M4: sudo chown -R milamarty:staff /Users/milamarty/.config && chmod 755 /Users/milamarty/.config
Обновлён
2026-07-30T04:34:20.888Z