Commit Graph
148 Commits
Author SHA1 Message Date
benya 18596e6dab fix(web): enforce channel read-only and admin delete rules 2026-03-08 13:18:52 +03:00
benya 13b5f5b855 feat(realtime): sync message edits and deletes instantly 2026-03-08 13:17:09 +03:00
benya eda84d4d82 feat(web): redesign full-screen media viewer UX
CI / test (push) Successful in 27s
2026-03-08 13:14:18 +03:00
benya 10d4e0386a fix(web): refresh attachments when message list updates
CI / test (push) Successful in 20s
2026-03-08 13:11:11 +03:00
benya 072677b9ad feat(web): improve album layout and captions for multi-attachments
CI / test (push) Successful in 31s
2026-03-08 13:07:53 +03:00
benya d2dd9aa01b feat(chat): add in-message attachments gallery and multi-file send
CI / test (push) Successful in 19s
2026-03-08 13:06:00 +03:00
benya 65d8a9379b feat(web): implement robust inline message formatting parser
CI / test (push) Successful in 25s
2026-03-08 13:00:11 +03:00
benya 58208787e7 feat(web): refresh audio card UI and enforce outside-click menu close
CI / test (push) Successful in 24s
2026-03-08 12:55:55 +03:00
benya 82322c4d42 fix(realtime,ui): sync message deletes and channel delete/leave behavior
CI / test (push) Successful in 23s
2026-03-08 12:52:31 +03:00
benya 613edbecfe fix(web): keep delivery status monotonic after reconnect
CI / test (push) Successful in 20s
2026-03-08 12:48:41 +03:00
benya dcc0f2abbc fix(web): reconcile unread mention counters in realtime
CI / test (push) Successful in 20s
2026-03-08 12:46:52 +03:00
benya 2af4588688 feat: improve voice recording UX and realtime state reconciliation
CI / test (push) Successful in 20s
2026-03-08 12:44:15 +03:00
benya d7160af908 ui: move audio volume control to top player bar
CI / test (push) Successful in 29s
2026-03-08 12:42:07 +03:00
benya 30169a3a27 feat: add waveform voice messages end-to-end
CI / test (push) Successful in 23s
2026-03-08 12:40:49 +03:00
benya 3b82b5e558 fix: restore light theme text and menu icon contrast
CI / test (push) Successful in 24s
2026-03-08 12:30:04 +03:00
benya 8689283e99 fix: persist message delivery status across server restarts
CI / test (push) Successful in 21s
2026-03-08 12:27:54 +03:00
benya 831047447b fix: improve light theme contrast and remove dark artifacts
CI / test (push) Successful in 25s
2026-03-08 12:25:49 +03:00
benya 0594b890c3 feat: mentions badge in chat list and muted-mention delivery
CI / test (push) Successful in 21s
2026-03-08 12:23:39 +03:00
benya fc7a9cc3a6 test+web: fix test suite and remove redundant privacy checkbox
CI / test (push) Successful in 25s
2026-03-08 12:16:21 +03:00
benya 79baadb522 feat(auth,privacy,web): step-by-step login, privacy settings persistence, TOTP QR, and API docs
CI / test (push) Failing after 22s
2026-03-08 12:09:53 +03:00
benya 1546ae7381 web: move contacts to dedicated burger-menu screen
CI / test (push) Failing after 24s
2026-03-08 11:57:01 +03:00
benya f6fecf57c7 fix(web): move Contacts access to burger menu only
CI / test (push) Failing after 25s
- remove Contacts from top chat tabs

- keep contacts screen reachable via burger menu
2026-03-08 11:52:11 +03:00
benya cbd1b008bb feat(contacts): switch contacts UX to email-first flow
CI / test (push) Failing after 18s
- expose email in user search/contact responses

- add add-contact-by-email API endpoint

- show email in contacts/search and add contact form by email in Contacts tab
2026-03-08 11:51:02 +03:00
benya 897defc39d fix(audio,sessions): unify audio playback state and improve session discovery
CI / test (push) Failing after 18s
- move voice/audio players to single global audio engine with shared volume

- stop/reset previous track when switching to another media

- keep playback alive across chat switches via global audio element

- list refresh sessions by redis scan fallback when user session set is missing
2026-03-08 11:48:13 +03:00
benya 27d3340a37 feat(auth): add TOTP 2FA setup and login verification
CI / test (push) Failing after 21s
- add user twofa fields and migration

- add 2FA setup/enable/disable endpoints

- enforce OTP on login when 2FA enabled

