diff --git a/internal/api/middleware.go b/internal/api/middleware.go index 30d6401..07f7345 100644 --- a/internal/api/middleware.go +++ b/internal/api/middleware.go @@ -72,3 +72,10 @@ func (r *statusRecorder) WriteHeader(code int) { r.status = code r.ResponseWriter.WriteHeader(code) } + +// Flush delegates to the underlying ResponseWriter if it supports http.Flusher (needed for SSE). +func (r *statusRecorder) Flush() { + if f, ok := r.ResponseWriter.(http.Flusher); ok { + f.Flush() + } +} diff --git a/internal/api/projects.go b/internal/api/projects.go index 029f19d..8aa73de 100644 --- a/internal/api/projects.go +++ b/internal/api/projects.go @@ -27,6 +27,9 @@ func (s *Server) listProjects(w http.ResponseWriter, r *http.Request) { respondError(w, http.StatusInternalServerError, "failed to list projects: "+err.Error()) return } + if projects == nil { + projects = []store.Project{} + } respondJSON(w, http.StatusOK, projects) }