Skip to content

docs: Desktop 架构继续改造计划(0.1.7 底座之后) - #589

Closed
yaojin3616 wants to merge 3 commits into
mainfrom
docs/desktop-architecture-roadmap
Closed

yaojin3616 wants to merge 3 commits into
mainfrom
docs/desktop-architecture-roadmap

Conversation

@yaojin3616

@yaojin3616 yaojin3616 commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

概要

新增 docs/desktop-architecture-roadmap.md,记录 #570(Harness 0.1.7-rc.2 底座)合入之后,Windows 运行时、打包、插件加载和恢复几条线还剩的改造、执行顺序和每一步的验收标准。docs/architecture.md 开头加了一行链接。另新增 docs/plugin-management-unification-plan.md,作为阶段 3「统一插件状态与管理入口」的详细设计(来自 RunAsNode 评估时的源码审查,基线为 v0.10.0,文首注明了工作台市场部分只在 v0.10.0 适用)。按要求,stable / beta 双通道和 Profile checkpoint / last-known-good 自动回退都不在本计划范围内,启动失败继续由现有 Recovery 页、Safe Mode 和修复 Agent 处理。

计划内容

阶段 内容 对应问题
1 把 #583(Windows RunAsNode,目前只在 v0.10.0)带进 main;Electron 与 node-addon-require-builtin 的版本约束做成打包门禁;核对 ELECTRON_RUN_AS_NODE 向子进程的传播;macOS 也去掉随包 Node 杀软误报
2 生产运行时单独物化、按平台裁剪、生成清单;Harness 运行时进 asar,只解包 PE、原生文件和确需物理路径的文件(当前约 21,210 个解包文件) 安装和升级慢
3 删除 @deepseek-ai/* 宿主回退钩子;清理旧版共享 junction;收敛 generation 每插件 junction;明确“版本不兼容只告警”的策略;门禁禁止可升级 bundle 进安装包;统一插件状态与管理入口 启动失败
4 27 个补丁分类收敛;拆分 src/main/index.ts 维护成本
5 市场体积提示、插件前端分块指引、向上游提延后加载档、确认并清理 Profile 内遗留的 pnpm store 插件性能

文档开头的现状表列出了 main 上已完成的项(安装器去掉 Defender/HKLM、按内容签名且失败阻断、签名包 smoke、更新验签、目录安装事务、plugin-manager 走 generation 后端)及其依据。

验证

纯文档改动:已检查 git diff --check,并确认文档中引用的仓库内路径都存在。没有运行测试或打包,本 PR 也不改变任何运行时行为。

说明

计划基于 main eec5d57e65 和 v0.10.0 上的 #583 的源码阅读,并对照官方 dsh-v0.1.7-rc.2 与 anywhere-labs/dsh-desktop。其中的数字(解包文件数、补丁行数、Profile 内遗留 store 的体积)来自 PR 描述或开发机观察,实施各阶段时需要重新测量。

🤖 Generated with Claude Code

yaojin3616 and others added 2 commits September 28, 2026 01:51
Record what remains after #570 for the Windows runtime, packaging,
plugin loading and recovery, in dependency order with acceptance
criteria: land RunAsNode (#583) and drop the bundled Node, move the
Harness runtime into asar, retire the host module fallback and legacy
links, add Profile checkpoints, and shrink patches and the main entry.
Stable/beta channels are out of scope.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Startup failures stay with the existing Recovery page, Safe Mode and
repair Agent. The leftover in-Profile pnpm store item moves to the
plugin size stage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The official Plugins page, dshmarket, Safe Mode/Recovery and built-in
host plugins each read and write enablement differently; for example,
disabling on the Plugins page removes the name from
dsh.profile.bundles and healProfileBundles() adds it back on the next
launch. Keep the review from the RunAsNode assessment worktree as the
detailed design for roadmap stage 3.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yaojin3616 yaojin3616 closed this Sep 30, 2026
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