Skip to content

feat: v0.4 — implement PyInstaller desktop EXE build and GitHub Actions release pipeline #56

@Codex-Crusader

Description

@Codex-Crusader

Summary

The ROADMAP.md v0.4 milestone targets a desktop EXE so users can "download and double-click" without any terminal interaction. This issue tracks the full v0.4 deliverable set.

Deliverables (from ROADMAP.md v0.4)

  • PyInstaller EXE — Windows-first, then macOS and Linux
  • Launcher script (pulseengine/local/launcher.py) — starts the Streamlit server, waits for it to be ready, then opens the browser automatically
  • System tray icon — shows running status, allows clean shutdown via tray menu
  • GitHub Actions pipeline — builds and attaches platform binaries to every release tag
  • First-run setup wizard (pulseengine/local/setup.py) — lightweight UI to configure the data directory on first launch

Technical notes

  • The launcher script is already referenced in the ROADMAP target repo structure but the file does not yet exist in pulseengine/local/
  • The GitHub Actions workflow should produce artefacts for windows-latest, macos-latest, and ubuntu-latest runners
  • Consider using pystray for the system-tray integration and pyinstaller --onefile --windowed for the EXE
  • The builds/ directory (already git-ignored) should be the target output folder

Acceptance criteria

  1. Running the Windows EXE opens the dashboard in the default browser with no terminal required
  2. The tray icon shows a "Stop" option that shuts down the Streamlit server cleanly
  3. A GitHub Actions release workflow attaches the EXE to tagged releases automatically

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions