Commit Graph

5 Commits

Author SHA1 Message Date
Leopere 8dbb0a380a
Check same SHA first for up-to-date; run build-test then push
- 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>
2026-02-08 16:07:38 -05:00
Leopere 65114fc265
Fix update logic: SHA+timestamp from git over HTTPS, persist after swap
- 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>
2026-02-08 16:04:56 -05:00
Leopere 9746499231
Skip auto-update for dev builds
`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>
2026-02-08 15:51:09 -05:00
Leopere c14ab51724
Fix auto-updater to safely swap app while running
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>
2026-02-08 15:48:56 -05:00
Leopere 129e839f8d
Add SHA256-based auto-update mechanism
- New `make release` target generates Pommedoro.dmg.sha256 alongside the DMG
- AutoUpdater.swift checks the remote SHA256 against the local stamp on launch
  and prompts the user to update when a mismatch is detected
- install.command stamps the SHA256 of the source DMG at install time
- "Check for Updates…" menu item (Cmd+U) for manual checks
- Fix break screen close buttons to resume instead of showing work log
- Migrate worklog.log storage to ~/Library/Application Support/Pommedoro/

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 15:42:48 -05:00