Skip to content

Chat App — Change Log

This log tracks software changes for this area.


Current status

Item Status Notes
Active development Open Backend refactored and documented; frontend integration pending
Next release target TBA Will align with first frontend integration milestone
Known risk Medium Realtime + REST consistency and frontend alignment still in progress

Recent changes (newest first)

Date Type Summary Impact Reference
2026-04-16 Refactor Split serializers into domain files (attachments, conversations, messages, participants) Medium serializers/
2026-04-16 Refactor Introduced service layer split (messages, attachments, participants, read_state, notifications) High services/
2026-04-16 Refactor Refactored API views into modular structure under views/ Medium views/
2026-04-16 Refactor Cleaned websocket consumer and aligned with service layer Medium consumers.py
2026-04-16 Feature Added attachment upload-first flow with linking via websocket High attachments_api
2026-04-16 Feature Implemented participant-based access control across REST and WS High participants_api
2026-04-16 Feature Added message edit and soft-delete endpoints Medium message_actions_api
2026-04-16 Feature Implemented read tracking via Participant.last_read_at Medium read_api
2026-04-16 Feature Added websocket typing indicators Low consumers.py
2026-04-16 Feature Added orphan attachment cleanup task Low tasks.py
2026-04-16 Refactor Introduced full documentation set (models, serializers, services, views, consumers, index) Medium docs/

Open items and status

ID Title Status Priority Owner Target Reference
CHAT-001 Frontend integration (web) Open P1 Unassigned TBA
CHAT-002 Frontend integration (mobile) Open P1 Unassigned TBA
CHAT-003 Align websocket payload with REST serializers Open P1 Unassigned TBA
CHAT-004 Add realtime events for edit/delete Open P2 Unassigned TBA
CHAT-005 Add unread count endpoint optimization Open P2 Unassigned TBA
CHAT-006 Add conversation-level permissions abstraction Open P2 Unassigned TBA
CHAT-007 Replace query-token WS auth with header-based or secure upgrade Open P1 Unassigned TBA
CHAT-008 Add pagination for conversations list Open P3 Unassigned TBA

Known bugs

ID Symptom Severity Status Workaround Reference
BUG-CHAT-001 Websocket message payload differs from REST serializer shape Medium Open Normalize in frontend adapter
BUG-CHAT-002 Typing events not throttled (can spam channel layer) Low Open Add client-side debounce
BUG-CHAT-003 Attachment upload allows unused files until cleanup runs Low Open Cleanup task mitigates

Breaking changes and migrations

Date Change Action required Reference
2026-04-16 Serializer structure refactored into multiple modules Update imports if directly referencing serializers serializers/
2026-04-16 Views moved into views/ module structure Update URL imports if customized views/
2026-04-16 Service layer introduced for message and participant logic Ensure new logic uses services instead of direct model access services/

Notes

Backend status

The chat backend is now:

  • structurally clean
  • fully test-covered
  • modularized into serializers, services, and views
  • websocket-enabled

However, it is not yet fully integrated into frontend clients.


Main gap: frontend integration

Key missing pieces:

  • unified message shape between REST and websocket
  • frontend websocket lifecycle handling
  • UI for attachments + upload-first flow
  • read-state syncing
  • participant management UI

Architectural direction

The refactor establishes a strong foundation:

  • services own business logic
  • views handle transport (REST)
  • consumers handle realtime transport
  • serializers define payload contracts

This makes the app ready for:

  • frontend integration
  • future scaling
  • feature expansion (read receipts, reactions, etc.)

  1. Normalize websocket message payload to match MessageSerializer
  2. Build minimal frontend chat UI (web first)
  3. Add realtime updates for edit/delete
  4. Improve unread count performance
  5. Harden websocket authentication

Summary

The chat app has transitioned from:

  • working but unstructured backend

to:

  • clean, modular, documented system

It is now ready for the next phase:

  • frontend integration and realtime UX completion