2026 2026年10月9日 31 min · 9.3k chars by yxc023

GitHub 调研周报 2026-10-09

扫描窗口:2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)| 基准来源:上次报告 2026-10-08

2026-10-09 GitHub 调研周报

扫描窗口:2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)| 基准来源:上次报告 2026-10-08

仓库范围:config/repos.yaml 中 6 个项目。本期最重要的事件是 agegr/pi-web v0.11.0(2026-10-08T16:50:58Z)修复一个「打包进 npm 的固定密钥」导致的认证绕过漏洞——腾讯玄武实验室 XlabAI Team 报告,公开 tarball 里的 preview.previewModeId 被 Next.js 当作「跳过 middleware」的通行证,任何读过包的人都能绕过密码与 Host/Origin 检查。第二个事件是 opencode 把 Zen 免费层全部免费模型的后端代理迁完(#53959 → #53963 → #53967 三连,24 小时内完成),最后用模型自身已有的 allowAnonymous 标记替掉硬编码模型表。第三个事件是 pi 在 v1.1.0 之后进入消化期:主分支 24h 只落 8 个 commit,主轴是「配置 schema 化」(#9880,+5178/−1493,breaking)+ 打包兼容 + 定价元数据修正。

本期速览

  • agegr/pi-web v0.11.0 是本窗口第一件必须立刻升级的事(2026-10-08T16:50:58Z):0.11.0 之前密码保护可被绕过。根因在 cf3ebfb——已发布的 npm tarball 带着 .next/prerender-manifest.json,其中 preview.previewModeId 每个 release 都一样;Next.js 对 x-prerender-revalidate 等于该 id 的请求跳过 middleware(proxy.ts),于是密码门与 Host / Origin / Fetch-Metadata 检查一并失效,能直接执行命令、读写文件。修法是每次启动在 bin/pi-web.js 里用随机值重写三个 preview secret(id / signing key / encryption key),且放在 guaranteed launch path 而非 postinstall,--ignore-scripts 绕不过去;安装目录只读则告警。同批还有 Windows 目录联接(junction)跨出允许目录读文件的 git diff 端点(#1039)与 Next.js 16.3.8。
  • opencode Zen 免费层后端迁移在 24h 内收尾:#53959 把 fledge-alpha-free / jev-1.13-free / ling-3.0-flash-fin-free / longcat-2.5-preview-free / mimo-v2.6-flash-free / muse-spark-1.2-contributor-free / nemotron-3-ultra-free 移到新 inference;#53963 把最忙的三个(big-pickle、muse-spark-1.3-contributor-free、space-bunny-free)也移过去,并修掉一个可读性问题——新 inference 返 404 时 SolidStart 会把响应替换成自己的 Cannot find any route matching [POST] …/zen/v1/chat/completions,调用方看到的是路由错误而非真实原因,现在按 400 原样返回新 inference 的 body 与 headers;#53967 直接用 ZEN_MODELS 里既有的 allowAnonymous 标记替掉硬编码列表(+2/−17),以后新增免费模型不需要改代码就会被代理。同日 Fledge Alpha Free 从 Zen 文档与全部翻译里撤下(#53984,−72 行)。
  • pi v1.1.0 之后的消化期:8 个 commit,主轴是「配置 schema 化」。7f9e119 / #9880 从 canonical TypeBox 契约生成并发布 models / settings / keybindings / themes 的 JSON Schema(+5178/−1493),breaking change 是 theme schema 从 src/modes/interactive/theme/theme-schema.json 移到 schemas/theme.schema.json;配套做了 Kitty / xterm shifted-symbol 事件归一化,让 +、ctrl++ 这类逻辑绑定可用,同时保留物理绑定。其余:6fb2e78 / #10680 兼容 npm 12 把 npm pack --json 从单元素数组改成按包名索引的对象(原本打包校验、publish dry run、本地发版全挂,fixes #10633);ce950d7 删掉 Opus/Sonnet/Haiku 5.5 的硬编码 fallback 改走 models.dev 元数据;6b07b4e 把 Mistral 的 request timeout 收窄到「只等 response headers」,body 卡顿交给 HTTP client idle timeout(长流式 extended thinking 不再被误杀,fixes #10609);7933a0e 打了 mcp/codemode/durable 标签会自动指派 owner 并重开 issue。
  • pi 的贡献者治理有一个可观察的机制:新贡献者的 issue 默认被 github-actions[bot] 自动关闭(state_reason: not_planned + 「Maintainers review auto-closed issues daily and reopen worthwhile ones」注释),本窗口内 #10696 / #10699 / #10700 / #10701 / #10697 五个 issue 都是这样在数十秒内关闭的;同日还有 4 条外部 PR(#10688–#10690 dakjdakd、#10698 BichengWang)在几分钟内 closed 且 merged_at: null。
  • pi 侧新贡献者报出的三个 cache 相关问题质量很高(均被自动关闭):#10699「wake 触发的 run 不渲染 before_agent_start 贡献,导致 system prompt 头部每到 subagent 边界就翻转,prefix cache 全失效、按写入价重算全历史」;#10700「cacheWarming: "idle" 在 11–28 分钟的静默期里静默停止预热,条目过期后下一次调用读 0 全量重写,怀疑是 isCurrent() 失效或 refresh() 里的 catch {} 吞掉了错误」;#10696「--no-skills 不拦截扩展经 resources_discover 注入的 skill,host 用 --no-skills --skill <granted> 启动时期望的恰好是授权集合」。
  • vectorize-io/hindsight v0.10.3 发布(2026-10-08T15:47:49Z):这是一个横跨约 200 个 PR 的累计 release(#4535 → #5441,含 19 位新贡献者)。24h 内真正的新代码只有 3 条:#5432(bank 被其它进程删掉但仍在本进程 cache TTL 内时,所有 store 调用改返 404,而不是继续读写)、#5437(Oracle 时间统一到 UTC)、#5396(worker 丢掉的 append 竞态改为 defer,而不是直接失败);其余是首页 hero 的全宽改造与「可 hover 的记忆星座」可视化(#5436)、social card / link preview 修复(#5441、#5440)与 Next 16.3.8 依赖。
  • agentclientprotocol/agent-client-protocol 进入纯版本同步模式:24h 内 4 条 acp-release-bot 同步(claude-agent-acp 0.87.0→0.88.0、kimchi 1.7.1→1.7.2、cline 3.0.69→3.0.70、nova 1.1.50→1.1.51、sigit 1.6.3→1.6.4、goose 1.53.0→1.54.0、Copilot 2.162.0→2.163.0、另一客户端 0.235.0→0.236.0),零新增 client;人工新增的两条都是社区自荐(#2321 Gonggong Space,自建 Rust daemon 驱动 Claude Code / Codex 的群聊,可 @ 别人的 agent;#2317 Bellows,桌面端驱动 gemini-cli,带 hash 链接的审计轨迹)。
  • opencode 免费额度故障在同一时段集中出现:#14273「Free usage exceeded. Add creddits(when using Zen free models)」、#53456「Your access has been restricted due to repeated policy violations」、#53827「Upstream request failed: Insufficient account funds」ずっと出てまったく使えない。这三条与上面 24h 内的免费层后端迁移在时间上重叠。
  • 跨项目共有信号:① 「安全边界不能放在构建产物里」——pi-web 把三个 secret 从打包常量改成每次启动随机生成,且刻意放在 --ignore-scripts 绕不过的启动路径上;② provider 兼容性仍是 bug 的主要来源——pi 的 Mistral 超时语义、Claude 5.5 定价元数据、opencode 的 ultrafast service tier、pi 的 DashScope quota 限流分类、hindsight 的 Oracle 时区,都属于「协议声明与实际行为不符」;③ 「让新条目自动生效」成为共识做法——opencode 用 allowAnonymous 标记替掉硬编码模型表,hindsight 用 tag scope 替掉按表枚举,方向一致;④ 两个项目同时在做「只列这个 key 能用的模型」——pi 的 #10672 / #10569(按 OpenRouter key 可用性过滤模型);⑤ 免费额度/代理层正在变成新的故障面,而不是纯技术改造。

各仓库详情

agegr/pi-web

pi coding agent 的 Web UI;TypeScript / Next.js,读取本地 pi session JSONL 维持会话。| stars: 7,168(上份 7,145,+23 / 24h) | open issues: 54(上份 78,−24) | 默认分支: main | 最近 push: 2026-10-08T17:36:49Z | 主页: https://github.com/agegr/pi-web

近 N 周 release 重点:

  • v0.11.0(2026-10-08T16:50:58Z)— 侧边栏重新设计 + 一个严重安全漏洞的修复
    • ⚠️ 安全修复(0.11.0 之前密码保护可被绕过):此前每个 npm 包都带着同一组固定的内部密钥,任何人从公开 tarball 里读到就能跳过密码登录与来源检查(Host / Origin),进而执行命令、读写文件。新版本每次启动生成新的随机密钥;安装目录不可写时启动打印警告;由腾讯玄武实验室 XlabAI Team 报告(对应 commit cf3ebfb,Co-Authored-By: Claude Opus 4.8)。
    • Windows 目录联接越权:git diff 接口可通过 junction 读到允许范围以外的文件,已修复(#1039)。Next.js 升到 16.3.8。
    • 侧边栏重做:所有项目同时显示(每个项目是可折叠分组,折叠时仍能看到运行中 / 未读会话数)、会话可置顶与归档(10 秒内可撤销,已归档会话收到新消息自动回来)、项目顺序不再被新消息顶到最前(拖分组头或菜单上移 / 下移,跨浏览器与设备同步)、可在侧边栏直接分叉会话(运行中也能分叉,名称为原标题 + 短随机后缀)、「会话 | 文件」双标签(文件浏览器占满侧边栏高度,顶部是项目 / 工作树选择与终端 / 在文件管理器打开 / 上传 / 刷新 / 显示被忽略文件 / 改动视图)、新建会话时可直接选项目与工作树且草稿 / 图片 / 模型 / 推理等级一起带过去。
    • 新增:拖文件进聊天框即上传并 @ 提及(#1094)、自定义界面与代码字体及字重(#1074)、文件浏览器可显示 Git 忽略文件并变暗注明原因(#1092)、扩展可在状态栏放命令按钮如 ctx.ui.setStatus("command:/mode toggle", "Build")(#1030)、subagent profile 支持 skills: 预加载与 extensions: 白名单(#1034 / #1091)、write 工具卡片直接显示写入内容(#1024)。
    • 修复:CJK 标点旁的粗体 / 斜体正确渲染(#1072)、表格长单元格换行(#1056)、运行中上下文用量实时更新(#1058)、session_start 才注册的 provider(如 pi-claude-bridge)不再从模型列表消失(#1071)、升级后偶发「Pi Web is offline」(#1089)、子代理回合上限与终态处理(#1093)。
    • 改进:运行中转圈动画改用 CSS,GPU 占用明显下降(#1042);随 pi 1.1.0 升级,项目 .pi/mcp.json 可单独调整某个全局 MCP 服务器的开关与暴露方式。
    • 升级注意:pi 1.1 把 azure-openai-responses 改名为 azure;置顶 / 归档 / 顺序保存在 ~/.pi/agent/pi-web-session-state.json;强调符号规则调整,少数旧消息可能露出星号。
    • 完整 release notes: https://github.com/agegr/pi-web/releases/tag/v0.11.0

其他重要 commits / PRs(24h 内 30 条 commit,按重要性挑选):

  • cf3ebfb 修复认证绕过 — fix(security): rotate preview-mode secrets at startup to close proxy auth bypass(Alex Yang, 2026-10-08)。prerender-manifest.json 里的 previewModeId 每个 release 固定,Next 对 x-prerender-revalidate 命中该 id 的请求跳过 middleware;改为在 bin/pi-web.js 里重写三个 preview secret,不走 postinstall。
  • 2e87ddb 侧边栏项目分组 / 置顶 / 归档 + 「会话 | 文件」分栏 — feat(sidebar): project groups, pins and archive with a Sessions | Files split(Alex Yang, 2026-10-08)。
  • 085fba9 从会话行菜单分叉会话 — feat(sidebar): fork a session from its row menu;02ded7e 固定项目顺序并支持手动重排。
  • 2f6a0a9 文件浏览器显示 Git 忽略文件(变暗 + 注明原因,#1092)— Matthias Kuchem。
  • 86d94e2 自定义字体族与字重(#1074)— Liang Gong。012e805 文件提及可撤销(#1098)— Tiger。6d4d6b5 CJK 标点旁强调渲染(#1072)— keeword。
  • 86dea26 升级 pi 到 1.1.0;1e294b0 bump Next 到 16.3.8 并修 npm audit。
  • 未合并的 PR(24h 内更新,14 条来自作者本人的跟进):#1123「折叠 compaction 摘要,与 pi TUI 行为对齐」(#1026)、#1122「composer 的附件按钮可附加任意文件,不只图片」(#1101)、#1121「自定义面板每次按键不再重渲染整个回答」(#1005)、#1117「启动时即开始导入 pi SDK,而不是首个请求时」(#964)、#1115「接纳扩展在 session_start 注册的工具」(#883)。

社区讨论 / 行业方向:

  • newreleases.io 上 @agegr/pi-web 0.11.0 的发布页:安全通告中文明示「0.11.0 之前的版本,密码保护可以被绕过」,并要求局域网 / 公网暴露的用户立即升级——说明公告在发布后 2 小时内已被第三方镜像站完整收录。
  • hysenlabs 的 pi-web 评测:从第三方视角复述了同一风险模型——「它不是沙箱,假设用户可信,其价值取决于你怎么处理访问;不要用于多租户隔离或公网暴露」。
  • Pi Web fork(PriceNing/pi-web 与 NolanHo/pi-web 等):生态里已有多份 fork,且 README 里的密码设置指引仍停留在旧的安全模型上(PI_WEB_PASSWORD、-H 0.0.0.0),说明这次修复尚未传导到下游 fork。
  • 窗口期内未检索到针对该漏洞本身的公开技术分析;HN / dev.to / InfoQ 均无相关讨论。

信号观察:

  • 这是一个「把 secret 放进构建产物」的经典失误:秘密本应属于运行时状态,却被固化进了可公开下载的 tarball,且 Next.js 的机制让这个固化值恰好等价于一张绕过凭证。
  • 修复方式的选择很有信息量——放在 guaranteed launch path 而非 postinstall,理由是 npm install --ignore-scripts 会跳过 postinstall;宁可让只读安装目录启动失败告警,也不留一个静默的漏洞版本。
  • 24h 内 30 条 commit 中约 18 条是同一波侧边栏重做的子提交(同一作者、同一分钟批量提交),说明这次是一次性的大改而非渐进演化。
  • open issues 从 78 降到 54,与 v0.11.0 一次性关掉一批重构类 issue 同步发生。
  • fork 生态尚未同步安全修复,是本次事件里最直接的下游风险面。

earendil-works/pi

AI agent 工具集:统一 LLM API、agent loop、TUI、coding agent CLI;MIT 许可。| stars: 113,524(上份 113,186,+338 / 24h) | open issues: 307(上份 284,+23) | 默认分支: main | 最近 push: 2026-10-08T15:26:37Z | 主页: https://pi.dev

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v1.1.0(2026-10-07T22:26:31Z),已在 2026-10-08 报告中详述(OSC 7501 Program Status、Claude Haiku 5.5、OpenAI Decisions 分类器、--tools 的 +name/-name、llama.cpp 原生 decision models)。
  • 本期值得注意的是 v1.1.0 之后 24h 只落 8 个 commit,属于典型的「发布后消化期」,且其中最大的一条是一个 breaking change(见下)。

其他重要 commits / PRs(24h 内 8 条 commit,按重要性挑选):

  • 7f9e119 发布配置 schema — feat(coding-agent): publish configuration schemas(Christian Klotz, 2026-10-08,#9880,+5178 −1493)。从 canonical TypeBox 契约生成并发布 models / settings / keybindings / themes 的 JSON Schema;集中 schema 元数据、无条件默认值、theme tokens 与 provider 兼容性定义;条件兼容性字段刻意不给 schema 默认值以保留运行时自动探测;加载与 reload 时校验 theme 并拒绝非法 keybinding 语法;归一化 Kitty 与 xterm 的 shifted-symbol 事件使 + / ctrl++ 这类逻辑绑定可用。Breaking change:theme schema 从 src/modes/interactive/theme/theme-schema.json 移到 schemas/theme.schema.json。
  • 6fb2e78 兼容 npm 12 打包输出 — fix: support npm 12 pack JSON output(Christian Klotz, 2026-10-08,#10680,fixes #10633)。npm 12 把 npm pack --json 从单元素数组改成按包名索引的对象,导致包安装校验、publish dry run、本地发版与打包全部失败。
  • ce950d7 Claude 5.5 定价改走 models.dev — fix(ai): use models.dev metadata for Claude 5.5 models(David Brailovsky, 2026-10-08)。删掉 Opus 5.5 / Sonnet 5.5 / Haiku 5.5 的硬编码 fallback;Sonnet 5.5 测试改为期望官方 cache read 价 0.1。
  • 6b07b4e Mistral 超时只算响应头 — fix(ai): apply Mistral request timeout only to response headers(David Brailovsky, 2026-10-08,fixes #10609)。长流式响应(如 extended thinking)即使仍在持续收数据也会被 timeoutMs 中止;现在超时只覆盖等待响应头,body 卡顿交给 HTTP client 的 idle timeout。
  • 7933a0e 标签驱动 owner 指派与自动重开 — feat: assign owners and reopen issues when mcp, codemode, or durable labels are applied(David Brailovsky, 2026-10-08)。
  • bd21693 docs: add dup prompt template(David Brailovsky, 2026-10-08)。

未合并的 open PR / issue(24h 内更新):

  • 新贡献者 issue 默认自动关闭:#10699 / #10700 / #10696 / #10701 / #10697 全部 state_reason: not_planned,机器人注释为「All issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily and reopen worthwhile ones.」。内容质量并不低——#10699 指出 wake 触发(subagent 结果到达、sleep 唤醒)的 run 不渲染 before_agent_start 贡献,导致 system prompt 在 subagent 边界处来回翻转、promptGuidelines 里的扩展规则与 MCP 扩展写的 <mcp_servers> 段交替出现,在支持 prefix caching 的 provider 上整个缓存失效、全历史按写入价重新计费;#10700 指出 cacheWarming: "idle" 在 11–28 分钟静默期里预热静默停止、条目过期后下一次调用读 0 全量重写,怀疑是等待期间追加内容导致 isCurrent() 失效,或 refresh() 里的 catch {} 吞掉了 replay 错误(建议至少加一行「warmer stopped: 」日志);#10696 指出 --no-skills 不拦截扩展经 resources_discover 注入的 skill,破坏 host 的授权语义。
  • 同一天 4 条外部 PR 被关闭且未合并:#10698(mcp oauth.clientId 的环境变量展开,#10654 同题仍 open)、#10690(OAuth HTTP Basic 凭证 form-encode)、#10689(prepareRequest 后同步工具声明)、#10688(过滤包资源时保留 manifest 边界)——均 merged_at: null,提交者 dakjdakd / BichengWang。
  • 仍在推进的功能提案:#10672 / #10569(按 OpenRouter key 可用性过滤模型,避免列出用不了的)、#10663(pi auth --continue)、#10703(feat(durable): let extensions annotate aborted tool results,lucasmeyer,2026-10-08T23:37Z)、#9301(device-code 登录时确认浏览器与剪贴板动作)、#10663/#8112(Windows shell 解析、jiti import 前 realpath 扩展条目)。
  • #10577(mitsuhiko,in-context compaction)自 2026-10-06 起仍是 open 状态,无更新;同题的 #8307(vegarsti,cache-friendly compaction)已于 2026-10-07 被关闭未合并。

社区讨论 / 行业方向:

信号观察:

  • 发布后 24h 只有 8 个 commit,但其中一条就是 +5178 行的 schema 化改造——pi 的节奏是「小批量、高杠杆」,不是连续功能流。
  • 配置契约从「TypeScript 常量」变成「可发布的 JSON Schema」,是生态层面的事:编辑器、第三方客户端、配置生成器第一次有了稳定接口;同时 breaking change(theme schema 换路径)说明 schema 还在剧烈变动期。
  • ce950d7 与 v1.1.0 当天的 943a10e 是同一个问题的两次修:Haiku 5.5 发布当天先硬编码,次日 models.dev 有数据后又删掉硬编码——定价元数据的上游延迟直接决定了代码形态。
  • 新贡献者 issue 的自动关闭机制把「首提质量」的责任从维护者转移到了机器人 + 每日复审;本期五个被自动关闭的 cache 相关报告,如果成立,影响面(成本重计费)远大于它们现在的可见度。
  • open issues 从 284 涨到 307,与新贡献者自动关闭机制同期发生——总量上升可能来自自动化标签重开。

anomalyco/opencode

开源 coding agent:TypeScript / Bun,单仓多 target(CLI / Desktop / TUI / ACP server / Web);MIT 许可。| stars: 212,200(上份 212,209,−9 / 24h) | open issues: 6,211(上份 6,248,−37) | 默认分支: dev | 最近 push: 2026-10-09T00:17:44Z | 主页: https://opencode.ai

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v1.18.35(2026-10-06T20:18:39Z)。本窗口内 opencode 已从「产品迭代」完全转入「变现与免费层基建」。

其他重要 commits / PRs(24h 内 9 条 commit,按重要性挑选):

  • 687664c + 9c1fdf8 + 5a8c1d8 免费层迁移收尾 — refactor(console): proxy every keyless free Zen model to new inference (#53967, +2 −17)、feat(console): proxy remaining free Zen models and keep proxied 404 errors (#53963)、feat(console): proxy more keyless free Zen models to new inference (#53959)(Victor Navarro, 2026-10-08)。#53967 用 ZEN_MODELS 里既有的 allowAnonymous 标记替掉硬编码模型表,新增免费模型不再需要改代码;#53963 修掉 SolidStart 把上游 404 换成 Cannot find any route matching [POST] …/zen/v1/chat/completions 的问题,代理来的 404 现在按 400 返回新 inference 的原始 body 与 headers,与 legacy handler 对自身 provider 响应的处理一致。
  • 03146da + fa0073c Step 5 Free 内容 — feat(opencode): add Step 5 Free content (#53898, +332 −10,MrMushrooooom):把 Step 5 Preview Free 加进 Free 与 Go 文档、Go 首页与 legacy Console。
  • 5e2df97 接受 OpenAI ultrafast service tier — fix(provider): accept OpenAI ultrafast service tier (#53875, +204 −4,Aiden Cline):扩展已有的 @ai-sdk/openai@3.0.88 patch,让 Chat Completions 与 Responses 接受 serviceTier: "ultrafast",并加了一条离线回归测试断言 GPT-6 Astra 的 Responses 流式请求里确实带上了 service_tier: "ultrafast"(fixes #53538)。
  • 3884062 + 663fbd7 文档调整 — docs(web): remove Fledge Alpha Free from Zen docs (#53984,−72 行,删掉端点表 / 价格表 / 免费模型说明 / 隐私说明里的 fledge-alpha-free 及全部翻译) 与 docs(web): add Sonnet 5.5 to Zen model tables(Frank)。

24h 内更新的 open PR / issue(挑有信号的):

  • #14273 [bug] Free usage exceeded. Add creddits (when using Zen free models)、#53456 Error from provider (Console): Your access has been restricted due to repeated policy violations.、#53827 「Upstream request failed: Insufficient account funds」がずっと出てまったく使えない——三条都指向免费额度与账户限制,且时间上与免费层后端迁移重叠。
  • #46369 feat(opencode): add cache-preserving compaction(AnnoyingTechnology,open)——与 pi 侧 mitsuhiko 的 #10577 属于同一题(保缓存的 compaction),两边各自独立推进。
  • #53387 fix(desktop): prevent background service SIGKILL loops and tune SQLite WAL concurrency、#54030 fix(core): ignore a corrupt cached project id、#51422 fix(core): resolve configured instructions、#53814 cli: opencode api get silently truncates stdout for responses larger than ~256 KiB、#43806 类的 session 与 model 状态不一致(#53806 --model 在 --session 恢复时被忽略)——桌面端与服务端的健壮性问题集中在 23:00–00:20 这一小时。
  • #44065 V2 runner sends a non-credential env var as the bearer API key for env-configured providers、#54023 fix(core): coordinate credential refreshes across locations`——凭证处理仍是活跃问题域。

社区讨论 / 行业方向:

  • dsh-llm-opencode-zen(npm) 与 dsh-opencode-zen-free-provider:生态里已有多条把 OpenCode Zen 免费模型整体转接给第三方 harness 的插件,自述支持「27 个免费模型」「以 Authorization: Bearer public 匿名请求」「完整适配器实现(流式、tool_calls、reasoning_content → reasoning-delta、用量统计)」,启动时同步 Zen 与 models.dev 目录、取 id 以 -free 结尾的模型。
  • pi-opencode-zen(npm):同类插件,把 Zen 的 OpenAI 兼容端点 https://opencode.ai/zen/v1 接进 pi;文档明确写了免费访问的额外条件——必须用空 Bearer(填任何非空无效 token 反而 401)+ 携带特定 header。这正是 opencode 侧 Console 一直在收紧的免费层规则。
  • opencode-free-proxy:一个自托管的 OpenAI / Anthropic 双格式免费代理,提供 api-keys.json 供 Claude Code 使用。
  • opencode pricing & plans(agentplans.fyi):截至 2026-10-01,Zen Go $10/月(首月 $5 促销)到 Zen Go Plus $40/月,官方按「解锁的 API 等价算力 / 每美元」折算——量化了免费层迁往 inference 后端背后的定价压力。
  • opencode is free until the model rotates out:社区侧对免费轮换模型的预期文章。

信号观察:

  • 24h 内 9 条 commit 有 5 条属于同一条主线(免费层代理迁移的三个 PR + 两次自动 generate),核心工作是「把硬编码模型表换成数据驱动」——allowAnonymous 这个改动只有 2 行,却是本窗口内 opencode 最有杠杆的一次重构。
  • 同一天里 Fledge Alpha Free 从文档撤下、Step 5 Free 加入内容、Sonnet 5.5 加入模型表:模型目录的进出频率远高于代码变更频率。
  • 免费层故障的形态变了——从「模型不可用」变成「账户被限制 / 额度用尽 / 余额不足」,说明商业侧的风控与额度逻辑已经先于代理迁移就位,迁移期只是把它暴露给用户。
  • 生态里出现了成规模的「Zen 免费模型二次分发」层(dsh、pi-opencode-zen、opencode-free-proxy),这些插件的规则嗅探(空 Bearer + 特定 header)与官方 Console 的实现细节强耦合——官方每收紧一次规则,这些插件就会先坏。
  • 生态侧对「保缓存的 compaction」的兴趣已经独立成 PR(#46369),与 pi 侧的 #10577 / #8307 遥相呼应,且 opencode 的 provider 矩阵更宽(OpenAI service tier、Gemini 枚举),这类跨 provider 的能力探测会持续产出 bug。
  • 24h 内 stars 微降 9、open issues 降 37,是本窗口唯一一个星数负增长的仓库。

vectorize-io/hindsight

Agent 记忆系统:retain / recall / reflect 三大能力 + 本地嵌入式 hermes / embed;MIT。| stars: 47,285(上份 46,815,+470 / 24h,本窗口增速最快) | open issues: 167(上份 148,+19) | 默认分支: main | 最近 push: 2026-10-08T21:42:39Z | 主页: https://hindsight.vectorize.io/

近 N 周 release 重点:

  • v0.10.3(2026-10-08T15:47:49Z)— 一个横跨约 200 个 PR 的累计 release
    • 范围异常大:changelog 从 #4535 一直排到 #5441,把 TraeCode(TRAE CN)harness、Codex 内容过滤、Hermes 嵌入式 daemon 拆出进程、Codex account id header、WorkBuddy / CodeBuddy harness、Grok Bot + Cursor 插件、BEIR 检索基线(nDCG / Recall 下限)、tag scope 体系(#5032 per-caller tag scopes)等大批改动一次性打包进来,New Contributors 段列出 19 位首次贡献者。
    • 正确性主线:consolidation 一次响应的写入进一个 store batch、sources 合并读取后再应用(#5420 / #5421);worker 重启不再阻塞 claim(#5411);structured-output schema 剥掉 numeric bounds(#5401,修 Bedrock Converse 拒绝 minimum / maximum 导致 131 个模型里 60 个 mental-model refresh 暂停);retain 重问时明确告诉模型哪些 key 错了(#5402);多个来源指向同一条 memory 时保留最强的 link(#5237);被模型从未见过的 memory id 不得出现在回答与页面里(#5302 / #5246)。
    • provider 兼容主线:OpenRouter 的 structured-output 调用只路由到支持 response_format 的上游(#5304);Gemini 在 tool loop 中途 failover 不再 400(#5241);embeddings 输入上限改用模型自己的 tokenizer 计算(#5243);cohere recall embeddings 改用 query task(#5155);新增「跳过 OpenAI-compatible provider 的 json_object」开关(#4935 / #5261)。
    • Full Changelog: https://github.com/vectorize-io/hindsight/compare/v0.10.2…v0.10.3 | 完整 release notes: https://github.com/vectorize-io/hindsight/releases/tag/v0.10.3

其他重要 commits / PRs(24h 内 10 条 commit):

  • 31fc17c bank 被其它进程删除后的 404 语义 — fix(api): 404 any store call for a bank deleted by another process within the cache TTL(Nicolò Boschi, 2026-10-08,#5432):本进程 cache TTL 内拿到的是已删除 bank 的陈旧标识,此前会继续读写。
  • ca4da5f append 竞态改为 defer — fix(worker): defer a lost append race instead of failing it(Nicolò Boschi, 2026-10-08,#5396)。
  • 9db878b Oracle 统一到 UTC — fix/oracle now at utc(#5437):配合 v0.10.3 里 Oracle 的时间排序与 knowledge-page 搜索修复(#4804 / #4805)。
  • eb6df49 Release v0.10.3;3d5aa17 changelog 与博客文章(#5435)。
  • 9ed897e + 45bd39d + 6d8b096 官网首页改造 — 全宽 overview hero + 可 hover 的实时「记忆星座」可视化(#5436)、宽屏下 hero 铺满窗口(#5440)、修首页 link preview(真实 description、不裁剪的 social card,#5441)。
  • 1152717 Next 16.3.8 依赖升级(#5438);10d8b1b 删掉未使用的 any_memory_exists 并修过时注释(#5430)。

社区讨论 / 行业方向:

信号观察:

  • stars 24h +470,是本窗口唯一维持高速增长的仓库;open issues +19,说明社区提问也在同步增加。
  • v0.10.3 的 changelog 长度(约 200 个 PR、38KB)已经超过可读阈值——一个 release 里同时装着基础设施、正确性修复、provider 兼容、文档站改造和 blog,这在工程上等价于「发布节奏落后于合并节奏」。
  • 24h 内 10 条 commit 中 7 条是文档与官网,说明团队在版本发布后的注意力主要放在对外呈现(首页 hero、记忆星座可视化、blog 体系)而非继续堆功能。
  • 「bank 被删除但还在 cache TTL 内」这类 bug(#5432)与「append 竞态丢失」(#5396)指向同一个结构性问题:多进程共享一个 bank 时,进程内缓存与跨进程状态的一致性没有明确的失效协议。
  • Hermes 把 memory provider 移出核心树、hindsight 同时维护 hermes / paperclip / grok-bot / cursor / obsidian 等多条插件链——「agent 框架把记忆层当插件、记忆项目把 agent 框架当宿主」的双向依赖已经在事实上形成。

agentclientprotocol/agent-client-protocol

Agent 与 Editor 之间的协议(ACP);Rust crate + JSON schema 双轨;Apache-2.0。| stars: 4,394(上份 4,388,+6 / 24h) | open issues: 46(上份 48,−2) | 默认分支: main | 最近 push: 2026-10-08T22:09:07Z | 主页: https://agentclientprotocol.com

近 N 周 release 重点:

  • 窗口期内无新 release;最新仍是 v1.10.2(2026-10-01T13:16:02Z)。协议本体在这 24h 内没有变化。

其他重要 commits / PRs(24h 内 6 条):

  • 8c4b8fa #2329 Copilot 2.162.0 → 2.163.0、goose 1.53.0 → 1.54.0;43e664a #2328 claude-agent-acp 0.87.0 → 0.88.0、kimchi 1.7.1 → 1.7.2;e0236ea #2327 cline 3.0.69 → 3.0.70、nova 1.1.50 → 1.1.51、另一客户端 0.235.0 → 0.236.0;1c2b84c #2326 sigit 1.6.3 → 1.6.4(均为 acp-release-bot[bot] 自动同步,改动只落在 docs/get-started/registry.mdx)。
  • 5ed386e #2321 新增 messaging client Gonggong Space(yoqu):Apache-2.0 自建群聊,每个成员机器上跑一个 Rust daemon 驱动 Claude Code / Codex over ACP,可以在群里 @ 其他成员的 agent、看到 live process。
  • 538a9e9 #2317 新增桌面 client Bellows(bellowsai):Windows / macOS / Linux 桌面应用,通过 ACP 驱动 coding agent(已对 gemini-cli 测试,另有 Claude 与 Codex),带团队规则、hash 链接的审计轨迹与 live session 共享。

社区讨论 / 行业方向:

  • ACP v2 draft 上线(pulsegate.ai):PulseGate 的存活探测在 2026-09-14 发现 agentclientprotocol.com 的 ACP v2 draft,站点自 2026-07-21 起被索引——协议已进入第二个大版本周期,本仓库当前的 v1.10.2 属于 v1 线。
  • agentclientprotocol/registry(registry 仓库):registry 是独立仓库,已有 2,004 次 commit,最近一次同样在 2026-10-08;本仓库的 registry.mdx 是它的 CDN 同步产物,两者的更新节奏一致。
  • VibeAround 出现在官方 Clients 列表:「一站式 ACP coding agent 枢纽(Claude Code、Codex CLI、Gemini CLI、Pi、OpenCode),任意模型 provider,同一会话可跨桌面 / CLI/TUI / Web / 移动浏览器 / 即时通讯继续」——官方 clients 页面直接把 pi 与 opencode 列为 ACP 可驱动的 agent。
  • Which Coding Agents Support ACP?(AgentRQ) 与 Tom Rochette 的协议对照:第三方把 ACP 定位为 editor↔agent,与 MCP 的 agent↔tool 互补而非竞争;后者明确列出 ACP 相对厂商 IDE 集成的优势是可移植性、代价是集成时间。

信号观察:

  • 24h 内 6 条 commit 里 4 条是纯版本号同步、零新增 agent 实现——与 2026-10-08 报告里「每日 1+ 家新 client」形成反差,说明 registry 活动已进入稳定维护期。
  • 新增的两条都是人工提交的社区项目,且都不是 IDE 插件:一个是自建群聊(messaging),一个是带审计轨迹的桌面端——ACP 的 client 一侧正在从「编辑器」向「任意宿主」扩散。
  • registry 与协议仓库分离(registry 2,004 commits,CDN 同步回 registry.mdx)意味着协议文档的更新已经是全自动流水线,人工成本只在新增条目上。
  • pi 与 opencode 同时作为「可被 ACP 驱动的 agent」出现在官方 clients 页面,两个被跟踪的项目都在协议生态的供给侧而非消费侧。

yxc023/yxc023.github.io

个人技术博客(Astro);本仓库作为 daily-research 报告自动同步的目标。| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-08T04:04:10Z | 主页: https://yxc023.github.io

近 N 周 release 重点:

  • 窗口期内无 release(该仓库不发 release,15 个 release 列表为空)。

其他重要 commits(24h 内 3 条):

  • bffed37 revert: 撤下《Agent Skill 管理实践调研》(yxc023, 2026-10-08T04:03:46Z)——文章暂时下线,源文件备份于本地 ~/michael-work/discovery-and-think/20260929-agent-skill-管理实践调研/output/。
  • 604a732 post: 新增《Agent Skill 管理实践调研》(yxc023,作者时间 2026-09-29T11:34:08Z,但 committer 时间 2026-10-08T03:50:18Z,故落在本窗口):调研 2026 年社区在 skill 管理上的主流实践,解决「全局 vs 项目 skill 两难、只有少数项目要用的 skill 该不该进全局」。要点为 skill 随 artifact 分发(IVPM 四级发现机制 + 中立目录多 provider 镜像)、package manager 模型(稳定身份 / 独立版本 / merge 故事、lockfile 钉版本)、profile 分发与继承(gh skill)、Vercel eval 结论(AGENTS.md 索引 100% vs Skill 79%,其中 56% 的 run 根本没调用)、agentskills.io 官方实践(gotchas、500 行上限、精简判定句)。
  • b8a5d98 auto(reports): 同步 daily-research 2026-10-08(yxc023, 2026-10-08T00:33:45Z)——本报告系列的自动同步目标。

社区讨论 / 行业方向: 窗口期内未检索到公开讨论(个人博客仓库,无 Discussions 活动)。

信号观察:

  • 一篇调研文章在同一天内先发布(04:03 前)再撤下(04:03:46),源文件留在本地备份目录——说明发布前的复核流程还在进行中,内容涉及 Vercel eval 等外部数据需要二次确认。
  • 该仓库同时是 daily-research 报告的部署目标(master 分支),今天最后一条 commit 仍是昨日报告的自动同步,今日报告将在本次运行末尾写入并触发部署。

跨项目观察

  1. 「秘密不能进构建产物」在本窗口被实证了一次。pi-web 把三个 Next.js preview secret 烘焙进公开 tarball,且那个值恰好是 Next 跳过 middleware 的凭据,等于给每一个下载过 npm 包的人发了一张绕过密码的通行证;修法不是换个默认值,而是把 secret 的生命周期挪到启动时、并刻意放在 --ignore-scripts 绕不过的路径上。同一天 ACP / opencode / hindsight 都在做「把硬编码表换成数据驱动」(allowAnonymous 标记、registry 的 CDN 同步、tag scope),两条线合起来的教训是:凡是能靠「读公开产物」获得的值,就不能当作授权凭证。

  2. 免费额度正在从「福利」变成「故障面」。opencode 在 24h 内把全部免费模型迁到新的 inference 后端,同一时间用户报出三条不同形态的失败(free usage exceeded、access restricted due to repeated policy violations、Insufficient account funds);生态里已经长出四条以上「Zen 免费模型二次分发」插件,它们的可用性取决于「空 Bearer + 特定 header」这类实现细节。免费层不再是「模型列表」问题,而是「身份、额度、风控、后端路由」四件事的耦合。

  3. provider 兼容性仍然是 bug 的主要来源,且形态一致。pi 的 Mistral timeoutMs 语义(是整条流还是只等响应头)、pi 的 Claude 5.5 定价(硬编码 vs models.dev 延迟)、pi 的 DashScope quota 限流是否可重试、opencode 的 service_tier: "ultrafast"、opencode 的 Gemini 枚举字符串化、hindsight 的 Oracle 时区、hindsight 的 response_format 路由——全都是「协议文档写的样子」与「服务端实际行为」不一致。这类 bug 无法靠读文档消除,只能靠真实调用打出来。

  4. 「让新条目自动生效」正在成为共识做法。opencode 用 allowAnonymous 标记替掉硬编码模型表(+2 行代码换掉一串模型名)、hindsight 用 per-caller tag scope 替掉按表枚举、ACP registry 把版本同步交给 bot。与之相对的是仍在手工枚举的地方——两者并存,说明迁移还在进行中。

  5. 能力探测正在独立成一个跨项目议题。pi 的 #10672 / #10569(按 OpenRouter key 可用性过滤模型)、#10654(mcp.json 里 transport 在环境变量展开前就被解析)、#10699 / #10700(prefix cache 是否还在、cacheWarming 是否真的在跑);opencode 的 #46369(cache-preserving compaction)与 pi 的 #10577 / #8307 同题;hindsight 的 #5275 / #5261(structured-output 的能力边界)。这一类问题的共同点是:模型与 provider 的真实能力(缓存、service tier、schema 支持、限流阈值)没有可靠的探测手段,只能靠运行时试错补齐。

  6. 协议生态的重心从「新增实现」转向「宿主多样化」。ACP 24h 内零新增 agent 实现,两条人工新增全是 messaging(群聊里 @ 别人的 agent)与带审计轨迹的桌面端;hindsight 同时被 Hermes、Paperclip、Grok Bot、Cursor 当作可插拔记忆层,并已从 Hermes 核心树外移到 plugin catalog。两个项目共同说明:协议与插件的供给侧已经够多,现在的工作是把它们接到更多类型的宿主上。

元信息

  • 报告生成时间: 2026-10-09T00:32:57Z
  • 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段)
  • 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)
  • 数据源: GitHub API(gh CLI)+ mmx web search
  • API rate limit 剩余: 5000

评论