Releases: charlesbeaumont/pip-timer
Releases · charlesbeaumont/pip-timer
Release list
Pip v1.1.0
First substantive update since v1.0.0. Focus: resilience and polish.
New
- App icon — orange ring + blue dot, visible in Finder, Spotlight, About, and notification banners.
- Sleep recovery — closing the lid no longer ends the active tracker. On wake, if you were gone longer than the idle threshold you get a prompt to stop at sleep time, continue, or stop-and-resume. Shorter sleeps silently resume.
- Crash recovery — if Pip exits without
applicationWillTerminate(kill -9, panic, force quit), the active session and a 10s heartbeat live in UserDefaults. On next launch a notification lets you stop at last-known activity, continue, or discard — no fabricated end times. - Add entry dialog — backfill a session you forgot to track. Calendar popover for date, segmented category, end-time picker, duration in minutes. Tab cycles all fields.
- Cross-process state sync — multiple Pip instances with the same bundle ID stay in sync via DistributedNotificationCenter (reset in one menu bar item, the other reflects within a few ms).
- Reset Timer log — explicit Reset Timer clicks append to a
## Resetssection in the day's markdown, with the elapsed-before-reset baked into each line.
Improvements
- Quieter menu bar — elapsed time renders as
HH:mminstead ofMM:SS/H:MM:SS. No more per-second digit jitter. Solo dot (not tracking) shrunk from 14pt to 9pt; ring + inner dot composition unchanged. - Totals submenu — Week and Month lines now read "This week (incl. today): …" so the relationship between Today and the aggregate is obvious.
- Storage — output directory writes files directly inside the chosen folder (no
Daily/TimeTracking/subdirectory). When no folder is configured, tracking still works in-memory but nothing is written to disk. - Break-threshold poll — IdleWatcher polls every 5s instead of 30s, so the threshold crossing is reliably detected.
- Standup resets on return from break, not just on entering. After a long absence (e.g. an overnight where the Mac stayed awake), the ring reads 00:00 the moment you come back — not gap-minus-threshold.
- Standup hygiene on launch — if the persisted
startTimeis older than the break threshold (e.g. Pip was quit overnight), it resets on launch instead of showing 14h elapsed. - Idle notification — re-requests authorization when status is
notDetermined(works around launch-time auth requests being silently dropped on ad-hoc-signed apps).
Fixes
- App icon now appears on notification banners (asset catalog instead of bare
.icns). - Bundle ID renamed from
io.theydo.charles.Piptocom.charlesbeaumont.Pipfor the OSS repo. - Universal binary (arm64 + x86_64) — releases now run on Intel Macs too.
Install / Upgrade
- Download
Pip-v1.1.0.zipfrom this release. - Quit any running Pip.
- Unzip and drag
Pip.appinto/Applications, replacing the existing copy. - Right-click → Open the first time (ad-hoc signed). Notification permission carries over from the previous bundle ID install.
Pip v1.0.0
First release. A macOS menu-bar standup signal + four-mode time tracker. Lives entirely in the menu bar — no Dock icon, no notifications other than the idle prompt. macOS 13+. Ad-hoc signed: right-click → Open the first time.