[Feature] Viva 桌面客户端(desktop/)在 Windows 上构建、链接 Rust Core,并跑通欢迎页、工作台和日志窗口

Aperta
#1,798 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go, rust, typescript
Ambito
desktop, devtools

Direzione di ricerca

Start with #1794 section 3 and the existing scripts under scripts/desktop/, then inspect desktop/desktop-go.sh, desktop/internal/workbench/app.go, desktop/internal/logwindow/window.go, and the Windows logstore path. Establish the required MSVC, Go, and Rust toolchain combination and fixed Rust Core revision before implementing. Done means the Windows build and listed UI, logging, session shutdown, and user data path checks run on Windows with screenshots and recorded results.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

review: high
Problem to solve / 要解决的问题

#1794 计划让 macOS 和 Windows 共用 desktop/ 下的 Viva(Go)客户端。第一个外壳 PR(Refs #1794)已经交付欢迎页、工作台外壳(六个 IDEA 式工具条锚点、可拖动工具按钮和插入线、标题栏齿轮菜单)、v2 结构化日志和一比一复刻 macOS 的“日志与诊断”窗口,但只在 macOS arm64 上构建和验证过。

Windows 上目前缺这些:

  • 构建入口只支持 macOS。 scripts/desktop/build-desktop-core.sh 和 desktop-go.sh 都是 zsh 脚本,会设置 MACOSX_DEPLOYMENT_TARGET,链接 rustc 报告的 macOS 系统库。Windows 上没有对应的入口能构建 Lithe-core-rust 静态库,再把它交给 cgo 链接。
  • 快捷键写死为 ⌘。 工作台(desktop/internal/workbench/app.go 的 onShortcut)和日志窗口(desktop/internal/logwindow/window.go 的按键处理)只认 ModifierMeta,菜单里显示的也是 ⌘,、⇧⌘L。Windows 上按 Ctrl 不会触发这些快捷键。
  • 桌面专属路径没有在 Windows 上验证过。 desktop/internal/logstore/dir_windows.go 和 store.Open 的 os.UserConfigDir() 已经有 Windows 分支,但还没有在 Windows 上实际运行过,也没有检查它们不会写进安装目录。
  • 终端移植还没接线。 desktop/internal/term、localshell、shellkind 是从 motty 移植过来的,没有接入工作台,localshell 也还没验证 Windows ConPTY。
Proposed solution / 建议方案
  1. 为 Windows 增加与 scripts/desktop/ 等价的构建入口:固定同一个 Lithe-core-rust 修订,在 MSVC 工具链下构建静态库,交给 cgo 链接;工具链组合(Go、MinGW 或 clang、Rust MSVC)按 #1794 第 3 节 P0 的要求确定,并记录 identity。
  2. 快捷键改为按平台映射:macOS 用 ⌘,Windows 用 Ctrl。映射规则和显示文本放进 Rust Core 现有的快捷键规则,不在 Go 里各写一份。
  3. 在 Windows 上跑通以下工作流,记录截图和验证结论:欢迎页、打开项目、六个锚点拖放、齿轮菜单、Ctrl+Shift+L 打开日志窗口、日志写入和查询、关闭项目时结束 Core 会话。
  4. 确认日志与偏好只写到 %LOCALAPPDATA%/%APPDATA% 下的平台目录,不写安装目录;对应的检查加进 Windows 资源只读验证。
Target platform / 目标平台

Windows

Area / 模块

UI / 界面

Priority / 优先级

P2 / 后续考虑:目前不着急,可安排到后续版本

Alternatives considered / 已考虑的替代方案
  • 继续让 Windows 只用 React/Tauri 客户端:与 #1794 统一两端界面的目标冲突,两端仍要各自维护。
  • 先用交叉编译证明 Windows 能构建:#1794 已明确说明交叉编译成功不等于能启动和退出,必须在 Windows 上实际运行验证。
Additional context / 补充信息
  • 上游计划:#1794(Windows/macOS 统一 Viva 工作台)。
  • macOS 外壳 PR 合入后,这里补上 PR 链接和 Lithe-core-rust 的固定修订。
  • 可以参考 .agents/skills/debug-windows-on-parallels/SKILL.md,在 Parallels 虚拟机里构建和运行 Windows 产品。
Checklist / 提交前检查
  • I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。
Lingua principale
TypeScript
Stelle
1.8k
Fork
151
Merge medio
10h 29m
PR unite (30g)
407

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di 1lck/Lithe-IDEA

Tutte le issue di 1lck/Lithe-IDEA

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.