siftlode/backend/app
npeter83 8392037e5f feat(messages): auto-open/flash dock on incoming + persist dock across reload
The live-message push now carries both parties, so an incoming message opens
that conversation's dock window if it's closed, or flashes it once if it's
already open (expanded or minimised, without disturbing the minimised state) —
only for messages from someone else, never your own echo.

Dock state (open windows + minimised state) is persisted per user, so a reload
restores exactly what was open, minimised, or closed.
2026-06-25 22:46:54 +02:00
..
routes feat(messages): auto-open/flash dock on incoming + persist dock across reload 2026-06-25 22:46:54 +02:00
static chore: rebrand Subfeed -> Siftlode 2026-06-14 04:40:22 +02:00
sync chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
youtube chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
__init__.py feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
auth.py chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
config.py chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
db.py feat: M1 foundation — compose stack, FastAPI, Google OAuth, encrypted tokens 2026-06-11 01:01:37 +02:00
email.py chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
main.py feat(messages): end-to-end encrypted real-time direct messaging backend 2026-06-25 22:05:35 +02:00
models.py feat(messages): end-to-end encrypted real-time direct messaging backend 2026-06-25 22:05:35 +02:00
notifications.py feat(notifications): durable per-user inbox (P1) + maintenance schema 2026-06-18 03:20:17 +02:00
progress.py feat(scheduler): admin run-now/run-all triggers + live progress + completion notices 2026-06-18 04:01:10 +02:00
quota.py feat(config): move operational params to DB (quota/backfill/shorts/batch) 2026-06-19 13:07:45 +02:00
ratelimit.py feat(demo): demo-account schema + reusable rate limiter 2026-06-16 09:17:14 +02:00
realtime.py feat(messages): end-to-end encrypted real-time direct messaging backend 2026-06-25 22:05:35 +02:00
scheduler.py chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
security.py feat(auth): email+password registration with two-gate activation (5a backend) 2026-06-19 14:03:11 +02:00
state.py chore: rename remaining subfeed references to siftlode 2026-06-21 06:53:12 +02:00
sysconfig.py feat(auth): manage Google OAuth credentials from the database (epic 6b) 2026-06-20 20:04:23 +02:00