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

67 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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, `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.