Releases: sahandps/TaskLoops
Release list
0.3.1
Fixes: the calendar barely showed anything.
Dated tasks were reduced to 4px dots on 39px cells, and the calendar opened on today — usually the one day with nothing on it. So with tasks dated all across the fortnight it still read as an empty grid.
Day, week and month scales, and in all three the tasks themselves are on screen rather than summarised:
- Day — one day, its tasks in full.
- Week — seven day panels, stacked in a sidebar and fanned into columns once the panel is wide enough.
- Month — a grid where each day carries a count badge tinted by the highest priority on it, followed by every dated day of that month with its tasks listed out. The grid says where things are; the list says what they are.
Counts replaced dots because a 15px badge is legible at cell size and a row of 4px circles was not.
Every day is a drop target, at every scale, so rescheduling is a drag. Each day also has a + that creates a task already dated to it. Undated tasks stay listed at the bottom, so there is always something to drag onto the calendar.
The heading steps by whichever scale you are on, and clicking it jumps to today.
See the changelog.
0.3.0
Three layouts, priority, and drag-and-drop everywhere.
The nine bucket tabs are now one GTD button. It names the list on screen and opens a picker with counts for the rest, which frees the row for the two new layouts beside it.
Board — a Kanban column per bucket, cards dragged between them. Columns fill the panel height, so the empty space under the last card is a drop target too. In a sidebar they scroll horizontally; run Open in a main tab from the command palette for the full width, over the same data.
Calendar — a month grid of everything with a date, with priority-tinted dots, overdue days marked, and the selected day's tasks plus an undated list underneath. Dropping a task on a day sets that date, so rescheduling is a drag rather than a trip through a picker.
Priority — P1 high, P2 medium, P3 low, or none, from the chip or the ⋯ menu. P1 and P2 colour the card's left edge so urgency reads without reading the chip. It sorts after any manual order and before recency, so nothing reshuffles until you start using it.
Drag-to-file survived the tab rail collapsing. A strip of bucket targets now appears along the bottom while you drag. It's rendered at all times and only revealed by CSS, because changing the DOM mid-drag cancels the drag — the bug fixed in 0.1.2.
The board and calendar are built on one shared surface rather than reimplementing cards per view, so a card looks and behaves identically in all three layouts, and dropping into Scheduled still asks for a date and Waiting still asks for a name.
Verified at 300px and 720px: no overflow, calendar grid fits, drop rail hidden until a drag begins.
See the changelog.
0.2.1
Fixes: picking a context made the task disappear.
Setting a context forced the task into Next and marked it handled, so it vanished from whatever list you were looking at — out of the Inbox while still unclarified, or off the calendar if it was scheduled.
Attributes no longer re-file a task at all. A context, a date and a person are orthogonal to the filing decision — a delegated task can have a context, a next action can have a date — so setting one leaves the task exactly where it is. The date and waiting-on chips had the same behaviour and lose it too. Buckets now change only through the clarify flow, the ⋯ menu, or a drag, all of which are explicit.
Attributes also survive a re-file now, instead of being cleared whenever the bucket changed, which would have silently undone whatever the chips had just set. Returning a task to the Inbox remains a full reset, since that means it's unclarified again.
See the changelog.
0.2.0
Editing, faster attribute changes, and manual ordering.
Edit a task's text from the panel. Double-click it, or ⋯ → Edit text. Enter saves, Escape cancels, Shift+Enter adds a line break.
This is the one place the plugin rewrites something you wrote, so it's deliberately narrow: only the sentence changes. Indentation, bullet, checkbox, blockquote and heading markers, the tag exactly as you wrote it (#task/work stays #task/work), any block id, and the handled marker are all preserved. The line is re-located by its exact previous text before writing, so an edit made in the note meanwhile can't cause the wrong line to be rewritten. Renaming re-keys the record, so bucket, context, date and project links survive.
Context and waiting-on chips are now clickable, like the date chip already was. Empty ones appear on hover as + context; on touch they're on the ⋯ menu.
Reorder by dragging one task onto another within a list — a line across the card shows where it will land. Order is stored in the plugin's data, so the order of lines in your notes is never touched. Lists you've never reordered keep sorting by most recently filed.
Includes 33 new tests covering the line rewriting, which is the part that could damage a note.
See the changelog.
0.1.2
Fixes drag-and-drop, which never worked reliably.
Starting a drag rebuilt the tab rail one tick later so the buckets that hide when empty would appear — but replacing those elements mid-drag destroys the drop targets under your cursor and cancels the drag. Those buckets are now always rendered and simply hidden, revealed by CSS while a drag is in flight, so nothing in the DOM changes during a drag.
A background re-render (a note changing elsewhere, say) could also destroy the card you were dragging. Renders arriving mid-drag are now deferred until the drag ends.
Also in this release:
truncateno longer needs an ES2019 method, and the TypeScriptlibis raised to ES2022 — the old setting left modern methods resolving asany- The test runner's dynamic imports are typed
scripts/deploy.mjshonoursOBSIDIAN_CONFIG_DIR, for vaults that don't use.obsidian- ESLint now covers the whole repository rather than
src/alone - README documents installing from the community directory
See the changelog.
0.1.1
Compliance and correctness pass against the community directory scorecard. No behaviour changes.
Important: minAppVersion is corrected to 1.7.2. The plugin awaits Workspace.revealLeaf, which is asynchronous only from 1.7.2, so the previous declaration of 1.4.0 was inaccurate.
- Await
revealLeafrather than leaving the promise floating, which is also what guarantees the panel is loaded rather than deferred - Replace the untyped reach into
app.settingwith a narrow declared interface - Style the reset button with Obsidian's destructive class instead of the deprecated
setWarning(), whose replacement would have required 1.13.0 - Drop the
vault.processfallback, unreachable sinceprocess()is available from 1.1.0 - Remove the
builtin-modulesdependency in favour of Node'smodule.builtinModules - Fix a needless regex escape, four redundant type assertions, an unused import, and an async callback passed where a void return was expected
- Add ESLint with
eslint-plugin-obsidianmd, run innpm run buildand in CI
See the changelog.
0.1.0
First release of TaskLoops.
Collects #task lines from anywhere in your vault into a right-sidebar inbox and walks each one through the GTD clarify flow — actionable, the two-minute rule, then next action, project, delegate or schedule.
Projects are tracked as outcomes, and any project with nothing open against it is flagged as stalled. Actions attach to a project by indentation, during clarify, or explicitly.
Also includes quick capture to a single nominated note, drag-and-drop filing, and dates.
Your notes stay the source of truth: the only edit to an existing line is appending *(Handled)* once you sort it, and everything else lives in the plugin's own data file rather than in note properties.
Superseded by 0.1.1, which corrects minAppVersion to 1.7.2.