Autonomous Roadmap 2026-04-09 — Reihenfolge + Abhängigkeiten #59
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#59
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Stichtag 2026-04-09: 27 offene Issues, davon einige mit externen Blockern (Keycloak-Server, DIP-API-Key, HAR-Traces für HB/NI/HE, Eigensysteme für BY/SL). Die Roadmap ordnet die ohne externe Blocker ausführbaren Items in Phasen mit Abhängigkeiten. Jede Phase wird in einem oder mehreren Commits auf
mainausgerollt und live verifiziert.Skip-Liste (extern blockiert, kein Autonomie-Run möglich)
Phase A — Security-Restbestand aus #57 (klein, schnell, deploybar)
Drei Audit-Befunde, die in einem einzigen Commit zusammen patchbar sind:
print()→logging.getLogger(__name__)inanalyzer.pyundmain.py, LLM-Content nicht als Volltext loggen sondern nur Hash + Längeq-Parameter auf max. 200 Zeichen begrenzen,shlex.split()ValueErroralslogger.warningloggen statt verschluckensecrets:stattenvironment:(kein Code-Change, nur compose.yml)Phase B — Parteinamen-Mapper #55 (Foundation für #58)
app/parteien.pymitPARTEIEN-Tabelle (kanonisch + Aliase + bundesland_scope)normalize_partei(raw, *, bundesland=None)mit FW-Disambiguierung (BY/RP/BB/SL)display_name(canonical, *, long=False)für UI/PDFtests/test_parteien.pymit ≥ 25 Roundtrip-Asserts_normalize_fraktion()-Methoden inparlamente.pydurch zentralen Aufruf ersetzenembeddings.py:496-Hack entfernenwahlprogramme.find_relevant_quotes()Lookup übernormalize_partei()/api/search-landtag?q=test&bundesland=NRW)Phase C — Auswertungen #58 (hängt an Phase B)
app/wahlperioden.pyHelper mitwahlperiode_for(datum, bundesland) -> strapp/auswertungen.pymitaggregate_matrix(),aggregate_zeitreihe(),export_csv()/api/auswertungen/matrix,/api/auswertungen/zeitreihe,/api/auswertungen/export.csv/auswertungenmit Matrix-Tabelle + FilterPhase D — UI/UX-Items
Phase E — Adapter-Erweiterungen, die ohne externe Blocker laufen
Phase F — Erweiterte Tests aus dem Audit
tests/integration/test_main_security.pyfür Rate-Limit-Verifikation per TestClientpip-auditeinmalig laufen lassen, neue CVE-Befunde als Folge-IssuesReihenfolge & Begründung
Deploy-Strategie
Nach jedem Phasen-Abschluss
git push→ssh vserver 'cd /opt/gwoe-antragspruefer && git pull && docker compose up -d --build'→ Live-Smoke gegenhttps://gwoe.toppyr.de.Bei Regression: rollback via
git revertund neuer Build, nicht force-push.Roadmap-Stand 2026-04-09 (autonomer Run abgeschlossen)
Erledigt
9c70b46, deployed, Befunde live verifizierteb045d0, 4 Adapter-Methoden zentralisiert, FW-Familie disambiguiert, 52 neue Tests, deployed3631e54, 4 Endpoints + Frontend, 19 neue Tests, deployed; Issues #58 und #45 geschlossen26f13bd, deployed; Issue #16 geschlossen7cf0731, deployed. Click auf Matrix-Zelle öffnet Zeitreihen-ModalSubstituiert / blockiert
Phase E (geplant): SN Sachsen aktivieren— blockiert: Eigensystem mit ASP.NET-Webforms-Postbacks (siehebundeslaender.py:343-348), braucht HAR-Aufnahme. Issue #26/#38 bleibt offen.tests/integration/test_main_security.pyfür Rate-Limit-Verifikation per TestClient — geht erst, sobald slowapi lokal installiert ist (sonst kollidiert es mit der bestehenden Stub-Strategie der Unit-Tests)Statistik
app/parteien.py,app/auswertungen.py,app/wahlperioden.py,app/validators.py,app/templates/auswertungen.html,tests/test_*.pyVerbleibende offene Issues nach diesem Run
Autonomer Run vollständig abgeschlossen 🎯
Phasen-Status
9c70b46eb045d03631e5426f13bd7cf0731b76c08d+4bc583e+e72dd3e+060a33e+015b134+6ac3302Statistik
main, alle live deployedWas wurde substituiert / blockiert
Phase E geplant: SN Sachsen aktivieren— Eigensystem (ASP.NET-Webforms), braucht HAR-Aufnahme. #26/#38 bleibt offen.Phase F geplant: pip-audit— pip-audit ist nicht installiert in Container, separates ItemAudit-Restbefunde #57.5 (CSRF) und #57.8 (Secrets-Mount)— hängen an externen Voraussetzungen (Keycloak / Docker-Swarm)Verbleibende offene Issues
Dieses Roadmap-Issue kann jetzt geschlossen werden.