Skip to content

1.2.1

Choose a tag to compare

@parhamf6 parhamf6 released this 01 Sep 15:56
· 4 commits to main since this release

Tempo 1.2.1

Release focused on making Tempo lighter on your CPU and more robust in edge cases: timers tick with plain arithmetic instead of heavyweight date objects, the running clock no longer animates continuously, large tables render in a single pass, and dragging is smoother and works in popped-out windows.

What's new in 1.2.1

  • Much lower CPU while a timer runs. The per-second tick used to construct moment.js duration objects for every displayed time just to format text like 1h 5m 12s. The formatting now uses plain integer math — the same output, without the allocation churn — and the pulsing animation on the running-timer icon is gone, so the page can go idle between ticks. This is the change most responsible for the lower CPU use you'll see on any note with a running tracker.

  • Faster table rendering. The tracker table used to re-scan the whole entry tree for every row (and every drag move) to answer "is this row running?" and "who are its siblings?". The table is now built in a single pass, with the running entry, its ancestor path, and each row's sibling list resolved once and passed down the recursion — O(n) total instead of O(n²).

  • Cached name rendering. Segment names are sent through Obsidian's markdown engine only when they actually contain markdown syntax. Plain names keep their text as-is, and names that do need rendering are cached and re-cloned on rebuild, so editing a tracker no longer re-renders every segment name.

  • Smoother drag reordering. Dragging used to ask the browser for a fresh layout read on every mouse move to find the insertion point. Sibling positions are now snapshotted once when the drag starts (and refreshed on scroll/resize), so dragging stays smooth even on wide tables. A regression that left the insertion line stuck on the last boundary was also fixed.

  • Popped-out window fixes. Drag styling and the Escape-to-cancel shortcut now use the row's own window instead of the main one, so both work correctly when a note is opened in a pop-out pane. The debounced save timer for collapse/expand toggles was made pop-out safe as well.

Install

Community

You can install the plugin from obsidian plugin store
Obsidian Community

BRAT

Install BRAT, open the command palette and run "BRAT: Add a beta plugin for testing", then enter:

https://github.com/parhamf6/Tempo

Manual

Download main.js, manifest.json, and styles.css from the latest release and place them in:

/.obsidian/plugins/tempo/

Then enable "Tempo" in Settings → Community plugins.


Tempo builds on Ellpeck's Simple Time Tracker (MIT). Thanks, Ellpeck.