Why:
- Fix unhandled promises (void-prefixed calls in event listeners, setTimeout
callbacks, and sync handlers).
- Replace async-without-await signatures (loadTasks, onunload, onClose,
countTasksInBucket) with sync equivalents.
- Narrow nullish-coalesce stringify of keyof TaskItem to exclude TFile /
objects from "[object Object]" stringification.
- Replace innerHTML with DOM API in the empty-state renderer.
- Replace createEl("h2", ...) with setHeading() via Setting API for
settings sections.
- Move inline element.style.* assignments into styles.css classes.
- Use FileManager.trashFile() instead of Vault.delete() for stub cleanup.
- UI strings use sentence case ("Open tasks", "New bucket", "Secondary
grouping", "Getting started").
- Remove unused imports/bindings (BucketGroup, TaskRowCallbacks,
BucketConfig, originalOnComplete).
Co-authored-by: Isaac
- Wire toggleDoneWithSync: checking task on board now checks source note
- Add right-click/long-press context menu with "Move to..." bucket list
- Warn when changing bucket property in settings
- Handle stub filename collisions with random suffix
- Document #task position and multiple wikilink behavior
Co-authored-by: Isaac
Board and Focus view modes with customizable buckets, secondary
grouping by any frontmatter property, inline #task tracking from
notes with bidirectional sync, drag-and-drop, completion animations,
ARIA accessibility, and mobile-friendly touch targets.
Co-authored-by: Isaac