Skip to content

feat(desktop): 引入 Electron + SolidJS GUI 桌面端,支持多模态 UI 复原、系统托盘与毫秒级 HMR - #1950

Open
yudong22 wants to merge 10 commits into
XiaomiMiMo:mainfrom
yudong22:feat/macos-gui
Open

feat(desktop): 引入 Electron + SolidJS GUI 桌面端,支持多模态 UI 复原、系统托盘与毫秒级 HMR#1950
yudong22 wants to merge 10 commits into
XiaomiMiMo:mainfrom
yudong22:feat/macos-gui

Conversation

@yudong22

Copy link
Copy Markdown

📦 PR Title

feat(desktop): 引入 Electron + SolidJS GUI 桌面端


🧩 做了什么

为项目新增 macOS 桌面 GUI 客户端,解决 TUI 在视觉表达、多模态图片拖拽、系统原生集成方面的不足。采用 Electron + SolidJS 架构,与现有后端通过 IPC + 自定义协议通信,不影响原有 TUI 流程


⚡ 核心特性

  • 多模态图片拖拽/粘贴:直接接入 UI 界面,配合 MiMo 模型实现 UI 复原与设计对比
  • 沉浸式 macOS 原生体验:跟随 Dark/Light 主题、毛玻璃 Modal、系统托盘菜单
  • AI 工具活动视觉增强:结构化展示动作 + 文件 Tag + 行号 Pill,信息一目了然
  • 毫秒级 HMR 热更新:UI 开发实时反馈
  • 交互防抖与按键保护:修复 Dropdown 跳动,防止误触关闭弹窗

🛠️ 技术架构

  • packages/desktop:Electron 主进程 + 托盘 + IPC
  • packages/app:SolidJS 渲染进程 UI
  • packages/ui:共享组件库,支持 HMR
  • 全量内联打包 + @lydell/node-pty 原生集成,打包后仍可正常使用

✅ 自测通过

  • macOS 13/14 构建运行正常
  • HMR 热更新生效
  • 明暗主题切换流畅
  • 拖拽图片触发解析流程
  • 系统托盘响应正常
  • PTY 打包后可用

📸 截图

image

🔗 关联 Issue

Closes #(填写编号)

孙东 added 10 commits July 27, 2026 20:35
…pat, tray menu & iconsets

- Desktop GUI & Tray: add macOS GUI scaffolding, window title sync, workspace switching, deep links, tray menu (1x/2x trayTemplate icons) with session actions (switch/rename/delete), and native notification focus.
- Electron & Node.js Compat: replace Bun.file/Bun.write with Node.js fs APIs, guard Bun.build/Transpiler/version in Electron, and fix gitdir relative path resolution.
- Session Title Auto-Generation: enhance title prompt with bilingual rules and zero-tool constraint; recognize New/Untitled Session as default titles to trigger LLM titling.
- Icon Assets & Branding: update app name to MiMo-Code, add python iconset generator script, and refresh Concept C icons for macOS, Windows, iOS, and Android.
- CI/CD & Build Workflows: add desktop packaging pipeline and release-desktop.yml automation.
…letions in single horizontal line for edit tool
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