e1d0375392
feat: add reply/forward/pin message flow across backend and web
...
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
...
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
...
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
85631b566a
Implement security hardening, notification pipeline, and CI test suite
...
CI / test (push) Successful in 9m2s
Security hardening:
- Added IP/user rate limiting with Redis-backed counters and fail-open behavior.
- Added message anti-spam controls (per-chat rate + duplicate cooldown).
- Implemented refresh token rotation with JTI tracking and revoke support.
Notification pipeline:
- Added Celery app and async notification tasks for mention/offline delivery.
- Added Redis-based presence tracking and integrated it into realtime connect/disconnect.
- Added notification dispatch from message flow and notifications listing endpoint.
Quality gates and CI:
- Added pytest async integration tests for auth and chat/message lifecycle.
- Added pytest config, test fixtures, and GitHub Actions CI workflow.
- Fixed bcrypt/passlib compatibility by pinning bcrypt version.
- Documented worker and quality-gate commands in README.
2026-03-07 21:46:30 +03:00
a879ba7b50
first commit
2026-03-07 21:31:38 +03:00