P8.3: update CHANGELOG and ROADMAP for 0.9.0 release

CHANGELOG:
- Expand 0.9.0 entry to cover all pre-release work: JSON storage
  migration, exit-code removal, PySentry legacy cleanup, queue execution
  modes/overlap policies, failure notifications, Command browse button,
  developer docs split, icons, tray left-click, Fyne 2.7.4 upgrade.

ROADMAP:
- Remove resolved "Linux test build broken" item (fixed in P7.1).
- Note that app/run.go was created to split dispatch logic.
- Mark "Tray Interaction" section as resolved in 0.9.0; document the
  SetSystemTrayWindow implementation and re-measured startup time
  improvement (−36%).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
mixeme
2026-06-24 00:30:34 +03:00
parent 2e54d088bf
commit dafd8ef345
3 changed files with 67 additions and 43 deletions
+52 -7
View File
@@ -2,15 +2,60 @@
All notable GoSentry changes are recorded in this file.
## 0.9.0 - 2026-06-23
## 0.9.0 - 2026-06-24
**Transparent per-platform icons; tray left-click to show window; Fyne 2.7.4.**
**Storage migrated to JSON; queue execution modes; failure notifications; tray left-click; Fyne 2.7.4.**
- Regenerated all icon assets with feathered color-to-alpha so the rounded-tile boundary is transparent — the opaque white halo visible on dark taskbars and trays is gone.
- Rebuilt `gosentry.ico` as a multi-size file (16 hand-tuned + 32/48/256 from the large PNG) and added a dedicated 16×16 `gosentry-icon-16x16.ico` for the Windows tray.
- Per-platform icon wiring: Windows window/taskbar uses the ICO resource so GLFW selects the right frame per slot (no `a.SetIcon` override); Windows tray uses the 16×16 ICO; Linux titlebar uses `IconSmall()` for a crisp ~16 px `_NET_WM_ICON`.
- Left-clicking the tray icon now shows and focuses the main window (`SetSystemTrayWindow`) without opening the menu; the explicit "Show" menu item is preserved for right-click access.
- Upgraded Fyne 2.6.3 → 2.7.4 (systray 1.11.0 → 1.12.1): startup time drops from ~644 ms to ~414 ms (36%).
**Storage and data model:**
- Settings and jobs now stored as `gosentry.json` and `jobs.json` (2-space indented JSON).
On first run after upgrading, existing `gosentry.yaml` / `jobs.yaml` files are imported
automatically and rewritten as JSON; the YAML files are not deleted.
- Removed `SuccessExitCodes` field. Exit-code handling is now fixed: exit code 0 = success,
any nonzero exit code = failure. Jobs relying on nonzero success codes must switch to
`StartOnly` mode if the exit code is irrelevant.
**Execution modes and overlap policies:**
- Added `ExecutionMode` (parallel/sequential) and `OverlapPolicy` (skip/queue) settings in
Settings under a new Queue group.
- **Parallel mode** (default): all due jobs start simultaneously.
- **Sequential mode**: due jobs run one at a time, in order.
- **Skip policy** (default): if a job comes due while its previous run is still active, the new
run is discarded.
- **Queue policy**: if a job comes due while running, the run is held and automatically started
when the current run completes.
- Both settings are persisted to `gosentry.json` and validated on load; defaults ensure
backward compatibility.
**Notifications and command input:**
- Failed job runs now raise a desktop notification (when enabled in Settings) with the job name
and failure detail. Notifications fire for scheduled and manual runs; internal activity events
are not notified.
- Added a Browse button next to the Command field in the job dialog for file picker selection.
**UI and platform integration:**
- Removed all PySentry legacy code: registry autostart entries (Windows), systemd and desktop
file cleanup (Linux).
- Updated `.gitignore` and `.dockerignore` to track `gosentry.json` / `jobs.json` instead of
legacy YAML filenames; added `*.yaml` wildcard to ignore legacy files during import.
- Moved developer documentation (Requirements, Build, Run From Source, Project Layout, Dependencies)
out of README into `docs/DEVELOPMENT.md`. README now focuses on end-user content.
**Icons and tray:**
- Regenerated all icon assets with feathered color-to-alpha so the rounded-tile boundary is
transparent — the opaque white halo visible on dark taskbars and trays is gone.
- Rebuilt `gosentry.ico` as a multi-size file (16 hand-tuned + 32/48/256 from the large PNG)
and added a dedicated 16×16 icon for the Windows tray.
- Per-platform icon wiring: Windows window/taskbar uses the ICO resource so GLFW selects the
right frame per slot; Windows tray uses the 16×16 ICO; Linux titlebar uses `IconSmall()` for
a crisp ~16 px `_NET_WM_ICON`.
- Left-clicking the tray icon now shows and focuses the main window without opening the menu;
the explicit "Show" menu item is preserved for right-click access.
**Performance:**
- Upgraded Fyne 2.6.3 → 2.7.4 (systray 1.11.0 → 1.12.1): startup time drops from ~644 ms to
~414 ms (36%).
- Moved Windows-only runner tests into `runner_windows_test.go` (guarded by `//go:build windows`)
to fix Linux test build.
## 0.8.0 - 2026-06-23