IOS-012 · Дефект · Чат · ios
ОПРОВЕРГНУТО: разбор markdown в теле экрана чата как причина зависания
Не чиним
P1 · важно
ведёт: —
эпик: IOS-001
Суть
DocumentChatView.swift:435 renderedContent парсит AttributedString в теле представления. SwiftUI пересчитывает тело на каждое изменение → переразбор каждого сообщения на главном потоке.
Чем закрывается (приёмка)
ЗАМЕР: мс на разбор длинного ответа × число вызовов за ход. Подтвердить или снять версию.
Доказательства
Версия ОПРОВЕРГНУТА дампом owner-а: во время 46-секундной блокировки operation=idle, а отрисовка пузыря ответа (operation=global chat rendering assistant bubble) заняла два отсчёта и НЕ блокировала главную очередь. Вынос разбора из тела экрана всё равно полезен и уже сделан (60dfa02b, в билде 2026072637), но причиной зависания он не был. Записываю как опровергнутую версию, чтобы к ней не возвращались.
Починено в
2026072637
Связи
- связан (обратная) → IOS-009 — Приложение зависает в глобальном чате и в чате тетради · Версия причины, ждёт замера
- связан (обратная) → IOS-019 — Таблица подвешивает приложение при правке ячейки · Один почерк: разбор в теле представления на каждом пересчёте
Лента
2026-07-29T19:32:59.310Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T19:38:01.341Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T19:43:03.379Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T19:53:07.806Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T20:03:12.780Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T20:08:14.216Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T20:13:16.323Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:13:37.779Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:18:28.930Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:18:39.489Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:28:43.382Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:29:30.019Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:48:50.995Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:49:39.115Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T21:54:41.861Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T22:04:46.149Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T22:08:59.648Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T22:09:48.289Z · вахтёрВоркер ios-uitest-session-20260728-m4 объявил БЛОКЕР или ждёт сборочный слот. Жив, но не продвигается. Последняя строка: gpt-5.5 medium · ~/Projects/worktrees/ios-uitest-session-20260728-m4
2026-07-29T22:19:04.198Z · вахтёрВоркер 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-29T22:33:40.634Z