From 0ffbf1935c9d091cce22a5583275ac0902f7a693 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Thu, 02 Jul 2026 03:04:51 +0800
Subject: [PATCH] Add Cantonese language model support

---
 CODEGRAPH.md |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/CODEGRAPH.md b/CODEGRAPH.md
index c25f132..359f71b 100644
--- a/CODEGRAPH.md
+++ b/CODEGRAPH.md
@@ -3,7 +3,7 @@
 ## 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
@@ -11,6 +11,17 @@
 - `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
 
@@ -26,6 +37,8 @@
 - 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`

--
Gitblit v1.9.3