Skip to content

feat: add Wails v3 tray binary with Fiori dashboard - #5

Merged
jung-thomas merged 8 commits into
mainfrom
feature/wails-tray
Apr 20, 2026
Merged

feat: add Wails v3 tray binary with Fiori dashboard#5
jung-thomas merged 8 commits into
mainfrom
feature/wails-tray

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

Summary

  • Adds sap-devs-tray as a separate Go module in cmd/sap-devs-tray/ using Wails v3 (alpha) for cross-platform system tray + webview panel
  • Embedded HTTP server on 127.0.0.1:0 with session-token auth serves a Fiori-themed dashboard (SAP Fundamental Styles, auto light/dark theme)
  • System tray menu: Sync Now, Inject Now, Open Dashboard, Open Terminal, Quit
  • Dashboard shows sync status, profile info, and action buttons; reads shared state files written by the main CLI
  • CI workflow (release-tray.yml) builds for Linux amd64/arm64, macOS amd64/arm64, Windows amd64 with CGO enabled
  • Builds on Plan 1 (OS-native scheduler, PR feat(service): add OS-native background scheduler #3) and Plan 2 (tray lifecycle/CLI commands, PR feat(tray): add tray lifecycle management and CLI commands #4)

Test plan

  • Verify go build ./... and go vet ./... pass in cmd/sap-devs-tray/
  • Build locally on Windows: cd cmd/sap-devs-tray && go build -o sap-devs-tray.exe .
  • Run tray binary, confirm system tray icon appears and dashboard opens
  • Verify dashboard displays sync status and profile from shared state files
  • Test Sync Now / Inject Now buttons trigger CLI commands
  • Verify CI workflow triggers on release and builds all 5 platform targets
  • Confirm checksum aggregation produces tray-checksums.txt with 5 entries

Creates a separate Go module at cmd/sap-devs-tray/ for the optional
system tray companion binary, pinned to wailsapp/wails/v3@v3.0.0-alpha.77.
A tools.go file with a build tag ensures go mod tidy retains the
direct Wails dependency even before it is imported in main.go.
- Enforce POST method on sync/inject API endpoints
- Fix zero-time display bug (Go zero time.Time is truthy in JS)
- Remove unused Tools/ServiceUp/ToolState from DashboardState
- Add checksum count validation in CI aggregate step
@jung-thomas
jung-thomas merged commit 0e582ae into main Apr 20, 2026
2 checks passed
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