Commit Graph

20 Commits

Author SHA1 Message Date
Leopere fa34565417
Release: 82f2ca5e306c2bf6ae1edc0f073a91214fcdab707dfee0e60d8fbca2e1a99ecd 2026-02-10 13:58:46 -05:00
Leopere cb795dbcc2
Release: 49b1eddea5bc0eee4ebbc7429b55359909ef1903a8c64db779be64e2226e2519 2026-02-10 13:32:50 -05:00
Leopere 851b96febf
Release: aa94e056aafcd2bf3a7601dbbf8054bd04be9f04426dfd03da98ace76cbaea9e 2026-02-10 13:31:19 -05:00
Leopere 4f900f1ea4
Release: 674ca5f9d765089eacb0b61bfc546ba1146e3e8a0f5380ba4f66ad6ac2bd5ed8
Harden SHA normalization in AutoUpdater and install.command.
Add redeploy-local.sh convenience script and update README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 16:53:40 -05:00
Leopere b952568441
Release: 4133c79557d5991f1a7fef19852a22cabf8b42c5f21496b20ba2ac8886e6315b 2026-02-08 16:38:03 -05:00
Leopere 3af2c79326
Update README and build-test script
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 16:25:34 -05:00
Leopere 49287c15eb
Release: ba75bfcc7821b963c6744317e8b0f15b6c96da66d43a686b269f6f6ec2d1a8e4 2026-02-08 16:25:28 -05:00
Leopere 544f6fdaf8
Release: d5220113e26bafb217b2c00346d7bdc5168b45e000031fe7a3e5953e60df674b 2026-02-08 16:09:23 -05:00
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 7eac0ad717
Update release artifacts to match latest build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 15:57:36 -05:00
Leopere 4fc7ad2db6
Update release artifacts to match latest build
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 15:54:30 -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 5f970abc0c
Update build-test.sh to verify release SHA256 and local stamp
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 15:46:24 -05:00
Leopere 1c68b0b8e7
Add release artifacts with SHA256 for auto-update
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 15:44:29 -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
Leopere 0d2ef2eedc
Add work log, pause/resume UX, countdown schedule, timer persistence, suggestion improvements, and ad-hoc code signing
- Work log with CSV persistence and SwiftUI history view
- Pause/resume support with timer state persistence across app restarts
- Countdown pulse schedule: 5→3min at 1/min, 3→1min every 30s
- Intent pre-fill from suggestions with improved suggestion matching
- Overlay window and break screen refinements
- Ad-hoc code signing with runtime hardening and entitlements
- DMG includes Install.command that strips quarantine on install
- README install instructions for non-technical users with Gatekeeper workaround
- build-test.sh simulates download quarantine to verify fix
- CHANGELOG and README updates

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 18:06:10 -05:00
Leopere b170202033
Initial release of Pommedoro
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 16:27:21 -05:00
Leopere cc23058b1d
Initial release of Pommedoro
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>
2026-02-06 16:27:21 -05:00