v2.3 Papierkorb: Trash-Konstanten und Auto-Cleanup beim Laden

This commit is contained in:
2026-06-14 09:33:47 +02:00
parent 091195cdef
commit 6eaa3457d0
2 changed files with 15 additions and 0 deletions
+8
View File
@@ -10,6 +10,14 @@ async function init() {
boards = savedBoards ?? getDefaultBoards(); boards = savedBoards ?? getDefaultBoards();
trash = Array.isArray(savedTrash) ? savedTrash : []; trash = Array.isArray(savedTrash) ? savedTrash : [];
// Auto-Cleanup: Eintraege aelter als 30 Tage verwerfen (TRASH-02). Muss VOR
// renderBoards() laufen, damit der Papierkorb-Stand konsistent ist. Schreibt nur
// zurueck, wenn wirklich etwas entfernt wurde (kein unnoetiger Storage-Write).
const cutoff = Date.now() - TRASH_RETENTION_MS;
const beforeCount = trash.length;
trash = trash.filter(entry => typeof entry.deletedAt === 'number' && entry.deletedAt >= cutoff);
if (trash.length !== beforeCount) await saveTrash();
if (savedSettings) Object.assign(settings, savedSettings); if (savedSettings) Object.assign(settings, savedSettings);
I18n.init(); I18n.init();
+7
View File
@@ -9,6 +9,13 @@ let boards = [];
// Eintrag-Schema: { item, type: 'bookmark'|'board', deletedAt, originBoardId } // Eintrag-Schema: { item, type: 'bookmark'|'board', deletedAt, originBoardId }
let trash = []; let trash = [];
// Papierkorb: Auto-Cleanup-Fenster und harte Obergrenze (Quota-Schutz, TRASH-04).
// 30 Tage in Millisekunden; ueber dieser Zeit wird ein Eintrag beim Laden auto-geloescht.
const TRASH_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
// Max. Anzahl trash-Eintraege. Bei Ueberlauf werden die aeltesten zuerst verworfen,
// damit der Papierkorb nicht das 10-MB-Storage-Limit sprengt (kein blindes Wachstum).
const TRASH_MAX_ENTRIES = 100;
let settings = { let settings = {
compact: false, compact: false,
shortenTitles: false, shortenTitles: false,