Document browser flow backend blockers
This commit is contained in:
52
HANDOFF.md
52
HANDOFF.md
@@ -85,6 +85,58 @@ Mit einem gültigen, bereits erzeugten Key im Browser testen:
|
|||||||
Antwortcodes gemeinsam auswerten. Klartext-Keys niemals in Chat oder Logs
|
Antwortcodes gemeinsam auswerten. Klartext-Keys niemals in Chat oder Logs
|
||||||
kopieren.
|
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
|
## Projekt: NSCT – Neutral Search Crawler Tool
|
||||||
|
|||||||
Reference in New Issue
Block a user