Skip to content

fix: expire typing indicators after 10 seconds - #538

Merged
boxdot merged 4 commits into
boxdot:mainfrom
MarkAtwood:fix/issue-151
Jul 11, 2026
Merged

fix: expire typing indicators after 10 seconds#538
boxdot merged 4 commits into
boxdot:mainfrom
MarkAtwood:fix/issue-151

Conversation

@MarkAtwood

Copy link
Copy Markdown
Contributor

Typing indicators now auto-expire after 10 seconds per Signal protocol.
Previously, [T] would persist forever if the Stopped message was lost.

Changes

  • TypingSet now stores Instant timestamps instead of just presence
  • Added Channel::expire_typing() to remove stale indicators
  • Added App::expire_typing_indicators() called every tick (~1s)
  • Timeout constant TYPING_TIMEOUT_SECS = 10

Test plan

  • cargo test passes
  • Manual test: have contact start typing, close their app without sending → indicator should clear after 10s

Closes #151

Typing indicators now auto-expire after 10 seconds per Signal protocol.
Previously, [T] would persist forever if the Stopped message was lost.

Closes boxdot#151
@MarkAtwood

Copy link
Copy Markdown
Contributor Author

Rebased onto current main. The typing-expiry call now sits in the shared Event::Tick handler alongside the disappearing-messages expiry, and the channel constructors keep the new expire_timer field. cargo test: 54 passed.

@boxdot
boxdot enabled auto-merge (squash) July 11, 2026 17:08
@boxdot

boxdot commented Jul 11, 2026

Copy link
Copy Markdown
Owner

Thank you

@boxdot
boxdot merged commit 7964cb2 into boxdot:main Jul 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Some "stopped writing" notifications are not received

2 participants