Skip to content

feat: add system tray background mode - #28

Merged
FlashingChen merged 2 commits into
mainfrom
issue-25
Aug 21, 2026
Merged

FlashingChen merged 2 commits into
mainfrom
issue-25

Conversation

@FlashingChen

Copy link
Copy Markdown
Owner

Summary

  • add a cross-platform Electron system tray for DSH Desktop Hub
  • hide the main window on close while keeping Harness running
  • add tray show/hide and explicit quit actions with safe cleanup
  • harden minimized-window, startup, fallback-icon, and tray initialization behavior
  • add tray state regression tests and update documentation

Tests

  • npm run typecheck
  • npm test (95/95)
  • npm run smoke
  • npm run verify

Closes #25

@FlashingChen

Copy link
Copy Markdown
Owner Author

Feedback

整体方向没问题,但建议先修完下面几点再转 Ready:

  1. P1:Windows 关机/重启/注销生命周期

    • src/main/main.ts:784-789 的 close handler 只有 quitRequested 才允许真正关闭窗口。
    • Windows 的系统关机、重启、注销不会触发 before-quit / will-quit,所以这里可能把系统关闭拦截后隐藏到托盘,Harness 清理也不可靠。
    • 请处理 query-session-end,确保 session-end 时放行关闭,并补一个回归测试。
  2. P2:macOS 托盘图标不是 Template Image

    • resources/tray.png 是 32×32、不透明的彩色 PNG,实际 isTemplateImage() 为 false。
    • macOS 菜单栏可能出现白色背景,且无法适配深色模式。请提供透明单色的 trayTemplate.png,并包含 Retina 版本。
  3. P2:最小化/恢复后托盘菜单文案会过期

    • 目前只监听 show / hide(main.ts:790-791),没有监听 minimize / restore。
    • 请补上状态菜单刷新,避免窗口已最小化但菜单仍显示“隐藏窗口”。

现有 95/95 测试通过,但测试目前没有覆盖真实 Tray、Windows session-end 和打包后的 macOS 图标行为。

@FlashingChen

Copy link
Copy Markdown
Owner Author

已按反馈完成修复:

  • Windows query-session-end / session-end:放行窗口关闭,并在 session end 前复用 Harness 清理流程。
  • macOS 使用透明单色 trayTemplate.png,并提供 trayTemplate@2x.png Retina 资源。
  • 监听 minimize / restore,保持托盘菜单文案同步。
  • 补充 session-end、模板图标尺寸/透明度和状态切换回归测试。

验证:npm run typechecknpm test(95/95)、npm run smokenpm run verify 均通过。

@FlashingChen

Copy link
Copy Markdown
Owner Author

复查通过。

上一轮反馈的 3 项都已落实:

  • Windows query-session-end / session-end 已放行窗口并清理 Harness。
  • macOS 已改用透明 Template Image,并提供 Retina 资源。
  • 已监听 minimize / restore,同步托盘菜单文案。

我本地验证了 typecheck、npm test(95/95)和 macOS dir 打包,资源均能随包产出;CI Verify + smoke 也已通过。目前没有新的阻塞问题。

@FlashingChen
FlashingChen marked this pull request as ready for review August 21, 2026 04:40
@FlashingChen
FlashingChen merged commit 332da3a into main Aug 21, 2026
1 check 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