Skip to content

fix: dsh 0.1.5 compatibility — auth endpoints 405, /fast menu crash, tool-name collisions - #83

Closed
krfalcon wants to merge 6 commits into
V1ki:mainfrom
krfalcon:fix/dsh-0.1.5-compat
Closed

krfalcon wants to merge 6 commits into
V1ki:mainfrom
krfalcon:fix/dsh-0.1.5-compat

Conversation

@krfalcon

Copy link
Copy Markdown

Summary

Integrated compatibility pass for the dsh 0.1.5 line (rc.1/rc.2), resolving every currently-open blocker issue and folding in the community fixes that were already proposed:

peerDependencies now admit the 0.1.3 and 0.1.5 lines (^0.1.3-alpha.1 || ^0.1.5-alpha.1), which the feature-detecting registration already serves. Version bumped to 0.8.1 — happy to drop that commit if releases are cut separately.

Testing

  • pnpm build clean; pnpm test: 432 pass / 0 fail (was 413 before; +19 from the integrated fixes, incl. a new test/tool-collision.spec.ts driving the real plugin wiring against a registry that already owns x_search).
  • End-to-end on a throwaway DSH_HOME with dsh 0.1.5-rc.2: plugin 0.8.1 installed into a fresh profile, dsh web booted, cookie minted from the token URL, then:
  • The tool-collision path was additionally exercised with all four names (canonical + alias) pre-owned: apply survives, image_generate still mounts.

Notes for reviewers

This is one integrated branch because the four blocking issues compound (e.g. #76's crash also presents as the #77/#80 405). If focused PRs are preferred, each commit is self-contained and credits its source PR — cherry-picks are safe. Closes #76, #77, #79, #80; supersedes #75, #59, #64, #74 and the transport half of #82 (credit retained in both the commits and above).

…h 0.1.5+

dsh 0.1.5 removed the webServer inject from client-connection, so
connection.rpc.handle throws 'cannot get property webServer without
inject' and every /subscriptions-auth POST falls through to the SPA
with HTTP 405 (issues V1ki#77, V1ki#80). Register the endpoints as the exact
/api/subscriptions-auth Fetch route (present since 0.1.2-alpha.1),
falling back to the legacy channel on 0.1.1-rc.2, and reroute the
browser half's calls by the same detection.

Applied from PR V1ki#82 by Sunyata-Anatta.
dsh 0.1.5-alpha.1 turned CommandContribution.description into a thunk
evaluated per candidate pass; passing the plain string threw inside the
registry and took the whole '/' command surface down (issue V1ki#79).
Older lines render the function as empty row copy instead of crashing.

Applied from PR V1ki#75 by kaijia323.
Some tiers answer the billing endpoint with only currentPeriod; the
card now still shows the window and its reset time (used percent
falls back to 0) instead of hiding the usage section.

Applied from PR V1ki#64 by Frost2026.

fix(claude): detect the CLI version on Windows instead of pinning the
stale fallback

npm installs Claude Code as claude.cmd there, which execFileSync
cannot spawn directly since the CVE-2024-27980 fix; probe through
cmd.exe with shell:true and raise the probe timeout to 10s.

Applied from PR V1ki#74 by w3a11y.
…vider

Empty tokens (seen from a corrupted Keychain item after a Claude Code
logout) now fail the import gate; store entries without usable tokens
are skipped with a warning instead of rejecting the whole load, and
the status endpoint degrades one provider's failure to its own detail
instead of failing every card. The write path validates sessions with
the same strictness.

Applied from PR V1ki#59 by CHENHUI-X (test conflict with the V1ki#82 fetch
route test resolved by keeping both).
Another plugin registering the same tool name (e.g. @liustack/modsearch
owning x_search) made the duplicate insert throw out of the plugin's
apply, taking the providers and the auth channel down with it (issue
V1ki#76). Each tool now probes the registry and falls back to a namespaced
alias — grok_x_search / grok_video_generate / subscriptions_image_generate —
and degrades to a skip with a warning when even the alias is taken;
the Settings-page switches keep keying on the stable canonical names.
Peer ranges admit the 0.1.3 and 0.1.5 lines, whose transports the
feature-detecting rpc registration already serves.
@V1ki

V1ki commented Sep 14, 2026

Copy link
Copy Markdown
Owner

感谢你的贡献和完整的兼容性分析,尤其是对 DSH 0.1.5 认证通道问题、/fast 命令菜单问题以及工具名称冲突的定位和修复建议。

我们已将其中的 /fast 修复(来源于 PR #75)合并到当前 main,并在今天补充了回归测试;认证路由部分此前已由独立实现覆盖。由于本 PR 涉及范围较多,同时包含与现有实现及其他 PR 重复的内容,为避免重复合并和后续维护分叉,现关闭本 PR,不直接合并其整体分支。

预计今天会整体收敛现有 issue 和 PR;其中仍有价值但未被覆盖的部分会拆分后单独评估。感谢你的工作和测试验证。

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.

x_search 与 @liustack/modsearch 重名导致 apply 整体失败,插件完全不可用(0.8.0 / DSH Desktop 2.0.9)

2 participants