mirror of
https://github.com/Minidoracat/mcp-feedback-enhanced.git
synced 2025-07-27 10:42:25 +08:00
📝 更新架構文檔
This commit is contained in:
parent
7bdb1a0346
commit
e6bf5f74ec
@ -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 相關內容
|
||||
**新功能**: 提示詞管理、自動提交、會話管理、語系切換優化
|
||||
**文檔狀態**: ✅ 已完成全面更新,包含所有新功能的詳細說明
|
||||
|
@ -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
|
||||
**新功能**: 自動提交、提示詞管理、會話管理、語系切換優化
|
||||
|
@ -40,6 +40,8 @@ graph TB
|
||||
JS[static/js/<br/>JavaScript 模組<br/>ES6+ 架構]
|
||||
CSS[static/css/<br/>樣式系統<br/>響應式設計]
|
||||
LOCALES[locales/<br/>翻譯文件<br/>JSON 格式]
|
||||
PROMPT_MODULES[prompt/<br/>提示詞管理模組<br/>CRUD 操作]
|
||||
SESSION_MODULES[session/<br/>會話管理模組<br/>歷史追蹤]
|
||||
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<br/>核心管理器<br/>CRUD 操作]
|
||||
PMO[prompt-modal.js<br/>彈窗組件<br/>編輯界面]
|
||||
PSU[prompt-settings-ui.js<br/>設定頁面<br/>列表管理]
|
||||
PIB[prompt-input-buttons.js<br/>輸入按鈕<br/>快速選擇]
|
||||
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<br/>會話控制器<br/>狀態管理]
|
||||
SDM[session-data-manager.js<br/>數據管理器<br/>歷史記錄]
|
||||
SU[session-utils.js<br/>工具函數<br/>狀態判斷]
|
||||
end
|
||||
|
||||
SM -->|數據操作| SDM
|
||||
SM -->|工具函數| SU
|
||||
SDM -->|狀態回調| SM
|
||||
```
|
||||
|
||||
**核心功能**:
|
||||
- **SessionManager**: 當前會話的狀態管理和控制
|
||||
- **SessionDataManager**: 會話歷史記錄和統計數據管理
|
||||
- **SessionUtils**: 會話狀態判斷和工具函數
|
||||
|
||||
#### 自動提交功能整合
|
||||
|
||||
**整合架構**:
|
||||
```mermaid
|
||||
graph LR
|
||||
subgraph "自動提交功能"
|
||||
ASM[AutoSubmitManager<br/>倒數計時器<br/>狀態控制]
|
||||
PM[PromptManager<br/>提示詞選擇<br/>自動標記]
|
||||
SM[SettingsManager<br/>設定存儲<br/>配置管理]
|
||||
end
|
||||
|
||||
ASM -->|選擇提示詞| PM
|
||||
ASM -->|保存設定| SM
|
||||
PM -->|提供提示詞| ASM
|
||||
SM -->|載入設定| ASM
|
||||
```
|
||||
|
||||
### templates/ - HTML 模板系統
|
||||
|
||||
**模板結構**:
|
||||
|
@ -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<br/>會話更新]
|
||||
FR[feedback_received<br/>回饋確認]
|
||||
ST[status_update<br/>狀態更新]
|
||||
ASS[auto_submit_status<br/>自動提交狀態]
|
||||
SH[session_history<br/>會話歷史]
|
||||
end
|
||||
|
||||
subgraph "客戶端 → 服務器"
|
||||
SF[submit_feedback<br/>提交回饋]
|
||||
HB[heartbeat<br/>心跳檢測]
|
||||
LS[language_switch<br/>語言切換]
|
||||
PM[prompt_management<br/>提示詞管理]
|
||||
ASC[auto_submit_control<br/>自動提交控制]
|
||||
SM[session_management<br/>會話管理]
|
||||
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
|
||||
```
|
||||
|
||||
## 🛡️ 錯誤處理和恢復
|
||||
|
@ -65,6 +65,9 @@ graph TB
|
||||
HTML[HTML 模板<br/>feedback.html/index.html]
|
||||
JS[JavaScript 模組<br/>app.js + 功能模組]
|
||||
CSS[樣式系統<br/>響應式設計]
|
||||
PROMPT[提示詞管理<br/>PromptManager + UI 組件]
|
||||
SESSION_MGR[會話管理<br/>SessionManager + 歷史追蹤]
|
||||
AUTO_SUBMIT[自動提交<br/>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 四層架構
|
||||
**新功能**: 提示詞管理、自動提交、會話管理、語系切換優化
|
||||
|
Loading…
x
Reference in New Issue
Block a user