190c191ce4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
桌面端工业化升级规划(desktop-industrial-plan)
承接 desktop-ui-plan.md(IA/能力规划)。本文聚焦把现有桌面端从 "深色控制台 MVP"打磨到工业级桌面产品的质量提升路线。
现状基线(2026-06-12 实测):
sundynix-desktop/frontend= React 19 + TS + Tailwind + @xyflow/react,无 UI 组件库(README 写的 shadcn/ui 实际未安装),图标用 Unicode 字符, Wails Go 桥已生成(wailsjs/)但前端从未调用。已有视图:工作台/编排/知识库/报告/运行·观测/记忆。
诊断:为什么"不够工业级"
问题不在配色,而在缺产品级骨架:
- 无设计系统 — 按钮/输入/卡片/徽标全是手搓内联 class、复制粘贴、不一致;强调色 (violet/cyan) 是散落字面量,无法换肤。
- 图标是 Unicode 字符(▤◆▣▦▸◇⌧⚙)— 最掉档次。
- Wails Go 桥未用 — 本质是"套了窗口的网页":无原生文件框、拖拽入库、本地读盘、 原生通知、自定义标题栏、"用系统 Word 打开报告"。这是"工业级桌面"最大缺口。
- 无应用级 UX — 无 toast / 全局错误边界 / 命令面板(⌘K) / 快捷键 / 确认弹窗 / 骨架屏。
- 健康灯 5 个只 2 个真(NATS/Milvus/Neo4j 灰)— 缺网关
/health聚合。 - 状态全在 App useState,刷新即丢 — 无运行历史/最近项持久化。
- 输出裸
<pre>— 报告是 Markdown 却不渲染;无自动滚动/复制/速率。 - 布局密度 — 为 1280 设计但窗口 min 1100,面板挤;固定高度;无可拖拽分隔。
升级阶段(按性价比/依赖排序)
A. 设计系统地基(最高优先,其它都依赖它)
- 装
lucide-react图标;自建轻量 primitives(不引整套 shadcn,保零重依赖、clone 即跑):ButtonInputTextareaSelectCardBadgeTabsTooltipDialogToastSkeletonEmptyState,统一cn()。 - Tailwind 令牌补全:语义色(brand/accent/success/warn/danger)+ 半径/间距/字阶 token; 强调色字面量收敛到 token。
- 6 个视图 + shell 迁到 primitives,去掉复制粘贴。
B. 真·桌面集成("工业级桌面"最大缺口)
- 启用 Wails Go 桥:
app.go增OpenFileDialog/SaveFileDialog/SaveReport/OpenInSystem/ReadFile,前端经wailsjs调。 - 知识库拖拽 + 原生选择框入库;报告原生"另存为 .docx" + "用系统 Word 打开"。
- 原生通知(报告完成弹系统通知)、最近文件、窗口标题随任务变。
- 自定义无边框标题栏(macOS 红绿灯内嵌 + 可拖拽区)。
C. 应用级 UX 骨架
- 全局
ToastProvider(替代散落 err 文本)、ErrorBoundary、确认Dialog。 - 命令面板
⌘K(跳转/新建报告/搜知识库/运行)+ 全局快捷键。 - 骨架屏 + 有插画的空状态(取代"规划中"文字)。
D. 内容与可信度
- Markdown 渲染(报告/输出)+ 代码高亮 + 复制 + 流式自动跟随底部 + tokens/s 速率表。
- 网关
GET /health聚合 NATS/Milvus/Neo4j/PG/Redis → 5 灯全真。 - 运行历史持久化(Wails 配置或 localStorage),RunsView 列出历史可回看。
E. 布局与密度
- 可拖拽分隔的面板、响应式断点、记忆面板宽度。
建议路线
先 A(设计系统) 打底 → B(真桌面集成),这两个一起把"网页套壳"扭转成"工业级桌面应用", 感知提升最大。C/D/E 增量补。
边界/原则
- 零重依赖:自建 primitives 而非整套组件库,守住 "clone 即跑、无重 native 依赖" 目标。
- 不破坏既有真实链路(任务流/工具调用/Token 流/执行事件/报告)。
- 深色优先;令牌化后保留未来切浅色的可能。