Merge pull request 'feat: 添加 PostgreSQL 服务并挂载数据库迁移脚本' #101

Merged
huanghaosheng merged 55 commits from develop into main 2026-06-14 19:25:37 +08:00
Showing only changes of commit 80c6b1b56e - Show all commits

View File

@@ -122,6 +122,16 @@ func serveWS(c *gin.Context, sessionMgr session.Manager, orch orchestrator.Orche
userID := claims.UserID userID := claims.UserID
username := claims.Username username := claims.Username
// --- conversation_id 处理upgrade 前校验归属) ---
conversationID := c.Query("conversation_id")
if conversationID != "" {
sess, err := sessionMgr.Get(c.Request.Context(), conversationID)
if err != nil || sess.UserID != userID {
c.JSON(http.StatusUnauthorized, gin.H{"error": "SESSION_NOT_FOUND"})
return
}
}
conn, err := upgrader.Upgrade(c.Writer, c.Request, nil) conn, err := upgrader.Upgrade(c.Writer, c.Request, nil)
if err != nil { if err != nil {
logger.Log.Errorw("websocket upgrade failed", "error", err) logger.Log.Errorw("websocket upgrade failed", "error", err)
@@ -129,11 +139,17 @@ func serveWS(c *gin.Context, sessionMgr session.Manager, orch orchestrator.Orche
} }
defer conn.Close() defer conn.Close()
// 创建会话 // 创建或复用会话
sessionID, err := sessionMgr.Create(context.Background(), userID, models.DefaultConfig()) var sessionID string
if err != nil { if conversationID != "" {
logger.Log.Errorw("create session failed", "error", err) sessionID = conversationID
return logger.Log.Infow("resuming conversation", "session", sessionID, "user_id", userID)
} else {
sessionID, err = sessionMgr.Create(context.Background(), userID, models.DefaultConfig())
if err != nil {
logger.Log.Errorw("create session failed", "error", err)
return
}
} }
client := &Client{ client := &Client{