Skip to content

Desktop GUI (Windows, beta) - #1

Open
Setsubot wants to merge 5 commits into
devfrom
feat/desktop-gui
Open

Setsubot wants to merge 5 commits into
devfrom
feat/desktop-gui

Conversation

@Setsubot

@Setsubot Setsubot commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator

Adds a Windows desktop GUI built with Gio (pure Go, no cgo) in cmd/freshstart-gui. The shared logic lives in internal/freshstart and covers link parsing, profiles, and opening all links.

  • Profiles: you can only use bare names (no path traversal), and saves are atomic (temp file + rename).
  • Only http(s) URLs are opened. One failed link doesn't stop the rest.
  • The CLI keeps its old rule: it skips only empty lines and lines starting with #. A leading UTF-8 BOM is now stripped on both the CLI and GUI paths.
  • README: build instructions, now requiring Go 1.24.4.

Build: CGO_ENABLED=0 GOOS=windows go build -ldflags="-H windowsgui" ./cmd/freshstart-gui

Checks: gofmt and go vet are clean (Linux and Windows), 24 tests pass with -race, and the Windows cross-build works. freshstart.exe is untouched.

Not yet run on a real Windows desktop.

Extract link/profile/runner into internal/freshstart with tests.
Add Windows Gio GUI under cmd/freshstart-gui (build tag windows).
Document CLI and GUI build commands; leave freshstart.exe untouched.
- profilePath only accepts bare file names (block ../ and separators)
- SaveProfile writes via temp+rename so a failed write cannot truncate
- ExtractLinkLines matches classic CLI (no TrimSpace) for CLI parity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant