Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Support disappearing (temporary) messages

Open
#19 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
22/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
desktop-dev, rust
Domain
database, desktop

Research direction

Start with AGENTS.md for the privacy rules, then find where the archive stores each chat's ephemeral_expiration and where outgoing messages are built, since they currently send without an expiration. Check the whatsapp-rust APIs the issue lists: SendOptions::with_ephemeral_expiration, Client::set_ephemeral, and Event::DisappearingModeChanged. Settle the open question on deleting versus hiding expired messages before coding. Done means replies follow the chat timer, the timer shows in the header, and the user can change it.

Written by the indexing model from the issue text.

Description

enhancement

Support disappearing (temporary) messages: show the timer on a chat, send with it, and let the user change it.

What whatsapp-rust already provides

Checked against the pinned revision ae3cefd:

  • Sending: SendOptions::with_ephemeral_expiration(seconds) sets contextInfo.expiration on outgoing messages.
  • Chat timer: Client::set_ephemeral (1:1 chats, 0 disables) and Groups::set_ephemeral (groups).
  • Account default: Client::set_default_disappearing_mode.
  • Receiving: messages carry their expiration, and Event::DisappearingModeChanged reports a contact changing their default.
  • Keep in chat: keep_message keeps or un-keeps a message in a disappearing chat for everyone.

What ZapTide does today

The archive already stores each chat's timer (ephemeral_expiration and its timestamp, from history sync and group notifications), and polls refuse to send in an ephemeral chat. There is no UI for it and outgoing messages are sent without an expiration, so replies in a disappearing chat do not follow the chat's timer.

Proposed scope

  1. Send every message in a chat with the chat's stored timer.
  2. Show the timer in the chat header or details (for example "Disappearing messages: 24 hours").
  3. Let the user change it from chat details: off, 24 hours, 7 days, 90 days (1:1 and groups, groups only for admins).
  4. Remove messages locally once they expire, and show a system line when the timer changes.
  5. Optional: keep a message from disappearing.
  6. Optional: account default under Preferences.

Open questions

  • Whether expired messages should be deleted from the encrypted archive or only hidden.
  • The privacy rules in AGENTS.md apply: no message content in logs.
Dominant language
Rust
Stars
29
Forks
1
Avg merge
2h 35m
Merged PRs (30d)
33

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from luminusOS/zaptide

All issues in luminusOS/zaptide

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.