Add planner bucket model and when metadata for Tasks #107
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#107
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Add the pure planner projection model and the minimal
whenmetadata needed to classify existing markdown-backed tasks into planner buckets.Problem
The Tasks plugin has rich task-note metadata, but it does not yet expose the calm Things-like planner buckets described in the Tasks spec. There is no
whenfield for explicit Today, This Evening, or Someday placement, and no framework-independent planner classification logic for tests or future UI.Goal
Introduce a tested planner domain model that can classify
StoredTaskentries into Inbox, Today, This Evening, Upcoming, Anytime, Someday, and Logbook without changing existing task views.Scope
packages/plugins/plugin-tasks/src/planner/planner-model.tsmodule.whenas a mapped frontmatter role with default keywhen.when: today | this-evening | somedayonStoredTask.Non-goals
Acceptance Criteria
buildPlannerSnapshot()returns all required planner buckets from aStoredTask[]input.scheduledDatetoday classifies as Today; future scheduled dates classify as Upcoming.dueDatealone does not classify a task as Today unless an explicit option enables that behavior.when=somedayparks the task in Someday even when other active metadata exists.when=this-eveningclassifies separately from Today and can still coexist with today's scheduled date.whenvalues deliberately.Implementation Notes
@lapis-notes/apiso Vitest can run it cheaply.TaskFieldMapping,DEFAULT_TASKS_FIELD_MAPPING,mergeTasksSettings(),cloneTasksSettings(), and related settings tests.parseTaskNote()andcreateTaskNoteDraft()only as needed; ordinary task creation should not writewhenunless explicitly requested.Suggested Files or Specs To Inspect
packages/plugins/plugin-tasks/src/core/model.tspackages/plugins/plugin-tasks/src/core/settings.tspackages/plugins/plugin-tasks/src/core/model.test.tspackages/plugins/plugin-tasks/src/core/settings.test.tspackages/plugins/plugin-tasks/src/tasknotes/conformance.test.tsspec/src/20-packages/plugins/tasks/index.mdpackages/plugins/plugin-tasks/spec.mdValidation Commands
pnpm --filter @lapis-notes/tasks testpnpm --filter @lapis-notes/tasks checkmake spec-lintpnpm test:smokeFollow-up Tasks
Implementation Summary
Implemented the planner bucket model, mapped when metadata, and task parsing for Inbox, Today, Upcoming, Anytime, Someday, and Logbook classification.