16 Commits

Author SHA1 Message Date
1f0679568b Add notebook exclusions for v2.1.0 2026-08-08 14:04:55 -04:00
ca0518fbff Release v2.0.0 with editable Eisenhower matrices 2026-07-31 14:48:55 -04:00
c89b90839f SLICE14 opt-in kanban drag and drop 2026-07-31 14:09:40 -04:00
7a02834bec Release-v1.0.0 2026-07-28 12:11:09 -04:00
6d645085a6 SLICE11-done-tag-completion 2026-07-28 11:23:22 -04:00
f4483ef496 SLICE10-child-notebook-kanban-and-matrix-views 2026-07-28 09:38:55 -04:00
d0ed2c4769 Include opted-in notes in kanban and matrix views 2026-07-27 18:23:05 -04:00
cb656b2df8 Add configurable kanban and matrix card limits 2026-07-27 16:55:23 -04:00
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
Victor Wiebe
6bb3227574 v0.5.0: the Skeleton Matrix (mode option on gtd-matrix)
- New default mode 'skeleton': rows = active (in-progress tag, shared
  with the kanban); columns = due soon (due date within urgent-window
  days, overdue included, or the urgent tag as manual override)
- Quadrants: Do Next / Scheduled / On Deck / Backlog — no 'Eliminate';
  a committed vault needs when-and-what's-moving, not triage
- in-progress + urgent + dateless -> Do Next (urgent is the override)
- Dateless active work -> Scheduled; completed to-dos still excluded
- mode: eisenhower preserves the classic (urgent/important tags)
- MatrixBoard now positional (topLeft..bottomRight); per-mode labels
  travel in the payload; rendering fully shared between modes
- New options: mode, in-progress-tag, urgent-window (default 3)
- Version 0.5.0; 8 new tests (88 total); README + SPEC updated
2026-07-03 10:09:36 -04:00
Victor Wiebe
4cb6700a20 v0.4.0: Eisenhower Matrix (gtd-matrix block)
- 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
2026-07-03 09:45:47 -04:00
Victor Wiebe
1cc6f184f0 v0.3.2: per-type Unscheduled visibility toggles
- New gtd-calendar options unscheduled-todos and unscheduled-notes
  (default yes), independently showing/hiding each Unscheduled
  sub-section. Accepts yes/no, true/false, show/hide.
- Solves duplicate Unscheduled lists when two calendars share a note:
  e.g. show unscheduled to-dos under the week strip, unscheduled notes
  under the month grid.
- Permissive parseBoolean helper; invalid values warn and default to yes.
- Threaded through payload; webview gates each sub-section on its flag
  (empty OR toggled-off both omit cleanly).
- Version 0.3.2; 4 new tests (69 total); README updated.
2026-06-13 10:45:36 -04:00
Victor Wiebe
d3c0f0ee7f v0.3.0: read-only kanban board (gtd-kanban block)
- New gtd-kanban block renders a three-column board from to-dos:
  Backlog / In Progress / Done. Notes excluded; to-dos only.
- Bucketing: Done wins (todo_completed), else in-progress tag, else
  Backlog. in-progress tag name configurable (IN_PROGRESS_TAG constant,
  in-progress-tag: option).
- Backlog shows all uncompleted untagged to-dos; Done filtered to a
  configurable done-window (default 7 days; 'all' for full history).
- Per-column sort: due-date (default; dateless last) | title |
  modified-date, asc/desc.
- Compact cards with configurable detail panel (hover/always/none),
  recurrence ↻, click-to-open drilldown. Empty columns still shown.
- Reuses the calendar data layer: scope resolution, inclusion, the
  getNoteTagTitles tag fetch from v0.2.0, gtd block parsing.
- markdown-it renderer now handles both gtd-calendar and gtd-kanban
  fences (data-block-type); webview branches getEvents/getKanban.
- SPEC sort-type vocabulary noted for cross-block consistency
  (modified_date accepted as alias).
- Version 0.3.0; 32 new tests (65 total). Read-only — drag-and-drop
  write-back is v0.4.0.
2026-06-13 10:23:49 -04:00
Victor Wiebe
cdb5ad022c v0.2.0: mark recurring to-dos with a recurrence symbol
- Detect recurrence via the 'recurring' tag maintained by the Repeating
  To-Dos plugin (v2 stores recurrence in userData, not the note body, so
  tag-presence is the correct signal — not body scanning)
- DataAdapter gains getNoteTagTitles; lookup runs for to-dos only (notes
  can't recur), keeping extra API calls minimal
- GtdEvent.isRecurring threaded through collector and payload
- Webview shows ↻ to the right of any icon/glyph across all views:
  strip tiles, hover-card rows, month-grid chips, unscheduled chips
- RECURRING_TAG constant leaves room for a future configurable tag name
- README documents the pairing; SPEC roadmap marks Option A shipped
- Version bumped to 0.2.0; 2 new tests (49 total)
2026-06-13 09:49:20 -04:00
Victor Wiebe
360e246262 Add view: month-grid — full current month, 7-column layout
- 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)
2026-06-12 18:38:10 -04:00
Victor Wiebe
fc1b2fcabf Phase 2: real data layer — folder scope, gtd blocks, inclusion matrix
- src/Gtd/: pure, unit-tested modules
  - parseCalendarConfig: SPEC defaults + warnings for invalid options
  - folderScope: BFS scope resolution (this-folder / children / depth N)
  - gtdBlock: extract + YAML-parse the first ```gtd fence (empty block
    is a valid opt-in; malformed YAML opts in with a surfaced warning)
  - resolveDate: gtd date (iso + mm-dd-yyyy) overrides todo_due; nothing
    resolvable -> unscheduled (null date)
  - collectEvents: orchestrates scope -> fetch -> inclusion matrix ->
    date resolution -> sort; always excludes the calendar note
- index.ts: JoplinDataAdapter with pagination; getEvents now returns real
  events plus warnings and scan stats
- Webview debug view shows real data: counts, warnings, colours, icons,
  strikethrough for completed todos, tooltip from text:
- 24 new unit tests (33 total)
2026-06-12 18:37:47 -04:00