4 Commits

Author SHA256 Message Date
tlg
36eac66abc fix(projekt-matching): break infinite alert loop (issue 2)
Root cause chain (evidence: 25+ failed traces on nproj/3022414):
straight quote in page text ends the guided-decoding JSON string
early -> grammar deadlock -> whitespace loop until context/token
limit -> chat_json fails 3x (~35 min) -> IMAP conn idles out ->
move_to_trash raises -> mail never trashed -> reprocessed forever.

- ingest/mailer: MailBox.ensure_alive() reconnect before finalize;
  move_to_trash failure falls back to flag_checked, run continues
- stages: page_text() feeds only div.content minus skill-tag cloud
  to the LLM and maps quote chars to apostrophes (the actual
  degeneration trigger, live-verified: extract now OK in 21 s)
- llm: requirements maxItems 40; max_tokens 8192 caps degenerate
  runs at ~100 s instead of ~10 min

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 10:33:52 +02:00
tlg
9ca7767208 fix(projekt-matching): final-review fixes — safe redeploy, poison-mail hardening, plan deviations note
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 17:15:39 +02:00
tlg
d500b46abe fix(projekt-matching): normalize unknown statuses, alert failure cannot block trash
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 11:20:30 +02:00
tlg
a64b0398ae feat(projekt-matching): flow-1 ingest with lock, dedup, dispatch, alert aggregation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 11:14:59 +02:00