enrichment: capture failure cause + admin retry button
Each enrichment failure now records {"_error": "...", "_step": "..."} into
enrichment_json, mirrors the message into the errors log (visible in
/logs/protokoll), and the list shows the cause as a tooltip on the
"Fehler beim Abrufen der Infos" text. Admins also get a "erneut versuchen"
link per failed row that re-queues just that flat (POST /actions/enrich-flat).
The pipeline raises a typed EnrichmentError per step (fetch / llm / crash)
so future failure modes don't get swallowed as a silent "failed".
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
e0ac869425
commit
a8f698bf5e
3 changed files with 79 additions and 24 deletions
|
|
@ -142,7 +142,16 @@
|
|||
Infos werden abgerufen…
|
||||
· <span data-rel-utc="{{ f.discovered_at|iso_utc }}" title="{{ f.discovered_at|de_dt }}">…</span>
|
||||
{% elif f.enrichment_status == 'failed' %}
|
||||
Fehler beim Abrufen der Infos
|
||||
{% set err = (item.enrichment or {}).get('_error') or 'unbekannt' %}
|
||||
<span title="{{ err }}">Fehler beim Abrufen der Infos</span>
|
||||
{% if is_admin %}
|
||||
<form method="post" action="/actions/enrich-flat" class="inline"
|
||||
hx-post="/actions/enrich-flat" hx-target="#wohnungen-body" hx-swap="outerHTML">
|
||||
<input type="hidden" name="csrf" value="{{ csrf }}">
|
||||
<input type="hidden" name="flat_id" value="{{ f.id }}">
|
||||
<button type="submit" class="underline text-slate-600 hover:text-slate-900 ml-1">erneut versuchen</button>
|
||||
</form>
|
||||
{% endif %}
|
||||
· <span data-rel-utc="{{ f.discovered_at|iso_utc }}" title="{{ f.discovered_at|de_dt }}">…</span>
|
||||
{% else %}
|
||||
{% set e = item.enrichment or {} %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue