docs: add manual QA test plan #136
Open
Ghost
wants to merge 5 commits from
docs/manual-qa-test-plan into develop
pull from: docs/manual-qa-test-plan
merge into: vvzvlad:develop
vvzvlad:main
vvzvlad:test/244-part-b
vvzvlad:fix/255-ws-redis-adapter-leak
vvzvlad:feat/251-intentional-clear
vvzvlad:fix/252-e2e-open-handles
vvzvlad:feat/184-autonomous-agent-runs
vvzvlad:feat/221-image-captions
vvzvlad:feat/git-sync
vvzvlad:refactor/193-tool-spec-registry
vvzvlad:fix/244-dataloss-bugs
vvzvlad:fix/embeddings-reindex-progress
vvzvlad:develop
vvzvlad:feature/offline-sync
vvzvlad:feat/229-catalog-yaml
vvzvlad:feat/243-blob-sandbox
vvzvlad:feat/228-inline-footnotes
vvzvlad:fix/qa-ui-bugs-216-218
vvzvlad:feature/agent-roles-catalog
vvzvlad:fix/share-alias-rename
vvzvlad:fix/ai-chat-empty-render
vvzvlad:feat/191-chat-doc-binding
vvzvlad:feat/201-temporary-notes
vvzvlad:feat/198-interrupt-agent
vvzvlad:feat/ai-chat-full-history
vvzvlad:feat/199-ai-generate-title
vvzvlad:feat/205-share-aliases
vvzvlad:batch/issues-189-187-170
vvzvlad:feat/170-mcp-test-button
vvzvlad:feat/189-context-badge
vvzvlad:feat/198-interrupt-agent-send-now
vvzvlad:fix/issues-190-159
vvzvlad:fix/ai-chat-new-chat-during-stream
vvzvlad:fix/ai-chat-stream-perf
vvzvlad:batch/issues-2026-06-25
vvzvlad:feat/ai-chat-persistent-history
vvzvlad:fix/ai-chat-copy-chat-wysiwyg
vvzvlad:fix/ai-stream-reset-resilience
vvzvlad:fix/ai-stream-undici-timeout
vvzvlad:fix/footnote-review-1227-followup
vvzvlad:fix/ai-chat-token-counter-realtime
No Reviewers
Labels
Clear labels
bug
documentation
duplicate
enhancement
epic
feature
good first issue
help wanted
idea
invalid
needs-human
question
refactor
review/approved
review/changes-requested
review/needs
security
status/blocked
status/done
status/in-progress
status/ready
test
wontfix
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Large multi-phase effort spanning many changes
New functionality request
Good for newcomers
Extra attention is needed
Idea / proposal for discussion
This doesn't seem right
эскалация: нужно решение человека
Further information is requested
Code cleanup / refactoring
в последнем ревью нет открытых blocking-находок
последнее ревью оставило открытые blocking-находки
head не ревьюился (head != reviewed_head)
Security / hardening issue
ждёт зависимость blocked_by
закрыто и проверено
в активной работе (мягкая заявка)
специфицировано, не заблокировано, ждёт исполнителя
Test coverage / test infrastructure
This will not be worked on
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: vvzvlad/gitmost#136
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking 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.