Skip to content

Releases: gongstudent/dsh-devin-search-next

v1.0.2 - 已登录时的 /devin-login 不再是失败

Choose a tag to compare

@gongstudent gongstudent released this 24 Oct 15:39

修 /devin-login 的一个体验回归:在已登录状态下执行,原先返回的是命令失败。

问题:beginLogin() 在已登录时 throw,dsh 于是把整条命令渲染成「命令执行失败:Already signed in until …」。请求本身是合理的(可能只是想确认状态或换账号),不该显示成失败;而且消息里是 UTC ISO 时间(2027-10-17T03:33Z),和旁边卡片显示的本地时间(2027/10/17 11:33)对不上。

修复

  • beginLogin() 改为返回 { status: 'already-signed-in', expiresAt, message },命令、HTTP 路由、网页三处都按普通提示渲染,不再是错误行
  • 命令文案统一用本地时间 YYYY-MM-DD HH:mm,与卡片一致
  • /devin-cancel 在没有等待中的登录时,不再谎称「已取消」,而是说明当前没有待处理的登录
  • 网页端点击登录按钮时若已登录,显示提示而不是「无法识别的响应」

新增测试:直接按 dsh-commands 的方式调用已注册的命令处理器,断言 /devin-login、/devin-status、/devin-cancel、/devin-settings 的结果类型与文案(含「不得出现 UTC ISO 时间」)。

实机验证(DSH 0.2.1-rc.3):

GET  /api/devin/state -> 200 "message":"Signed in until 2027-10-17 11:33 (no automatic refresh)."
POST /api/devin/login -> 200 {"status":"already-signed-in","expiresAt":...,"message":"Already signed in until 2027-10-17 11:33 …"}

CI:Node 20 / 22 / 24 全绿。

v1.0.1 - fix browser API GET routes and signed-in status

Choose a tag to compare

@gongstudent gongstudent released this 24 Oct 15:32

实机验证(DSH 0.2.1-rc.3)抓出并修复两个离线测试看不见的缺陷:

1. 浏览器 API 的所有 GET 路由在真实 carrier 上必然 400

路由原先用 requestBody: 'streaming' 注册;该模式下 carrier 会用实时流构造 Fetch Request,而「带 body 的 GET」在进入 handler 之前就抛错。于是 GET /api/devin/state 与登录轮询接口永远返回 400 空响应 —— 设置页与登录卡只能看到静态状态。改为 'buffered'(body 本来就是小 JSON)。

2. 已登录却显示 "Not signed in."

getStatus() 原先返回记忆中的文案;如果插件启动时凭据文件里已经有会话(本机升级场景就是这样),状态就一直显示未登录。现在状态从实时快照推导,且 state 路由先重读凭据文件,外部改动与迁移也能反映出来。

两项都有新增断言覆盖。CI:Node 20 / 22 / 24 全绿。

v1.0.0 - Devin Search, upgrade-proof

Choose a tag to compare

@gongstudent gongstudent released this 24 Oct 15:23

面向 DeepSeek Harness 的 Devin 搜索插件:一次 Devin 登录,即可使用 Devin 版 web_search 与只读 code_search。

为什么会有这个包:旧包 dsh-devin-search 把 @deepseek-ai/dsh-* 写成精确版本白名单,DSH 升级后会被 bundle 兼容性闸门静默丢弃整层补丁(列表里直接没有这一行、也不打印日志)。本包从设计上避开它。

关键点

  • 零运行时依赖、零 @deepseek-ai import、不声明 engines.dsh / peerDependencies → 不会再被版本闸门摘除
  • 不导出 Config(那需要真 Schemastery 实例),开关存在插件自己的 settings.json
  • /devin-login(授权码 / local 回环回调)、/devin-status、/devin-logout、/devin-cancel、/devin-settings
  • 从旧包一次性迁移会话凭据(带标记,登出后不会被旧记录复活)
  • 客户端零官方内部组件依赖:自写 Switch、只用 --dsw-alias-* token、每个 slot 注册独立 try/catch
  • 43 项离线测试 + bundle 合规检查;CI 覆盖 Node 20 / 22 / 24

安装

dsh plugin --profile desktop add github:gongstudent/dsh-devin-search-next

或在插件页添加 github:gongstudent/dsh-devin-search-next。装好后重启 DSH,然后 /devin-login。