Releases
v0.5.2
v0.5.2 — Windows / macOS 平台兼容:路径方言归一 + 保留设备名 + 跨平台靶子
Compare
Sorry, something went wrong.
No results found
Phy-D
released this
02 Oct 09:11
v0.5.2 — Windows / macOS 平台兼容:路径方言归一 + 保留设备名 + 跨平台靶子(2026-10-02)
修(都只在 Windows 上才会犯,Linux 上测不出来)
路径方言不再混用 。node:path 的 join() 在 Windows 上产出 \,而插件内部约定一律 /
(lib/notes.js 的 toPosix)——lib/store.js 的路径助手与 lib/service.js 里 3 处漏归一的
join()(回收站落盘路径、扫描根展开、.dsh-notes/.gitignore)现在全部过 normalizePath()。
不归一的话,同一个目录会同时存在两种写法,字符串比较与集合键随即静默失配。
实测依据 :在 Windows node(v22.14)上跑那 32 个不依赖 harness 依赖的测试文件,原本 12 条红
(C:/… vs C:\…);修完插件侧 + 期望值按插件约定归一之后 208/208 全绿 ,Linux 侧 250/250 全绿
(Windows 那轮跑的是真实 Windows 文件系统:真建/真读/真改名/真删除,回收站与 CRLF 行尾保真都在里面)。
Windows 保留设备名 :CON / PRN / AUX / NUL / COM1–COM9 / LPT1–LPT9
(含 CON.md 这种带后缀也保留的写法 )→ sanitizeFileName() 现在会避开(CON → CON-,
CON.md → CON-.md)。以前在 Windows 上新建一篇标题叫 CON 的笔记会直接失败。
目录选择器的面包屑 :官方给的 crumbs[].path 与我们会话 cwd 的大小写可能不同,原来按字符串
相等找工作区根 → Windows/macOS 上可能整条面包屑不显示;改成「互相都能相对化」判定。
新增
test/platform-paths.test.mjs(12 条) :喂 Win32 输入的字符串 ,把「内部只有一种路径写法」
钉成可执行约定 —— 在 Linux 上跑也照样抓得到回归(注入一次原生 join,实测立刻 1 条红)。
同时覆盖盘符大小写不敏感、跨盘不相对化、保留设备名、尾随点与空格、单组件长度上限、面包屑匹配。
README 新增 ## 平台支持 :三平台状态与证据、上面这些差异、以及没有真机 的 macOS 边界
(HFS+ 的 NFD 归一化、Windows 260 字符路径上限)。AGENTS.md 加了「平台约定」一节。
变更
版本 0.5.1 → 0.5.2;lib/client.js 因 browse-path.ts 改动而重建;单测 238 → 250 条。
You can’t perform that action at this time.