Skip to content

Synchronize unread message status with Webex server #92

@sgrimee

Description

@sgrimee

Summary

Implement true server-synchronized unread message tracking instead of the current session-based approach. Messages should be marked as unread based on server state, not just since program launch.

Current Problem

  • Unread messages currently mean "received after program launch"
  • No synchronization with actual read status on Webex servers
  • Messages read in other clients still show as unread in webex-tui

Research Required

  • Investigate Webex API for read status events and endpoints
  • Determine if webex-rust crate supports read status tracking
  • Research how to mark messages/spaces as read on server
  • Understand initial state retrieval for message read status
  • Test read status synchronization with other Webex clients

Implementation Requirements

Server Read Status Events

  • Receive events when spaces/messages are marked as read
  • Send events when user reads messages in webex-tui
  • Handle read status for individual messages vs entire conversations

Initialization Behavior

  • Query server for current read status of all messages/rooms
  • Distinguish between read and unread messages on startup
  • Handle large message histories efficiently

Synchronization

  • Real-time updates when messages are read in other clients
  • Mark messages as read on server when viewed in webex-tui
  • Handle offline/online synchronization scenarios

Dependencies

Acceptance Criteria

  • Unread status matches server state on program startup
  • Reading messages in webex-tui marks them as read on server
  • Messages read in other clients update status in webex-tui
  • Read status events are properly handled and processed
  • Performance acceptable with large message histories

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    FEAT-readrelated to messages read/unread

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions