docs: add manual QA test plan #136
Reference in New Issue
Block a user
Delete Branch "docs/manual-qa-test-plan"
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?
Adds
docs/manual-qa-test-plan.md— the structured manual test plan I followed during the full-product QA pass ondevelop(the pass that produced issues #122–#134).~190 numbered test cases (TC-…) across: auth/setup/session, account/workspace settings, members/groups, spaces, pages & tree, trash/history/favorites/labels, the editor & all slash-menu blocks, media/links/mentions/embeds, comments, search, notifications, AI chat & dictation, public sharing, a permission-tier matrix, cross-feature interactions, console/a11y/mobile, and a cross-cutting UI/consistency sweep. Each case is steps → expected, oriented toward surfacing bugs, UI inconsistencies, error states and edge cases.
Docs-only; no code changes.
🤖 Generated with Claude Code
если создать чат со скиллом например корректора, а потом пока агент пишет, нажать new chat, то у чата просто пропадает "корректор", но чат останется тем же, и сессия тоже. чат сбросится только если на новый чат после конца работы агента —добавить такой и подобные тесты
проверка создания mcp инструмента обязательно с указанием вайтлиста
Code review — PR #136: добавление плана ручного QA-тестирования (docs/manual-qa-test-plan.md)
Вердикт: Approve with comments. Чистый docs-only PR (+443/−0, один файл) — релизных рисков нет, но план не покрывает явно запрошенный сценарий «New chat во время стриминга» и не проверяет фактическую фильтрацию MCP-allowlist. Это пробелы покрытия в самом плане, а не блокеры мержа документа.
Объём: дифф
develop…docs/manual-qa-test-plan(merge-basef6a4df1b), 1 файлов, +443/−0. Прогнаны параллельные аспектные ревьюеры (documentation, conventions, test-coverage) + judge-проход.Must fix before merge
Нет.
Non-blocking
docs/manual-qa-test-plan.md:189,255,264Весь организующий принцип документа — сквозная буквенная схема
##-секций A…O, но после O идёт сразу## R. Additional flows(189), затем S/T/U/V, а буквы P и Q существуют только как###-подсекции (### P. Half-wired / absentпод## R,### Q. Permission matrix sweepпод## S). Читатель видит дыру O→R и одни и те же буквы на двух уровнях. Косметика (у каждого кейса есть стабильный TC-ID — реальный хэндл), но это единственное место, где собственная структурная конвенция документа внутренне противоречива. Fix: либо промотировать P/Q до собственных##-секций и переименовать## R→## P,## S→## Q, далее## T→## Rи т.д., либо убрать буквенные префиксы из блока## R..## Vи опираться на TC-ID.Test coverage
docs/manual-qa-test-plan.md:328-336(грунт:use-chat-session.ts:166-224,ai-chat-window.tsx:216-223)Кейс просили добавить явно, и он отсутствует. Поведение реально и привязано к коду: новый чат принимает свой server-id IN PLACE на
start-чанке, а строка ассистента персистится сразу и пошагово (#183). Нажатие New chat ВО ВРЕМЯ стрима запускаетstartNewChat(сбросselectedRoleId→null,activeChatId→null), из-за чего render-фазный реконсилятор видитactiveChatId(null) !== thread.chatId(adopted)и пересоздаёт UI — привязка роли/«скилла» тихо слетает из UI, но строка чата и его серверный turn остаются. Ближайшие TC-AI-11 (queue при переключении) и TC-AI-15 (хвост при switch mid-stream) покрывают ПЕРЕКЛЮЧЕНИЕ на другой чат, а не нажатие New chat, и ни один не покрывает эффект «скилл слетел, но чат жив» и различие «полный сброс только если New chat нажат ПОСЛЕ завершения агента». Fix: добавить TC-AI рядом с TC-AI-09..16 со ссылкой наuse-chat-session.ts:166-224иai-chat-window.tsx:216-223: (1) новый чат, выбрать скилл/роль, отправить первое сообщение; (2) во время стрима нажать New chat → ожидать тихий сброс скилла/роли из UI при сохранении только что созданного чата и его серверного turn; (3) нажать New chat ПОСЛЕ завершения агента → ожидать полный сброс (пустая role-card, очищенный черновик).docs/manual-qa-test-plan.md:248(грунт:mcp-clients.service.ts:263-265,280-291)Разработчик требовал, чтобы тест создания MCP-сервера включал задание whitelist. TC-AI-08 перечисляет «tool allowlist» среди настраиваемых полей, но не утверждает наблюдаемого эффекта — то есть не проверяет, что allowlist работает. Поведение фильтра реально: непустой
toolAllowlistоставляет только названные инструменты, пустой/null отдаёт все, а guidance сервера опускается, если allowlist отфильтровал всё. Fix: добавить шаг — создать MCP-сервер с НЕПУСТЫМtoolAllowlist, называющим подмножество инструментов → проверить, что в чате доступны/вызываемы только разрешённые (и что guidance опускается, если allowlist отфильтровал все, поmcp-clients.service.ts:280-291); контраст с пустым allowlist, отдающим все инструменты.Architecture & design (forward-looking, non-blocking)
Нет.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.