From c9749352ece3735c0b155f9355fc2d2f0da4584f Mon Sep 17 00:00:00 2001 From: th Date: Wed, 15 Apr 2026 21:51:23 +0200 Subject: [PATCH] board: no new-card pulse for fresh journal entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closing a new journal entry briefly flashed the card with the 1× local-created pulse. Journal entries are daily-log noise, not "look at this new thing" moments, so the flash reads as clutter. Detect journals at pulse time (title starts YYYY-MM-DD, no termin/geburtstag, no caldav_uid, no " — " suffix — mirrors calendar.js isJournal) and drop them from the pulse set. Co-Authored-By: Claude Opus 4.6 (1M context) --- config.php | 2 +- electron/package.json | 2 +- public/js/modules/board.js | 17 ++++++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/config.php b/config.php index 1b11696..537e89e 100644 --- a/config.php +++ b/config.php @@ -1,7 +1,7 @@ " suffix (which denotes an appointment). if (newLocalIds.size) { for (const id of newLocalIds) state.recentlyCreatedIds.delete(id); - pulseCards(newLocalIds, 'card-pulse-local'); + const toPulse = new Set(); + for (const id of newLocalIds) { + const card = state.cards.find(c => String(c.id) === id); + if (!card) continue; + const isJournal = /^\d{4}-\d{2}-\d{2}$/.test((card.title || '').trim()) + && !/^\d{4}-\d{2}-\d{2}\s*[—-]\s*.+/.test(card.title || '') + && !card.caldav_uid + && !(card.tags || '').split(',').some(t => t === 'termin' || t === 'geburtstag'); + if (!isJournal) toPulse.add(id); + } + if (toPulse.size) pulseCards(toPulse, 'card-pulse-local'); } // Remote (relay-synced) cards: pulse 3× only when the user is on // the all view. On other views, the unseen ids accumulate and