<!-- codsh-publication:grok-cli-dsh-rewrite:ticket-39 --> ## Parent https://github.com/Blackman99/codsh/issues/132 **Ticket:** 39 **Status:** ready-for-agent **User Stories:** 55(见父规格) ## What to build 用户通过 dsh 搜索或获取网页,看到来源与可验证结果,无须官方账号且不会隐式切换服务。 ## Acceptance criteria - [ ] 明确搜索/获取服务配置、授权、支持能力和费用;实际调用由 dsh 工具路径触发。 - [ ] 来源、引用和截断可追溯;不可访问、认证页面、限流、取消及网络失败不假装取得正文。 - [ ] URL/域名规则、重定向及敏感目的地按策略处理,工具不能因第三方路由扩大权限。 - [ ] 受控服务测试与至少一个真实可用替代服务通过,界面、机器输出和模型结果一致。 ## Blocked by - #140 — Ticket 08: 多提供商模型与推理选项 - #142 — Ticket 10: 权限模式与持久规则 ## Delivery contract 用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。
Activity
Blackman99 commentedon Sep 24, 2026
按用户2026-09-20的实施授权领取 Ticket39 / #171;本次只记录领取,未启动实施工作者,也不表示已实现。已重新读取 #132 及全部80票正文/评论和实际 blocked-by(native 177 边,无截断,无第二页)。#156/#158/#159/#163 已在
rewrite/grok-dsh-20260920集成并关闭;当前独立集成树 HEAD 与 origin 均为a5e7d89215832885b912b11b71aa6c1c28460096。依赖已满足且无人领取的开放票为 #157、#162、#171、#185、#194。本波并行领取前四张(#157、#162、#171、#185)。未领取被阻塞后继,也未领取本波未选的其他就绪票 #194,也未重领已失败的 #143/#145/#147/#151。#212 仍缺新的默认切换/软件发布批准,未领取、未执行。实施必须从独立集成树精确基线
a5e7d89215832885b912b11b71aa6c1c28460096开始。前置均已关闭,且关闭评论中的集成提交是当前 HEAD 的祖先:253b7376f14c2ad2c8955440fbe21e98b24021f0是rewrite/grok-dsh-20260920HEADa5e7d89215832885b912b11b71aa6c1c28460096的祖先。0e8e8b04fd1982dff7db8e8a06bd549c43365e7d是rewrite/grok-dsh-20260920HEADa5e7d89215832885b912b11b71aa6c1c28460096的祖先。这不是完成声明。集成、独立审查与合并树测试通过之前,问题保持开放。
Blackman99 commentedon Sep 24, 2026
Ticket 39 / #171 已合入
rewrite/grok-dsh-20260920的590f9bf。protocol = "searxng"是不需要密钥的 GET{base}/search?q=...&format=json。结果取results[].url、title、content。域名允许和拒绝作用在结果 URL 上,模型参数不能放宽名单。官方主机仍然拒绝。原有的 Responses 形态替代服务保持不变。本机用 Docker 跑了一个
searxng/searxng(127.0.0.1:55001,容器名codsh-171-searx)。查询rust programming language经codsh-rust web search返回 8 条引用,全部是 https。容器随后删除。没有使用公共 SearXNG。CI 用本地夹具,夹具会丢掉evil.example。验证:合并后的
scripts/rust-web-pty-test.py通过。fix(rust): deep-research web tools from config, partial notice, headl…