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
f40a5bb0f8
fix(projekt-matching): store outgoing mail copies in Sent via IMAP append
2026-07-14 09:38:12 +02:00
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
9b51272413
test(projekt-matching): gate 1 e2e passed (consider path via e-mail)
2026-07-09 16:24:34 +02:00
a36ea14b84
fix(projekt-matching): nice-heading exception in extract prompt; lock enable_thinking in tests
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 16:09:58 +02:00
53b5de28bc
test(projekt-matching): e2e helper scripts; component gates verified
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 15:49:08 +02:00
20796b3a68
fix(projekt-matching): retry chat_json on empty/unparseable vLLM completion
2026-07-09 15:33:11 +02:00
cf088f0bd3
fix(projekt-matching): add Date and Message-ID headers to outgoing mail
2026-07-09 15:06:55 +02:00
79966e6e54
feat(projekt-matching): systemd timer, webhook trigger, inbox baseline script
2026-07-09 14:28:48 +02:00
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
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
2f321aecc6
fix(projekt-matching): verify teamsIds/account equality in read-back; always post trace
2026-07-09 11:12:06 +02:00
2032305d90
feat(projekt-matching): flow-2 stages with gate, CRM verify, notification, langfuse trace
2026-07-09 11:06:11 +02:00
11b5675eab
feat(projekt-matching): Cfg dataclass, IMAP mailbox with keyword/trash handling, SMTP send
2026-07-09 11:02:05 +02:00
9cbdd2e28c
fix(projekt-matching): use response_format json_schema (vLLM 0.22 ignores guided_json)
2026-07-09 10:55:23 +02:00
a7f94914d0
feat(projekt-matching): vLLM guided-json client with extraction and matching prompts
2026-07-09 10:44:59 +02:00
501f30edab
feat(projekt-matching): EspoCRM client with dedup helpers and retries
2026-07-09 10:17:39 +02:00
6c4cd1a4c3
feat(projekt-matching): mail parsing, project splitting, canonical URLs
2026-07-09 10:11:25 +02:00
3bbf6631fd
feat(projekt-matching): deterministic misc rules, match calc, description markdown
2026-07-09 10:07:47 +02:00
963fe45a25
feat(projekt-matching): scaffold package, venv, pytest smoke
2026-07-09 10:02:38 +02:00