Message expiration lets messages in a Thread auto-delete after a specified duration. It is an OrbNote Pro feature, useful for recording temporary information and reducing long-term retention of privacy-sensitive content.

How expiration is calculated

Each Thread can have an expiration policy (in seconds). When a new message is sent, its expiration time = creation time + policy duration.

Preset Duration Use case
No expiration None Long-term notes and Threads
One day 86400 seconds Daily reminders, meeting notes
One week 604800 seconds Weekly tasks, temporary project notes
One month 2592000 seconds Phase-based work, monthly plans
One year 31536000 seconds Annual references, time-boxed archives

Automatic cleanup

Once an expiration policy is set, OrbNote cleans up expired messages in the background:

  • First run 5 seconds after launch, then every 5 minutes.
  • Each batch processes 200 messages, querying with expirationDate < now.
  • Cleanup runs on a background serial queue without affecting daily operations.

Handling policy changes

When you change a Thread's expiration policy:

  1. The system recomputes the expiration time for all messages in that Thread.
  2. Messages that are already expired under the new policy are deleted immediately.
  3. Remaining messages get updated expiration times and await the next periodic cleanup.

Combining with password protection

Expiration and Thread password protection work well together:

  • Password protection controls access, while expiration controls retention.
  • For highly sensitive content, using both reduces long-term exposure risk.

For data storage and sync details, read Local-First and cloud sync.