From c7c2c83007621350fa015e4cf6187c6a64088d6d Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Fri, 28 Nov 2025 20:15:07 +0100 Subject: [PATCH] fix: add missing last_scan field in code quality dashboard empty state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: - GET /api/v1/admin/code-quality/stats returned 500 error - Pydantic validation error: "last_scan Field required" - When no scan data exists, service returned dict without last_scan field - DashboardStatsResponse model required last_scan field Solution: 1. Added last_scan: None to empty state return dictionary 2. Made last_scan field explicitly optional with default value (= None) 3. Ensures field is always present in response Changes: - app/services/code_quality_service.py: Added "last_scan": None - app/api/v1/admin/code_quality.py: Changed to last_scan: str | None = None This fixes the 500 error when accessing /admin/code-quality page with no architecture scan data in the database. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- app/api/v1/admin/code_quality.py | 2 +- app/services/code_quality_service.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/api/v1/admin/code_quality.py b/app/api/v1/admin/code_quality.py index bc82d4e8..96dcd049 100644 --- a/app/api/v1/admin/code_quality.py +++ b/app/api/v1/admin/code_quality.py @@ -122,7 +122,7 @@ class DashboardStatsResponse(BaseModel): by_rule: dict by_module: dict top_files: list - last_scan: str | None + last_scan: str | None = None # API Endpoints diff --git a/app/services/code_quality_service.py b/app/services/code_quality_service.py index 6ef18e44..a027eac9 100644 --- a/app/services/code_quality_service.py +++ b/app/services/code_quality_service.py @@ -371,6 +371,7 @@ class CodeQualityService: "by_rule": {}, "by_module": {}, "top_files": [], + "last_scan": None, } # Get violation counts by status