- 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)