Add first-class Tasks Planner view #118

Closed
opened 2026-05-27 12:39:37 +00:00 by steve · 0 comments
Owner

Add a dedicated planner workspace view that renders the planner buckets from the Tasks runtime as a calm daily workflow surface.

Problem

The current Tasks leaf is a powerful data-table browse surface, and generated Bases provide advanced task views, but there is no calm planning shell that answers what deserves attention now.

Goal

Add a first-class plugin:tasks-planner view opened by a Tasks command, defaulting to Today and rendering Inbox, Today, This Evening, Upcoming, Anytime, Someday, and Logbook without replacing existing task views.

Scope

  • Add a runtime view class and Svelte root component for the planner.
  • Subscribe to TasksPlugin.getTasks() and tasks-changed.
  • Render a left rail for the core planner buckets and counts.
  • Render the selected bucket in a compact, single-column task list.
  • Reuse existing completion toggles, note opening, overflow menu, and detail dialog where practical.
  • Add tasks:open-planner and a visible way to open the planner from the Tasks UI.
  • Add planner-specific CSS through the Tasks package stylesheet artifacts.
  • Add browser e2e coverage for opening the planner and seeing seeded bucket content.

Non-goals

  • No drag-and-drop ordering.
  • No Inbox quick capture or triage beyond actions already available in existing menus.
  • No area/project-section sidebar beyond existing project summaries if cheaply derived.
  • No generated Planner Base.

Acceptance Criteria

  • Tasks: Open Planner opens or reveals a dedicated planner leaf.
  • Opening the planner defaults to Today.
  • The sidebar shows Inbox, Today, Upcoming, Anytime, Someday, and Logbook with counts.
  • Today visually separates This Evening tasks.
  • Upcoming and Logbook group tasks by date.
  • Completion toggles refresh the planner immediately through tasks-changed.
  • Users can open the task note and task detail dialog from planner rows.
  • Existing plugin:tasks data-table view and generated Bases views still work.
  • Planner CSS uses tasks-... selectors and no component-local style blocks.

Implementation Notes

  • Follow the TasksView pattern in src/view/view.ts for view registration and Svelte mounting.
  • Prefer a lightweight planner row over TaskCardRow as the default Today surface, but reuse TaskCardOverflowMenu and TaskDetailDialog.
  • Keep layout dense enough for daily work and avoid creating another table or Kanban board.

Suggested Files or Specs To Inspect

  • packages/plugins/plugin-tasks/src/view/view.ts
  • packages/plugins/plugin-tasks/src/view/view.svelte
  • packages/plugins/plugin-tasks/src/core/plugin.ts
  • packages/plugins/plugin-tasks/src/editor/task-card-overflow-menu.svelte
  • packages/plugins/plugin-tasks/src/editor/task-detail-dialog.svelte
  • packages/plugins/plugin-tasks/src/app.css
  • packages/workspace/e2e/tasks.spec.ts

Validation Commands

  • pnpm --filter @lapis-notes/tasks test
  • pnpm --filter @lapis-notes/tasks check
  • pnpm --filter @lapis-notes/workspace check
  • make spec-lint
  • pnpm test:smoke

Follow-up Tasks

  • TASK-PLUGIN-056
  • TASK-PLUGIN-057
  • TASK-PLUGIN-059

Implementation Summary

Duplicate of #108.

Add a dedicated planner workspace view that renders the planner buckets from the Tasks runtime as a calm daily workflow surface. ## Problem The current Tasks leaf is a powerful data-table browse surface, and generated Bases provide advanced task views, but there is no calm planning shell that answers what deserves attention now. ## Goal Add a first-class `plugin:tasks-planner` view opened by a Tasks command, defaulting to Today and rendering Inbox, Today, This Evening, Upcoming, Anytime, Someday, and Logbook without replacing existing task views. ## Scope - Add a runtime view class and Svelte root component for the planner. - Subscribe to `TasksPlugin.getTasks()` and `tasks-changed`. - Render a left rail for the core planner buckets and counts. - Render the selected bucket in a compact, single-column task list. - Reuse existing completion toggles, note opening, overflow menu, and detail dialog where practical. - Add `tasks:open-planner` and a visible way to open the planner from the Tasks UI. - Add planner-specific CSS through the Tasks package stylesheet artifacts. - Add browser e2e coverage for opening the planner and seeing seeded bucket content. ## Non-goals - No drag-and-drop ordering. - No Inbox quick capture or triage beyond actions already available in existing menus. - No area/project-section sidebar beyond existing project summaries if cheaply derived. - No generated Planner Base. ## Acceptance Criteria - `Tasks: Open Planner` opens or reveals a dedicated planner leaf. - Opening the planner defaults to Today. - The sidebar shows Inbox, Today, Upcoming, Anytime, Someday, and Logbook with counts. - Today visually separates This Evening tasks. - Upcoming and Logbook group tasks by date. - Completion toggles refresh the planner immediately through `tasks-changed`. - Users can open the task note and task detail dialog from planner rows. - Existing `plugin:tasks` data-table view and generated Bases views still work. - Planner CSS uses `tasks-...` selectors and no component-local style blocks. ## Implementation Notes - Follow the `TasksView` pattern in `src/view/view.ts` for view registration and Svelte mounting. - Prefer a lightweight planner row over `TaskCardRow` as the default Today surface, but reuse `TaskCardOverflowMenu` and `TaskDetailDialog`. - Keep layout dense enough for daily work and avoid creating another table or Kanban board. ## Suggested Files or Specs To Inspect - `packages/plugins/plugin-tasks/src/view/view.ts` - `packages/plugins/plugin-tasks/src/view/view.svelte` - `packages/plugins/plugin-tasks/src/core/plugin.ts` - `packages/plugins/plugin-tasks/src/editor/task-card-overflow-menu.svelte` - `packages/plugins/plugin-tasks/src/editor/task-detail-dialog.svelte` - `packages/plugins/plugin-tasks/src/app.css` - `packages/workspace/e2e/tasks.spec.ts` ## Validation Commands - `pnpm --filter @lapis-notes/tasks test` - `pnpm --filter @lapis-notes/tasks check` - `pnpm --filter @lapis-notes/workspace check` - `make spec-lint` - `pnpm test:smoke` ## Follow-up Tasks - TASK-PLUGIN-056 - TASK-PLUGIN-057 - TASK-PLUGIN-059 ## Implementation Summary Duplicate of #108. <!-- backlog:task_id=TASK-PLUGIN-055 source_spec=spec/src/20-packages/plugins/tasks/index.md#things-like-planner-workflow -->
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#118
No description provided.