opencode-voice-dictation/docs/decisions
Sergey 02601cb360
fix(ui): prevent duplicate mic button in question-dock (#31)
## Что сделано
- `findComposer()` в `src/ui.ts` теперь skip `session-prompt-dock` если
внутри есть `session-question-dock` — общий wrapper не используется как
composer-target пока открыт question
- `injectIntoComposer()` в `src/ui.ts` добавлен guard: не вставлять
composer-кнопку если в DOM есть `[data-slot="question-custom-input"]`
(открыт textarea "Свой ответ")
- Бамп `@version` 1.0.1 → 1.0.2 в `package.json` и `vite.config.ts` —
разблокировать автообновление

## Почему
`session-prompt-dock` в OpenCode v1.18.3 — общий wrapper И для
question-dock, И для composer. Когда агент задаёт вопрос
(`questionRequest`), composer скрывается (`blocked=true`), но wrapper
остаётся. `findComposer()` находил wrapper и вставлял кнопку в верх
блока вопросов → дубликат + кнопка застревала после закрытия question.
Defence-in-depth: guard в findComposer + guard в injectIntoComposer.

Closes #28

Closes #28

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-07-25 02:23:39 +03:00
..
0001-pr-29-v1-18-composer-selectors-fallback-order.md fix(ui): support OpenCode 1.18.x composer selectors (#29) 2026-07-25 01:29:00 +03:00
0002-pr-30-broaden-page-detection-gate.md fix(ui): broaden page gate + debug logging + version bump (#30) 2026-07-25 02:03:39 +03:00
0003-pr-31-question-dock-duplicate-button.md fix(ui): prevent duplicate mic button in question-dock (#31) 2026-07-25 02:23:39 +03:00