Repository navigation
Releases: arnen7000/DSH-Workbuddy-WebSearch
Release list
v0.3.3
0.3.3:为 macOS 补齐 Electron 定位的发现链。① 此前 macOS 只有 /Applications/<产品>.app 一条默认路径,装在别处(或目录名与产品名不一致)就完全找不到;Windows 有「常见安装根扫描 + 卸载注册表」两道兜底,macOS 一道都没有。② 现在按官方 dsh-workbuddy-connect 的做法补齐:用 mdfind 按 bundle id 反查 Spotlight 索引,再用 plutil 校验候选自己的 CFBundleIdentifier,然后确认包内 Contents/MacOS/Electron 存在且可执行,按 realpath 去重;多于一个命中就报歧义、绝不猜。③ 索引只是线索不是信任;mdfind/plutil 用绝对路径调用(不走 PATH);结果按进程缓存一次,查询失败不缓存以便下次重试。④ 平台守卫保证 Windows 路径零影响,Windows 行为与 0.3.2 完全相同。⑤ 新增 16 条回归用例与 2 条异常路径用例,并用变异测试证明这些护栏不是恒真。⑥ macOS 仍为实验性:代码与官方实现逐条对齐,但本机没有 Mac 设备,未做真机端到端验证。
v0.3.2
v0.3.1
0.3.1:发布链路改走 npm 可信发布(Trusted Publishing / OIDC)。① package.json 的 repository / homepage / bugs 修正为仓库的规范大小写 —— npm 要求发布来源仓库与 package.json 的 repository.url 完全匹配,否则可信发布会失败。② 新增 .github/workflows/publish.yml:在 GitHub 上发布 Release 即自动经 OIDC 发布到 npm,不再依赖长期有效的 npm token;发布物自动附带 provenance 签名,任何人可验证它由哪个仓库、哪个工作流、哪个提交构建。③ 工作流内置三道闸门:Release tag 与 package.json 的版本必须一致、发布前先跑回归/场景/门面三套检查、显式确认环境里没有被注入长期 token。④ 运行时行为与 0.3.0 完全相同,无功能变更。
v0.3.0 — 区域绑定:两版 WorkBuddy 账号不再混用
v0.3.0 — 区域绑定:两版 WorkBuddy 账号不再混用
本版把「国内版 / 国际版 WorkBuddy」的选择做成一次绑定、不跨版回落,并新增 Windows 卸载注册表发现,
让装在自选盘符、或两版装在同一目录的情形也能零配置用起来。
新增
region三档auto | global | cn,默认auto:只装了一版的用户无需任何配置即可用;
两版都可用时按AUTO_REGION_ORDER取global,保持 v0.2.x 的额度归属不变。- Windows 卸载注册表发现(与
dsh-workbuddy-connect一致的做法):三处 Uninstall 根、
DisplayName形状匹配、每个候选都过 Electron 布局校验(exe 名相符 + 同级version形如
37.10.3-24+resources/app.asar存在)、realpath 去重、多于一个就报歧义绝不猜。
覆盖「两版装在同一目录」与「装在自选盘符」这两种此前完全无法自动发现的情形。 - 明确的报错文案:被绑定那一版没登录时给出可操作指引(去哪登录、环境变量名、如何切换区域)。
变更
- 首次真正用到时绑定一版,整个会话不再切换 —— 避免 token 过期的瞬间请求漂移到另一个账号。
- 取消跨版静默回落:被绑定那一版没登录就如实报错,不再悄悄改用另一版扣费。
读到属于另一版的凭据时明确报错WB_SEARCH_CREDENTIAL_REGION_MISMATCH。 available()改为只看被绑定那一版(不再因为另一版目录里有一份无关文件就判为可用)。
测试
- 回归套件新增 T10.25–T10.32(注册表解析与发现,合成
reg query输出,跨平台可跑)
与 T11.1–T11.16(区域绑定、粘性、拒绝混用、源码级防回退)。 - T4 覆盖
auto与别名写法;T5 改为按绑定区域做真实搜索并现场断言不跨版回落。 - 当前:
regression113 PASS / 0 FAIL、scenarios40 PASS / 0 FAIL、
check-github-meta33 PASS / 0 FAIL。
兼容性
- dsh
>=0.1.5-rc.2(已在0.2.0-rc.2上实测)。 - 与
dsh-workbuddy-connect的 Electron 发现策略一致;未采用其多文件写入 ——
本插件lib/零写入,卸载后不留残留。
v0.2.6 — 文档按读者分层 + 新增变更记录
变更
文档按读者分层 + 新增变更记录(本版只改文档,代码零改动)
安装说明分层
README 的「安装」原先把「一条命令装好」和「开发态排障细节」混在一起,
普通用户读起来像是一件麻烦事。现拆成两节:
- 快速开始 —— 三步:装 → 重启 → 核验,一眼读完;
- 遇到问题 —— 指向
DEVELOPING.md的安装排障。
移走的开发态细节(pnpm 不落地 link: 依赖、dsh plugin add 的「半状态」陷阱、
tools/ensure-installed.mjs 修复脚本、「开发态 vs 发布态」)
在 DEVELOPING.md 里本就有完整版,README 那份属于重复。
新增「变更记录」
README 增加 ## 变更记录,每个版本一行要点。
这样版本信息有了固定落点,不必再塞进 commit 标题 ——
GitHub 文件列表右侧那列「Last commit message」无法关闭,会把标题重复显示在每个文件旁,
写成长版本号会很难看。
Standard Readme 规范本身没有 Changelog 章节,本节的依据是规范里的
Extra Sections(允许任意自定章节,排在Usage之后、License之前)。
文档一致性
GITHUB-SETUP.md§5.2 由「有意不加变更记录」改为「变更信息分层」:
Release 放全量、README 放一行、versionNote放机器可读;- §9 章节表补入
## 变更记录,并把check-links.mjs列入改 README 后的必跑项; - 新增 §5.4「提交信息规范」:标题只写动作、不带版本号长文。
安装
dsh plugin --profile <你的 profile> add dsh-workbuddy-websearch详见 README。
兼容性
- dsh
>= 0.1.5-rc.2(已验证0.1.5-rc.2/0.1.7-rc.1/0.2.0-rc.2,不锁上限) - Windows x64(稳定)、macOS(实验性)
- profile 无关:
web/headless/tui/desktop均可
测试
tools/regression.mjsT1–T10:87 PASS / 0 FAIL / 2 WARNtools/scenarios.mjsS1–S9:40 PASS / 0 FAILtools/check-github-meta.mjsG1–G9:33 PASS / 0 FAIL / 0 WARN.local/check-links.mjsL1–L4:3 PASS / 0 FAIL
v0.2.5 — 对外表述通用化 + 测试降级判据修正
变更
对外表述通用化 + 测试降级判据修正
- 冲突提示不再点名具体插件 —— 当有别的插件注册了同一个搜索 provider id 时,
报错改为指引你自行查出占用者(查dependencies与dsh.profile.bundles→ 找出它 →remove)。 - 安装/卸载文档改用通用表述 —— 不再绑定任何特定本机目录,任何人的安装位置都适用。
- 修复 T5 的降级判据 —— 此前「本机未登录」或「桌面端装在自选路径(探测不到 Electron 二进制)」
这类环境差异会被误判为代码缺陷。现按错误类型分流:环境差异降级为WARN跳过,
decryption-failed等真实缺陷仍判FAIL。
安装
dsh plugin --profile <你的 profile> add dsh-workbuddy-websearch详见 README。
兼容性
- dsh
>= 0.1.5-rc.2(已验证0.1.5-rc.2/0.1.7-rc.1/0.2.0-rc.2,不锁上限) - Windows x64(稳定)、macOS(实验性)
- profile 无关:
web/headless/tui/desktop均可
测试
tools/regression.mjsT1–T10:87 PASS / 0 FAIL / 2 WARNtools/scenarios.mjsS1–S9:40 PASS / 0 FAILtools/check-github-meta.mjsG1–G9:33 PASS / 0 FAIL / 0 WARN
完整变更摘要:https://github.com/arnen7000/dsh-workbuddy-websearch/blob/main/COMPATIBILITY.md