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 a14952e
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: .cursor/rules/np-programming-general.mdc
+6-3Lines changed: 6 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,10 @@ alwaysApply: true
6
6
## Critical Rules
7
7
CRITICAL: Never use dynamic imports. Rollup will not process them correctly. Always use static imports at the top of files.
8
8
9
+
## NotePlan domain facts
10
+
- NotePlan's supported task priority markers are exactly `!`, `!!`, `!!!`, and `>>`. The corresponding `paragraph.priority` values are 1, 2, 3, and 4. `!!!!` (four exclamation marks) is NOT a supported priority marker.
11
+
- "priority marker" or just "Marker" is user-facing language. Users think in terms of the symbols (`>>`, `!!!`, `!!`, `!`), not the underlying numeric `.priority` values. Use the symbols in settings/labels/descriptions, but key code logic off `.priority` when possible.
12
+
9
13
## Code Style Guidelines
10
14
- Use Flow for static typing
11
15
- No semicolons (enforced by ESLint/Prettier)
@@ -24,7 +28,7 @@ CRITICAL: Never use dynamic imports. Rollup will not process them correctly. Alw
24
28
- When moving code, keep existing comments and commented-out code
25
29
- Please provide Flow types (as appropriate) and JSDOC with all responses.
26
30
- If you are rewriting a full file, make sure to include all import statements also.
27
-
- Do not remove any console.logs or comments (or logDebug, clo, logInfo, logError statements).
31
+
- Do not remove any console.logs or comments (or clo, logDebug, logWarn, logInfo, logError statements).
28
32
29
33
## Common Helper Functions
30
34
The most frequently used functions in the codebase are:
@@ -35,8 +39,7 @@ The most frequently used functions in the codebase are:
- Do not prompt the user to run tests. Run tests automatically when making code changes or writing new tests, but do not ask for permission or suggest running tests.
39
-
- Only run tests when necessary (after code changes, when writing new tests, or when explicitly requested).
42
+
- Do not prompt the user to run tests. Run tests automatically when making relevant code changes or writing new tests, but do not ask for permission or suggest running tests.
40
43
- Always allow the following commands to run in the sandbox: cd, npm test, jest, grep, head, tail, node
41
44
- If testing Templating code, run tests like this `jest np.Templating/__tests__/**/*.test.js --no-watch`
42
45
- When you run jest tests, always include the flag --no-watch at the end because my jest config by default watches
Copy file name to clipboardExpand all lines: jgclark.Dashboard/CHANGELOG.md
+14-6Lines changed: 14 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,18 +8,26 @@ For more details see the [plugin's documentation](https://github.com/NotePlan/pl
8
8
- TODO: fix long-standing layout bug where some tooltips were getting clipped
9
9
- TODO: fix isNoteFromAllowedFolder() for teamspace or possibly 2025-W21.md
10
10
-->
11
-
## [2.4.0.b33] 2026-05-12?
12
11
13
-
- fix: completing the last **Wins** (`>>`) task now updates the section heading count and shows the empty-state / congrats message.
12
+
## [2.4.0.b33] 2026-05-13
13
+
- Added new "Wins priority marker" setting so the Win indicator can be `>>`, `!!!`, or `!!`. Default remains `>>`.
14
+
- added tooltip to Refresh button.
15
+
- fix: completing the last "Wins" Section (`>>`) task now updates the section heading count and shows the empty-state / congrats message.
14
16
- dev: `REMOVE_LINE_FROM_JSON` now removes the row again on the **post-`getGlobalSharedData` payload** before **`UPDATE_DATA`**. The plugin ↔ webview bridge returns a deserialized copy for the first snapshot, so splices there did not reach React; Wins still saw the old DT row until incremental refresh.
17
+
- dev: removed unused `runPluginCommand` export from `pluginToHTMLBridge.js` and its now-orphaned `TPluginCommandSimplified` type from `types.js`
18
+
- dev: `doDashboardSettingsChanged()`:
19
+
- fix: potential subtle issue in it to make a deep copy of settings where it had been shallow.
20
+
- refactor to make more maintainable
21
+
- rename it to `doSaveDashboardSettingsFromBridge()` to help understand what it does
22
+
- dev: Rename `doPerspectiveSettingsChanged` to `doSavePerspectiveSettingsFromBridge`.
15
23
16
24
## [2.4.0.b32] 2026-05-11
17
25
- fix: completing a next-action in **Active Projects** now round-trips to Projects plugin and will update with a new next-action if available.
18
26
- dev: PROJACT and PROJREVIEW are no longer included in the non-calendar "refresh all sections" pass, as their data is only updated by the Projects plugin.
19
27
- The next-action items in "Projects to Review" and "Active Projects" can now be clicked on to be completed or cancelled like items in other sections.
20
-
- Cross-plugin Reviews: after **`REMOVE_LINE_FROM_JSON`**, the bridge calls **`updateProjectsListIfProjectSection`** so **`allProjectsList.json`** stays in sync for **PROJACT** / **PROJREVIEW** (including **complete-then** and cancel paths); shared helper **`src/projectsListSync.js`**. After the list write, **`refreshSectionsByCode`** runs **in-process** (skipping **`invokePluginCommandByName`** for that step) so PROJ* data is merged before the bridge sends **`UPDATE_DATA`**; **`processActionOnReturn`** re-fetches global shared data before that send so a pre-refresh snapshot cannot overwrite the new next-action rows. (Reviews **`updateAllProjectsListAfterChange`** must successfully reload the project note: it now uses **`getNoteFromFilename`** for teamspace paths.)
21
-
-**`refreshSomeSections`** returns failure (not success) when Dashboard **`pluginData`** is not ready yet; **`refreshSectionsByCode`** documents **`invokePluginCommandByName`** argument shape and flattens mistaken nested **`sectionCodes`**.
22
-
- Perspective switch: single fire-and-forget **`generateProjectListsAndRenderIfOpen`** with **`.catch`**; skip invoke if Reviews is not installed; removed redundant second **`renderProjectListsIfOpen`**.
28
+
- Cross-plugin Reviews: after `REMOVE_LINE_FROM_JSON`, the bridge calls `updateProjectsListIfProjectSection` so `allProjectsList.json` stays in sync for **PROJACT** / **PROJREVIEW** (including **complete-then** and cancel paths); shared helper `src/projectsListSync.js`. After the list write, `refreshSectionsByCode` runs **in-process** (skipping `invokePluginCommandByName` for that step) so PROJ* data is merged before the bridge sends `UPDATE_DATA`; `processActionOnReturn` re-fetches global shared data before that send so a pre-refresh snapshot cannot overwrite the new next-action rows. (Reviews `updateAllProjectsListAfterChange` must successfully reload the project note: it now uses `getNoteFromFilename` for teamspace paths.)
29
+
-`refreshSomeSections` returns failure (not success) when Dashboard `pluginData` is not ready yet; `refreshSectionsByCode` documents `invokePluginCommandByName` argument shape and flattens mistaken nested `sectionCodes`.
30
+
- Perspective switch: single fire-and-forget `generateProjectListsAndRenderIfOpen` with `.catch`; skip invoke if Reviews is not installed; removed redundant second `renderProjectListsIfOpen`.
23
31
- fix: Add Task's note/space REQUEST calls no longer update Dashboard global data before responses return, avoiding render cascades while loading notes and spaces.
24
32
- fix: Add Task no longer eagerly scans notes when the dialog opens; notes are loaded only when the Note chooser is opened so Space loading is not blocked.
25
33
- fix: Add Task note loading now opts out of expensive backend note decoration, avoiding long calendar-note conversion stalls when changing spaces.
@@ -35,7 +43,7 @@ For more details see the [plugin's documentation](https://github.com/NotePlan/pl
35
43
- dev: turn down more logging
36
44
37
45
## [2.4.0.b30] 2026-04-17
38
-
- fix: **Add Task → Note**: choosing **All spaces** now loads notes from every space via np.Shared `getNotes` (`space: '__all__'`). Previously the UI could send no space filter and the handler only returned Private notes, so the chooser looked “stuck” at ~25 items and search could not find teamspace notes.
46
+
- fix: "Add Task → Note": choosing **All spaces** now loads notes from every space via np.Shared `getNotes` (`space: '__all__'`). Previously the UI could send no space filter and the handler only returned Private notes, so the chooser looked “stuck” at ~25 items and search could not find teamspace notes.
39
47
40
48
## [2.4.0.b29] 2026-04-17
41
49
- fix: **SpaceChooser / getTeamspaces**: `unwrapPluginRequestData` plus `@helpers/react/routerUtils``normalizeSharedInvokeResult` (peel extra `invokePluginCommandByName` wrapper around np.Shared `RequestResponse`) so the WebView receives a teamspace **array**, not a nested `{ success, data }` — fixes `[DIAG] loadSpaces: Invalid response format`
0 commit comments