feat(ai-chat): finalize collapse-on-page-focus (verified live; remove completed doc) #111
Closed
Ghost
wants to merge 0 commits from
feat/ai-chat-collapse-on-page-focus into develop
pull from: feat/ai-chat-collapse-on-page-focus
merge into: vvzvlad:develop
vvzvlad:main
vvzvlad:fix/269-table-menu-refocus
vvzvlad:feat/275-codeblock-buttons
vvzvlad:feat/276-ai-chat-dock
vvzvlad:feat/274-ai-chat-page-diff
vvzvlad:feat/270-stress-accent
vvzvlad:feat/273-temp-note-delete
vvzvlad:develop
vvzvlad:feat/268-comment-hover
vvzvlad:docs/dev-stand-guide
vvzvlad:feat/266-scroll-position
vvzvlad:fix/260-collab-docname-slugid
vvzvlad:test/244-phase2-tail
vvzvlad:fix/262-reindex-progress-realtime
vvzvlad:fix/258-changelog-compare-links
vvzvlad:feature/offline-sync
vvzvlad:feat/git-sync
vvzvlad:feat/184-autonomous-agent-runs
vvzvlad:fix/244-dataloss-bugs
vvzvlad:feat/246-spoiler
vvzvlad:feat/221-image-captions
vvzvlad:test/244-part-b
vvzvlad:feat/251-intentional-clear
vvzvlad:fix/embeddings-reindex-progress
vvzvlad:refactor/193-tool-spec-registry
vvzvlad:fix/255-ws-redis-adapter-leak
vvzvlad:fix/252-e2e-open-handles
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
vvzvlad:docs/manual-qa-test-plan
No Reviewers
Labels
Clear labels
bug
epic
feature
idea
needs-human
review/approved
review/changes-requested
review/needs
Something isn't working
Large multi-phase effort spanning many changes
New functionality request
Idea / proposal for discussion
эскалация: нужно решение человека
в последнем ревью нет открытых blocking-находок
последнее ревью оставило открытые blocking-находки
head не ревьюился (head != reviewed_head)
No Label
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#111
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 "feat/ai-chat-collapse-on-page-focus"
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?
Фича: авто-сворачивание AI-чата в шапку при фокусе на странице
Отчёт по скиллу архитектора.
1. Задача
Из
docs/backlog/ai-chat-collapse-on-page-focus.md: плавающее окно AI-чата должно само сворачиваться в свою шапку, как только пользователь кликает мимо окна (уходит читать страницу), и разворачиваться обратно по клику на шапку. Сворачивание — визуальный коллапс (стрим ответа не прерывается), не закрытие.2. Результат анализа (verify-before-build)
Фича уже реализована и смержена в develop — коммит
f6e216cb"feat(ai-chat): auto-collapse the chat window on page focus, expand on header (#42)". В коде присутствует вся обвязка:mousedown-слушатель в capture-фазе, армится только приwindowOpen && !minimized(ai-chat-window.tsx:282-291);shouldCollapseOnOutsidePointer/isHeaderClickвынесены вutils/collapse-helpers.tsи покрытыcollapse-helpers.test.ts(9 тестов);startDragчерезisHeaderClick(порог 4px) +minimizedRefпротив stale-замыкания (:340-369);setMinimized(false)при каждом открытии (:265-273);role="button",tabIndex=0,aria-label={t("Expand")}, обработку Enter/Space (:414-428);[data-portal]исключает клики по меню/модалкам Mantine;.minimized .dragBar { cursor: pointer }, i18n-ключ"Expand".Соответственно, реализовывать нечего — этот PR удаляет завершённую планировочную доку.
3. Решение
Удалён
docs/backlog/ai-chat-collapse-on-page-focus.md(фича доставлена). Никаких изменений кода.4. Найденные баги
Нет. Фича корректна и соответствует спеке во всех проверенных пунктах.
5. Тестирование — статистика
Юнит-тесты:
collapse-helpers.test.ts— 9/9 зелёные (pnpm --filter client exec vitest run).Живая браузерная проверка: 1 цикл, автономный субагент в headless Chromium против запущенного стенда (логин admin@test.local, страница в спейсе General, реальный редактор).
Подтверждённые поведения (все ✓):
[class*="minimized"](скринf1-02).content-узел в DOM,display:none) — стрим не прерывается.f1-03).f1-06).[data-portal]НЕ сворачивает; контроль (клик по body) — сворачивает (скринf1-07).role="button"+ Enter разворачивает (скринf1-04).🤖 Generated with Claude Code
Pull request closed