siftlode/backend/app
npeter83 68dad91e8a feat: M3 — automatic channel tagging (language + topic system tags)
- Tag and ChannelTag models + migration 0003 (partial unique indexes split
  system vs per-user tag names)
- Offline language detection (py3langid) constrained to a curated language set,
  with the channel's declared default language as a strong prior
- Topic tags mapped from YouTube topicDetails + dominant video category; the
  generic "Lifestyle" catch-all is intentionally dropped
- System (auto) tags are regenerated idempotently and never touch user tags;
  orphaned system tags are cleaned up
- GET /api/tags and admin POST /api/tags/recompute; scheduled autotag job
2026-06-11 01:57:19 +02:00
..
routes feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
static fix: default app UI language to English (login page) 2026-06-11 01:03:36 +02:00
sync feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
youtube feat: M2 (part 2) — RSS poller, backfill, enrichment, scheduler 2026-06-11 01:36:41 +02:00
__init__.py feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
auth.py fix: request offline access on OAuth login so Google returns a refresh token 2026-06-11 01:14:06 +02:00
config.py feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
db.py feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
main.py feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
models.py feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
quota.py feat: M2 (part 1) — subscription import, YouTube client, quota guard 2026-06-11 01:22:07 +02:00
scheduler.py feat: M3 — automatic channel tagging (language + topic system tags) 2026-06-11 01:57:19 +02:00
security.py feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00