Skip to content

feat(tray): headless launch and native app shortcuts#18

Merged
jung-thomas merged 13 commits into
mainfrom
feature/tray-headless-launch
May 8, 2026
Merged

feat(tray): headless launch and native app shortcuts#18
jung-thomas merged 13 commits into
mainfrom
feature/tray-headless-launch

Conversation

@jung-thomas
Copy link
Copy Markdown
Contributor

Summary

  • Headless Windows launch: Platform-specific startProcess uses DETACHED_PROCESS + CREATE_NEW_PROCESS_GROUP flags on Windows to prevent terminal window allocation. Unix uses Process.Release() for background detach.
  • Native app shortcuts: CreateShortcuts() / RemoveShortcuts() per platform — Windows .lnk via PowerShell COM, macOS .app bundle in ~/Applications/, Linux .desktop files in ~/.local/share/applications/.
  • Multi-asset extraction: extractAssets replaces single-file extractBinary, writing all archive entries (binary + icon) to the bin dir with correct permissions.
  • Release pipeline: -H windowsgui linker flag for Windows PE subsystem, platform icons packaged alongside binaries in release archives.
  • Uninstall cleanup: Uninstall() now calls RemoveShortcuts() and removes the entire bin directory.

Test plan

  • Verify go build ./... and go vet ./... pass (all platforms)
  • Cross-compile internal/trayctl/ for windows/amd64, darwin/arm64, linux/amd64
  • CI builds all three platform matrix entries successfully
  • On Windows: confirm tray launches without a visible console window
  • On Windows: confirm Start Menu + Desktop .lnk shortcuts are created on install and removed on uninstall
  • On macOS: confirm ~/Applications/SAP Devs Tray.app bundle is created with correct symlink and Info.plist
  • On Linux: confirm .desktop file appears in application launchers

Spec: docs/superpowers/specs/2026-05-07-tray-headless-launch-design.md
Plan: docs/superpowers/plans/2026-05-07-tray-headless-launch.md

@jung-thomas jung-thomas merged commit 1e7bee8 into main May 8, 2026
3 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