Transfers: history retention + General card + window footer (#404) #405

Merged
Cordy merged 5 commits from transfer-ret into main 2026-09-03 00:16:03 +00:00
Owner

Implements #404 as ratified (mockup approved).

  • transferRetentionDays (0/absent = 90, max 365, no "forever") — deliberately separate from notification retention: that one is a view horizon, this one deletes records.
  • Transfers store prunes lazily on its own saves: terminal states only (done/failed), aged by EndedAt (fallback StartedAt); in-flight transfers are never pruned regardless of age (regression-tested with a stuck streaming record + mutation check on the age comparison).
  • Wired from the settings store next to the other retention hooks; purely local, no protocol impact, Inbox files untouched.
  • UI: "Transfer history retention (days)" row in Basic settings; the card is renamed General ("Allgemein" / "Général" / "Generale"); page description gains the clause; the Transfers view footer states "Showing the last N days." from the configured value. i18n ×4.

This closes the last unbounded grower flagged in #402. Closes #404.

Implements #404 as ratified (mockup approved). - `transferRetentionDays` (0/absent = 90, max 365, no "forever") — deliberately separate from notification retention: that one is a view horizon, this one deletes records. - `Transfers` store prunes lazily on its own saves: **terminal states only** (done/failed), aged by `EndedAt` (fallback `StartedAt`); in-flight transfers are never pruned regardless of age (regression-tested with a stuck streaming record + mutation check on the age comparison). - Wired from the settings store next to the other retention hooks; purely local, no protocol impact, Inbox files untouched. - UI: "Transfer history retention (days)" row in Basic settings; the card is renamed **General** ("Allgemein" / "Général" / "Generale"); page description gains the clause; the Transfers view footer states "Showing the last N days." from the configured value. i18n ×4. This closes the last unbounded grower flagged in #402. Closes #404.
Cordy merged commit f6f5620828 into main 2026-09-03 00:16:03 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#405
No description provided.