fix(api): F821-Regression (Extract-Service-Halb-Refactor) — 7 Route-Dateien #44

Merged
Benjamin_Boenisch merged 2 commits from fix/api-f821-extract-service-regression into main 2026-06-30 09:06:09 +00:00
Owner

Was & Warum

Behebt eine echte, ~3 Monate alte Laufzeit-Regression in backend-compliance/compliance/api/*.py: Der Extract-Service-Refactor (a638d0e5 ff., „Step 4 — file N of 18", Sharang, 2026-04) stellte Funktions-Signaturen auf service: …Service = Depends(...) um, ließ aber Bodies + Imports auf dem alten Stand → 72 F821 undefined-name über 7 Route-Dateien → NameError beim Aufruf (~26 Endpoints). Unentdeckt, weil CI-Lint nicht gegated + die Pfade teils ungetestet sind.

Änderung (7 Dateien, restaurativ)

  • evidence_routes.py (43): gelöschte stdlib-Imports restauriert · db-Param zurück · translate_domain_errors + _update_risks_impl (=evidence_service._update_risks) importiert · unerreichbaren toten Block (alte get_ci_evidence_status-Impl nach dem return) entfernt · dsms_cid=None no-op (DSMS-Commit-Copy-Paste).
  • routes.py (11): db-Param in get/update/review_control · EvidenceDB-Import.
  • dsfa_routes.py (8): db-Param in create_dsfa · HTTPException/text-Import.
  • dashboard_routes.py (5): timezone-Import.
  • canonical_control_routes.py (2): logger-Definition.
  • ai_routes.py (2): timezone in lokalen datetime-Imports.
  • vvt_routes.py (1): HTTPException-Import.

Verifikation

  • ruff F821 über das gesamte compliance/api/: 0 (vorher 72).
  • Alle 7 Dateien py_compile ✓.
  • 294 Tests grün auf den betroffenen Modulen (test_evidence_routes 35, control/dsfa/dashboard/canonical/vvt/ai). Die 2 test_create_invalid_status/risk_level-Failures in dsfa sind vorbestehend (400-vs-422-Validierungsreihenfolge, fail auch auf origin/main, unabhängig von diesem Fix).

Scope

Reiner F821/Broken-Endpoints-Fix. Die vorbestehenden F401/F811-Lint-Reste sind nicht Teil dieses PR (separater Hygiene-Sweep).

🤖 Generated with Claude Code

## Was & Warum Behebt eine **echte, ~3 Monate alte Laufzeit-Regression** in `backend-compliance/compliance/api/*.py`: Der Extract-Service-Refactor (`a638d0e5` ff., „Step 4 — file N of 18", Sharang, 2026-04) stellte Funktions-**Signaturen** auf `service: …Service = Depends(...)` um, ließ aber **Bodies + Imports** auf dem alten Stand → **72 `F821` undefined-name** über 7 Route-Dateien → **NameError beim Aufruf** (~26 Endpoints). Unentdeckt, weil CI-Lint nicht gegated + die Pfade teils ungetestet sind. ## Änderung (7 Dateien, restaurativ) - **evidence_routes.py** (43): gelöschte stdlib-Imports restauriert · `db`-Param zurück · `translate_domain_errors` + `_update_risks_impl` (=`evidence_service._update_risks`) importiert · **unerreichbaren toten Block** (alte `get_ci_evidence_status`-Impl nach dem `return`) entfernt · `dsms_cid=None` no-op (DSMS-Commit-Copy-Paste). - **routes.py** (11): `db`-Param in get/update/review_control · `EvidenceDB`-Import. - **dsfa_routes.py** (8): `db`-Param in create_dsfa · `HTTPException`/`text`-Import. - **dashboard_routes.py** (5): `timezone`-Import. - **canonical_control_routes.py** (2): `logger`-Definition. - **ai_routes.py** (2): `timezone` in lokalen datetime-Imports. - **vvt_routes.py** (1): `HTTPException`-Import. ## Verifikation - `ruff F821` über das gesamte `compliance/api/`: **0** (vorher 72). - Alle 7 Dateien `py_compile` ✓. - **294 Tests grün** auf den betroffenen Modulen (`test_evidence_routes` 35, control/dsfa/dashboard/canonical/vvt/ai). Die 2 `test_create_invalid_status/risk_level`-Failures in dsfa sind **vorbestehend** (400-vs-422-Validierungsreihenfolge, fail auch auf origin/main, unabhängig von diesem Fix). ## Scope Reiner F821/Broken-Endpoints-Fix. Die vorbestehenden F401/F811-Lint-Reste sind **nicht** Teil dieses PR (separater Hygiene-Sweep). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Benjamin_Boenisch added 2 commits 2026-06-30 08:53:47 +00:00
a638d0e5 ("extract EvidenceService") stellte Signaturen auf service=Depends um,
ließ aber Bodies + Imports auf dem alten Stand → 43 F821 (NameError zur Laufzeit).

- gelöschte stdlib-Imports restauriert (os/json/hashlib/uuid/datetime/timedelta)
- db: Session = Depends(get_db) an den betroffenen Endpoints restauriert
- translate_domain_errors + _update_risks_impl (=evidence_service._update_risks) importiert
- unerreichbaren toten Block (alte get_ci_evidence_status-Impl nach dem return) entfernt
- dsms_cid=None no-op in create/review/reject (DSMS-Commit-Copy-Paste)

Verifiziert: ruff F821 0, py_compile, test_evidence_routes.py 35 passed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fix(api): F821-Regression in 6 weiteren Route-Dateien beheben
CI / detect-changes (pull_request) Successful in 5s
CI / branch-name (pull_request) Successful in 1s
CI / guardrail-integrity (pull_request) Successful in 5s
CI / secret-scan (pull_request) Successful in 8s
CI / dep-audit (pull_request) Failing after 57s
CI / sbom-scan (pull_request) Failing after 56s
CI / build-sha-integrity (pull_request) Successful in 6s
CI / validate-canonical-controls (pull_request) Successful in 5s
CI / loc-budget (pull_request) Successful in 22s
CI / go-lint (pull_request) Successful in 46s
CI / python-lint (pull_request) Failing after 17s
CI / nodejs-lint (pull_request) Failing after 1m8s
CI / nodejs-build (pull_request) Successful in 3m1s
CI / test-go (pull_request) Successful in 1m2s
CI / iace-gt-coverage (pull_request) Successful in 18s
CI / test-python-backend (pull_request) Successful in 25s
CI / test-python-document-crawler (pull_request) Successful in 14s
CI / test-python-dsms-gateway (pull_request) Successful in 10s
3389fa3e7a
Gleiche Wurzel wie evidence_routes (Extract-Service-Refactor a638d0e5 ff.):
Signaturen/Imports halb umgestellt → undefined names → NameError beim Aufruf.

- routes.py: db-Param in get_control/update_control/review_control + EvidenceDB-Import
- dsfa_routes.py: db-Param in create_dsfa + HTTPException/text-Import
- dashboard_routes.py: timezone-Import
- canonical_control_routes.py: logger-Definition
- ai_routes.py: timezone in den lokalen datetime-Imports
- vvt_routes.py: HTTPException-Import

Verifiziert: ruff F821 0 über das gesamte compliance/api/, alle 6 py_compile,
294 Tests grün auf den betroffenen Modulen (die 2 dsfa-invalid-status/risk-Failures
sind vorbestehend = 400-vs-422, unabhängig von diesem Fix).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Benjamin_Boenisch merged commit 8ed99c255d into main 2026-06-30 09:06:09 +00:00
Sign in to join this conversation.