## Что сделано - `DEFAULTS.whisperPrompt` изменён с 107-символьного английского списка терминов на пустую строку (`src/config.ts:8`). Английский промпт уводил русский аудио в английский (особенно на turbo) — нарушает документацию Groq: «Use the same language as the language of the audio file». - `tests/config.test.ts` — 2 устаревших теста (`non-empty whisperPrompt`, `under 120 characters`) заменены на 1: `should have empty whisperPrompt by default`. - Version bump 1.0.4 → 1.0.5 в `vite.config.ts:11` и `package.json:3`. - ADR-0007 (`docs/decisions/0007-pr-46-empty-whisper-prompt.md`) — фиксирует решение, контекст (PR #43 + баг), последствия (`buildFormData` falsy-check), альтернативы (двуязычный промпт, смена модели — обе отвергнуты). - README — секция troubleshooting «Wrong Language (English instead of Russian)» добавлена в EN и RU секции после температурного блока. Инструкция очистить Whisper Prompt через меню Tampermonkey. ## Почему PR #43 добавил английский biasing-промпт для технических терминов. На практике английский промпт + русский аудио = модель возвращает английский текст, перебивая явный `language=ru`. Пользователь подтвердил баг на turbo. Параметр `prompt` Whisper — это seed-контекст декодера, модель стремится продолжить его язык. Пустой default = чистый auto-detect без biasing. Поле и menu command остаются для юзеров с узкопрофильной терминологией. ## Watch out - **Обратная совместимость**: существующие юзеры со старым 107-символьным значением в `GM_getValue("whisperPrompt")` сохраняют его — новый default применяется только к свежим установкам и к тем, кто очистил поле через `Set Whisper Prompt`. Миграции нет намеренно (не ломаем сохранённые настройки). - `buildFormData` использует falsy-check `if (config.whisperPrompt)` — пустая строка не отправляет поле `prompt` в Groq API вообще. - `transcribe.test.ts` использует mock `whisperPrompt: "Software development discussion."` — валидный mock для тестирования prompt-передачи, НЕ тронут (не путать с DEFAULTS). - `DEFAULTS.model` (`whisper-large-v3`), `DEFAULTS.language` (`""`), `DEFAULTS.temperature` (`0`), `DEFAULTS.endpoint` — не менялись. Смена модели на turbo была альтернативой, отвергнута (v3 лучше для русского, баг в промпте не в модели). - Touchpoints ровно 7: `src/config.ts`, `tests/config.test.ts`, `vite.config.ts`, `package.json`, `docs/decisions/0007-*.md` (новый), `README.md` (2 вставки EN+RU). `src/transcribe.ts` и остальные src-файлы не тронуты. ## Pending - CI на push-ветке (vitest, biome, tsc, knip) — все зелёные локально (55/55 tests, 22 файла biome-clean, tsc чист, knip чист). - После merge — ADR-0007 ссылается на PR #46 (номер уже известен из issue). Closes #46 --------- Co-authored-by: opencode-agent <agent@opencode.local>
31 lines
1.1 KiB
TypeScript
31 lines
1.1 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import monkey from "vite-plugin-monkey";
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
monkey({
|
|
entry: "src/index.ts",
|
|
userscript: {
|
|
name: "OpenCode Voice Dictation",
|
|
namespace: "https://github.com/slaid098/opencode-voice-dictation",
|
|
version: "1.0.5",
|
|
description:
|
|
"Voice dictation for OpenCode web using Whisper (Groq API) - works on PC and mobile",
|
|
author: "slaid098",
|
|
match: ["*://*/*"],
|
|
grant: ["GM_xmlhttpRequest", "GM_getValue", "GM_setValue", "GM_registerMenuCommand"],
|
|
connect: ["*"],
|
|
"run-at": "document-idle",
|
|
icon: "https://raw.githubusercontent.com/slaid098/opencode-voice-dictation/main/assets/icon.png",
|
|
updateURL:
|
|
"https://raw.githubusercontent.com/slaid098/opencode-voice-dictation/dist/opencode-voice-dictation.meta.js",
|
|
downloadURL:
|
|
"https://raw.githubusercontent.com/slaid098/opencode-voice-dictation/dist/opencode-voice-dictation.user.js",
|
|
},
|
|
build: {
|
|
fileName: "opencode-voice-dictation.user.js",
|
|
metaFileName: true,
|
|
},
|
|
}),
|
|
],
|
|
});
|