102 lines
7.7 KiB
Markdown
Raw 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.
## Unreleased — 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.
## Unreleased — 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.
Notes never enter Done and never display completion or 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 always inspect in-scope note bodies to discover explicit
note opt-in; 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.
## Unreleased — 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: <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.