Worktree-Verlust-Audit: alle Geister-Endpoints gefunden + Regressions-Test

Systematischer Abgleich aller 528 Frontend-API-Aufrufe gegen 576 Backend-
Routen (methodengenau, Wildcard-Matching für Parameter):

Echte Opfer (zusätzlich zu partner/* und breeder/my-editor):
- worlds.js Nearby-Alerts riefen /poison/nearby + /lost/nearby auf — beide
  existierten NIE; doppeltes catch verschluckte die 404s → die Welten zeigten
  seit jeher keine Giftköder-/Vermisst-Warnungen. Fix: bestehende Listen-
  Endpoints mit Geo-Filter nutzen (/poison?radius=Meter, /lost?radius_km).
- API.weather.alerts → /weather/alerts existierte nie, hatte aber auch keinen
  Aufrufer — toter Wrapper entfernt.

False Positives geprüft: invoices (Router bringt eigenen Prefix mit, alle 9
Routen ok), Seiten↔Dateien↔window.Page_*↔index.html-Sections alle konsistent.

Neu: tests/test_api_surface.py — statischer API-Oberflächen-Abgleich als
Dauertest; Geister-Aufrufe sind ab jetzt Build-Fehler. Suite: 59 passed.
This commit is contained in:
rene 2026-06-07 20:22:20 +02:00
parent 487dacc7c7
commit 8c76263ea0
8 changed files with 136 additions and 19 deletions

View file

@ -86,14 +86,14 @@
<title>Ban Yaro</title>
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
<script src="/js/boot-early.js?v=1267"></script>
<script src="/js/boot-early.js?v=1268"></script>
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
<link rel="stylesheet" href="/css/design-system.css?v=1267">
<link rel="stylesheet" href="/css/layout.css?v=1267">
<link rel="stylesheet" href="/css/components.css?v=1267">
<link rel="stylesheet" href="/css/utilities.css?v=1267">
<link rel="stylesheet" href="/css/lists.css?v=1267">
<link rel="stylesheet" href="/css/design-system.css?v=1268">
<link rel="stylesheet" href="/css/layout.css?v=1268">
<link rel="stylesheet" href="/css/components.css?v=1268">
<link rel="stylesheet" href="/css/utilities.css?v=1268">
<link rel="stylesheet" href="/css/lists.css?v=1268">
</head>
<body>
@ -620,11 +620,11 @@
<div id="modal-container"></div>
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
<script src="/js/api.js?v=1267"></script>
<script src="/js/ui.js?v=1267"></script>
<script src="/js/app.js?v=1267"></script>
<script src="/js/worlds.js?v=1267"></script>
<script src="/js/offline-indicator.js?v=1267"></script>
<script src="/js/api.js?v=1268"></script>
<script src="/js/ui.js?v=1268"></script>
<script src="/js/app.js?v=1268"></script>
<script src="/js/worlds.js?v=1268"></script>
<script src="/js/offline-indicator.js?v=1268"></script>
<!-- Feature-Seiten werden lazy geladen -->
@ -634,7 +634,7 @@
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
<script src="/js/boot.js?v=1267"></script>
<script src="/js/boot.js?v=1268"></script>
</body>