lazyflat/web
EiSiMo b5b4908ee7 feat(web): footer build SHA shows "(latest)" or "(N behind)"
Footer now compares the running SOURCE_COMMIT against origin/main via
Gitea's compare API and renders "build <sha> (latest)" when up to date
or "build <sha> (N behind)" otherwise — so it's obvious from any page
whether the deploy is current.

Per-SHA cache (60s TTL, 1.5s timeout) keeps the lookup off the hot path
in steady state. Network or parse errors return None and the parens
suffix is just hidden — the SHA itself always renders, so a flaky git
host can never break the layout.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 11:21:24 +02:00
..
routes fix(notifications): district filter silently dropped every match 2026-04-23 10:18:04 +02:00
static feat(notifications): new match format with Gmaps + lazyflat deep-link 2026-04-23 10:28:04 +02:00
templates feat(web): footer build SHA shows "(latest)" or "(N behind)" 2026-04-23 11:21:24 +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
berlin_districts.py feat(filter): Berlin-Bezirk filter in Einstellungen 2026-04-23 10:05:55 +02:00
common.py feat(web): footer build SHA shows "(latest)" or "(N behind)" 2026-04-23 11:21:24 +02:00
db.py feat(filter): Berlin-Bezirk filter in Einstellungen 2026-04-23 10:05:55 +02:00
Dockerfile fix(web): take git SHA from Coolify's runtime SOURCE_COMMIT 2026-04-23 11:04:24 +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 feat(filter): Berlin-Bezirk filter in Einstellungen 2026-04-23 10:05:55 +02:00
notifications.py feat(notifications): new match format with Gmaps + lazyflat deep-link 2026-04-23 10:28:04 +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 fix(web): read SOURCE_COMMIT directly, don't reference it in compose 2026-04-23 11:16:19 +02:00
version.py feat(web): footer build SHA shows "(latest)" or "(N behind)" 2026-04-23 11:21:24 +02:00