package server // chat_recategorize_api.go — 管理端点 POST /api/v1/chat/recategorize (Spec §3.4 A4) import ( "encoding/json" "net/http" ) type recategorizeReq struct { SessionID string `json:"session_id"` } func (s *Server) handleChatRecategorize(w http.ResponseWriter, r *http.Request) { if s.svc == nil || s.svc.ContextManager() == nil { http.Error(w, "context manager unavailable", http.StatusServiceUnavailable) return } var req recategorizeReq if r.Body != nil { _ = json.NewDecoder(r.Body).Decode(&req) } res, err := s.svc.ContextManager().RecategorizeMessages(r.Context(), req.SessionID) if err != nil { writeJSONResponse(w, http.StatusInternalServerError, map[string]any{ "success": false, "error": err.Error(), }) return } writeJSONResponse(w, http.StatusOK, map[string]any{ "success": true, "total_processed": res.TotalProcessed, "total_updated": res.TotalUpdated, }) }