- Add ActionBar component with expandable toolbar for mobile - Add @mention functionality with autocomplete dropdown - Add browser notification system (push, sound, vibration) - Add NotificationSettings modal for user preferences - Add mention badges on room list cards - Add ReportPreview with Markdown rendering and copy/download - Add message copy functionality with hover actions - Add backend mentions field to messages with Alembic migration - Add lots field to rooms, remove templates - Optimize WebSocket database session handling - Various UX polish (animations, accessibility) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
38 lines
1.4 KiB
Markdown
38 lines
1.4 KiB
Markdown
# Proposal: Fix Chat UX Issues
|
||
|
||
## Status: DRAFT
|
||
|
||
## Why
|
||
|
||
使用者回報三個影響使用體驗的問題:
|
||
|
||
1. **聊天室無法辨識發文者**:訊息只顯示 email (sender_id),無法快速識別是誰發的,不像 LINE 等通訊軟體會顯示使用者名稱。
|
||
|
||
2. **時間顯示錯誤**:系統使用 UTC 時間,但使用者期望看到 GMT+8 (台灣時間)。目前前端依賴瀏覽器 locale,可能導致不同使用者看到不同時區的時間。
|
||
|
||
3. **AI 報告生成卡住**:點擊生成報告後一直停在「準備中」狀態,沒有進一步的回應或錯誤訊息。
|
||
|
||
## What Changes
|
||
|
||
### 1. 發文者顯示名稱
|
||
- 後端 API 在回傳訊息時加入 `sender_display_name` 欄位
|
||
- 從 `tr_users` 表格 JOIN 取得 display_name
|
||
- 前端顯示 display_name 而非 sender_id
|
||
|
||
### 2. 統一時區為 GMT+8
|
||
- 前端建立時間格式化工具函數,統一轉換為 GMT+8
|
||
- 所有時間顯示使用該工具函數
|
||
- 後端維持 UTC 儲存(國際標準做法)
|
||
|
||
### 3. AI 報告生成問題修復
|
||
- 新增 DIFY API 連線測試端點
|
||
- 啟動時檢查 DIFY_API_KEY 是否設定
|
||
- 改善錯誤訊息顯示
|
||
- 前端新增輪詢機制確保狀態更新
|
||
|
||
## Impact
|
||
|
||
- **低風險**:不影響現有資料結構,僅新增欄位和修改顯示邏輯
|
||
- **向後相容**:sender_display_name 為選填欄位,舊訊息會 fallback 顯示 sender_id
|
||
- **效能影響極小**:只增加一個 LEFT JOIN 查詢
|