-
Notifications
You must be signed in to change notification settings - Fork 83
Description
In this interactive processing code, when you make a change like adding a priority (!) at the front, it makes the change and should update the item in the interactive processing data so that when you make another change, it will find it with the revised text (starting with a !) but it sometimes does not correctly update because the second time it is sending the old text (without the !) and that causes it to not be found.
I think what's happening is that the changed item's .content is sometimes not immediately updated (due to age-old NP race conditions) and so perhaps that changed .content is not sent back, it is sending back the old content. That keeps it from updating properly in React.
Here's what Cursor said about it:
What’s going wrong
Symptom: After an action that changes the line in the note (e.g. cycling priority so the task becomes ! test item two), the next action from the same dialog (e.g. +2d / rescheduleItem) sometimes sends para.content (and related fields) that still match the old line (e.g. test item two). The plugin then looks up the paragraph with that old text and doesn’t find it, because the note already has the new text.
Underlying cause (two related layers):
Dialog payload is driven by React reactSettings.dialogData.details.item, not by the latest dashboard JSON.
When the dialog opens, it stores a snapshot of the TSectionItem in dialogData.details. After the plugin runs cyclePriorityStateUp, processActionOnReturn updates pluginData.sections and sends UPDATE_DATA, but the dialog’s details.item is only refreshed by a dedicated useEffect in Dashboard.jsx. If that sync doesn’t run when it should, DialogForTaskItems keeps using the stale item when building sendActionToPlugin payloads (it spreads detailsMessageObject).
The sync effect was too strict.
It only updated dialogData.details.item when the section item had updated: true and JSON.stringify(newSectionItem) !== JSON.stringify(dialogData?.details?.item).
In edge cases (display normalization, field ordering, or other reasons two objects can still stringify “the same” for practical purposes even though the note changed), the stringify check can block the update even though updated is true and the dialog still needs the new paragraph. Result: UI/logs can still show old para.content after a successful plugin update.
So the bug isn’t really “the plugin forgot to update JSON” in isolation—it’s the open dialog not reliably tracking the same paragraph object / fields that pluginData.sections has after each successful bridge action.
How it should be solved (conceptually)
Treat pluginData.sections as the source of truth for an open task dialog
For the current dialog item ID, prefer the matching sectionItem from pluginData.sections when validating and when sending actions, so the next command always carries the same para the dashboard model thinks is current (or explicitly merge only the fields that identify/locate the line: content, rawContent, lineIndex, priority, etc., as your architecture requires).
Relax or replace the JSON.stringify gate in the Dashboard dialog-sync effect
Rely primarily on sectionItem.updated (or an explicit “line changed” signal from the plugin) to push newSectionItem into dialogData.details.item, without requiring a JSON inequality that can fail in edge cases. The stringify comparison was meant to avoid redundant updates; the cost is missing real updates when objects still compare equal.
Optional hardening
Ensure the effect’s dependencies include whatever drives the latest sections (e.g. pluginData / derived sections) so the effect runs whenever the merged dashboard data changes.
In interactive processing, when advancing items, still re-resolve by ID from current pluginData when possible so visibleItems snapshots don’t drift.
No code here—just the diagnosis and the direction: always merge the open dialog’s item from live section data by ID after plugin-driven line updates, and don’t let a stringify comparison block that merge.
[WebView Log] 2026-03-24 19:28:58 | DEBUG | useSyncDashboardSettingsWithPlugin effect1 PLUGIN->REACT checking pluginData?.pushFromServer?.dashboardSettings=false
2026-03-24 19:28:58 | INFO | ************* bridgeClickDashboardItem: cyclePriorityStateUp *************
2026-03-24 19:28:58 | DEBUG | bridgeClickDashboardItem received data object; data= :: {
"updatedContent": "",
"sectionCodes": [
"OVERDUE"
],
"actionType": "cyclePriorityStateUp",
"controlStr": "priup",
"item": {
"ID": "OVERDUE-1",
"para": {
"rawContent": "* test item two",
"title": "2026-03-23",
"content": "test item two",
"filename": "20260323.md",
"dueDate": "2026-03-23",
"priority": 0,
"lineIndex": 7,
"noteType": "Calendar",
"isAChild": false,
"isTeamspace": false,
"hasChild": false,
"prefix": "* ",
"type": "open",
"startTime": "none",
"changedDate": "2026-03-25T02:28:20.472Z",
"indents": 0
},
"itemType": "open",
"teamspaceTitle": "",
"sectionCode": "OVERDUE"
}
}
2026-03-24 19:28:58 | DEBUG | NPP/findParaFromStringAndFilename :: starting with filename: 20260323.md, content: {test item two}
2026-03-24 19:28:58 | DEBUG | doCyclePriorityStateUp :: cycling priority -> {! test item two}
2026-03-24 19:28:58 | DEBUG | makeDashboardParas :: ⏱️ 5ms - done for 1 paras (i.e. average 5.0ms/para)
2026-03-24 19:28:58 | DEBUG | bridgeClickDashboardItem :: ⏱️ 35ms for bridgeClickDashboardItem: "cyclePriorityStateUp" before processActionOnReturn()
2026-03-24 19:28:58 | DEBUG | shared / parseSettings() :: settingsStr is already an object, so returning it as is
2026-03-24 19:28:58 | DEBUG | getListOfEnabledSections :: sectionsToShow: Y,OVERDUE,SEARCH
2026-03-24 19:28:58 | DEBUG | processActionOnReturn :: item.ID: OVERDUE-1 = TASK: updatedParagraph "! test item two"
2026-03-24 19:28:59 | DEBUG | findSectionItems :: -> looking for items with itemType, para.filename, para.content = {
"itemType": {},
"para.filename": "20260323.md",
"para.content": "test item two"
}
2026-03-24 19:28:59 | INFO | processActionOnReturn :: -> found 1 items to update: s[1_OVERDUE]:si[0]
2026-03-24 19:28:59 | DEBUG | getWindowIdFromCustomId :: Found HTML window 'jgclark.Dashboard.main' matching customId 'jgclark.Dashboard.main' with ID '147E3180-F683-4D9C-AEB8-88B7F389DB7B'
2026-03-24 19:28:59 | DEBUG | bridgeClickDashboardItem :: ⏱️ 360ms total runtime for bridgeClickDashboardItem: "cyclePriorityStateUp"
2026-03-24 19:28:59 | DEBUG | Dashboard/routeRequestsFromReact/router :: ⏱️ 391ms Non-REQUEST action completed for actionType="cyclePriorityStateUp"
[WebView Log] CommsBridge UPDATE_DATA message: "UPDATE_DATA Updated items s[1_OVERDUE]:si[0] following change in OVERDUE-1"
[WebView Log] 2026-03-24 19:28:59 | DEBUG | PerspectiveSelector, selectedValue: {"label":"z_OVERDUE Only*","value":"z_OVERDUE Only"} value(activePerspectiveName)=z_OVERDUE Only <modified>
[WebView Log] 2026-03-24 19:28:59 | DEBUG | DialogForTaskItems, ID=OVERDUE-1 / itemType=open / filename=20260323.md / sectionCodes=OVERDUE / para.content={test item two}
[WebView Log] 2026-03-24 19:28:59 | DEBUG | DialogForTaskItems, thisSectionCode=OVERDUE
[WebView Log] 2026-03-24 19:28:59 | DEBUG | findSectionItems :: -> looking for items with ID = {
"ID": "OVERDUE-1"
}
[WebView Log] 2026-03-24 19:28:59 | DEBUG | Dashboard, New max priority after sections changed: 1
[WebView Log] 2026-03-24 19:28:59 | DEBUG | useSyncDashboardSettingsWithPlugin effect1 PLUGIN->REACT checking pluginData?.pushFromServer?.dashboardSettings=false
[WebView Log] 2026-03-24 19:28:59 | DEBUG | PerspectiveSelector/SET_PERSPECTIVE_OPTIONS, notIsDash=true action.payload= {"activePersp":{"name":"z_OVERDUE Only","isActive":true,"dashboardSettings":{"lastModified":"2025-12-11 15:58:26.067","separateSectionForReferencedNotes":"","includeFutureTagMentions":"","showTimeBlockSection":false,"hidePriorityMarkers":true,"includedFolders":"","ignoreChecklistItems":true,"showOverdueSection":true,"displayDoneCounts":"","showLastWeekSection":false,"excludeTasksWithTimeblocks":false,"includedCalendarSections":"","showMonthSection":false,"showScheduledDates":"","showYearSection":true,"showProgressInSections":"number closed","showYesterdaySection":false,"dashboardSettings":{"showFolderName":"","applyCurrentFilteringToSearch":"","FFlag_ForceInitialLoadForBrowserDebugging":true,"lastChange":"Dashboard Settings updated","showTaskContext":"","rescheduleNotMove":true,"useLiteScheduleMethod":true,"excludeTasksWithTimeblocks":false,"excludeChecklistsWithTimeblocks":false,"showTagSection_@bev":true,"parentChildMarkersEnabled":true,"FFlag_HardRefreshButton":true,"excludedFolders":"","enableInteractiveProcessingTransitions":true,"lookBackDaysForOverdue":"","ignoreChecklistItems":true,"showTimeBlockSection":true,"newTaskSectionHeading":"<<top of note>>","filterPriorityItems":false,"showProjectSection":true,"FFlag_ShowSearchPanel":true,"interactiveProcessingHighlightTask":"","showTagSection":false,"includedFolders":"","autoUpdateAfterIdleTime":10,"maxItemsToShowInSection":30,"hideDuplicates":true,"FFlag_ShowTestingPanel":false,"showTagSection_@anique":true,"showSavedSearchSection":true,"moveOnlyShownItemsWhenFiltered":true,"FFlag_ShowSectionTimings":true,"showYesterdaySection":true,"showTagSection_@storey":true,"separateSectionForReferencedNotes":"","showTagSection_@kenna":true,"showTagSection_@pierce":true,"FFlag_DebugPanel":true,"dashboardTheme":"","useRescheduleMarker":false,"showPrioritySection":false,"FFlag_UseTagCacheAPIComparison":false,"usePerspectives":true,"useTodayDate":"","lastModified":"2025-11-16 10:56:57.868","enableInteractiveProcessing":true,"showScheduledDates":"","includeFutureTagMentions":"","dontSearchFutureItems":true,"displayDoneCounts":"","tagsToShow":"@pierce,@anique,@storey,@kenna,@bev,#waiting,#dbwDR","ignoreItemsWithTerms":"#jgcDR","showSearchSection":true,"showMonthSection":true,"showTagSection_#dbwDR":true,"showLastWeekSection":true,"FFlag_UseTagCache":false,"overdueSortOrder":"due date","newTaskSectionHeadingLevel":2,"hidePriorityMarkers":true,"applyIgnoreTermsToCalendarHeadingSections":"","customSectionDisplayOrder":["INFO","OVERDUE","PROJ","TAG","TB","DT","DY","DO","LW","W","M","Q","PRIORITY"],"showTodaySection":true,"showInfoSection":true,"showTagSection_#waiting":true,"showWeekSection":true,"showTomorrowSection":true,"showOverdueSection":true,"showProgressInSections":"number closed","moveSubItems":true,"showQuarterSection":true},"lookBackDaysForOverdue":"0","showTagSection":false,"ignoreItemsWithTerms":"#jgcDR","showQuarterSection":false,"showWeekSection":false,"useTodayDate":"","rescheduleNotMove":true,"moveSubItems":true,"useLiteScheduleMethod":true,"applyCurrentFilteringToSearch":"","hideDuplicates":true,"excludedFolders":"","showTodaySection":false,"applyIgnoreTermsToCalendarHeadingSections":"","enableInteractiveProcessingTransitions":true,"moveOnlyShownItemsWhenFiltered":true,"interactiveProcessingHighlightTask":"","parentChildMarkersEnabled":true,"newTaskSectionHeadingLevel":2,"showTaskContext":"","dashboardTheme":"","perspectiveSettings":[{"isModified":false,"dashboardSettings":{"showOverdueSection":true,"tagsToShow":"@home,@kenna,@storey,@anique,@pierce,@bev,#waiting","usePerspectives":true,"newTaskSectionHeadingLevel":"2","moveSubItems":true,"showTodaySection":true,"showYesterdaySection":false,"showTimeBlockSection":true,"showTaskContext":false,"showTagSection_#waiting":true,"showTagSection":false,"ignoreItemsWithTerms":"#jgcDR","lastModified":"2025-02-07 10:41:20.377","showTagSection_@storey":true,"newTaskSectionHeading":"<<top of note>>","overdueSortOrder":"due date","moveOnlyShownItemsWhenFiltered":true,"hideDuplicates":true,"dontSearchFutureItems":true,"displayDoneCounts":false,"filterPriorityItems":false,"autoUpdateAfterIdleTime":"0","showPrioritySection":false,"showQuarterSection":false,"lookBackDaysForOverdue":"0","showMonthSection":false,"showProgressInSections":"number closed","applyIgnoreTermsToCalendarHeadingSections":false,"applyCurrentFilteringToSearch":false,"showTagSection_@pierce":true,"showFolderName":false,"enableInteractiveProcessingTransitions":true,"ignoreChecklistItems":true,"showLastWeekSection":false,"showTagSection_@bev":true,"showProjectSection":false,"showTomorrowSection":true,"useLiteScheduleMethod":true,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"parentChildMarkersEnabled":true,"hidePriorityMarkers":true,"includedFolders":"Home, NotePlan","rescheduleNotMove":true,"showTagSection_@home":true,"showTagSection_@anique":true,"dashboardTheme":"","excludeTasksWithTimeblocks":false,"useTodayDate":false,"showTagSection_@kenna":true,"separateSectionForReferencedNotes":false,"showInfoSection":false,"includeFutureTagMentions":false,"showScheduledDates":false,"excludeChecklistsWithTimeblocks":false,"showWeekSection":false,"excludedFolders":"THIS_IS_HOME,Saved Searches, Work","enableInteractiveProcessing":true,"maxItemsToShowInSection":"30","interactiveProcessingHighlightTask":"","useRescheduleMarker":false},"name":"-","isActive":false},{"dashboardSettings":{"displayDoneCounts":false,"dontSearchFutureItems":true,"showProjectSection":false,"showMonthSection":false,"showInfoSection":false,"showProgressInSections":"number closed","autoUpdateAfterIdleTime":10,"excludeTasksWithTimeblocks":false,"moveOnlyShownItemsWhenFiltered":true,"showTaskContext":false,"showTodaySection":false,"hideDuplicates":true,"applyIgnoreTermsToCalendarHeadingSections":false,"hidePriorityMarkers":true,"showLastWeekSection":false,"useTodayDate":false,"showPrioritySection":false,"newTaskSectionHeading":"<<top of note>>","showFolderName":false,"interactiveProcessingHighlightTask":"","dashboardTheme":"","maxItemsToShowInSection":30,"useLiteScheduleMethod":true,"filterPriorityItems":false,"ignoreItemsWithTerms":"#jgcDR","tagsToShow":"@anique","enableInteractiveProcessing":true,"includeFutureTagMentions":false,"showQuarterSection":false,"showSavedSearchSection":true,"applyCurrentFilteringToSearch":false,"showWeekSection":false,"showYesterdaySection":false,"useRescheduleMarker":false,"ignoreChecklistItems":true,"showTimeBlockSection":false,"showScheduledDates":false,"newTaskSectionHeadingLevel":2,"includedFolders":"","showSearchSection":true,"excludeChecklistsWithTimeblocks":false,"excludedFolders":"Work, Summaries, Saved Searches","showTagSection_@anique":true,"enableInteractiveProcessingTransitions":true,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"usePerspectives":true,"rescheduleNotMove":true,"showTomorrowSection":false,"overdueSortOrder":"due date","showTagSection":false,"moveSubItems":true,"separateSectionForReferencedNotes":false,"parentChildMarkersEnabled":true,"lastModified":"2025-03-03 10:03:14.690","showOverdueSection":false,"lookBackDaysForOverdue":"0"},"name":"Anique","isActive":false,"isModified":false},{"isActive":false,"dashboardSettings":{"includedFolders":"Home, Family","useLiteScheduleMethod":true,"newTaskSectionHeadingLevel":2,"dashboardTheme":"","showTomorrowSection":false,"excludeTasksWithTimeblocks":false,"hideDuplicates":true,"useTodayDate":"","showPrioritySection":false,"showProgressInSections":"number closed","parentChildMarkersEnabled":true,"showTaskContext":"","rescheduleNotMove":true,"showSearchSection":true,"ignoreItemsWithTerms":"#jgcDR","applyIgnoreTermsToCalendarHeadingSections":"","showTagSection_@bev":true,"displayDoneCounts":"","showYesterdaySection":false,"interactiveProcessingHighlightTask":"","maxItemsToShowInSection":30,"showTagSection":false,"enableInteractiveProcessingTransitions":true,"showOverdueSection":false,"moveOnlyShownItemsWhenFiltered":true,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"showTimeBlockSection":false,"showFolderName":"","showSavedSearchSection":true,"usePerspectives":true,"useRescheduleMarker":false,"showQuarterSection":false,"separateSectionForReferencedNotes":"","autoUpdateAfterIdleTime":10,"moveSubItems":true,"enableInteractiveProcessing":true,"showScheduledDates":"","includeFutureTagMentions":"","showWeekSection":false,"overdueSortOrder":"due date","showProjectSection":false,"newTaskSectionHeading":"<<top of note>>","showTodaySection":false,"filterPriorityItems":false,"hidePriorityMarkers":true,"excludedFolders":"Work, Summaries, Saved Searches","dontSearchFutureItems":true,"tagsToShow":"@bev","applyCurrentFilteringToSearch":"","showMonthSection":false,"lastModified":"2025-10-24 11:55:29.624","excludeChecklistsWithTimeblocks":false,"lookBackDaysForOverdue":"0","showLastWeekSection":false,"showInfoSection":false,"ignoreChecklistItems":true},"name":"Bev","isModified":false},{"isModified":false,"isActive":false,"dashboardSettings":{"excludeTasksWithTimeblocks":false,"newTaskSectionHeadingLevel":2,"applyIgnoreTermsToCalendarHeadingSections":"","showTimeBlockSection":false,"moveSubItems":true,"showTomorrowSection":false,"dashboardTheme":"","includeFutureTagMentions":false,"useRescheduleMarker":false,"showMonthSection":false,"showTagSection_@nima":true,"showScheduledDates":true,"showSavedSearchSection":true,"showTodaySection":true,"showProgressInSections":"number closed","overdueSortOrder":"due date","moveOnlyShownItemsWhenFiltered":true,"showSearchSection":true,"showPrioritySection":false,"enableInteractiveProcessing":true,"separateSectionForReferencedNotes":"","customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"ignoreChecklistItems":true,"showYesterdaySection":false,"newTaskSectionHeading":"<<top of note>>","dontSearchFutureItems":true,"showLastWeekSection":false,"showTagSection_@jeff":true,"showOverdueSection":true,"excludeChecklistsWithTimeblocks":false,"useTodayDate":"","interactiveProcessingHighlightTask":"","displayDoneCounts":false,"hideDuplicates":true,"showQuarterSection":false,"hidePriorityMarkers":true,"applyCurrentFilteringToSearch":"","showTagSection_@tariq":true,"filterPriorityItems":false,"maxItemsToShowInSection":30,"usePerspectives":true,"rescheduleNotMove":true,"tagsToShow":"@jeff,@nima,@tariq,#cti","includedFolders":"CTI","showWeekSection":false,"lastModified":"2025-05-16 16:19:04.800","showTagSection":false,"enableInteractiveProcessingTransitions":true,"useLiteScheduleMethod":true,"autoUpdateAfterIdleTime":10,"ignoreItemsWithTerms":"#jgcDR","showTagSection_#cti":true,"showTaskContext":true,"excludedFolders":"","showFolderName":true,"parentChildMarkersEnabled":true,"showProjectSection":false,"lookBackDaysForOverdue":"","showInfoSection":false},"name":"CTI"},{"isActive":false,"dashboardSettings":{"applyCurrentFilteringToSearch":false,"showLastWeekSection":false,"showQuarterSection":false,"showTodaySection":true,"moveSubItems":true,"filterPriorityItems":false,"showTagSection_@home":true,"dashboardTheme":"","dontSearchFutureItems":true,"tagsToShow":"@home,@kenna,@storey,@anique,@pierce,@bev,#waiting,#daySetup,#workout","lookBackDaysForOverdue":"0","showTaskContext":false,"showYesterdaySection":false,"interactiveProcessingHighlightTask":"","excludedFolders":"Work, Summaries, Saved Searches","overdueSortOrder":"due date","enableInteractiveProcessing":true,"showProjectSection":false,"enableInteractiveProcessingTransitions":true,"showTagSection_@anique":true,"showSavedSearchSection":true,"separateSectionForReferencedNotes":false,"showPrioritySection":false,"rescheduleNotMove":true,"displayDoneCounts":false,"showTagSection_#waiting":true,"newTaskSectionHeading":"<<top of note>>","customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"showInfoSection":false,"maxItemsToShowInSection":30,"showMonthSection":false,"applyIgnoreTermsToCalendarHeadingSections":false,"showTomorrowSection":true,"lastModified":"2025-03-02 20:41:16.785","ignoreItemsWithTerms":"@work,#jgcDR","usePerspectives":true,"showTagSection_@kenna":true,"showProgressInSections":"number closed","showScheduledDates":false,"excludeChecklistsWithTimeblocks":false,"hidePriorityMarkers":true,"includeFutureTagMentions":false,"showTagSection_@pierce":true,"includedFolders":"","useLiteScheduleMethod":true,"showTagSection_#daySetup":true,"useRescheduleMarker":false,"showOverdueSection":true,"showTagSection_@storey":true,"showFolderName":false,"moveOnlyShownItemsWhenFiltered":true,"showTagSection_@bev":true,"useTodayDate":false,"ignoreChecklistItems":true,"hideDuplicates":true,"showWeekSection":false,"showTagSection_#workout":true,"parentChildMarkersEnabled":true,"showTimeBlockSection":true,"showSearchSection":true,"autoUpdateAfterIdleTime":10,"showTagSection":false,"excludeTasksWithTimeblocks":false,"newTaskSectionHeadingLevel":2},"isModified":false,"name":"Home"},{"isModified":false,"isActive":false,"name":"Kenna","dashboardSettings":{"showProgressInSections":"number closed","useRescheduleMarker":false,"showTimeBlockSection":false,"ignoreChecklistItems":true,"showTaskContext":false,"showInfoSection":false,"showScheduledDates":false,"dashboardTheme":"","dontSearchFutureItems":true,"moveOnlyShownItemsWhenFiltered":true,"showTagSection_@kenna":true,"enableInteractiveProcessing":true,"separateSectionForReferencedNotes":false,"newTaskSectionHeadingLevel":2,"hidePriorityMarkers":true,"showWeekSection":false,"showTodaySection":false,"showPrioritySection":false,"moveSubItems":true,"includedFolders":"","interactiveProcessingHighlightTask":"","hideDuplicates":true,"overdueSortOrder":"due date","showMonthSection":false,"parentChildMarkersEnabled":true,"showTagSection":false,"autoUpdateAfterIdleTime":10,"showTomorrowSection":false,"maxItemsToShowInSection":30,"rescheduleNotMove":true,"showOverdueSection":false,"displayDoneCounts":false,"newTaskSectionHeading":"<<top of note>>","enableInteractiveProcessingTransitions":true,"lookBackDaysForOverdue":"0","showProjectSection":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"excludeTasksWithTimeblocks":false,"usePerspectives":true,"showSearchSection":true,"showFolderName":false,"ignoreItemsWithTerms":"#jgcDR","useLiteScheduleMethod":true,"excludedFolders":"Work, Summaries, Saved Searches","lastModified":"2025-03-03 10:23:55.360","tagsToShow":"@kenna","useTodayDate":false,"applyCurrentFilteringToSearch":false,"showQuarterSection":false,"applyIgnoreTermsToCalendarHeadingSections":false,"showYesterdaySection":false,"includeFutureTagMentions":false,"showLastWeekSection":false,"filterPriorityItems":false,"excludeChecklistsWithTimeblocks":false,"showSavedSearchSection":true}},{"isActive":false,"isModified":false,"dashboardSettings":{"lookBackDaysForOverdue":"0","dontSearchFutureItems":true,"separateSectionForReferencedNotes":false,"showScheduledDates":false,"showTodaySection":false,"showProgressInSections":"number closed","lastModified":"2025-03-03 10:24:50.126","rescheduleNotMove":true,"dashboardTheme":"","filterPriorityItems":false,"excludedFolders":"Work, Summaries, Saved Searches","maxItemsToShowInSection":30,"moveSubItems":true,"applyIgnoreTermsToCalendarHeadingSections":false,"hidePriorityMarkers":true,"showPrioritySection":false,"useLiteScheduleMethod":true,"hideDuplicates":true,"showLastWeekSection":false,"parentChildMarkersEnabled":true,"showMonthSection":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"showTimeBlockSection":false,"showTaskContext":false,"displayDoneCounts":false,"includedFolders":"","overdueSortOrder":"due date","applyCurrentFilteringToSearch":false,"usePerspectives":true,"enableInteractiveProcessingTransitions":true,"showTagSection_@pierce":true,"interactiveProcessingHighlightTask":"","excludeChecklistsWithTimeblocks":false,"enableInteractiveProcessing":true,"showYesterdaySection":false,"showSavedSearchSection":true,"moveOnlyShownItemsWhenFiltered":true,"showSearchSection":true,"useTodayDate":false,"useRescheduleMarker":false,"excludeTasksWithTimeblocks":false,"showQuarterSection":false,"newTaskSectionHeadingLevel":2,"showFolderName":false,"ignoreItemsWithTerms":"#jgcDR","autoUpdateAfterIdleTime":10,"showTagSection":false,"ignoreChecklistItems":true,"showWeekSection":false,"newTaskSectionHeading":"<<top of note>>","tagsToShow":"@pierce","showProjectSection":false,"showInfoSection":false,"showTomorrowSection":false,"includeFutureTagMentions":false,"showOverdueSection":false},"name":"Pierce"},{"isModified":false,"isActive":false,"dashboardSettings":{"ignoreItemsWithTerms":"#jgcDR","showOverdueSection":false,"showMonthSection":false,"overdueSortOrder":"due date","usePerspectives":true,"useTodayDate":false,"showTagSection_@kenna":false,"showFolderName":false,"enableInteractiveProcessing":true,"hidePriorityMarkers":true,"excludeChecklistsWithTimeblocks":false,"rescheduleNotMove":true,"showYesterdaySection":false,"separateSectionForReferencedNotes":false,"showTimeBlockSection":false,"moveSubItems":true,"excludeTasksWithTimeblocks":false,"dontSearchFutureItems":true,"showScheduledDates":false,"includeFutureTagMentions":false,"dashboardTheme":"","showSavedSearchSection":true,"ignoreChecklistItems":true,"showWeekSection":false,"showInfoSection":false,"filterPriorityItems":false,"includedFolders":"","applyCurrentFilteringToSearch":false,"showPrioritySection":false,"useLiteScheduleMethod":true,"newTaskSectionHeading":"<<top of note>>","showTomorrowSection":false,"maxItemsToShowInSection":30,"interactiveProcessingHighlightTask":"","parentChildMarkersEnabled":true,"excludedFolders":"Work, Summaries, Saved Searches","newTaskSectionHeadingLevel":2,"moveOnlyShownItemsWhenFiltered":true,"showProjectSection":false,"autoUpdateAfterIdleTime":10,"showLastWeekSection":false,"showProgressInSections":"number closed","showTagSection":false,"showTaskContext":false,"showTodaySection":false,"useRescheduleMarker":false,"lookBackDaysForOverdue":"0","lastModified":"2025-03-03 10:24:17.567","showSearchSection":true,"displayDoneCounts":false,"showQuarterSection":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"enableInteractiveProcessingTransitions":true,"applyIgnoreTermsToCalendarHeadingSections":false,"hideDuplicates":true,"tagsToShow":"@kenna"},"name":"Storey"},{"isActive":false,"isModified":false,"name":"Work","dashboardSettings":{"useTodayDate":false,"showTagSection_@bev":true,"excludedFolders":"Home, Summaries, Saved Searches","showLastWeekSection":false,"enableInteractiveProcessing":true,"showMonthSection":false,"showYesterdaySection":false,"lastModified":"2025-02-26 17:39:23.478","dashboardTheme":"","showTaskContext":false,"usePerspectives":true,"showPrioritySection":false,"maxItemsToShowInSection":30,"showTagSection_@kenna":true,"enableInteractiveProcessingTransitions":true,"showSavedSearchSection":true,"excludeChecklistsWithTimeblocks":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"autoUpdateAfterIdleTime":0,"showFolderName":false,"showTagSection_@home":false,"filterPriorityItems":false,"showTimeBlockSection":true,"separateSectionForReferencedNotes":false,"hideDuplicates":true,"excludeTasksWithTimeblocks":false,"showTagSection":false,"parentChildMarkersEnabled":true,"showTodaySection":true,"moveSubItems":true,"interactiveProcessingHighlightTask":"","showTagSection_#dbwDR":true,"showProgressInSections":"number closed","showTomorrowSection":true,"showInfoSection":false,"showTagSection_#waiting":true,"rescheduleNotMove":true,"moveOnlyShownItemsWhenFiltered":true,"lookBackDaysForOverdue":"0","newTaskSectionHeadingLevel":2,"applyCurrentFilteringToSearch":false,"tagsToShow":"@home,@kenna,@storey,@anique,@pierce,@bev,#waiting,#dbwDR","showTagSection_@anique":true,"dontSearchFutureItems":true,"useLiteScheduleMethod":true,"ignoreItemsWithTerms":"#jgcDR,@home,#workout","useRescheduleMarker":false,"newTaskSectionHeading":"<<top of note>>","showSearchSection":true,"overdueSortOrder":"due date","showScheduledDates":false,"showOverdueSection":true,"showWeekSection":false,"includeFutureTagMentions":false,"showTagSection_@pierce":true,"ignoreChecklistItems":true,"displayDoneCounts":false,"showQuarterSection":false,"includedFolders":"Work, Family","showTagSection_@storey":true,"hidePriorityMarkers":true,"showProjectSection":false,"applyIgnoreTermsToCalendarHeadingSections":false}},{"name":"z_ALL_ON","isModified":true,"dashboardSettings":{"showFolderName":"","interactiveProcessingHighlightTask":"","showSearchSection":true,"enableInteractiveProcessing":true,"overdueSortOrder":"due date","moveOnlyShownItemsWhenFiltered":true,"showProjectSection":true,"showScheduledDates":"","showSavedSearchSection":true,"showInfoSection":false,"showTaskContext":"","showQuarterSection":true,"useLiteScheduleMethod":true,"excludeTasksWithTimeblocks":false,"lookBackDaysForOverdue":"0","showLastWeekSection":true,"newTaskSectionHeadingLevel":2,"autoUpdateAfterIdleTime":0,"usePerspectives":true,"includeFutureTagMentions":false,"dontSearchFutureItems":true,"enableInteractiveProcessingTransitions":true,"lastModified":"2025-03-06 12:46:55.741","tagsToShow":"@pierce,@anique,@storey,@kenna,@bev,#waiting,#dbwDR","filterPriorityItems":false,"displayDoneCounts":false,"useRescheduleMarker":false,"dashboardTheme":"","useTodayDate":"","ignoreChecklistItems":true,"showYesterdaySection":true,"showTagSection":false,"moveSubItems":true,"showTomorrowSection":true,"showProgressInSections":"number closed","showMonthSection":true,"parentChildMarkersEnabled":true,"showWeekSection":true,"hideDuplicates":true,"hidePriorityMarkers":true,"showOverdueSection":true,"rescheduleNotMove":true,"showTimeBlockSection":true,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"excludeChecklistsWithTimeblocks":false,"applyCurrentFilteringToSearch":false,"excludedFolders":"","applyIgnoreTermsToCalendarHeadingSections":"","separateSectionForReferencedNotes":"","newTaskSectionHeading":"<<top of note>>","ignoreItemsWithTerms":"#jgcDR","maxItemsToShowInSection":30,"showPrioritySection":false,"showTodaySection":true,"includedFolders":""},"isActive":true},{"name":"z_DEV","isActive":false,"isModified":false,"dashboardSettings":{"showLastWeekSection":false,"showInfoSection":false,"ignoreItemsWithTerms":"#jgcDR","showPrioritySection":false,"lookBackDaysForOverdue":"15","displayDoneCounts":false,"enableInteractiveProcessingTransitions":true,"includeFutureTagMentions":false,"applyIgnoreTermsToCalendarHeadingSections":false,"newTaskSectionHeading":"<<top of note>>","showFolderName":false,"showSearchSection":true,"showTaskContext":false,"separateSectionForReferencedNotes":false,"useLiteScheduleMethod":true,"showWeekSection":false,"overdueSortOrder":"due date","showScheduledDates":false,"showTodaySection":false,"showQuarterSection":false,"excludedFolders":"","rescheduleNotMove":true,"useTodayDate":false,"tagsToShow":"","showSavedSearchSection":true,"hidePriorityMarkers":true,"dontSearchFutureItems":true,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"excludeChecklistsWithTimeblocks":false,"showProgressInSections":"number closed","moveOnlyShownItemsWhenFiltered":true,"lastModified":"2025-04-10 14:33:33.486","filterPriorityItems":false,"showYesterdaySection":false,"autoUpdateAfterIdleTime":0,"showOverdueSection":false,"usePerspectives":true,"dashboardTheme":"","newTaskSectionHeadingLevel":2,"maxItemsToShowInSection":30,"showTagSection":false,"ignoreChecklistItems":true,"excludeTasksWithTimeblocks":false,"showTomorrowSection":false,"showMonthSection":false,"showTimeBlockSection":false,"applyCurrentFilteringToSearch":false,"hideDuplicates":true,"includedFolders":"","enableInteractiveProcessing":true,"interactiveProcessingHighlightTask":"","parentChildMarkersEnabled":true,"moveSubItems":true,"useRescheduleMarker":false,"showProjectSection":false}},{"isActive":false,"name":"z_OVERDUE Only","dashboardSettings":{"showFolderName":false,"moveOnlyShownItemsWhenFiltered":true,"newTaskSectionHeadingLevel":2,"moveSubItems":true,"usePerspectives":true,"showQuarterSection":false,"includeFutureTagMentions":false,"hidePriorityMarkers":true,"interactiveProcessingHighlightTask":"","enableInteractiveProcessing":true,"autoUpdateAfterIdleTime":0,"showOverdueSection":true,"useLiteScheduleMethod":true,"showPrioritySection":false,"applyIgnoreTermsToCalendarHeadingSections":false,"excludeChecklistsWithTimeblocks":false,"showProgressInSections":"number closed","showTomorrowSection":false,"hideDuplicates":true,"showYesterdaySection":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"excludeTasksWithTimeblocks":false,"parentChildMarkersEnabled":true,"dontSearchFutureItems":true,"applyCurrentFilteringToSearch":false,"showScheduledDates":false,"showLastWeekSection":false,"excludedFolders":"","ignoreItemsWithTerms":"#jgcDR","showTagSection":false,"lastModified":"2025-03-04 13:40:40.865","newTaskSectionHeading":"<<top of note>>","showTaskContext":false,"showTimeBlockSection":false,"ignoreChecklistItems":true,"filterPriorityItems":false,"includedFolders":"","tagsToShow":"","useTodayDate":false,"rescheduleNotMove":true,"lookBackDaysForOverdue":"0","enableInteractiveProcessingTransitions":true,"showMonthSection":false,"overdueSortOrder":"due date","showSavedSearchSection":true,"separateSectionForReferencedNotes":false,"showProjectSection":false,"showInfoSection":false,"useRescheduleMarker":false,"showTodaySection":false,"dashboardTheme":"","showSearchSection":true,"showWeekSection":false,"displayDoneCounts":false,"maxItemsToShowInSection":"100"},"isModified":false}],"newTaskSectionHeading":"<<top of note>>","tagsToShow":"","useRescheduleMarker":false,"excludeChecklistsWithTimeblocks":false,"showSearchSection":true,"showPrioritySection":false,"overdueSortOrder":"due date","enableInteractiveProcessing":true,"filterPriorityItems":false,"customSectionDisplayOrder":["SEARCH","INFO","SAVEDSEARCH","TB","DT","DY","DO","LW","W","M","Q","TAG","OVERDUE","PRIORITY","PROJ"],"autoUpdateAfterIdleTime":"","includedTeamspaces":["private"],"showTomorrowSection":false,"showFolderName":"","showProjectSection":false,"showInfoSection":false,"dontSearchFutureItems":true,"showSavedSearchSection":true,"maxItemsToShowInSection":"100"},"isModified":true}} {"payload":[{"label":"-","value":"-","isModified":false},{"label":"Anique","value":"Anique","isModified":false},{"label":"Bev","value":"Bev","isModified":false},{"label":"CTI","value":"CTI","isModified":false},{"label":"Home","value":"Home","isModified":false},{"label":"Kenna","value":"Kenna","isModified":false},{"label":"Medawar","value":"Medawar","isModified":false},{"label":"Pierce","value":"Pierce","isModified":false},{"label":"Storey","value":"Storey","isModified":false},{"label":"Today-All","value":"Today-All","isModified":false},{"label":"Work","value":"Work","isModified":false},{"label":"Z_ALL_OFF","value":"Z_ALL_OFF","isModified":false},{"label":"z_ALL_ON","value":"z_ALL_ON","isModified":false},{"label":"z_DEV","value":"z_DEV","isModified":false},{"label":"z_OVERDUE Only","value":"z_OVERDUE Only","isModified":true}]}
[WebView Log] 2026-03-24 19:28:59 | DEBUG | PerspectiveSelector, selectedValue: {"label":"z_OVERDUE Only*","value":"z_OVERDUE Only"} value(activePerspectiveName)=z_OVERDUE Only <modified>
[WebView Log] 2026-03-24 19:28:59 | DEBUG | DialogForTaskItems, ID=OVERDUE-1 / itemType=open / filename=20260323.md / sectionCodes=OVERDUE / para.content={test item two}
[WebView Log] 2026-03-24 19:28:59 | DEBUG | DialogForTaskItems, thisSectionCode=OVERDUE
[WebView Log] 2026-03-24 19:28:59 | DEBUG | Section, - OVERDUE Overdue Tasks: Main useEffect has pluginData changed. currentMaxPriFAVS=1
[WebView Log] 2026-03-24 19:28:59 | DEBUG | Section, Section OVERDUE useEffect running: maxPrioritySeenInThisSection=-1, currentMaxPriorityFromAllVisibleSections=1
[WebView Log] 2026-03-24 19:28:59 | DEBUG | Section, - Y This Year: Main useEffect has pluginData changed. currentMaxPriFAVS=1
[WebView Log] 2026-03-24 19:28:59 | DEBUG | Section, Section Y useEffect running: maxPrioritySeenInThisSection=-1, currentMaxPriorityFromAllVisibleSections=1
[WebView Log] 2026-03-24 19:28:59 | DEBUG | findSectionItems :: -> looking for items with ID = {
"ID": "OVERDUE-1"
}
[WebView Log] 2026-03-24 19:28:59 | DEBUG | useSyncDashboardSettingsWithPlugin effect1 PLUGIN->REACT checking pluginData?.pushFromServer?.dashboardSettings=false
[WebView Log] 2026-03-24 19:29:05 | DEBUG | DialogForTaskItems/handleButtonClick, - button clicked on ID: OVERDUE-1 for controlStr: +2d, handlingFunction: rescheduleItem, itemType: open, filename: 20260323.md, contentHasChanged: false
[WebView Log] 2026-03-24 19:29:05 | DEBUG | DialogForTaskItems/handleButtonClick, sectionCodesToSend=OVERDUE
[WebView Log] 2026-03-24 19:29:05 | DEBUG | Webview, sendActionToPlugin: sending sendToPlugin with command:rescheduleItem: "Dialog requesting call to rescheduleItem" dataToSend: {"messageObject":{"actionType":"rescheduleItem","item":{"ID":"OVERDUE-1","sectionCode":"OVERDUE","itemType":"open","teamspaceTitle":"","para":{"noteType":"Calendar","indents":0,"prefix":"* ","dueDate":"2026-03-23","rawContent":"* test item two","hasChild":false,"isAChild":false,"filename":"20260323.md","lineIndex":7,"title":"2026-03-23","priority":0,"type":"open","isTeamspace":false,"startTime":"none","changedDate":"2026-03-25T02:28:20.472Z","content":"test item two"}},"sectionCodes":["OVERDUE"],"controlStr":"+2d","updatedContent":""}}
[WebView Log] bridge::runPluginCommand JS file in np.Shared Sending command "onMessageFromHTMLView" to NotePlan: "jgclark.Dashboard" with args: ["rescheduleItem",{"actionType":"rescheduleItem","item":{"ID":"OVERDUE-1","sectionCode":"OVERDUE","itemType":"open","teamspaceTitle":"","para":{"noteType":"Calendar","indents":0,"prefix":"* ","dueDate":"2026-03-23","rawContent":"* test item two","hasChild":false,"isAChild":false,"filename":"20260323.md","lineIndex":7,"title":"2026-03-23","priority":0,"type":"open","isTeamspace":false,"startTime":"none","changedDate":"2026-03-25T02:28:20.472Z","content":"test item two"}},"sectionCodes":["OVERDUE"],"controlStr":"+2d","updatedContent":""},""]
2026-03-24 19:29:05 | DEBUG | cleanDashboardSettingsInAPerspective :: - Removing key 'preferredWindowType'
2026-03-24 19:29:05 | DEBUG | cleanDashboardSettingsInAPerspective :: - Removing key 'usePerspectives'
Executing function 'onMessageFromHTMLView'
[Dashboard/routeRequestsFromReact] Router called with actionType="rescheduleItem"
2026-03-24 19:29:05 | DEBUG | jgclark.Dashboard v2.4.0.b20-beta :: Dashboard/routeRequestsFromReact received actionType="rescheduleItem"
2026-03-24 19:29:05 | DEBUG | Dashboard/routeRequestsFromReact data= :: {
"item": {
"itemType": "open",
"para": {
"priority": 0,
"rawContent": "* test item two",
"title": "2026-03-23",
"changedDate": "2026-03-25T02:28:20.472Z",
"content": "test item two",
"type": "open",
"isTeamspace": false,
"dueDate": "2026-03-23",
"lineIndex": 7,
"noteType": "Calendar",
"hasChild": false,
"startTime": "none",
"isAChild": false,
"prefix": "* ",
"indents": 0,
"filename": "20260323.md"
},
"sectionCode": "OVERDUE",
"teamspaceTitle": "",
"ID": "OVERDUE-1"
},
"actionType": "rescheduleItem",
"sectionCodes": [
"OVERDUE"
],
"controlStr": "+2d",
"updatedContent": ""
}
[WebView Log] 2026-03-24 19:29:05 | DEBUG | PerspectiveSelector, selectedValue: {"label":"z_OVERDUE Only*","value":"z_OVERDUE Only"} value(activePerspectiveName)=z_OVERDUE Only <modified>
[WebView Log] 2026-03-24 19:29:05 | DEBUG | DialogForTaskItems, ID=OVERDUE-1 / itemType=open / filename=20260323.md / sectionCodes=OVERDUE / para.content={test item two}
[WebView Log] 2026-03-24 19:29:05 | DEBUG | DialogForTaskItems, thisSectionCode=OVERDUE
[WebView Log] 2026-03-24 19:29:05 | DEBUG | useSyncDashboardSettingsWithPlugin effect1 PLUGIN->REACT checking pluginData?.pushFromServer?.dashboardSettings=false
2026-03-24 19:29:05 | INFO | ************* bridgeClickDashboardItem: rescheduleItem *************
2026-03-24 19:29:05 | DEBUG | bridgeClickDashboardItem received data object; data= :: {
"item": {
"itemType": "open",
"para": {
"priority": 0,
"rawContent": "* test item two",
"title": "2026-03-23",
"changedDate": "2026-03-25T02:28:20.472Z",
"content": "test item two",
"type": "open",
"isTeamspace": false,
"dueDate": "2026-03-23",
"lineIndex": 7,
"noteType": "Calendar",
"hasChild": false,
"startTime": "none",
"isAChild": false,
"prefix": "* ",
"indents": 0,
"filename": "20260323.md"
},
"sectionCode": "OVERDUE",
"teamspaceTitle": "",
"ID": "OVERDUE-1"
},
"actionType": "rescheduleItem",
"sectionCodes": [
"OVERDUE"
],
"controlStr": "+2d",
"updatedContent": ""
}
2026-03-24 19:29:05 | DEBUG | shared / parseSettings() :: settingsStr is already an object, so returning it as is
2026-03-24 19:29:05 | DEBUG | doRescheduleItem :: Starting with filename: 20260323.md, content: "test item two", controlStr: +2d, sectionCodes: OVERDUE
2026-03-24 19:29:05 | DEBUG | doRescheduleItem :: - config.rescheduleNotMove = true
2026-03-24 19:29:05 | DEBUG | doRescheduleItem :: - config.useLiteScheduleMethod = true
2026-03-24 19:29:05 | DEBUG | doRescheduleItem :: - config.newTaskSectionHeading = <<top of note>>
2026-03-24 19:29:05 | DEBUG | doRescheduleItem :: - config.newTaskSectionHeadingLevel = number 2
2026-03-24 19:29:05 | DEBUG | NPP/findParaFromStringAndFilename :: starting with filename: 20260323.md, content: {test item two}
2026-03-24 19:29:05 🥺 WARN 🥺 NPP/findParaFromStringAndFilename :: Couldn't find paragraph {test item two} in note '20260323.md'
2026-03-24 19:29:05 🥺 WARN 🥺 doRescheduleItem :: - note 20260323.md doesn't seem to contain {test item two}
2026-03-24 19:29:05 | DEBUG | doRescheduleItem -> data :: {
"item": {
"itemType": "open",
"para": {
"priority": 0,
"rawContent": "* test item two",
"title": "2026-03-23",
"changedDate": "2026-03-25T02:28:20.472Z",
"content": "test item two",
"type": "open",
"isTeamspace": false,
"dueDate": "2026-03-23",
"lineIndex": 7,
"noteType": "Calendar",
"hasChild": false,
"startTime": "none",
"isAChild": false,
"prefix": "* ",
"indents": 0,
"filename": "20260323.md"
},
"sectionCode": "OVERDUE",
"teamspaceTitle": "",
"ID": "OVERDUE-1"
},
"actionType": "rescheduleItem",
"sectionCodes": [
"OVERDUE"
],
"controlStr": "+2d",
"updatedContent": ""
}
2026-03-24 19:29:05 | DEBUG | bridgeClickDashboardItem :: ⏱️ 53ms for bridgeClickDashboardItem: "rescheduleItem" before processActionOnReturn()
2026-03-24 19:29:05 | DEBUG | shared / parseSettings() :: settingsStr is already an object, so returning it as is
2026-03-24 19:29:05 | DEBUG | getListOfEnabledSections :: sectionsToShow: Y,OVERDUE,SEARCH
2026-03-24 19:29:05 | DEBUG | processActionOnReturn :: -> failed (success false) Note 20260323.md doesn't seem to contain {test item two}. I will refresh this Section; please then try again.
2026-03-24 19:29:05 | DEBUG | sendBannerMessage :: message: Note 20260323.md doesn't seem to contain {test item two}. I will refresh this Section; please then try again., type: WARN, timeout: NaN
2026-03-24 19:29:05 | DEBUG | sendBannerMessage :: colorClass: color-warn, borderClass: border-warn, icon: fa-regular fa-triangle-exclamation
2026-03-24 19:29:05 | DEBUG | getWindowIdFromCustomId :: Found HTML window 'jgclark.Dashboard.main' matching customId 'jgclark.Dashboard.main' with ID '147E3180-F683-4D9C-AEB8-88B7F389DB7B'
2026-03-24 19:29:05 | DEBUG | bridgeClickDashboardItem :: ⏱️ 100ms total runtime for bridgeClickDashboardItem: "rescheduleItem"
2026-03-24 19:29:05 | DEBUG | Dashboard/routeRequestsFromReact/router :: ⏱️ 130ms Non-REQUEST action completed for actionType="rescheduleItem"
[WebView Log] CommsBridge SHOW_BANNER message: "SHOW_BANNER"
[WebView Log] 2026-03-24 19:29:05 | DEBUG | Root, onMessageReceived: Showing banner, so we need to scroll the page up to the top so user sees it. (timeout: -)
[WebView Log] 2026-03-24 19:29:05 | DEBUG | Root, showBanner: {
"type": "WARN",
"msg": "Note 20260323.md doesn't seem to contain {test item two}. I will refresh this Section; please then try again.",
"timeout": null,
"color": "color-warn",
"border": "border-warn",
"icon": "fa-regular fa-triangle-exclamation",
"floating": false
}