Document browser flow backend blockers

This commit is contained in:
faligam
2026-09-06 17:59:16 +02:00
parent 4f8cbe9040
commit 9f6029b60a

View File

@@ -85,6 +85,58 @@ Mit einem gültigen, bereits erzeugten Key im Browser testen:
Antwortcodes gemeinsam auswerten. Klartext-Keys niemals in Chat oder Logs
kopieren.
### Aktueller Blocker im Browser-Flow — 2026-09-06
Der Browser-Flow erreicht inzwischen die Detailseite und fragt Status,
Quellen, Claims, Evidenz und Bericht ab. Eine tatsächlich gestartete Recherche
liefert jedoch derzeit keine Ergebnisse. Dies ist ein Backend-Problem, nicht
mehr der Frontend-Proxy oder die API-Key-Loginstrecke.
Reproduzierbare Logbefunde aus `docker compose logs nsct-api`:
- `Planning failed: Error code: 401 - {'error': 'authentication required'}`
- `No search providers configured — search will return empty results`
- abgelehnte State-Transitions, etwa `fetching -> analyzing`,
`fetching -> synthesizing` und `fetching -> completed`.
Ursachen und nächste Reparaturen:
1. `src/nsct/providers/llm.py` ergänzt in `_create_client()` immer `/v1`.
`NSCT_LLM_BASE_URL` ist laut `.env.example` und Deployment-Dokumentation
bereits eine OpenAI-kompatible URL mit `/v1`. Den Basis-URL-Join
normalisieren, damit nie `/v1/v1` entsteht. Danach einen authentifizierten
Chat-Completions-Probe ausführen, ohne URL oder Key auszugeben.
2. `src/nsct/orchestration/orchestrator.py::_get_multi_search()` importiert
`nsct.providers.searxng.SearXNGProvider`, aber
`src/nsct/providers/searxng.py` existiert nicht. Der `ImportError` wird
still geschluckt; deshalb hat die Pipeline keinen Search-Provider. Entweder
den SearXNG-Provider implementieren oder den vorhandenen
`DuckDuckGoProvider` als Fallback registrieren. Compose setzt bereits
`NSCT_SEARXNG_BASE_URL=http://searxng:8080/`.
3. Das Orchestrator-/REST-Fehlerhandling muss bei nicht ausführbarer Pipeline
einen nachvollziehbaren `FAILED`-Status mitsamt Fehlergrund liefern, statt
mit leeren Fallbacks scheinbar abgeschlossene Schritte zu zeigen. Die
Transition-Matrix und die Fallback-Logik in `orchestrator.py` prüfen und
gezielt testen.
Frontend-Fixes des laufenden Browser-Tests (alle im Frontend-Repository
`/home/faligam/apps/NSCT-FrontEnd`, `main`, gepusht):
- `e5b37ae`: Error-Banner-Store repariert.
- `25530b3`: Research-Liste normalisiert `research_id`/`state` zu
`id`/`status`.
- `77b71c6`: Browser-Session wird nach Reload aus `localStorage` restauriert;
Statusvertrag normalisiert.
- `5022ef4` und `d5c270c`: SvelteKit-Detailroute `[id]` und
`$page.params.id` korrigiert.
- `6117c4f`: Löschaktion für immutable, abgeschlossene Researches ausgeblendet.
- `7acf1b9`: Detailansicht lädt die fünf Research-Unterressourcen.
Sicherheitsnotiz: Ein im Browser-Test verwendeter Frontend-API-Key wurde in
einem Chat-/Netzwerkdump offengelegt. Diesen Key lokal über
`nsct-api-key revoke <key_id>` widerrufen und einen neuen Key erzeugen. Den
Klartext nie in Handoff, Git oder Chat eintragen.
---
## Projekt: NSCT Neutral Search Crawler Tool