## Что сделано - Обновлён массив COMPOSER_SELECTORS в src/ui.ts: добавлены новые селекторы [data-component="prompt-input-v2"] и [data-component="session-prompt-dock"] как primary для OpenCode v1.18.x - Старые селекторы session-new-composer/session-composer сохранены как fallback для обратной совместимости - README обновлён с указанием совместимой версии OpenCode v1.18.x (русский и английский блоки) - Добавлен handoff-документ и ADR 0001 с обоснованием порядка fallback-селекторов ## Почему В OpenCode v1.18.x селекторы session-composer/session-new-composer удалены из исходников, из-за чего findComposer() возвращал null и кнопка 🎤 не появлялась в чате. Порядок массива обновлён как primary (v1.18.x) → fallback (pre-1.18), чтобы сохранить совместимость с OpenCode <1.18 до oldInterfaceSunset (2026-09-14). Closes #28 --------- Co-authored-by: opencode-agent <agent@opencode.local>
30 lines
No EOL
1.5 KiB
Markdown
30 lines
No EOL
1.5 KiB
Markdown
---
|
||
module: .
|
||
purpose: Index of project structure and top-level modules
|
||
last_updated: 2026-07-24
|
||
---
|
||
|
||
# Project Map — opencode-voice-dictation
|
||
|
||
Userscript для голосовой диктовки в OpenCode web через Whisper (Groq API). Точки входа в UI OpenCode определяются через массив `COMPOSER_SELECTORS` в `src/ui.ts` (primary для v1.18.x + fallback для pre-1.18).
|
||
|
||
## Top-level modules
|
||
|
||
- [`src/`](./src.md) — исходники userscript (entry, ui, audio, transcribe, insert, config, keyboard, types)
|
||
- [`tests/`](./tests.md) — unit-тесты (vitest) + моки
|
||
- [`.github/`](./github.md) — CI workflows, dependabot, release
|
||
- [`docs/`](./docs.md) — handoff, ADR, project map
|
||
|
||
## Build / tooling
|
||
|
||
- `vite.config.ts` + `vite-plugin-monkey` — сборка userscript (.user.js)
|
||
- `biome.json` — lint/format
|
||
- `tsconfig.json` — TypeScript
|
||
- `knip.json` — детектор неиспользуемого кода
|
||
- `vitest.config.ts` — test runner
|
||
|
||
## Conventions
|
||
|
||
- Один handoff на PR: `docs/handoff/pr-<N>-<slug>.md` с секциями `## Что сделано`, `## Почему`, `## Pending`, `## Watch out`.
|
||
- ADR на архитектурное решение: `docs/handoff/adr/<NNNN>-<slug>.md` с секциями `## Статус`, `## Контекст`, `## Решение`, `## Альтернативы`.
|
||
- Селекторы OpenCode UI — primary (новые) → fallback (старые), порядок = приоритет детекции. |