You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 788ac79
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: jgclark.Dashboard/CHANGELOG.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,10 @@
1
1
# What's changed in 🎛 Dashboard plugin?
2
2
For more details see the [plugin's documentation](https://github.com/NotePlan/plugins/tree/main/jgclark.Dashboard/).
3
3
4
+
## [2.5.0.b2] 2026-08-27
5
+
- New: Priority note-index cache so the Priority section can avoid a full vault scan on warm refreshes. On by default (`FFlag_UsePriorityCache`); falls back to full scan and schedules a background rebuild when the cache is missing. Commands: `generatePriorityNoteIndexCache` / `updatePriorityNoteIndexCache`.
6
+
4
7
## [2.5.0.b1] 2026-08-27
5
-
- New: Priority note-index cache (`priorityNoteIndexCache.json`) so the Priority section can avoid a full vault scan on warm refreshes. On by default (`FFlag_UsePriorityCache`); falls back to full scan and schedules a background rebuild when the cache is missing. Commands: `generatePriorityNoteIndexCache` / `updatePriorityNoteIndexCache`.
6
8
- New: Interactive Processing on Active Projects and Projects to Review (`>> N` walks project rows; PROJACT allows back-navigate, PROJREVIEW forward-only; Start Reviews unchanged).
The Priority section has no NotePlan API equivalent of `DataStore.listOverdueTasks()`, so discovery historically walked every non-special project note plus past calendar notes (~11s on a large vault for a few dozen hits). From **2.5.0.b1**, Dashboard keeps a **plugin-local filename index** of notes that contain at least one **open, unscheduled, priority>0** paragraph (same membership rule as `getOpenPriorityItems` in `dataGenerationPriority.js`).
246
+
The Priority section has no NotePlan API equivalent of `DataStore.listOverdueTasks()`, so discovery historically walked every non-special project note plus past calendar notes (~11s on a large vault for a few dozen hits). From 2.5.0.b2, Dashboard keeps a **plugin-local filename index** of notes that contain at least one **open, unscheduled, priority>0** paragraph (same membership rule as `getOpenPriorityItems` in `dataGenerationPriority.js`).
247
247
248
248
Implementation: `src/priorityNoteIndexCache.js`. Consumed by `getRelevantPriorityTasks()` when Priority cache is enabled (default -- **on** unless `FFlag_UsePriorityCache:false` in top-level `dashboardSettings`).
249
249
@@ -262,11 +262,11 @@ Paragraphs are **not** stored. On every Priority refresh the plugin re-opens can
262
262
| All non-`@` regular notes | Existing folder filters (`includedFolders` / `excludedFolders`) via `filterParasByRelevantFolders` |
263
263
| **All** calendar notes that match the membership rule | Restrict calendar candidates to `pastCalendarNotes()` (date start before today) |
264
264
265
-
Indexing calendar notes broadly avoids a midnight-only invalidation path when yesterday's note becomes "past." Folder filters are **not** baked into the index so one cache serves all perspectives.
265
+
Indexing calendar notes broadly avoids a midnight-only invalidation path when yesterday's note becomes "past." _Folder filters are **not** baked into the index so one cache serves all perspectives._
266
266
267
267
### Cold / missing cache
268
268
269
-
If the cache file is missing or invalid, Priority falls back to the full vault scan (correct first paint) and **schedules** `generatePriorityNoteIndexCache` via preference. Scheduled rebuilds run fire-and-forget after `incrementallyRefreshSomeSections` / `batchReplaceSections` (same pattern as the tag cache), on the **main thread** with loading/banner feedback.
269
+
If the cache file is missing or invalid, Priority falls back to the full vault scan (correct first paint) and **schedules** `generatePriorityNoteIndexCache` via preference. Scheduled rebuilds run fire-and-forget after `incrementallyRefreshSomeSections` / `batchReplaceSections` (same pattern as the tag cache), on the **main thread** with WebView banner feedback (`sendBannerMessage`).
Copy file name to clipboardExpand all lines: jgclark.Dashboard/plugin.json
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -7,10 +7,10 @@
7
7
"plugin.iconColor": "red-600",
8
8
"plugin.description": "A Dashboard for NotePlan, that in one place can show:\n- a compact list of open tasks and checklists from today's note, and scheduled ones from other notes.\n- similarly for yesterday's note, tomorrow's note, and the weekly, monthly and quarterly notes too (if used)\n- open Apple Reminders\n- any timeblocks for today\n- all overdue tasks\n- all open tasks and checklists that contain particular @tags or #mentions of your choosing\n- the next notes ready to review (if you use the 'Projects and Reviews' plugin).\nIt includes many other ways of speeding up managing your tasks: see the website for more details.",
9
9
"plugin.author": "@jgclark",
10
-
"plugin.version": "2.5.0.b1",
10
+
"plugin.version": "2.5.0.b2",
11
11
"plugin.releaseStatus": "beta",
12
12
"plugin.hidden": false,
13
-
"plugin.lastUpdateInfo": "2.5.0.b1: Priority note-index cache speeds up the Priority section (avoids full vault scan on warm refreshes). Interactive Processing for Active/Review Projects. Shared section-row CSS.\n2.4.2: Further extending edit dialog and interactive processing for Reminders.\n2.4.1: New Edit dialog and Interactive Processing for Apple Reminders. Quicker response when changing Perspective. Fix IP/task dialog error banner when Update/Enter with unchanged content (#778). Demo timing and Timed Items display fixes.\n2.4.0: New 'Reminders' Section, and addition of Apple Reminders into other Sections.\nNew 'Active Projects' Section.\nNew 'Wins' Section.\nNew 'Spaces to Include' setting which controls which (Team)Spaces you wish to include, plus whether or not to include the Private 'Space' (all notes not in a Space)\nSignificant performance improvements on refresh and for Tag/Mention sections.\nDozens of other improvements and fixes.\n2.3.3: new 'Year' section available.\n2.3.2: fix display when there are no priority items shown.\n2.3.1: fix for possible loss of settings error when upgrading.\n2.3.0: Support for NotePlan (Team)Spaces. Can re-order display of Sections.New '/backupSettings' command. Added 'noteTags' feature. Speeded up Tag/Mention sections. Layout improvements. Lots of other small fixes and improvements.\n2.2.1: Add new sorting option for Tag and Overdue sections.\n2.2.0: Add 'Search' section. New keyboard shortcuts. Plus many small improvements, bug fixes and performance improvements. See documentation for details.",
13
+
"plugin.lastUpdateInfo": "2.5.0.b2: Priority note-index cache speeds up the Priority section (avoids full vault scan on warm refreshes).\n2.5.0.b1: Interactive Processing for Active/Review Projects. Shared section-row CSS.\n2.4.2: Further extending edit dialog and interactive processing for Reminders.\n2.4.1: New Edit dialog and Interactive Processing for Apple Reminders. Quicker response when changing Perspective. Fix IP/task dialog error banner when Update/Enter with unchanged content (#778). Demo timing and Timed Items display fixes.\n2.4.0: New 'Reminders' Section, and addition of Apple Reminders into other Sections.\nNew 'Active Projects' Section.\nNew 'Wins' Section.\nNew 'Spaces to Include' setting which controls which (Team)Spaces you wish to include, plus whether or not to include the Private 'Space' (all notes not in a Space)\nSignificant performance improvements on refresh and for Tag/Mention sections.\nDozens of other improvements and fixes.\n2.3.3: new 'Year' section available.\n2.3.2: fix display when there are no priority items shown.\n2.3.1: fix for possible loss of settings error when upgrading.\n2.3.0: Support for NotePlan (Team)Spaces. Can re-order display of Sections.New '/backupSettings' command. Added 'noteTags' feature. Speeded up Tag/Mention sections. Layout improvements. Lots of other small fixes and improvements.\n2.2.1: Add new sorting option for Tag and Overdue sections.\n2.2.0: Add 'Search' section. New keyboard shortcuts. Plus many small improvements, bug fixes and performance improvements. See documentation for details.",
`Schedule flag set, but cache is only ${diffHours.toFixed(3)} hours old (< ${String(PRIORITY_CACHE_GENERATE_INTERVAL_DAYS)} days) - clearing flag and skipping full regenerate`,
259
+
)
260
+
clearPriorityNoteIndexCacheGenerationPref()
261
+
returnfalse
262
+
}
263
+
returntrue
264
+
}
265
+
250
266
/**
251
267
* Schedule regeneration if the cache is older than PRIORITY_CACHE_GENERATE_INTERVAL_DAYS.
252
268
* @param {string} generatedAtStr
@@ -290,13 +306,13 @@ export function loadPriorityNoteIndexCache(): ?TPriorityNoteIndexCache {
290
306
* Generate the priority note-index cache from scratch.
291
307
* Scans all non-@ regular notes and all calendar notes on the **main thread**
292
308
* (same lesson as tagMentionCache: async-thread regenerations have stalled without saving).
309
+
* Progress uses the Dashboard WebView banner (`sendBannerMessage`), same as tag/mention cache generation.
293
310
* @param {string} generationReason
294
311
* @returns {Promise<void>}
295
312
*/
296
313
exportasyncfunctiongeneratePriorityNoteIndexCache(generationReason: string='Triggered by external call'): Promise<void>{
297
314
const startTime =newDate()
298
315
letprogressBannerShown=false
299
-
letloadingIndicatorShown=false
300
316
try{
301
317
logInfo('generatePriorityNoteIndexCache',`Starting for ${generationReason}`)
302
318
@@ -309,16 +325,14 @@ export async function generatePriorityNoteIndexCache(generationReason: string =
0 commit comments