feat: task trash, triage trash and retention settings for every area; admin can forbid keeping things for good
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m39s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
sandrodachandClaude Opus 5.5 committed 2026-11-01 15:44:34 +01:00
1 parent a927a94a95
commit 5a9c5bac37
36 files changed
+1356 -175

No files matched your search

+18
View File
@@ -145,6 +145,10 @@ type User struct {
DoneRetentionDays int `json:"doneRetentionDays"`
// VoiceInput: "" uses the server's Whisper (when set up), "browser" the browser's recognition
VoiceInput string `json:"voiceInput"`
// Retention: how long finished and deleted things are kept (storage/retention.go);
// RetentionNeverAllowed: whether "nie" may be chosen on this server
Retention *Retention `json:"retention,omitempty"`
RetentionNeverAllowed bool `json:"retentionNeverAllowed"`
}
// NotificationSettings: which events reach a user over which channel, the daily summary and a pause.
@@ -410,6 +414,10 @@ type SystemSettings struct {
BackupEnabled bool `json:"backupEnabled"`
BackupTime string `json:"backupTime"`
BackupRetentionDays int `json:"backupRetentionDays"`
// RetentionAllowNever: people may keep finished and deleted things for good ("nie"); nil in an
// update leaves it unchanged. RetentionNeverViaEnv: fixed by RETENTION_ALLOW_NEVER, not editable.
RetentionAllowNever *bool `json:"retentionAllowNever,omitempty"`
RetentionNeverViaEnv bool `json:"retentionNeverViaEnv,omitempty"`
}
// UnmarshalJSON accepts smtpPort as text or number: older clients sent a number, which made the whole
@@ -682,3 +690,13 @@ type FolderShare struct {
CreatedBy string `json:"createdBy"`
CreatedAt string `json:"createdAt"`
}
// Retention: delays in days for completed tasks, the task, triage and notes trash and ticked-off list
// items; 0 = keep for good.
type Retention struct {
DoneTasks int `json:"doneTasks"`
TaskTrash int `json:"taskTrash"`
TriageTrash int `json:"triageTrash"`
NoteTrash int `json:"noteTrash"`
ListDone int `json:"listDone"`
}