- Updater: treat same SHA as up to date before comparing timestamps so
local install matches remote after push.
- Release artifacts from build-test.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Fetch SHA and Last-Modified from repo over HTTPS (no login); use timestamp
so 'update' only when server is newer, not just different.
- Local state: two-line file (SHA + Unix timestamp); script writes state
after successful swap so it stays correct.
- install.command: fetch remote via HTTPS, stamp SHA+timestamp (or 0 if
install not matching remote).
- build-test: verify first line of state file matches release SHA.
Co-authored-by: Cursor <cursoragent@cursor.com>
`make install` now stamps "dev" as the local SHA256, which tells the
auto-updater to skip update checks entirely. DMG-based installs
continue to work normally with real SHA256 comparison. Clicking
"Check for Updates" on a dev build shows a clear "Dev Build" message
instead of prompting to downgrade.
Co-authored-by: Cursor <cursoragent@cursor.com>
Instead of replacing /Applications/Pommedoro.app in-place while the
process is still running, the updater now stages the new .app to a
temp directory, spawns a background shell script that waits for the
current process to exit, then swaps the app and relaunches. This
ensures applicationWillTerminate fires to save timer state and avoids
corrupting the running binary.
Co-authored-by: Cursor <cursoragent@cursor.com>
A macOS Pomodoro timer built on the thesis that transitions — not hard
cuts — are the only way breaks actually happen. Includes escalating
edge gradients, actionable wellness suggestions, self-reflection, and
a compiled DMG. Licensed CC BY 4.0.
Co-authored-by: Cursor <cursoragent@cursor.com>