diff --git a/docs/architecture/README.md b/docs/architecture/README.md
index 9486a56..a30be71 100644
--- a/docs/architecture/README.md
+++ b/docs/architecture/README.md
@@ -24,6 +24,10 @@ MCP Feedback Enhanced 採用**單一活躍會話 + 持久化 Web UI**的創新
- **持久化 Web UI**: 支援多次循環調用,無需重複開啟瀏覽器
- **實時雙向通信**: WebSocket 實現前後端狀態同步
- **智能資源管理**: 自動清理和會話生命週期管理
+- **提示詞管理系統**: 常用提示詞的 CRUD 操作和快速選擇
+- **自動提交功能**: 倒數計時器和自動回饋提交機制
+- **會話管理功能**: 會話歷史追蹤和統計分析
+- **多語言支援**: 繁體中文、簡體中文、英文動態切換
#### 技術棧
- **後端**: Python 3.11+, FastAPI, FastMCP
@@ -49,8 +53,9 @@ MCP Feedback Enhanced 採用**單一活躍會話 + 持久化 Web UI**的創新
---
-**版本**: 2.3.0
-**最後更新**: 2024年12月
+**版本**: 2.4.0
+**最後更新**: 2025年6月
**維護者**: Minidoracat
**架構類型**: Web-Only 四層架構
-**文檔狀態**: ✅ 已完成全面更新,完全移除 Electron 相關內容
+**新功能**: 提示詞管理、自動提交、會話管理、語系切換優化
+**文檔狀態**: ✅ 已完成全面更新,包含所有新功能的詳細說明
diff --git a/docs/architecture/api-reference.md b/docs/architecture/api-reference.md
index e41ea81..db3d7c9 100644
--- a/docs/architecture/api-reference.md
+++ b/docs/architecture/api-reference.md
@@ -92,6 +92,68 @@ except EnvironmentError as e:
**響應**: `200 OK` 或 `404 Not Found`
+#### GET /api/translations
+獲取多語言翻譯資源。
+
+**響應**: `200 OK`
+```json
+{
+ "zh-TW": {
+ "app": {
+ "title": "MCP Feedback Enhanced"
+ }
+ },
+ "en": {
+ "app": {
+ "title": "MCP Feedback Enhanced"
+ }
+ },
+ "zh-CN": {
+ "app": {
+ "title": "MCP Feedback Enhanced"
+ }
+ }
+}
+```
+
+#### GET /api/session-status
+獲取當前會話狀態。
+
+**響應**: `200 OK`
+```json
+{
+ "has_session": true,
+ "status": "active",
+ "session_info": {
+ "project_directory": "./my-project",
+ "summary": "代碼審查完成",
+ "feedback_completed": false
+ }
+}
+```
+
+#### GET /api/current-session
+獲取當前會話詳細信息。
+
+**響應**: `200 OK`
+```json
+{
+ "session_id": "550e8400-e29b-41d4-a716-446655440000",
+ "project_directory": "./my-project",
+ "summary": "代碼審查完成",
+ "feedback_completed": false,
+ "command_logs": "",
+ "images_count": 0
+}
+```
+
+**錯誤響應**: `404 Not Found`
+```json
+{
+ "error": "沒有活躍會話"
+}
+```
+
### WebSocket API
#### 連接端點
@@ -160,6 +222,71 @@ ws://localhost:{port}/ws
}
```
+#### prompt_management
+提示詞管理操作。
+
+```json
+{
+ "type": "prompt_management",
+ "data": {
+ "action": "add|update|delete|use",
+ "prompt": {
+ "id": "prompt_1_1703123456789",
+ "name": "代碼審查提示",
+ "content": "請檢查這段代碼的邏輯正確性和性能優化建議。",
+ "isAutoSubmit": false
+ }
+ }
+}
+```
+
+**字段說明**:
+- `action`: 操作類型(add=新增, update=更新, delete=刪除, use=使用)
+- `prompt.id`: 提示詞唯一標識符
+- `prompt.name`: 提示詞名稱
+- `prompt.content`: 提示詞內容
+- `prompt.isAutoSubmit`: 是否為自動提交提示詞
+
+#### auto_submit_control
+自動提交功能控制。
+
+```json
+{
+ "type": "auto_submit_control",
+ "data": {
+ "action": "start|stop|update_settings",
+ "settings": {
+ "enabled": true,
+ "timeout": 30,
+ "promptId": "prompt_1_1703123456789"
+ }
+ }
+}
+```
+
+**字段說明**:
+- `action`: 控制動作(start=啟動, stop=停止, update_settings=更新設定)
+- `settings.enabled`: 是否啟用自動提交
+- `settings.timeout`: 自動提交倒數時間(秒)
+- `settings.promptId`: 自動提交使用的提示詞 ID
+
+#### session_management
+會話管理操作。
+
+```json
+{
+ "type": "session_management",
+ "data": {
+ "action": "get_history|get_stats|clear_history",
+ "sessionId": "550e8400-e29b-41d4-a716-446655440000"
+ }
+}
+```
+
+**字段說明**:
+- `action`: 管理動作(get_history=獲取歷史, get_stats=獲取統計, clear_history=清除歷史)
+- `sessionId`: 會話 ID(可選)
+
### 📥 服務器 → 客戶端訊息
#### connection_established
@@ -218,6 +345,52 @@ WebSocket 連接建立確認。
}
```
+#### auto_submit_status
+自動提交狀態更新。
+
+```json
+{
+ "type": "auto_submit_status",
+ "data": {
+ "enabled": true,
+ "countdown": 25,
+ "promptId": "prompt_1_1703123456789",
+ "promptName": "代碼審查提示"
+ }
+}
+```
+
+**字段說明**:
+- `enabled`: 自動提交是否啟用
+- `countdown`: 剩餘倒數時間(秒)
+- `promptId`: 當前自動提交提示詞 ID
+- `promptName`: 當前自動提交提示詞名稱
+
+#### session_history
+會話歷史數據。
+
+```json
+{
+ "type": "session_history",
+ "data": {
+ "sessions": [
+ {
+ "session_id": "session-1",
+ "summary": "代碼審查完成",
+ "status": "completed",
+ "created_at": "2024-12-13T10:30:00Z",
+ "feedback_length": 150
+ }
+ ],
+ "stats": {
+ "total": 10,
+ "completed": 8,
+ "average_feedback_length": 120
+ }
+ }
+}
+```
+
#### error
錯誤訊息。
@@ -289,6 +462,95 @@ def add_websocket(self, websocket: WebSocket) -> None
添加 WebSocket 連接到會話。
+### PromptManager API
+
+#### addPrompt()
+```python
+def addPrompt(self, name: str, content: str) -> dict
+```
+
+新增提示詞到管理器。
+
+**參數**:
+- `name`: 提示詞名稱(必須唯一)
+- `content`: 提示詞內容
+
+**返回值**: 新建的提示詞對象
+
+#### updatePrompt()
+```python
+def updatePrompt(self, id: str, name: str, content: str) -> dict
+```
+
+更新現有提示詞。
+
+#### deletePrompt()
+```python
+def deletePrompt(self, id: str) -> bool
+```
+
+刪除指定提示詞。
+
+#### usePrompt()
+```python
+def usePrompt(self, id: str) -> dict
+```
+
+使用提示詞(更新最近使用記錄)。
+
+#### getPromptsSortedByUsage()
+```python
+def getPromptsSortedByUsage(self) -> List[dict]
+```
+
+獲取按使用頻率排序的提示詞列表,自動提交提示詞優先顯示。
+
+### SessionManager API
+
+#### getCurrentSession()
+```python
+def getCurrentSession(self) -> dict
+```
+
+獲取當前活躍會話信息。
+
+#### getSessionHistory()
+```python
+def getSessionHistory(self) -> List[dict]
+```
+
+獲取會話歷史記錄。
+
+#### getSessionStats()
+```python
+def getSessionStats(self) -> dict
+```
+
+獲取會話統計信息。
+
+### AutoSubmitManager API
+
+#### start()
+```python
+def start(self, timeoutSeconds: int, promptId: str) -> None
+```
+
+啟動自動提交倒數計時器。
+
+#### stop()
+```python
+def stop(self) -> None
+```
+
+停止自動提交倒數計時器。
+
+#### updateSettings()
+```python
+def updateSettings(self, enabled: bool, timeout: int, promptId: str) -> None
+```
+
+更新自動提交設定。
+
## 📊 狀態碼和錯誤碼
### HTTP 狀態碼
@@ -316,6 +578,23 @@ class SessionStatus:
ERROR = "ERROR"
```
+### 提示詞狀態
+```python
+class PromptStatus:
+ ACTIVE = "active" # 活躍提示詞
+ AUTO_SUBMIT = "auto_submit" # 自動提交提示詞
+ ARCHIVED = "archived" # 已歸檔提示詞
+```
+
+### 自動提交狀態
+```python
+class AutoSubmitStatus:
+ DISABLED = "disabled" # 已停用
+ ENABLED = "enabled" # 已啟用
+ COUNTDOWN = "countdown" # 倒數計時中
+ COMPLETED = "completed" # 已完成提交
+```
+
## 🔒 安全考慮
### 輸入驗證
@@ -323,6 +602,9 @@ class SessionStatus:
- 圖片大小限制:單張最大 5MB
- 圖片數量限制:最多 10 張
- 支援的圖片格式:PNG, JPEG, GIF, WebP
+- 提示詞名稱長度限制:最大 100 字符
+- 提示詞內容長度限制:最大 5,000 字符
+- 提示詞數量限制:最多 50 個
### 資源保護
- WebSocket 連接數限制:每會話最多 5 個連接
@@ -351,8 +633,9 @@ app.add_middleware(
---
-**版本**: 2.3.0
-**最後更新**: 2024年12月
+**版本**: 2.4.0
+**最後更新**: 2025年6月
**維護者**: Minidoracat
**API 版本**: v1
**協議支援**: MCP 2.0+, WebSocket, HTTP/1.1
+**新功能**: 自動提交、提示詞管理、會話管理、語系切換優化
diff --git a/docs/architecture/component-details.md b/docs/architecture/component-details.md
index 03471e9..de61065 100644
--- a/docs/architecture/component-details.md
+++ b/docs/architecture/component-details.md
@@ -40,6 +40,8 @@ graph TB
JS[static/js/
JavaScript 模組
ES6+ 架構]
CSS[static/css/
樣式系統
響應式設計]
LOCALES[locales/
翻譯文件
JSON 格式]
+ PROMPT_MODULES[prompt/
提示詞管理模組
CRUD 操作]
+ SESSION_MODULES[session/
會話管理模組
歷史追蹤]
end
subgraph "工具層 - 核心工具"
@@ -66,6 +68,12 @@ graph TB
JS -->|WebSocket| WS
WS -->|回傳數據| SESSION
+ %% 新功能模組
+ JS -->|載入模組| PROMPT_MODULES
+ JS -->|載入模組| SESSION_MODULES
+ PROMPT_MODULES -->|提示詞管理| WS
+ SESSION_MODULES -->|會話追蹤| WS
+
%% 支援服務
I18N -->|翻譯服務| ROUTES
I18N -->|語言包| LOCALES
@@ -91,7 +99,7 @@ graph TB
class SERVER,TOOL,I18N,DEBUG layer1
class MANAGER,SESSION,MODELS layer2
class MAIN,ROUTES,WS layer3
- class HTML,JS,CSS,LOCALES layer4
+ class HTML,JS,CSS,LOCALES,PROMPT_MODULES,SESSION_MODULES layer4
class ERROR,MEMORY,RESOURCE,BROWSER,PORT,COMPRESS,CLEANUP tools
```
@@ -552,6 +560,72 @@ async def websocket_endpoint(websocket: WebSocket):
## 🎨 第四層:前端交互層
+### 新功能模組架構
+
+#### 提示詞管理模組群組 (prompt/)
+
+**模組結構**:
+```mermaid
+graph TB
+ subgraph "提示詞管理模組"
+ PM[prompt-manager.js
核心管理器
CRUD 操作]
+ PMO[prompt-modal.js
彈窗組件
編輯界面]
+ PSU[prompt-settings-ui.js
設定頁面
列表管理]
+ PIB[prompt-input-buttons.js
輸入按鈕
快速選擇]
+ end
+
+ PM -->|提供數據| PMO
+ PM -->|提供數據| PSU
+ PM -->|提供數據| PIB
+ PMO -->|編輯操作| PM
+ PSU -->|管理操作| PM
+ PIB -->|使用操作| PM
+```
+
+**核心功能**:
+- **PromptManager**: 提示詞的增刪改查、排序、自動提交標記
+- **PromptModal**: 新增/編輯提示詞的彈窗界面
+- **PromptSettingsUI**: 設定頁籤中的提示詞管理界面
+- **PromptInputButtons**: 回饋輸入區的快速選擇按鈕
+
+#### 會話管理模組群組 (session/)
+
+**模組結構**:
+```mermaid
+graph TB
+ subgraph "會話管理模組"
+ SM[session-manager.js
會話控制器
狀態管理]
+ SDM[session-data-manager.js
數據管理器
歷史記錄]
+ SU[session-utils.js
工具函數
狀態判斷]
+ end
+
+ SM -->|數據操作| SDM
+ SM -->|工具函數| SU
+ SDM -->|狀態回調| SM
+```
+
+**核心功能**:
+- **SessionManager**: 當前會話的狀態管理和控制
+- **SessionDataManager**: 會話歷史記錄和統計數據管理
+- **SessionUtils**: 會話狀態判斷和工具函數
+
+#### 自動提交功能整合
+
+**整合架構**:
+```mermaid
+graph LR
+ subgraph "自動提交功能"
+ ASM[AutoSubmitManager
倒數計時器
狀態控制]
+ PM[PromptManager
提示詞選擇
自動標記]
+ SM[SettingsManager
設定存儲
配置管理]
+ end
+
+ ASM -->|選擇提示詞| PM
+ ASM -->|保存設定| SM
+ PM -->|提供提示詞| ASM
+ SM -->|載入設定| ASM
+```
+
### templates/ - HTML 模板系統
**模板結構**:
diff --git a/docs/architecture/interaction-flows.md b/docs/architecture/interaction-flows.md
index f0459a8..a2d96f8 100644
--- a/docs/architecture/interaction-flows.md
+++ b/docs/architecture/interaction-flows.md
@@ -473,6 +473,127 @@ function handleSessionUpdated(data) {
}
```
+## 🚀 新功能交互流程
+
+### 自動提交功能流程
+
+```mermaid
+sequenceDiagram
+ participant User as 用戶
+ participant UI as 前端界面
+ participant ASM as AutoSubmitManager
+ participant PM as PromptManager
+ participant WS as WebSocket
+
+ Note over User,WS: 🔧 設定自動提交
+ User->>UI: 開啟設定頁籤
+ UI->>PM: 獲取提示詞列表
+ PM-->>UI: 返回提示詞(自動提交優先)
+ User->>UI: 選擇提示詞並設定倒數時間
+ UI->>ASM: updateSettings(enabled, timeout, promptId)
+ ASM->>WS: 保存設定到服務器
+
+ Note over User,WS: ⏰ 自動提交執行
+ WS->>UI: session_updated(AI 新調用)
+ UI->>ASM: checkAutoSubmitConditions()
+ ASM->>ASM: 檢查設定和狀態
+ alt 條件滿足
+ ASM->>ASM: start(timeout, promptId)
+ ASM->>UI: 顯示倒數計時器
+ loop 每秒更新
+ ASM->>UI: updateCountdownDisplay(remaining)
+ end
+ ASM->>PM: getPromptById(promptId)
+ PM-->>ASM: 返回提示詞內容
+ ASM->>UI: 填入提示詞到輸入框
+ ASM->>WS: submit_feedback(自動提交)
+ else 條件不滿足
+ ASM->>UI: 隱藏倒數計時器
+ end
+```
+
+### 提示詞管理流程
+
+```mermaid
+sequenceDiagram
+ participant User as 用戶
+ participant UI as 設定界面
+ participant PM as PromptManager
+ participant Modal as PromptModal
+ participant Storage as LocalStorage
+
+ Note over User,Storage: 📝 新增提示詞
+ User->>UI: 點擊「新增提示詞」
+ UI->>Modal: showAddModal()
+ Modal->>User: 顯示編輯表單
+ User->>Modal: 輸入名稱和內容
+ Modal->>PM: addPrompt(name, content)
+ PM->>PM: 驗證數據和唯一性
+ PM->>Storage: 保存到 localStorage
+ PM->>UI: 觸發 onPromptsChange 回調
+ UI->>UI: refreshPromptList()
+
+ Note over User,Storage: ✏️ 編輯提示詞
+ User->>UI: 點擊編輯按鈕
+ UI->>Modal: showEditModal(prompt)
+ Modal->>User: 顯示預填表單
+ User->>Modal: 修改內容
+ Modal->>PM: updatePrompt(id, name, content)
+ PM->>Storage: 更新 localStorage
+ PM->>UI: 觸發回調更新界面
+
+ Note over User,Storage: 🎯 使用提示詞
+ User->>UI: 在輸入區點擊提示詞按鈕
+ UI->>PM: getPromptsSortedByUsage()
+ PM-->>UI: 返回排序後列表
+ UI->>Modal: showSelectModal(prompts)
+ User->>Modal: 選擇提示詞
+ Modal->>PM: usePrompt(id)
+ PM->>Storage: 更新使用記錄
+ Modal->>UI: 填入提示詞內容
+```
+
+### 會話管理流程
+
+```mermaid
+sequenceDiagram
+ participant AI as AI 助手
+ participant Server as MCP 服務器
+ participant SM as SessionManager
+ participant SDM as SessionDataManager
+ participant UI as 前端界面
+
+ Note over AI,UI: 📊 會話生命週期管理
+ AI->>Server: interactive_feedback()
+ Server->>SM: createSession()
+ SM->>SDM: addCurrentSession()
+ SDM->>UI: 更新會話顯示
+
+ Note over AI,UI: 📝 用戶回饋處理
+ UI->>Server: submit_feedback
+ Server->>SM: processFeedback()
+ SM->>SDM: updateSessionStatus()
+ SDM->>SDM: 記錄回饋數據
+ SM->>AI: 返回回饋結果
+
+ Note over AI,UI: 📚 會話歷史管理
+ SM->>SDM: addSessionToHistory()
+ SDM->>SDM: 檢查完成狀態
+ alt 會話已完成
+ SDM->>SDM: 加入歷史記錄
+ SDM->>SDM: updateStats()
+ SDM->>UI: 觸發 onHistoryChange
+ else 會話未完成
+ SDM->>SDM: 跳過歷史記錄
+ end
+
+ Note over AI,UI: 🔍 歷史查詢
+ UI->>SDM: getSessionHistory()
+ SDM-->>UI: 返回歷史列表
+ UI->>SDM: getSessionStats()
+ SDM-->>UI: 返回統計數據
+```
+
## 📊 狀態同步機制
### WebSocket 訊息類型
@@ -484,12 +605,17 @@ graph LR
SU[session_updated
會話更新]
FR[feedback_received
回饋確認]
ST[status_update
狀態更新]
+ ASS[auto_submit_status
自動提交狀態]
+ SH[session_history
會話歷史]
end
subgraph "客戶端 → 服務器"
SF[submit_feedback
提交回饋]
HB[heartbeat
心跳檢測]
LS[language_switch
語言切換]
+ PM[prompt_management
提示詞管理]
+ ASC[auto_submit_control
自動提交控制]
+ SM[session_management
會話管理]
end
```
@@ -498,15 +624,34 @@ graph LR
```mermaid
stateDiagram-v2
[*] --> WAITING: 會話創建/更新
- WAITING --> FEEDBACK_PROCESSING: 用戶提交回饋
+ WAITING --> AUTO_SUBMIT_READY: 自動提交條件滿足
+ AUTO_SUBMIT_READY --> AUTO_SUBMIT_COUNTDOWN: 啟動倒數計時
+ AUTO_SUBMIT_COUNTDOWN --> FEEDBACK_PROCESSING: 自動提交執行
+ WAITING --> FEEDBACK_PROCESSING: 用戶手動提交回饋
FEEDBACK_PROCESSING --> FEEDBACK_SUBMITTED: 處理完成
FEEDBACK_SUBMITTED --> WAITING: 新會話更新
FEEDBACK_SUBMITTED --> [*]: 會話結束
+ AUTO_SUBMIT_COUNTDOWN --> WAITING: 用戶取消自動提交
WAITING --> ERROR: 連接錯誤
FEEDBACK_PROCESSING --> ERROR: 處理錯誤
+ AUTO_SUBMIT_COUNTDOWN --> ERROR: 自動提交錯誤
ERROR --> WAITING: 錯誤恢復
ERROR --> [*]: 致命錯誤
+
+ note right of AUTO_SUBMIT_READY
+ 檢查自動提交設定:
+ - 功能已啟用
+ - 已選擇提示詞
+ - 當前狀態為等待回饋
+ end note
+
+ note right of AUTO_SUBMIT_COUNTDOWN
+ 倒數計時狀態:
+ - 顯示剩餘時間
+ - 允許用戶取消
+ - 時間到自動提交
+ end note
```
## 🛡️ 錯誤處理和恢復
diff --git a/docs/architecture/system-overview.md b/docs/architecture/system-overview.md
index 44b5d5a..969626a 100644
--- a/docs/architecture/system-overview.md
+++ b/docs/architecture/system-overview.md
@@ -65,6 +65,9 @@ graph TB
HTML[HTML 模板
feedback.html/index.html]
JS[JavaScript 模組
app.js + 功能模組]
CSS[樣式系統
響應式設計]
+ PROMPT[提示詞管理
PromptManager + UI 組件]
+ SESSION_MGR[會話管理
SessionManager + 歷史追蹤]
+ AUTO_SUBMIT[自動提交
AutoSubmitManager + 倒數計時]
end
subgraph "工具層"
@@ -98,6 +101,14 @@ graph TB
WS -->|HTTP/WebSocket| BROWSER_UI
BROWSER_UI --> USER
+ %% 新功能模組連接
+ JS --> PROMPT
+ JS --> SESSION_MGR
+ JS --> AUTO_SUBMIT
+ PROMPT --> WS
+ SESSION_MGR --> WS
+ AUTO_SUBMIT --> WS
+
I18N --> ROUTES
DEBUG --> SERVER
UTILS --> MANAGER
@@ -154,6 +165,9 @@ graph TB
- 響應式 HTML/CSS 設計
- 實時 WebSocket 通信
- 豐富的用戶交互功能
+- **提示詞管理系統**:常用提示詞的 CRUD 操作和快速選擇
+- **會話管理功能**:會話歷史追蹤和統計分析
+- **自動提交機制**:倒數計時器和自動回饋提交
### 3. 單一活躍會話模式
```mermaid
@@ -281,6 +295,18 @@ auto-refresh-manager → app
- 設定管理 (settings-manager.js)
- UI 控制 (ui-manager.js)
- 自動刷新 (auto-refresh-manager.js)
+- **提示詞管理模組群組**:
+ - prompt-manager.js (核心管理器)
+ - prompt-modal.js (編輯彈窗)
+ - prompt-settings-ui.js (設定界面)
+ - prompt-input-buttons.js (快速選擇按鈕)
+- **會話管理模組群組**:
+ - session-manager.js (會話控制器)
+ - session-data-manager.js (數據管理器)
+ - session-utils.js (工具函數)
+- **自動提交功能**:
+ - 整合在 app.js 中的 AutoSubmitManager
+ - 與提示詞管理和設定管理的深度整合
## 📊 性能特性與優化
@@ -436,7 +462,8 @@ graph LR
---
-**版本**: 2.3.0
-**最後更新**: 2024年12月
+**版本**: 2.4.0
+**最後更新**: 2025年6月
**維護者**: Minidoracat
**架構類型**: Web-Only 四層架構
+**新功能**: 提示詞管理、自動提交、會話管理、語系切換優化