- add web login OTP field and settings UI
2026-03-08 11:43:51 +03:00
benya e685a38be6 feat(auth): add active sessions management
CI / test (push) Failing after 33s
- store refresh session metadata in redis (ip/user-agent/created_at)

- add auth APIs: list sessions, revoke one, revoke all

- add web privacy UI for active sessions
2026-03-08 11:41:03 +03:00
benya da73b79ee7 feat(contacts): add contacts module with backend APIs and web tab
CI / test (push) Failing after 18s
- add user_contacts table and migration

- expose /users/contacts list/add/remove endpoints

- add Contacts tab in chat list with add/remove actions
2026-03-08 11:38:11 +03:00
benya 39b61ec94b feat(web): split chat list into pinned and regular sections
CI / test (push) Failing after 19s
- render explicit Pinned and Chats blocks

- keep pin context actions unchanged
2026-03-08 11:35:31 +03:00
benya 8fcfd60ff5 feat(web): improve archive chats UX
CI / test (push) Failing after 18s
- keep archived list synced while browsing chats

- add archived entry in All tab with unread count-like badge

- show loading/empty states in Archived tab
2026-03-08 11:34:45 +03:00
benya 4fe89ce89a feat(web): service-worker notifications and composer/scroll UX fixes
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
benya 68ba97bb90 fix(web): unify mic/send button and restore scroll-down
CI / test (push) Failing after 20s
- show one action button in composer: mic when empty, send when text exists

- add floating scroll-to-bottom button in message list

- exclude non-text/media messages from Chat Info links list to avoid duplicates
2026-03-08 11:27:16 +03:00
benya 14610b5699 feat(web): inline chat search and global audio bar
CI / test (push) Failing after 20s
- replace modal message search with header inline search controls

- add global top audio bar linked to active inline audio player

- improve chat info header variants and light theme readability
2026-03-08 11:21:57 +03:00
benya 03bf197949 fix(web): stabilize realtime chat list synchronization
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
benya c58678ee09 feat(web): refine media gallery UX in chat info
CI / test (push) Failing after 18s
- add per-tab counters and sticky media tabs

- normalize media ordering by newest first

- improve links tab readability with short host/path preview
2026-03-08 11:10:25 +03:00
benya 48f521e551 feat(web): upgrade settings UX to telegram-like structure
CI / test (push) Failing after 18s
- redesign settings main/general/notifications/privacy screens

- add status subtitles and structured rows

- improve privacy and notifications sections
2026-03-08 11:09:36 +03:00
benya 0e44988634 fix(web): notification media preview and theme switching
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
benya 663df37d92 fix(web): media preview labels and burger menu interactions
CI / test (push) Failing after 19s
- show emoji+media type in chat list preview

- prevent burger menu from closing immediately via event propagation
2026-03-08 11:03:16 +03:00
benya 99e7c70901 feat: realtime sync, settings UX and chat list improvements
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
benya a4fa72df30 fix(web): always show media actions in context menu for media messages
CI / test (push) Failing after 20s
2026-03-08 10:40:57 +03:00
benya 72c3b10ba5 feat(web): fullscreen media preview/viewer and fix media context menu
CI / test (push) Failing after 26s
2026-03-08 10:38:46 +03:00
benya a77516cfea feat(web): sprint1 ui core with global toasts and improved chat layout
CI / test (push) Failing after 19s
2026-03-08 10:35:21 +03:00
benya 1119cc65b8 fix(web): chat sidebar layout, media context actions, and scrollable chat info
CI / test (push) Failing after 21s
2026-03-08 10:30:38 +03:00
benya 6a96a99775 feat(web): improve message UX, voice gestures, and attachments
CI / test (push) Failing after 21s
2026-03-08 10:20:52 +03:00
benya 52c41b6958 feat(web): send on Enter and newline on Shift+Enter
CI / test (push) Failing after 25s
2026-03-08 09:59:29 +03:00
benya f01bbda14e feat(invites): add group/channel invite links and join by token 2026-03-08 09:58:55 +03:00
benya cc70394960 feat(web): add safe rich text formatting for message rendering 2026-03-08 09:56:37 +03:00
benya 7c4a5f990d feat(messages): support forwarding to multiple chats 2026-03-08 09:55:39 +03:00
benya 8cdcd9531d feat(chats): add per-user pinned chats and pinned sorting 2026-03-08 09:54:43 +03:00
benya fdf973eeab feat(chats): add per-user chat archive support 2026-03-08 09:53:28 +03:00
benya 76f008d635 feat(reactions): add message reactions API and web quick reactions 2026-03-08 09:51:18 +03:00