Add generated Planner Base companion #125

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

Add a generated Planner Base template that exposes planner semantics as queryable Bases views without replacing the dedicated planner workflow.

Problem

The dedicated planner view should be the daily workflow surface, but users also need Bases-compatible views for querying, sharing, and customizing planner buckets alongside existing Task List, Kanban, Fizzy, Fizzy Calendar, and Mini Calendar templates.

Goal

Generate and open a Planner.base companion with views matching planner buckets as closely as Bases can express.

Scope

  • Extend TaskBaseTemplateId and TASK_BASE_TEMPLATES with a Planner template.
  • Include Inbox, Today, Upcoming, Anytime, Someday, Logbook, and Deadlines views.
  • Add display properties for planner metadata fields that exist by then.
  • Add a command and Tasks view dropdown entry for opening the generated Planner Base.
  • Register a custom Bases renderer only if the stock/query representation cannot express the needed planner views.
  • Add tests or e2e coverage for generating/opening the Planner Base.

Non-goals

  • Do not make Bases the primary planner UI.
  • No manual ordering in Bases unless TASK-PLUGIN-059 metadata can be represented safely.
  • No full calendar-provider integration.

Acceptance Criteria

  • Tasks: Open Planner Base or equivalent creates TaskNotes/Views/Planner.base under the managed views folder.
  • Generated views reflect the same documented planner semantics as the dedicated planner where possible.
  • Existing generated Task List, Kanban, Fizzy, Fizzy Calendar, and Mini Calendar templates remain unchanged except for shared helper updates.
  • Open planner Bases views refresh when Tasks emits tasks-changed if a custom renderer is added.
  • Spec documents that the generated Base is a companion query surface.

Implementation Notes

  • Start with template-only generation before adding a custom renderer.
  • Reuse noteFieldId(), buildProperties(), and existing task identification filters from bases/templates.ts.
  • Be explicit about limitations where Bases cannot express derived planner logic without custom formulas/renderers.

Suggested Files or Specs To Inspect

  • packages/plugins/plugin-tasks/src/bases/templates.ts
  • packages/plugins/plugin-tasks/src/bases/views.ts
  • packages/plugins/plugin-tasks/src/bases/view-base.svelte.ts
  • packages/plugins/plugin-tasks/src/core/plugin.ts
  • packages/plugins/plugin-tasks/src/view/components/tasks-data-table-header-actions.svelte
  • 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-063

Implementation Summary

Duplicate of #115.

Add a generated Planner Base template that exposes planner semantics as queryable Bases views without replacing the dedicated planner workflow. ## Problem The dedicated planner view should be the daily workflow surface, but users also need Bases-compatible views for querying, sharing, and customizing planner buckets alongside existing Task List, Kanban, Fizzy, Fizzy Calendar, and Mini Calendar templates. ## Goal Generate and open a `Planner.base` companion with views matching planner buckets as closely as Bases can express. ## Scope - Extend `TaskBaseTemplateId` and `TASK_BASE_TEMPLATES` with a Planner template. - Include Inbox, Today, Upcoming, Anytime, Someday, Logbook, and Deadlines views. - Add display properties for planner metadata fields that exist by then. - Add a command and Tasks view dropdown entry for opening the generated Planner Base. - Register a custom Bases renderer only if the stock/query representation cannot express the needed planner views. - Add tests or e2e coverage for generating/opening the Planner Base. ## Non-goals - Do not make Bases the primary planner UI. - No manual ordering in Bases unless TASK-PLUGIN-059 metadata can be represented safely. - No full calendar-provider integration. ## Acceptance Criteria - `Tasks: Open Planner Base` or equivalent creates `TaskNotes/Views/Planner.base` under the managed views folder. - Generated views reflect the same documented planner semantics as the dedicated planner where possible. - Existing generated Task List, Kanban, Fizzy, Fizzy Calendar, and Mini Calendar templates remain unchanged except for shared helper updates. - Open planner Bases views refresh when Tasks emits `tasks-changed` if a custom renderer is added. - Spec documents that the generated Base is a companion query surface. ## Implementation Notes - Start with template-only generation before adding a custom renderer. - Reuse `noteFieldId()`, `buildProperties()`, and existing task identification filters from `bases/templates.ts`. - Be explicit about limitations where Bases cannot express derived planner logic without custom formulas/renderers. ## Suggested Files or Specs To Inspect - `packages/plugins/plugin-tasks/src/bases/templates.ts` - `packages/plugins/plugin-tasks/src/bases/views.ts` - `packages/plugins/plugin-tasks/src/bases/view-base.svelte.ts` - `packages/plugins/plugin-tasks/src/core/plugin.ts` - `packages/plugins/plugin-tasks/src/view/components/tasks-data-table-header-actions.svelte` - `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-063 ## Implementation Summary Duplicate of #115. <!-- backlog:task_id=TASK-PLUGIN-062 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#125
No description provided.