Commit graph

32 commits

Author SHA1 Message Date
ed1b9403bd feat: add optional details JSON field to conversations
Frontend can send arbitrary JSON into `details` on conversation
create; it's returned on all conversation responses (create, list,
close, reopen), mirroring the existing `title` field.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 14:33:24 +03:30
fee3a6ccb0 Merge pull request 'fix: surface real errors when adding user to Mattermost team' (#11) from feature/debug-team-member into master
Reviewed-on: #11
2026-08-09 06:41:41 -04:00
e127fd39bc fix: surface real errors when adding user to Mattermost team
_ensure_team_member silently swallowed every exception from
add_user_to_team, assuming failure meant the user was already a
member. Real failures (bad permissions, domain restrictions, wrong
team ID) were masked and only surfaced later as a confusing "No team
member found" error when adding the user to a channel. Now checks
actual membership via get_team_member and raises a clear
MattermostError on genuine add failures.
2026-08-09 14:00:52 +03:30
a40ce94d8c Merge pull request 'debug avatar retrieve' (#10) from feature/debug-avatar into master
Reviewed-on: #10
2026-08-01 09:27:10 -04:00
c6e26bcbaa debug avatar retrieve 2026-08-01 16:54:04 +03:30
0d262c68eb Send push notifications on new chat messages
Ports the gooyal notifications client (as already used by advertising)
and wires it into the previously-empty PushPublisher: on each message
send, the other conversation participant(s) get a push notification
with the sender's name and a message preview. Failures are swallowed
per-recipient so a down notifications service degrades silently rather
than breaking message sending.

Requires NOTIFICATIONS_BASE_PUBLIC_URL and the
notifications.application.push:send OAuth2 scope to be configured
before it will actually deliver.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-01 14:10:56 +03:30
d259621a5b Merge pull request 'add getting user info' (#8) from feature/user-info into master
Reviewed-on: #8
2026-07-29 08:28:00 -04:00
a177fae35b add getting user info 2026-07-28 13:17:01 +03:30
74efff8b66 Merge pull request 'add content_type like what it is in advertising exactily' (#7) from feature/minio-endpoint into master
Reviewed-on: #7
2026-07-27 10:01:50 -04:00
61ba5e2368 add content_type like what it is in advertising exactily 2026-07-27 15:30:37 +03:30
c1877cb884 FIX(chat): MINIO_BUCKET_NAME
MINIO_BUCKET_NAME
2026-07-27 13:35:17 +03:30
392aa8e9c1 add presign endponit 2026-07-26 11:21:53 +03:30
8cdaf569d8 add chat title
Conversations can now be given an optional title at creation
(POST /api/chats/), stored locally on the Conversation model and
returned in create/list/close/reopen responses.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-25 12:57:19 +03:30
7373cb15d4 debug none sender uuid 2026-07-21 16:08:37 +03:30
9a73badb3c add admin panel 2026-07-21 15:31:57 +03:30
85fcfc37d0 merge master into branch 2026-07-21 15:29:04 +03:30
9f318aa6cc filter messages on client side 2026-07-21 14:45:10 +03:30
c8883832c9 add report chat 2026-07-20 13:58:42 +03:30
e4cab3ab62 Merge branch 'master' into feature/minio-integration
# Conflicts:
#	apps/chat/serializers/messages.py
#	apps/chat/services/message.py
#	apps/chat/tests/test_messages.py
#	apps/chat/views/messages.py
2026-07-20 12:27:34 +03:30
9dd70f37d3 add close and reopen feature 2026-07-19 12:54:17 +03:30
0cf77aa21c REFACTOR(chat): rename all internal id fields to uuid
Renames PK/reference fields across chat models, services, serializers,
views, urls, websocket routing, and events (id->uuid, user_id->user_uuid,
chat_id->chat_uuid, sender_id->sender_uuid, user_1_id/user_2_id->
user_1_uuid/user_2_uuid) for consistency with the uuid-named PK
convention already used in core/users/gooyal_oauth2. Mattermost's own
opaque identifiers (post_id, channel_id, mattermost_user_id) are left
unchanged since they are not UUIDs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-19 12:11:32 +03:30
5dcfec3e80 filter system message on starting the chat 2026-07-12 16:30:53 +03:30
ba236c2b3e FIX(chat): remove migration
remove migration
2026-07-12 15:51:54 +03:30
d85be31e77 switch chat media messages to client-side MinIO uploads
Frontend now uploads media directly to MinIO and sends only the
resulting object_key; the backend never touches file bytes. Mattermost
post bodies carry "<type>:<object_key>" instead of a permanent public
URL, and download links are signed fresh on every read (send + list)
so they can't outlive their expiry. Also wires up MINIO_SECURE, which
settings.py previously never read from env.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 12:12:31 +03:30
49d6bd6cd2 add new gooyal account app migrations. 2026-07-12 11:27:31 +03:30
c8b4e67567 debug 2026-06-15 15:22:17 +03:30
aa821ac468 restruct the apps 2026-06-15 13:21:21 +03:30
dcb1873608 complete mattermost integration 2026-06-13 13:43:29 +03:30
b7239defcf add clients and chat core. 2026-06-10 17:33:02 +03:30
Sayyid Hamid Mahdavi
353d50953c init 2026-06-08 12:05:24 +03:30
Sayyid Hamid Mahdavi
aa14ae0f1f init 2026-05-10 16:33:06 +03:30
Sayyid Hamid Mahdavi
d596e319f0 init 2026-05-10 15:25:49 +03:30