Commit Graph

28 Commits

Author SHA1 Message Date
Codex
ad2e0ede42 web: fix auth session races, ws token drift, and unread clear behavior
Some checks failed
CI / test (push) Failing after 2m20s
2026-03-09 02:17:14 +03:00
d7513d7caf web: add notification sound toggle and complete notifications module
Some checks failed
CI / test (push) Has been cancelled
2026-03-08 22:51:39 +03:00
418c9e6044 feat(notifications): honor chat mute in web realtime alerts
Some checks failed
CI / test (push) Failing after 1m30s
2026-03-08 20:37:54 +03:00
f369083b6a fix(realtime-ui): auto-expire stale typing/recording indicators
Some checks are pending
CI / test (push) Has started running
2026-03-08 20:00:59 +03:00
84ac0c0e60 fix(websocket): force logout on revoked session close codes
Some checks failed
CI / test (push) Has been cancelled
2026-03-08 19:57:11 +03:00
ac82e25d16 feat(realtime): add voice/video recording activity events
Some checks are pending
CI / test (push) Has started running
2026-03-08 19:53:48 +03:00
744ded914d realtime: emit and handle chat_deleted for full chat removals
All checks were successful
CI / test (push) Successful in 38s
2026-03-08 19:41:49 +03:00
8830192642 web(realtime): refresh chat info panel on chat updates
Some checks are pending
CI / test (push) Has started running
2026-03-08 18:56:54 +03:00
539ba70294 p1: prioritize mention browser notifications
All checks were successful
CI / test (push) Successful in 21s
2026-03-08 14:06:02 +03:00
9b3b404993 p0: harden realtime reconciliation and revoke-all token invalidation
All checks were successful
CI / test (push) Successful in 23s
2026-03-08 14:04:11 +03:00
13b5f5b855 feat(realtime): sync message edits and deletes instantly 2026-03-08 13:17:09 +03:00
dcc0f2abbc fix(web): reconcile unread mention counters in realtime
All checks were successful
CI / test (push) Successful in 20s
2026-03-08 12:46:52 +03:00
2af4588688 feat: improve voice recording UX and realtime state reconciliation
All checks were successful
CI / test (push) Successful in 20s
2026-03-08 12:44:15 +03:00
4fe89ce89a feat(web): service-worker notifications and composer/scroll UX fixes
Some checks failed
CI / test (push) Failing after 21s
- register notifications service worker and handle click-to-open chat/message

- route realtime notifications through service worker with fallback

- support ?chat=&message= deep-link navigation in chats page

- enforce 1s minimum voice message length

- lift scroll-to-bottom button to avoid overlap with composer action
2026-03-08 11:33:58 +03:00
03bf197949 fix(web): stabilize realtime chat list synchronization
Some checks failed
CI / test (push) Failing after 17s
- throttle chat list reload on realtime events

- refresh chat previews after incoming messages

- keep active chat messages in sync on chat_updated
2026-03-08 11:10:55 +03:00
0e44988634 fix(web): notification media preview and theme switching
Some checks failed
CI / test (push) Failing after 19s
- show media labels instead of raw URLs in browser notifications

- support notification icon preview for image messages

- implement effective light/dark/system theme application

- apply appearance prefs on app startup
2026-03-08 11:07:30 +03:00
99e7c70901 feat: realtime sync, settings UX and chat list improvements
Some checks failed
CI / test (push) Failing after 21s
- add chat_updated realtime event and dynamic chat subscriptions

- auto-join invite links in web app

- implement Telegram-like settings panel (general/notifications/privacy)

- add browser notification preferences and keyboard send mode

- improve chat list with last message preview/time and online badge

