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
|