Commit Graph
35 Commits
Author SHA1 Message Date
benya 727df4c7f8 test(privacy): cover avatar everyone visibility in user search
CI / test (push) Failing after 1m48s
2026-03-08 21:08:39 +03:00
benya a7965aa882 test(account): cover resend verification and password reset login flow
CI / test (push) Has been cancelled
2026-03-08 21:07:17 +03:00
benya d6378ab346 test(privacy): extend avatar and presence matrix coverage
CI / test (push) Failing after 1m32s
2026-03-08 21:04:27 +03:00
benya c222c93628 test(auth): cover normalized 2fa recovery codes and status decrement
CI / test (push) Has started running
2026-03-08 21:01:26 +03:00
benya f12f9e590c test(media): cover upload-url acceptance for mp4/m4a audio
CI / test (push) Failing after 1m33s
2026-03-08 20:51:00 +03:00
benya 418c9e6044 feat(notifications): honor chat mute in web realtime alerts
CI / test (push) Failing after 1m30s
2026-03-08 20:37:54 +03:00
benya 362098b954 test(chats): ensure saved chat delete clears history only
CI / test (push) Failing after 1m28s
2026-03-08 20:27:33 +03:00
benya f57e254bcc test(messages): cover 7-day edit window enforcement
CI / test (push) Has been cancelled
2026-03-08 20:26:21 +03:00
benya f746e31616 test(contacts): cover blocked relation for add-by-email
CI / test (push) Failing after 1m18s
2026-03-08 20:23:50 +03:00
benya a900713a48 test(contacts): cover add-by-email success and not-found
CI / test (push) Failing after 1m19s
2026-03-08 20:22:06 +03:00
benya 1337a7c10e test(privacy): cover everyone group-invite policy
CI / test (push) Has started running
2026-03-08 20:21:41 +03:00
benya 4cd374e33e test(privacy): cover everyone private-message policy
CI / test (push) Has been cancelled
2026-03-08 20:21:13 +03:00
benya aaae5b313e test(privacy): enforce nobody group-invite policy
CI / test (push) Has started running
2026-03-08 20:20:47 +03:00
benya 6fbb98cf2f test(invites): return 404 for invalid join token
CI / test (push) Has started running
2026-03-08 20:19:53 +03:00
benya 58e85d0a64 test(invites): cover join-by-token and invite-link permissions
CI / test (push) Has started running
2026-03-08 20:19:16 +03:00
benya ee43d13ba4 test(roles): enforce owner-only member role management
CI / test (push) Has started running
2026-03-08 20:17:30 +03:00
benya 80bda6e537 test(channels): enforce delete-for-all permissions on messages
CI / test (push) Has started running
2026-03-08 20:15:25 +03:00
benya ace8c79051 test(auth): cover single-session revoke behavior
CI / test (push) Has started running
2026-03-08 20:10:30 +03:00
benya 9f03aafd18 test(privacy): enforce nobody private message policy
CI / test (push) Has started running
2026-03-08 20:09:14 +03:00
benya 1a3a54cfb9 test(moderation): enforce group profile edit permissions by role
CI / test (push) Has started running
2026-03-08 20:04:55 +03:00
benya 57b687a036 test(channels): validate admin global delete permissions
CI / test (push) Failing after 51s
2026-03-08 20:03:15 +03:00
benya 9bc695ca58 test(privacy): verify contacts-only avatar and presence visibility
CI / test (push) Has started running
2026-03-08 20:01:36 +03:00
benya 6930e73b9f test(channels): enforce member read-only posting permissions
CI / test (push) Successful in 50s
2026-03-08 19:58:10 +03:00
benya f03fcb2bb7 test(privacy): cover hidden avatar and last-seen in private chat list
CI / test (push) Has started running
2026-03-08 19:57:42 +03:00
benya 1d250f0420 test(realtime): cover recording activity event schema
CI / test (push) Successful in 46s
2026-03-08 19:54:19 +03:00
benya 1ef0cdf29d test(channel): forbid member delete with for_all
CI / test (push) Successful in 42s
2026-03-08 19:45:37 +03:00
benya 101f39771e fix(channel): member delete acts as leave; add coverage and docs
CI / test (push) Successful in 42s
2026-03-08 19:44:42 +03:00
benya fb812c9a39 auth(2fa): add one-time recovery codes with regenerate/status APIs
CI / test (push) Successful in 40s
2026-03-08 19:16:15 +03:00
benya d069ff1121 auth(2fa): block setup after enable to avoid secret reissue
CI / test (push) Successful in 43s
2026-03-08 19:07:20 +03:00
benya af1ce20640 tests(privacy): cover group-invite and avatar visibility policies
CI / test (push) Successful in 31s
2026-03-08 19:05:43 +03:00
benya 1c9855b34c auth: force disconnect realtime on revoke-all sessions
CI / test (push) Successful in 26s
2026-03-08 19:04:23 +03:00
benya db700bcbcd moderation: add chat bans for groups/channels with web actions
CI / test (push) Successful in 26s
2026-03-08 14:29:21 +03:00
benya 76cc5e0f12 privacy/security: add PM privacy levels and improve session visibility
CI / test (push) Successful in 24s
2026-03-08 14:26:19 +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 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