- rework chat members UI with context actions and role crowns
2026-03-08 10:59:44 +03:00
874f9da12c fix(realtime): resync active chat messages on websocket reconnect
- on ws reconnect, reload chats and active chat history
- reduce status/history drift after transient disconnects
2026-03-08 02:52:26 +03:00
a9e4222062 feat(realtime): add ping/pong heartbeat and watchdog reconnect
Some checks failed
CI / test (push) Failing after 20s
- support ping incoming event and pong outgoing response
- add web heartbeat interval to keep ws alive
- add stale-connection watchdog to force reconnect on missing pong
2026-03-08 02:13:34 +03:00
46dc601c84 feat(realtime): live online/offline events and unified search
Some checks failed
CI / test (push) Failing after 18s
- add websocket events user_online/user_offline
- broadcast presence changes on first connect and final disconnect only
- apply live presence updates in web chat store and realtime hook
- move public discover into unified left search (users + groups/channels)
- remove separate Discover Chats dialog/menu entry
2026-03-08 02:12:11 +03:00
e6a271f8be feat(chat): add presence metadata and improve web chat core
Some checks failed
CI / test (push) Failing after 22s
- add user last_seen_at with alembic migration and persist on realtime disconnect
- extend chat serialization with private online/last_seen, group members/online, channel subscribers
- add Redis batch presence lookup helper
- update web chat list/header to display status counters and last-seen labels
- improve delivery receipt handling using last_delivered/last_read boundaries
- include chat info panel and related API/type updates
2026-03-08 02:02:09 +03:00
51275692ac fix(web-core): stabilize unread sync and realtime dedup behavior
Some checks failed
CI / test (push) Failing after 22s
- make prependMessage return insertion status for dedup-safe unread increments

- increment unread only on newly inserted incoming messages

- trigger chat list refresh on websocket reconnect to resync unread counters
2026-03-08 01:53:16 +03:00
4ffbfc1e83 feat(web-core): implement unread counters and new-messages divider
Some checks failed
CI / test (push) Failing after 19s
backend:

- add unread_count to ChatRead serialization

- compute unread_count per chat using message_receipts and hidden messages

web:

- add unread badges in chat list

- track unread boundary per chat in store

- show 'New messages' divider in message list

- update realtime flow to increment/clear unread on incoming events
2026-03-08 01:43:27 +03:00
7f15edcb4e feat(core): clear saved chat and add message deletion scopes
Some checks failed
CI / test (push) Failing after 26s
backend:

- add message_hidden table for per-user message hiding

- support DELETE /messages/{id}?for_all=true|false

- implement delete-for-me vs delete-for-all logic by chat type/permissions

- add POST /chats/{chat_id}/clear and route saved chat deletion to clear

web:

- saved messages action changed from delete to clear

- message context menu now supports delete modal: for me / for everyone

- add local store helpers removeMessage/clearChatMessages

- include realtime stability improvements and app error boundary
2026-03-08 01:13:20 +03:00
16a584c6cb feat(web): add telegram-like message status indicators
All checks were successful
CI / test (push) Successful in 21s
- optimistic sending state with pending clock icon

- transition statuses sent -> delivered -> read via realtime events

- render checkmarks next to outgoing message timestamps
2026-03-08 00:01:22 +03:00
f6ad480973 feat: add message reliability foundation
All checks were successful
CI / test (push) Successful in 23s
- implement idempotent message creation via client_message_id

- add persistent delivered/read receipts

- expose /messages/status and wire websocket receipt events

- update web client to send client ids and auto-ack delivered/read
2026-03-07 23:57:35 +03:00
f95a0e9727 feat: improve chat realtime and media composer UX
All checks were successful
CI / test (push) Successful in 27s
- add media preview and upload confirmation for image/video

- add upload progress tracking for presigned uploads

- keep voice recording/upload flow with better UI states

- include related realtime/chat updates currently in working tree
2026-03-07 22:46:04 +03:00
2501466c7a Add web client and containerized deployment stack
All checks were successful
CI / test (push) Successful in 19s
Web client:

- Added React + TypeScript + Vite + Tailwind application in web/.

- Implemented auth, chat list, chat messages, typing indicators, file uploads, and voice recording/playback.

- Added typed API layer, Zustand stores, and realtime websocket hook integration.

Containerization:

- Added backend Dockerfile and project .dockerignore.

- Added web multi-stage Dockerfile with nginx static hosting and API/WS reverse proxy.

- Added full docker-compose stack with postgres, redis, minio, backend, worker, mailpit, and web.

- Added MinIO bucket bootstrap init job and updated README with Docker quick-start.
2026-03-07 21:55:50 +03:00