Skip to content

feat(desktop): tray workspace actions, startup settings, and notification levels - #1261

Closed
skevetter wants to merge 28 commits into
mainfrom
feat/tray-workspace-actions
Closed

skevetter wants to merge 28 commits into
mainfrom
feat/tray-workspace-actions

Conversation

@skevetter

Copy link
Copy Markdown
Contributor

Summary

Implements the DevSy tray utility proposal (Electron only) as a single PR. Refs #1260, refs #1207.

  • Startup settings: "Run at startup" plus the dependent "Open to tray on startup" toggle in DevSy Settings (canonical), mirrored as native checkboxes in the tray Preferences submenu. "Open to tray" affects automatic login launches only, never manual launches.
  • Tray workspace actions: the tray lists the 5 most recently used workspaces with Start/Stop text verbs and status dots, plus a "View all workspaces in DevSy" overflow item. Entries are disabled during transitions, deduplicated, and report no optimistic success; destructive confirmations route to the app.
  • Notifications: Off / Failures only (default) / All terminal outcomes, controlled from Settings.
  • Linux: Tier 1 / Tier 2 status-notifier matrix, and Flatpak autostart through the XDG Background portal.

Everything the proposal lists under "What the tray will NOT do" is left out.

Implementation-bounded decisions (resolved per the proposal's recommendation)

  1. Stop confirmation: the app's existing rule is that Stop has no confirmation (only delete, rebuild, and reset confirm). The tray reuses that rule and stops gracefully; no new dialog was added.
  2. Tier 2 Linux CI image: Xfce. A new tray-smoke-xfce CI job runs xfce4-panel under Xvfb on ubuntu-latest and asserts SNI registration via busctl (RegisteredStatusNotifierItems). Its first validation happens in CI; it could not be run locally (no sudo in the dev environment).

Notes

  • User-facing copy avoids contractions (D13); code comments kept minimal (D14).
  • Flatpak autostart uses the portal's RequestBackground. The portal has no disable call, so turning startup off removes the host autostart file instead (the manifest's filesystem=home access makes it visible). A portal denial never persists runAtStartup.
  • Settings are main-process canonical (JSON in userData); the renderer caches and rolls back optimistically, and the tray mirrors the same values.

Test state

  • Local on this exact tree: 478 vitest tests pass (50 files), svelte-check reports 0 errors, electron:build completes cleanly.
  • tray-smoke-xfce is new and will be validated by its first CI run on this PR.

Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
Signed-off-by: Samuel K <skevetter@pm.me>
@netlify

netlify Bot commented Sep 21, 2026

Copy link
Copy Markdown

Deploy Preview for devsydev canceled.

Name Link
🔨 Latest commit f72beb9
🔍 Latest deploy log https://app.netlify.com/projects/devsydev/deploys/6ab1a1d172043400088e92b3

@coderabbitai

coderabbitai Bot commented Sep 21, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@netlify

netlify Bot commented Sep 21, 2026

Copy link
Copy Markdown

Deploy Preview for images-devsy-sh canceled.

Name Link
🔨 Latest commit f72beb9
🔍 Latest deploy log https://app.netlify.com/projects/images-devsy-sh/deploys/6ab1a1d11ce6210008ae3e0c

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant