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>
- New gtd-matrix block: 2x2 prioritisation grid with axis headers
(Urgent / Not urgent x Important / Not important)
- Quadrants from two configurable tags (urgent-tag default 'urgent',
important-tag default 'important'): both -> Do First; important ->
Schedule; urgent -> Delegate; neither -> Eliminate (default bucket)
- Completed to-dos excluded entirely (prioritisation view, not tracking;
kanban Done is where completions live); to-dos only; matrix note
excluded; warns when both axis tags are identical
- Same scope/todos/sort-type/sort/card-detail options as kanban; cards
reuse kanban rendering (compact, recurrence mark, drilldown)
- Quadrant colour accents: red Do First, blue Schedule, amber Delegate,
grey Eliminate
- SPEC roadmap restructured: matrix shipped as v0.4.0 (views axis);
drag-and-drop + create-from-view clustered as the v0.5.0+ authoring
epic with multi-board refresh and trigger/target questions recorded
- Version 0.4.0; 11 new tests (80 total); README documented
- The Unscheduled section now shows two labeled sub-sections —
'Unscheduled to-dos' (first) then 'Unscheduled notes' — so actionable
items stay visually separate from reference notes.
- A sub-section is omitted entirely when empty (no lonely '(0)' headers).
- Webview-only change (uses the existing isTodo flag); data layer and
tests unchanged.
- Version 0.3.1; README updated.
- groupEvents: buildMonthGrid covers the entire current calendar month
padded to full weeks; adjacent-month padding days are flagged (dimmed)
but can still hold events; events outside the window are counted
- Localised short weekday names as column headers; month/year label
- Webview renders a CSS grid: day cells with date number, today border
highlight, clickable event chips (colour, icon/glyph, strikethrough,
ellipsis overflow)
- Config accepts view: month-grid (alias: grid)
- SPEC.md updated; 5 new tests (47 total)
- src/Gtd/groupEvents.ts: render-ready day/week/month grouping mirroring
upstream semantics (empty groups across the span, month-coloured tiles,
primary labels on month/year boundaries, current-period flag). Divergence:
the span always includes today so the highlight is visible.
- Grouping runs in the main process; payload now carries calendar.groups +
calendar.unscheduled. Webview is a pure DOM builder.
- Webview rebuilds upstream's .event-calendar / .group / .hover-card
structure so existing CSS applies: tile per period, first event's
icon/2-chars (+N for multiples), bg/fg colours, hover card listing
events with type glyphs and strikethrough for completed todos.
- Drilldown: single-event tiles open the note directly; hover-card rows
and Unscheduled chips are individually clickable.
- Stable pastel from note-id hash replaces upstream's per-render random
colour for events without bg-colour.
- Unscheduled section: chip list below the grid (the GTD bucket).
- 9 new grouping tests (42 total)
- New markdown-it content script intercepts ```gtd-calendar fences and
emits a placeholder div (config URI-encoded in a data attribute)
- New webview asset (gtd-calendar-webview.js) finds placeholders, requests
data via webviewApi.postMessage, renders a debug view, and wires
click-to-open drilldown (openNote command)
- index.ts registers the content script and handles getEvents/openNote;
getEvents parses the YAML config for real but returns hardcoded events,
including one pointing at the current note to prove drilldown
- Old event-calendar content script removed; Calendar/ classes retained
for reuse in Phase 3
- Fork CSS section appended (placeholder, error, debug styles)