Victor Wiebe 187fd34531 v0.7.0: Gantt chart, notebook targeting & profile-wide scope
Single release covering two feature groups (CHANGELOG 0.7.0 + 0.6.0):

- gtd-gantt block: project-grouped timeline of bars (notes with begin/end
  dates) and milestones (to-dos on their due date); dual-role fence,
  swimlanes, month tick header, today line, read-only.
- notebook: targeting across all four view blocks; scope: all for
  profile-wide scans with size guardrails; note body fetched only when the
  inclusion mode actually needs the gtd block.

jest 140/140.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 12:11:45 -04:00

5.4 KiB
Raw Blame History

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.

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: <project> 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, endbegin, 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.
  • 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.