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:
- The system recomputes the expiration time for all messages in that Thread.
- Messages that are already expired under the new policy are deleted immediately.
- 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.
