# Changelog All notable changes to GTD Calendar are documented here. Versions follow the plugin's `manifest.json` / `package.json` version, which also matches the published npm releases. ## 1.0.0 β€” 2026-07-28 ### Card underline cleanup - Removed the inherited clickable underline from kanban and matrix cards for both notes and to-dos. - Completed cards retain their line-through styling; other clickable views and card interactions are unchanged. ### Independent project-note filters - Added `notes: all | none` to `gtd-kanban` and `gtd-matrix`, defaulting to `all` for backward compatibility. - `notes: all` continues to require explicit ordinary-note opt-in through a `gtd` block; `notes: none` enables task-only boards and matrices. - Project-note filtering is independent from `todos`, happens before warnings and tag access, and preserves grouped-view totals and empty-group omission. ### Notebook-grouped kanban and matrix views - Added explicit `group: notebook` support when paired with literal `scope: children`, rendering separate exact-owner views for the root and each non-empty descendant notebook. - Cards appear once under their full notebook path; empty parents are omitted without hiding non-empty descendants. - Each generated column or quadrant retains independent pagination, while warnings remain with their owning notebook and statistics remain block-wide. ### Done-tag completion for ordinary notes - Added configurable `done-tag` support to kanban and matrix blocks for ordinary notes that already opt in with a `gtd` block. - Kanban completion takes priority over `in-progress-tag`; `done-window` remains specific to native completed to-dos. - Both matrix modes exclude completed notes before quadrant bucketing. - Native to-dos still use Joplin completion, calendars are unchanged, and the plugin remains read-only. ### Opted-in note cards for kanban and matrix - Ordinary notes containing a `gtd` block now appear in kanban and matrix views. Empty blocks opt in; plain notes without the block remain excluded. - Kanban places note cards in Backlog or In Progress from the configured tag; the later `done-tag` addition places completed project notes in Done. Ordinary notes never display recurrence state. - Skeleton and Eisenhower matrices apply their existing date/tag axes to note cards. Completed to-dos remain excluded. - Note cards reuse `gtd` title, date, colour, icon, and text overrides. They use πŸ“„ when no custom icon is provided and click through to the source note. - Malformed `gtd` blocks remain visible with fallback values and the existing warning. The `todos:` option continues to govern only to-dos. - Kanban and matrix inspect bodies whenever an admitted type can use a `gtd` block; tag requests remain limited to eligible items. - Validation: 185 automated tests passed, the production JPL was built, and manual Joplin acceptance passed on 2026-07-27. ### Incremental kanban and matrix card limits - Added `page-size` to `gtd-kanban` and `gtd-matrix` (positive integer, default 10); invalid values warn and fall back to 10. - Each kanban column and matrix quadrant initially shows one batch. **List more** reveals the next batch independently without changing saved configuration; reload resets expansion. - Hovering over or focusing **List more** shows the exact number of hidden entries. The control uses a linked accessible tooltip, retains keyboard focus between intermediate clicks, and disappears after the final batch. - Collectors still return complete sorted results and statistics; batching is transient webview state, so headings and totals remain complete. - Validation: 164 automated tests passed, the production JPL was built and inspected, and manual Joplin acceptance passed on 2026-07-27. ## 0.7.0 β€” Gantt chart - New `gtd-gantt` block: a project-grouped timeline of bars and milestones. - **Dual-role fence** β€” a `gtd-gantt` block **with** a `project:` key is an *item declaration* (renders as an inline `gantt: ` badge); **without** one it's the *chart*. Same rule applied by the renderer and the collector. - **Notes β†’ bars** (`begin-date` + `end-date`; both required and valid, `end` β‰₯ `begin`, else excluded with a warning). **To-dos β†’ milestones** (β—† on the native due date; `begin`/`end` on a to-do are ignored with a warning; no due date β†’ excluded). No Unscheduled section. - Items grouped into swimlanes by `project:` (case-insensitive, alphabetical); completed milestones dimmed/struck, recurring get ↻; styling keys (`bg-colour`/`fg-colour`/`title`/`text`) mirror the `gtd` block. - Chart options: `title`, `scope` (incl. `all`), `notebook`, `filter-project`, `sort`/`sort-type` (`begin-date`/`title`/`modified-date`), `card-detail`. No `notes`/`todos` option (items opt in via `project:`). - Rendering: CSS-grid timeline with a month tick header, a "today" line, horizontal scroll for wide ranges, and click-to-open. Read-only. ## 0.6.0 β€” Notebook targeting & profile-wide scope - Added `notebook:` to every view block (`gtd-calendar`, `gtd-kanban`, `gtd-matrix`, `gtd-gantt`): root the folder scan at a specific notebook β€” by unique name, `Parent/Child` title path, or 32-char folder id β€” even one outside the host note's tree. `scope` then applies relative to it. Unknown/ambiguous notebooks warn and fall back to the host note's folder. - Added `scope: all`: scan **every** notebook in the profile. Guardrails β€” the stats footnote reports the scan size and is marked `scope: all`, and a soft ⚠ warning appears past ~2000 scanned notes. `notebook:` is ignored under `scope: all` (with a warning). - Performance: view collectors now request note bodies only when the inclusion mode actually needs the `gtd` block, trimming data fetched for profile-wide scans. ## 0.5.0 β€” The Skeleton Matrix - Added `mode: skeleton | eisenhower` to `gtd-matrix` (default: `skeleton`). - **Skeleton mode** replaces Eisenhower's opinion-based axes with derived ones: rows = active (`in-progress-tag`, shared with the kanban), columns = due soon (`urgent-window` days, default 3, overdue included; `urgent-tag` as a manual override for dateless items). Quadrants: **Do Next**, **Scheduled**, **On Deck**, **Backlog** β€” nothing is ever "Eliminate". - Classic Eisenhower preserved via `mode: eisenhower`. - `MatrixBoard` is now positional internally (top-left…bottom-right); labels are supplied per mode, and rendering is fully shared between the two modes. ## 0.4.0 β€” Eisenhower Matrix - New `gtd-matrix` block: a 2Γ—2 prioritisation grid with labelled axes. - Quadrants from two tags (`urgent-tag`, `important-tag`): Do First / Schedule / Delegate / Eliminate. - Completed to-dos excluded entirely (a prioritisation view, not a tracking view). - Cards reuse the kanban's rendering (compact, recurrence mark, drilldown, `card-detail`). ## 0.3.2 β€” Unscheduled visibility toggles - Added `unscheduled-todos` and `unscheduled-notes` options to `gtd-calendar` (default: `yes` for both; also accepts `true`/`false`, `show`/`hide`). - Lets a dashboard with multiple stacked calendar blocks show each Unscheduled sub-section under only one of them, instead of duplicating the list. ## 0.3.1 β€” Split Unscheduled section - The Unscheduled area now shows two labelled sub-sections β€” **Unscheduled to-dos** (first) and **Unscheduled notes** β€” instead of one mixed list. - A sub-section is omitted entirely when it has no items. ## 0.3.0 β€” Kanban board - New `gtd-kanban` block: three columns (Backlog / In Progress / Done) built from to-dos only. - Bucketing: `todo_completed` wins β†’ Done; else the `in-progress-tag` β†’ In Progress; else β†’ Backlog. - Done column limited to a configurable `done-window` (default 7 days; `all` for full history). - Per-column sort (`due-date` / `title` / `modified-date`); dateless cards sort last under `due-date`. - Compact cards with a configurable detail panel (`card-detail: hover | always | none`). - Read-only. ## 0.2.0 β€” Recurring to-do awareness - Recurring to-dos (as managed by the *Repeating To-Dos* plugin, v2) are marked with a ↻ symbol across every view. - Detected via the `recurring` tag the Repeating To-Dos plugin maintains as its own query index β€” no coupling to its note-body format, no code duplication of its recurrence logic. ## 0.1.0 β€” Initial release - Forked from [WeMakeMachines/joplin-plugin-event-calendar](https://github.com/WeMakeMachines/joplin-plugin-event-calendar). - `gtd-calendar` block populated by real notes and to-dos (instead of hand-written YAML) in the calendar note's folder and, optionally, its descendants (`scope`). - Views: `day`, `week`, `month` (compact tile strip, upstream-style) and `month-grid` (full current-month 7-column grid with weekday headers). - Notes and to-dos opt in via a `gtd` fenced block (empty block valid); to-dos schedule automatically from their Joplin due date. - Unscheduled items (no resolvable date) collect below the grid. - Drilldown: every tile opens its source note. - Fixed an upstream bug where the week view silently grouped by month.