Repository navigation
Replies: 1 comment
|
这个定位是准确的,而且与此前 建议 upstream 测试至少覆盖:
临时恢复优先用已发布的 browse backend 覆盖同一个 picker row,而不是修改 npx/global 安装中的 generated - id: directory-picker
name: "@deepseek-ai/dsh-host-directory-picker-browse"要点是“按同一 id 替换”,不要并排加载 auto 与 browse 两个 capability provider。重启后分别验证 我已把本报告加入现有 Windows picker 诊断树,里面也区分了 UTF-16 截断、Node/Koffi worker crash、native install 和 stale Host 四个分支: |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
问题描述
在 Windows 上通过"添加工作区"选择中文名称的文件夹时,workspace 创建失败,报错路径中被截断了一个字。
报错信息:
注意路径是
Desktop\报,而不是实际文件夹Desktop\报销。复现步骤
期望行为
工作区「报销」创建成功。
实际行为
创建失败,返回 workspace-invalid-path;选中路径被截断为
%USERPROFILE%\Desktop\报。环境
根因分析
dsh-host-directory-picker-native/lib/worker.cjs 的 readUtf16() 从 COM 返回的指针读取选中路径(UTF-16LE),扫描 NUL 终止符时只检查每个 2 字节单元的低字节:
任何码位形如 U+XX00 的字符,低字节必为 0x00,会被误判为字符串结尾:
%USERPROFILE%\Desktop\报销被读成%USERPROFILE%\Desktop\报修复建议
按 UTF-16 单元双字节判断真正的 NUL 终止符(两个字节均为 0):
并补充含 U+XX00 字符路径(如 C:\test\报销、C:\test\一)的回归测试。
临时缓解
本地将该行改为上述双字节判断;或改用 browse 目录选择器(远程/无桌面场景,走 node:fs,不受影响)。
All reactions