chore: release 0.11.2 with window persistence, appID update, and doc fixes
- Persist window size on quit/close and restore it on next launch - Update appID from ru.mixdep.gosentry.desktop to ru.mixeme.gosentry.desktop - Use markdown headers for Build sections in DEVELOPMENT.md - Remove stale go.yaml.in/yaml/v4 dependency from DEVELOPMENT.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,31 @@
|
|||||||
|
|
||||||
All notable GoSentry changes are recorded in this file.
|
All notable GoSentry changes are recorded in this file.
|
||||||
|
|
||||||
|
## 0.11.2 - 2026-06-25
|
||||||
|
|
||||||
|
**Window state persistence, History sort fix, clearer scheduler toggle, and an
|
||||||
|
appID update.**
|
||||||
|
|
||||||
|
**Application:**
|
||||||
|
- The window size (width and height) is now persisted in preferences and
|
||||||
|
restored on next launch. When the user closes the window (via Quit menu or
|
||||||
|
window close button), the current dimensions are saved and will be applied
|
||||||
|
when the application starts again. Defaults to 1024×660 if no saved size exists.
|
||||||
|
- Updated appID from `ru.mixdep.gosentry.desktop` to `ru.mixeme.gosentry.desktop`
|
||||||
|
for consistency with the new domain name.
|
||||||
|
|
||||||
|
**History tab:**
|
||||||
|
- Fixed the Time column sort toggle, which stopped working after Fyne 2.7.4 began
|
||||||
|
rejecting header-cell selections. The plain header label is replaced with a
|
||||||
|
custom tappable header widget that handles the click directly.
|
||||||
|
- The sort direction is now shown with ▲/▼ glyphs instead of the "asc"/"desc"
|
||||||
|
text.
|
||||||
|
|
||||||
|
**Jobs list:**
|
||||||
|
- Renamed the global scheduler toggle from "Pause all"/"Resume all" to
|
||||||
|
"Disable auto"/"Enable auto", and swapped the stop icon for a pause icon, to
|
||||||
|
make clear that it only stops automatic scheduled runs.
|
||||||
|
|
||||||
## 0.11.1 - 2026-06-25
|
## 0.11.1 - 2026-06-25
|
||||||
|
|
||||||
**Settings tab refinements: even spacing, full labels, and a smarter Save button.**
|
**Settings tab refinements: even spacing, full labels, and a smarter Save button.**
|
||||||
|
|||||||
+4
-6
@@ -48,7 +48,7 @@ sudo apt install golang gcc libgl1-mesa-dev xorg-dev
|
|||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
Windows:
|
### Windows
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
# Builds dist\windows\gosentry-<version>-windows-amd64.exe. The script changes
|
# Builds dist\windows\gosentry-<version>-windows-amd64.exe. The script changes
|
||||||
@@ -67,7 +67,7 @@ The binary is written to:
|
|||||||
dist\windows\gosentry-0.9.0-windows-amd64.exe
|
dist\windows\gosentry-0.9.0-windows-amd64.exe
|
||||||
```
|
```
|
||||||
|
|
||||||
Linux:
|
### Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Make the helper executable once, then build a linux/amd64 Fyne binary.
|
# Make the helper executable once, then build a linux/amd64 Fyne binary.
|
||||||
@@ -81,7 +81,7 @@ The binary is written to:
|
|||||||
dist/linux/gosentry-0.9.0-linux-amd64
|
dist/linux/gosentry-0.9.0-linux-amd64
|
||||||
```
|
```
|
||||||
|
|
||||||
Linux using Docker:
|
### Linux using Docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Builds the Linux binary inside Docker using the versioned image tag
|
# Builds the Linux binary inside Docker using the versioned image tag
|
||||||
@@ -97,7 +97,7 @@ The binary is copied to:
|
|||||||
dist/linux/gosentry-0.9.0-linux-amd64
|
dist/linux/gosentry-0.9.0-linux-amd64
|
||||||
```
|
```
|
||||||
|
|
||||||
Release build from Linux:
|
### Release build from Linux
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Interactively choose Linux amd64, Linux arm64, Windows amd64, or all artifacts
|
# Interactively choose Linux amd64, Linux arm64, Windows amd64, or all artifacts
|
||||||
@@ -170,7 +170,6 @@ GoSentry keeps the direct dependency list intentionally small:
|
|||||||
|
|
||||||
- [`fyne.io/fyne/v2`](https://fyne.io/) for the native GUI.
|
- [`fyne.io/fyne/v2`](https://fyne.io/) for the native GUI.
|
||||||
- `github.com/robfig/cron/v3` for cron schedule parsing.
|
- `github.com/robfig/cron/v3` for cron schedule parsing.
|
||||||
- [`go.yaml.in/yaml/v4`](https://github.com/yaml/go-yaml) for one-time import of legacy YAML config files.
|
|
||||||
|
|
||||||
The remaining entries in `go.mod` are indirect dependencies pulled by Fyne and the Go module resolver.
|
The remaining entries in `go.mod` are indirect dependencies pulled by Fyne and the Go module resolver.
|
||||||
|
|
||||||
@@ -179,7 +178,6 @@ Source repositories for mirroring:
|
|||||||
- Go toolchain: https://go.googlesource.com/go
|
- Go toolchain: https://go.googlesource.com/go
|
||||||
- Fyne: https://github.com/fyne-io/fyne
|
- Fyne: https://github.com/fyne-io/fyne
|
||||||
- robfig/cron: https://github.com/robfig/cron
|
- robfig/cron: https://github.com/robfig/cron
|
||||||
- yaml/go-yaml: https://github.com/yaml/go-yaml
|
|
||||||
|
|
||||||
To list every direct and indirect Go module used by the current checkout:
|
To list every direct and indirect Go module used by the current checkout:
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,4 +3,4 @@ package app
|
|||||||
// Version is the application version shown in the GUI and used by build
|
// Version is the application version shown in the GUI and used by build
|
||||||
// scripts in artifact names. It is a var rather than a const so release builds
|
// scripts in artifact names. It is a var rather than a const so release builds
|
||||||
// can override it with Go ldflags when CI tags a build.
|
// can override it with Go ldflags when CI tags a build.
|
||||||
var Version = "0.11.1"
|
var Version = "0.11.2"
|
||||||
|
|||||||
+5
-2
@@ -11,7 +11,7 @@ import (
|
|||||||
fyneapp "fyne.io/fyne/v2/app"
|
fyneapp "fyne.io/fyne/v2/app"
|
||||||
)
|
)
|
||||||
|
|
||||||
const appID = "ru.mixdep.gosentry.desktop"
|
const appID = "ru.mixeme.gosentry.desktop"
|
||||||
|
|
||||||
// Run is the application entry point. It owns the process lifecycle — single
|
// Run is the application entry point. It owns the process lifecycle — single
|
||||||
// instance arbitration, Fyne app + window construction, tray wiring, and the
|
// instance arbitration, Fyne app + window construction, tray wiring, and the
|
||||||
@@ -48,7 +48,10 @@ func Run(startInTray bool) {
|
|||||||
|
|
||||||
w := a.NewWindow("GoSentry " + app.Version)
|
w := a.NewWindow("GoSentry " + app.Version)
|
||||||
configureSystemTray(a, w)
|
configureSystemTray(a, w)
|
||||||
w.Resize(fyne.NewSize(1024, 660))
|
prefs := a.Preferences()
|
||||||
|
winW := float32(prefs.FloatWithFallback("window.width", 1024))
|
||||||
|
winH := float32(prefs.FloatWithFallback("window.height", 660))
|
||||||
|
w.Resize(fyne.NewSize(winW, winH))
|
||||||
content, recordStartup := newMainView(w)
|
content, recordStartup := newMainView(w)
|
||||||
w.SetContent(content)
|
w.SetContent(content)
|
||||||
serveSingleInstance(instanceListener, w)
|
serveSingleInstance(instanceListener, w)
|
||||||
|
|||||||
@@ -33,7 +33,14 @@ func configureSystemTray(a fyne.App, w fyne.Window) {
|
|||||||
// Russian system) because it only recognizes an existing quit by matching the
|
// Russian system) because it only recognizes an existing quit by matching the
|
||||||
// localized label — which our literal "Quit" does not. Setting IsQuit makes
|
// localized label — which our literal "Quit" does not. Setting IsQuit makes
|
||||||
// Fyne reuse this item instead of adding a duplicate, regardless of locale.
|
// Fyne reuse this item instead of adding a duplicate, regardless of locale.
|
||||||
|
saveWindowSize := func() {
|
||||||
|
size := w.Canvas().Size()
|
||||||
|
prefs := a.Preferences()
|
||||||
|
prefs.SetFloat("window.width", float64(size.Width))
|
||||||
|
prefs.SetFloat("window.height", float64(size.Height))
|
||||||
|
}
|
||||||
quit := fyne.NewMenuItem("Quit", func() {
|
quit := fyne.NewMenuItem("Quit", func() {
|
||||||
|
saveWindowSize()
|
||||||
a.Quit()
|
a.Quit()
|
||||||
})
|
})
|
||||||
quit.IsQuit = true
|
quit.IsQuit = true
|
||||||
@@ -51,6 +58,7 @@ func configureSystemTray(a fyne.App, w fyne.Window) {
|
|||||||
// Closing hides the window instead of quitting because scheduler tools are
|
// Closing hides the window instead of quitting because scheduler tools are
|
||||||
// expected to keep working in the background. The explicit Quit tray item
|
// expected to keep working in the background. The explicit Quit tray item
|
||||||
// remains the way to stop the process.
|
// remains the way to stop the process.
|
||||||
|
saveWindowSize()
|
||||||
w.Hide()
|
w.Hide()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user