lazyflat/web
EiSiMo abd614604f feat(apply): treat "Inserat offline" as its own outcome
Offline listings are a different class of result from real failures:
they mean "this ad is gone", not "the apply pipeline is broken".

- DB migration 0010 adds flats.offline_at; recent_flats() filters those
  out globally so they drop off every user's Wohnungen list
- _is_offline_result() matches the four known offline/deactivated
  phrases (DE + EN translations)
- On an offline result: mark the flat, reset the failure counter
  instead of incrementing, and skip the apply_fail notification
- Bewerbungen history renders a yellow "offline" chip in place of the
  red "fehlgeschlagen" one

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 09:56:04 +02:00
..
routes feat(notifications): add Telegram test button 2026-04-23 09:35:02 +02:00
static refactor: rename wohnungsdidi → lazyflat 2026-04-23 09:26:12 +02:00
templates feat(apply): treat "Inserat offline" as its own outcome 2026-04-23 09:56:04 +02:00
app.py refactor: rename wohnungsdidi → lazyflat 2026-04-23 09:26:12 +02:00
apply_client.py perf + simpler: composite index, range-filtered protokoll, simpler profile 2026-04-21 19:16:45 +02:00
auth.py multi-user: users, per-user profiles/filters/notifications, tab UI, apply forensics 2026-04-21 10:52:41 +02:00
common.py feat(apply): treat "Inserat offline" as its own outcome 2026-04-23 09:56:04 +02:00
db.py feat(apply): treat "Inserat offline" as its own outcome 2026-04-23 09:56:04 +02:00
Dockerfile lazyflat: combined alert + apply behind authenticated web UI 2026-04-21 09:51:35 +02:00
enrichment.py refactor: rename wohnungsdidi → lazyflat 2026-04-23 09:26:12 +02:00
llm.py secrets tab, drop commute filter, favicon, robust error reports 2026-04-21 17:56:57 +02:00
matching.py chore: sweep dead code across all three services 2026-04-21 19:06:05 +02:00
notifications.py feat(notifications): add Telegram test button 2026-04-23 09:35:02 +02:00
requirements.txt enrichment: drop LLM for structured info, dedup images by sha + phash 2026-04-21 15:29:55 +02:00
retention.py multi-user: users, per-user profiles/filters/notifications, tab UI, apply forensics 2026-04-21 10:52:41 +02:00
settings.py refactor: rename wohnungsdidi → lazyflat 2026-04-23 09:26:12 +02:00