Repository navigation
Replies: 4 comments
追加证据(0.1.5-alpha.2 实测,同一升级 profile)升级到 0.1.5-alpha.2(npm 全局)并重启后,现象有变化,指向同一类根因(boot roster 与实际加载/服务不一致):
指向的结论静态产物服务已恢复,但 api-workspace-files 的 client 资源提供方在浏览器端未生效(或其 stat RPC 未送达), 复现要点
|
追加证据(0.1.5-rc.1 实测,同一升级 profile)升级到 0.1.5-rc.1(npm 全局,0.1.5 系列首个候选版本)并重启后,文件资源读取仍然失败——问题跨越 alpha.1 → alpha.2 → rc.1 三个版本持续存在,不是升级一次性问题。 rc.1 轮次的增量排除
对上游的建议这个问题跨越三个版本持续存在,且「升级 profile」场景下必现。建议宿主在启动时加入 roster-vs-served-combo 一致性检查,或者在 RPC 端点未注册时提供具名错误(而非浏览器端显示笼统的「文件资源服务不可用」),避免插件侧误诊。 |
跟进(0.1.6-alpha.2 复测):文件预览整链仍失效,且全新 profile 也复现 —— 问题不止"升级既有 profile"今天在 0.1.6-alpha.2 上做了与楼上同口径的取证,结论需要修正/加重: 现象:侧边栏文件树列目录正常( 关键差异:这次不是升级态问题 —— 与 #623 取证口径的对照:
即:字节层面已经修好/对齐了,但 附带线索:同构建 诉求(同楼上,加重):roster 声称的 client half 若激活/apply 失败,必须指名包 fail loud;本次是"roster、字节、依赖图三对但激活不动"的第三种形态,建议官方在 client half 激活审计里补这一格。 (已同步评论到 dsh-external/issues#640 关联取证;两案合并归档均可。) |
跟进:0.1.6-alpha.2「文件资源服务不可用」的确切根因(非特殊 scheme 的 URL hostname 解析差异)此前在本讨论反馈的 0.1.6-alpha.2 侧边栏文件预览「文件资源服务不可用」(dsh-external/issues#640 已有完整取证),现已定位到确切根因并本地验证修复,同步到这里供交叉归并: 根因: 关键证据(插桩 最小修复: 同模式缺陷: 完整分析见 dsh-external/issues#640 最新评论(含三环境对照表与修复代码)。 |
Uh oh!
There was an error while loading. Please reload this page.
环境 / Environment
npm i -g @deepseek-ai/dsh@0.1.5-alpha.1(npm 全局,非源码构建)dsh --version确认)现象 / Symptoms
升级到 0.1.5-alpha.1 并重启
dsh web后:Failed to load plugins — failed to import loader entry 5d0bcba2 (@deepseek-ai/dsh-client-hmr): client-modules: bundle /plugins/??… loaded without registering "@deepseek-ai/dsh-client-hmr",全部 60 个 client 插件不加载(含此前一直正常的外部插件);无法打开文件:sidebarRight: no registered tab type claims "dsh-resource://file/…"。取证 / Evidence
在 0.1.5-alpha.1 运行中的宿主上按顺序做了如下只读取证:
boot roster 包含 sidebar 条目:
__DSH_BOOT__清单(60 条)中有@deepseek-ai/dsh-client-ui-sidebar-right/-textpreview/-files/dsh-client-ui-sidebar;npm 树内产物存在:
…\npm\node_modules\@deepseek-ai\dsh\node_modules\@deepseek-ai\dsh-client-ui-sidebar-right\lib\client.js(129 KB)、…dsh-client-ui-sidebar-textpreview\lib\client.js(29 KB)均在;dsh-web-app bundle 声明完整:已安装的
dsh-web-app\cordis.patch.yml(L220–235)包含 4 个ui-sidebar-*insert 行,package.jsondependencies 亦声明这 4 个包;但 combo 路由对 sidebar 模块 404:
浏览器按完整清单请求 combo(60 个模块逗号拼接),响应字节中不含 sidebar 模块的注册代码 →
__ModuleLoader__.load从未为清单中靠后的条目调用 → 首个未注册条目(此处为dsh-client-hmr,无辜)报 "loaded without registering",整个 combo 的插件全部失效;
附带效应:文件链接点击统一路由进
sidebarRight.openResource(0.1.5 移除了 Detail 面板),而ui-sidebar-textpreview的text类型从未注册,于是所有文件链接点击都抛no registered tab type claims——符合源码注释 "an address no type will open is a wiring mistake" 的定位。结论(怀疑方向)
boot roster 与 artifact/rev 注册表不一致:组合(compose)阶段把 0.1.5 新增的 web-app bundle insert 行
(4 个
ui-sidebar-*,均为本版新增模块)纳入了 roster,但 npm 发行树的 client artifact/rev 集里没有对应字节:无论哪种,roster 与可服务字节的差异目前是静默的——表现为无辜条目(hmr)背锅 + 全插件失效,而不是启动时 fail loud。
复现 / Reproduce
npm i -g @deepseek-ai/dsh@0.1.5-alpha.1;dsh web重启,浏览器打开;(同一 profile 上回退
npm i -g @deepseek-ai/dsh@0.1.3-alpha.2后一切恢复正常。)期望 / Expected
临时缓解 / Workaround
回退
npm i -g @deepseek-ai/dsh@0.1.3-alpha.2后恢复正常(六插件与宿主均正常)。备注
@deepseek-ai/dsh-client-ui-open-in-app(同样是 0.1.5 新增行)在 combo 中是否可服务未单独验证;若同样缺失,说明是「新增行」级别的系统性遗漏而非 sidebar 特有;ui-sidebar-textpreview的text类型定义(patterns: ['dsh-resource://file/**']、canOpen基于parseFileAddress)对 Windows 盘符absolute/E:/…地址解析正确,已单独验证,排除该因素。All reactions