Разработка

Команды из package.json

bun install
bun run dev                 # Vite frontend dev server
bun run harness             # Vite server для /harness.html
bun run build               # темы + tsc + Vite build
bun run build:themes        # сборка builtin-тем в src-tauri/themes/
bun run tauri dev           # Tauri dev app
bun run tauri build         # production-сборка Tauri
bun run test:run            # Vitest один раз
bun run test:coverage       # Vitest coverage
bun run test:e2e            # Playwright
bun run test:all            # Vitest + Playwright
bun run test:rust           # cargo build --examples + cargo test
bun run lint                # ESLint по src/**/*.ts(x)

Тесты Rust также можно запускать напрямую:

cd src-tauri && cargo test

Архитектура

Фронтенд в src/: React 18, TypeScript, Vite, React Router и обёртки Tauri invoke. Публичные маршруты: Settings (/settings), History (/ и /history), Dictionary (/dictionary), Onboarding (/onboarding).

Важные области фронтенда:

Бэкенд в src-tauri/: Rust + Tauri v2. Два бинарника: voice (основное приложение) и typing_bench (бенчмарк задержки автопечати).

Важные модули:

Поток данных

  1. Нажатие hotkey → HotkeyListenerOrchestrator::on_hotkey_pressed() запускает AudioRecorder.
  2. Отпускание (hold) или повторный tap (toggle) ставит аудио в TranscriptionQueue.
  3. Воркер: транскрипция → словарь → опциональный LLM → clipboard/auto-type.
  4. Фронтенд получает события state-changed и error.

GitHub Pages docs

Сайт документации в docs-site/ собирается workflow .github/workflows/pages.yml при push в main, затрагивающем docs-site/** или сам workflow. Используются actions/configure-pages, actions/jekyll-build-pages (source = docs-site), actions/upload-pages-artifact и actions/deploy-pages.

Не добавляйте в публичные docs учётные данные, содержимое локальных БД или выдуманные hosted URL/скриншоты.