NEW CONTRIBUTORS FIRST PREFERENCE.
Description
Certain clipboard entries such as passwords, tokens, or temporary codes should not persist indefinitely. An optional TTL should be configurable per entry or globally so that sensitive content is automatically removed from the ring and disk after a defined duration without requiring manual deletion.
Steps to Reproduce
- Copy sensitive content such as a password or API token.
- Leave the system idle for an extended period.
- Observe that the sensitive entry remains in the ring indefinitely.
Expected Behavior
When a TTL is set — either globally in config or per entry — the entry should be automatically deleted from the ring, disk, and vault once the TTL has elapsed, with no user intervention required.
Actual Behavior
Entries persist indefinitely regardless of their content or sensitivity. No automatic expiry mechanism exists.
Example
A user copies a one-time login code. An hour later the code has expired externally but still sits in the ring, creating an unnecessary record of a sensitive value.
Suggested Fix
Store a creation timestamp and optional TTL value with each entry. Introduce a background task that periodically scans the ring and removes any entries whose creation time plus TTL is in the past. Apply the same check on load from disk.
NEW CONTRIBUTORS FIRST PREFERENCE.
Description
Certain clipboard entries such as passwords, tokens, or temporary codes should not persist indefinitely. An optional TTL should be configurable per entry or globally so that sensitive content is automatically removed from the ring and disk after a defined duration without requiring manual deletion.
Steps to Reproduce
Expected Behavior
When a TTL is set — either globally in config or per entry — the entry should be automatically deleted from the ring, disk, and vault once the TTL has elapsed, with no user intervention required.
Actual Behavior
Entries persist indefinitely regardless of their content or sensitivity. No automatic expiry mechanism exists.
Example
A user copies a one-time login code. An hour later the code has expired externally but still sits in the ring, creating an unnecessary record of a sensitive value.
Suggested Fix
Store a creation timestamp and optional TTL value with each entry. Introduce a background task that periodically scans the ring and removes any entries whose creation time plus TTL is in the past. Apply the same check on load from disk.