28 Commits

Author SHA1 Message Date
Codex
74b086b9c8 backend: add push token API and FCM delivery pipeline 2026-03-09 23:12:19 +03:00
6b724e260f fix(migration): merge duplicate saved chats per user
Some checks failed
CI / test (push) Failing after 2m5s
2026-03-08 21:15:48 +03:00
fb812c9a39 auth(2fa): add one-time recovery codes with regenerate/status APIs
All checks were successful
CI / test (push) Successful in 40s
2026-03-08 19:16:15 +03:00
db700bcbcd moderation: add chat bans for groups/channels with web actions
All checks were successful
CI / test (push) Successful in 26s
2026-03-08 14:29:21 +03:00
76cc5e0f12 privacy/security: add PM privacy levels and improve session visibility
All checks were successful
CI / test (push) Successful in 24s
2026-03-08 14:26:19 +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
bc9d943d11 chats: add chat avatars and profile view-only modal
All checks were successful
CI / test (push) Successful in 23s
2026-03-08 13:53:29 +03:00
30169a3a27 feat: add waveform voice messages end-to-end
All checks were successful
CI / test (push) Successful in 23s
2026-03-08 12:40:49 +03:00
79baadb522 feat(auth,privacy,web): step-by-step login, privacy settings persistence, TOTP QR, and API docs
Some checks failed
CI / test (push) Failing after 22s
2026-03-08 12:09:53 +03:00
27d3340a37 feat(auth): add TOTP 2FA setup and login verification
Some checks failed
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
da73b79ee7 feat(contacts): add contacts module with backend APIs and web tab
Some checks failed
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
f01bbda14e feat(invites): add group/channel invite links and join by token 2026-03-08 09:58:55 +03:00
8cdcd9531d feat(chats): add per-user pinned chats and pinned sorting 2026-03-08 09:54:43 +03:00
fdf973eeab feat(chats): add per-user chat archive support 2026-03-08 09:53:28 +03:00
76f008d635 feat(reactions): add message reactions API and web quick reactions 2026-03-08 09:51:18 +03:00
6adb8c24d7 fix(migrations): shorten 0012 revision id for alembic_version varchar(32)
Some checks failed
CI / test (push) Failing after 20s
2026-03-08 09:44:16 +03:00
76ab9c72f5 feat(privacy): add private-message permission toggle 2026-03-08 02:56:58 +03:00
0b4bb19425 feat(chat): add random public_id and fix users blocked route
Some checks failed
CI / test (push) Failing after 20s
- add chats.public_id random identifier with migration 0011
- expose public_id in chat API payloads
- use chat public_id in message search UI label
- fix users router order so /users/blocked no longer conflicts with /users/{user_id}
2026-03-08 02:34:24 +03:00
159a8ba516 feat(privacy): user blocklist with private chat enforcement
Some checks failed
CI / test (push) Failing after 21s
- add blocked_users table and migration
- add users API: block, unblock, list blocked users
- prevent private chat creation and private messaging when block relation exists
- add block/unblock action in private chat info panel
2026-03-08 02:19:37 +03:00
ea8a50ee05 feat(notifications): per-chat mute settings
Some checks failed
CI / test (push) Failing after 18s
- add chat_notification_settings table and migration
- add chat notifications API (get/update muted)
- skip message notifications for muted recipients
- add mute/unmute control in chat info panel
2026-03-08 02:17:09 +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
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
456595a576 feat: add user display profiles and fix web context menu UX
Some checks failed
CI / test (push) Failing after 17s
backend:

- add required user name and optional bio fields

- extend auth/register and user schemas/services with name/bio

- add alembic migration 0006 with safe backfill name=username

- compute per-user chat display_title for private chats

- keep Saved Messages delete-for-all protections

web:

- registration now includes name

- add profile edit modal (name/username/bio/avatar url)

- show private chat names via display_title

- fix context menus to open near cursor with viewport clamping

- stabilize +/close floating button to remove visual jump
2026-03-08 00:57:02 +03:00
b9f71b9528 feat: add saved messages, public chat discovery/join, and chat delete options
All checks were successful
CI / test (push) Successful in 19s
- add Saved Messages system chat with dedicated API

- add public group/channel metadata and discover/join endpoints

- add chat delete flow with for_all option and channel-wide delete

- switch message actions to context menu and improve reply/forward visuals

- improve microphone permission handling for voice recording
2026-03-08 00:41:35 +03:00
e1d0375392 feat: add reply/forward/pin message flow across backend and web
Some checks failed
CI / test (push) Failing after 24s
- add reply_to/forwarded_from message fields and chat pinned_message field

- add forward and pin APIs plus reply support in message create

- wire web actions: Reply, Fwd, Pin and reply composer state

- fix spam policy bug: allow repeated identical messages, keep rate limiting
2026-03-08 00:28:43 +03:00
4d704fc279 feat: add search APIs and telegram-like chats sidebar flow
All checks were successful
CI / test (push) Successful in 24s
- implement chat query filtering and message search endpoints

- add db indexes for search fields

- activate chats search input in web

- replace inline create panel with floating TG-style action menu
2026-03-08 00:19:34 +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
a879ba7b50 first commit 2026-03-07 21:31:38 +03:00