| | |
| | | ## Project |
| | | |
| | | - Product: Wails v3 / Go desktop dictation app. |
| | | - Current branch purpose: cross-platform local package handoff based on `v2.1.40-build20260702.0143`. |
| | | - Current branch purpose: Round 6 Cantonese language version real-user test package based on `v2.2.0-build20260702.0303`. |
| | | - Protected macOS behavior: existing macOS App Store / local DMG build lines are not changed by this branch. |
| | | |
| | | ## Core Entrypoints |
| | |
| | | - `privatevoice.src/main.go`: process startup, data migration, logger, single-instance guard. |
| | | - `privatevoice.src/app.go`: Wails app wiring, settings window, tray, recorder, hotkey loop, ASR init, paste orchestration. |
| | | - `privatevoice.src/embed.go`: embeds frontend assets and app/tray icons. |
| | | |
| | | ## Language And Model Registry |
| | | |
| | | - `privatevoice.src/internal/model/profile.go`: model and language IDs, model profile shape, install status types. |
| | | - `privatevoice.src/internal/model/registry.go`: language profile order, model profiles, language profiles, and normalization. |
| | | - `privatevoice.src/internal/modelselection/selection.go`: resolves current language and model, including manual-model fallback. |
| | | - Round 6 Cantonese path: |
| | | - Language ID: `yue-HK`, displayed as `粤语`. |
| | | - Default model: `sensevoice-yue-2025-09-09`. |
| | | - Backend: SenseVoice with `LanguageParam="yue"`. |
| | | - The Cantonese language profile intentionally has no upgrade models, so Qwen3-ASR and X-ASR are not shown as Cantonese-specific options. |
| | | |
| | | ## Platform Modules |
| | | |
| | |
| | | - ASR engine: |
| | | - macOS: `privatevoice.src/internal/engine/engine_darwin.go` |
| | | - Windows: `privatevoice.src/internal/engine/engine_windows.go` |
| | | - Linux: `privatevoice.src/internal/engine/engine_linux.go` |
| | | - SenseVoice profiles may set `Profile.LanguageParam`; Cantonese uses `yue`. |
| | | - Overlay: |
| | | - macOS: `privatevoice.src/internal/overlay/overlay_darwin.go` |
| | | - Windows: `privatevoice.src/internal/overlay/overlay_windows.go` |