按 docs/reviews/2026-04-23-phase2e-2-code-review.md 清单落地 P1 批次: - P1-1 主持人转让原子性:MeetingParticipantDAO.TransferHost 内部事务 合并 meeting_rooms.host_id 更新,service/lifecycle 移除冗余 UpdateHost - P1-2 ListChatMessages / ListMyMeetings 回归 DAO:新增 MeetingChatDAO.ListByRoomBefore 反向游标,service 移除 s.db 直查 - P1-3 ListMyMeetings N+1 放大优化:新增 MeetingParticipantDAO.ListJoinedRoomsByUser JOIN + DISTINCT 单次 SQL - P1-4 EndRoom 行锁 + 事务:s.db.Transaction 包裹 SELECT FOR UPDATE → 快照 → MarkEnded → LeaveAllActive;DAO 补 WithTx(*gorm.DB) 和 GetByIDForUpdate - P1-5 后台 goroutine trace_id 保留:新增 logs.DetachContext(ctx); 替换 meeting_service / meeting_signal_service 共 10 处 context.Background(); meeting_ws_handler 每条 WS 消息分配独立 trace_id - P1-6 _broadcastSelfState 重试:最多 2 次指数退避(700ms→2100ms), 检测 localAudioEnabled/localVideoEnabled 已被后续动作覆盖时放弃旧 patch - P1-7 HandleHostGraceExpired / HandleEmptyRoomExpired 处理锁: 独立 host_grace_handling:<code> / empty_ttl_handling:<code> SETNX + 60s TTL, 消除 Redis 自然过期 + 本地 timer 到点 + DEL 返回 0 的盲区 - P1-8 pushExistingRoomState 同步化:OnRoomJoin 返回前完成补推, 消除与 REST member.joined 并行造成的前端状态闪烁 并附带修复 .gitignore 中 logs/ 规则误伤 pkg/logs/ 代码目录的历史遗留问题, 将 logger.go / trace.go 正式纳入版本控制。 验证:backend go build + go vet 通过;frontend npm run build:h5 通过。 Made-with: Cursor
68 lines
874 B
Plaintext
68 lines
874 B
Plaintext
# ============================================================
|
|
# EchoChat 项目全局 .gitignore
|
|
# ============================================================
|
|
|
|
# --- OS ---
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# --- IDE ---
|
|
.idea/
|
|
.vscode/
|
|
.cursor/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# --- Local runtime ---
|
|
.run/
|
|
|
|
# --- Go ---
|
|
backend/go-service/tmp/
|
|
*.exe
|
|
*.exe~
|
|
*.dll
|
|
*.so
|
|
*.dylib
|
|
*.test
|
|
*.out
|
|
*.prof
|
|
|
|
# --- Node.js ---
|
|
node_modules/
|
|
dist/
|
|
.nuxt/
|
|
.output/
|
|
.vite/
|
|
|
|
# --- 环境配置 ---
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
*.local
|
|
|
|
# --- 日志 ---
|
|
logs/
|
|
!backend/go-service/pkg/logs/
|
|
*.log
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
|
|
# --- Docker 数据卷(本地持久化目录) ---
|
|
deploy/data/
|
|
|
|
# --- 编译产物 ---
|
|
build/
|
|
*.tmp
|
|
|
|
# --- 测试覆盖率 ---
|
|
coverage/
|
|
*.coverprofile
|
|
|
|
# --- Playwright 截图与 MCP 快照 ---
|
|
*.png
|
|
!design-system/**/*.png
|
|
.playwright-mcp/
|
|
!.playwright-mcp/.gitkeep
|