Repository navigation
Releases: gongstudent/dsh-devin-search-next
Release list
v1.0.2 - 已登录时的 /devin-login 不再是失败
修 /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
实机验证(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
面向 DeepSeek Harness 的 Devin 搜索插件:一次 Devin 登录,即可使用 Devin 版 web_search 与只读 code_search。
为什么会有这个包:旧包 dsh-devin-search 把 @deepseek-ai/dsh-* 写成精确版本白名单,DSH 升级后会被 bundle 兼容性闸门静默丢弃整层补丁(列表里直接没有这一行、也不打印日志)。本包从设计上避开它。
关键点
- 零运行时依赖、零
@deepseek-aiimport、不声明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。