2026 2026年11月3日 31 min · 9.0k chars by yxc023

GitHub 调研周报 2026-11-03

扫描窗口:2026-11-01T00:30:00Z → 2026-11-03T00:30:00Z(共 2 天)| 基准来源:上次报告 2026-11-02

2026-11-03 GitHub 调研周报

扫描窗口:2026-11-01T00:30:00Z → 2026-11-03T00:30:00Z(共 2 天)| 基准来源:上次报告 2026-11-02 增量口径:本期新增内容 = 2026-11-02T00:30:00Z 之后(上次报告生成时间之后)的 24 小时

本期速览

  • earendil-works/pi: pi v1.5.0 发布(2026-11-02),本期最大的一次 release。工具入参校验正式切到自研 pi-schema(breaking):TypeBox 独有特性(Type.Refine() / Type.BigInt() / Type.Undefined() / codecs / Format.Set())不再作用于工具参数,模型看到的报错文案也从 TypeBox 风格换成 pi-schema 风格(- path: missing)
  • earendil-works/pi: 上一期还在说”npm 上查不到”的 @earendil-works/pi-schema 已经发布到 npm,版本 1.5.0(2026-11-02T10:58Z)。“JSON Schema 是公共轨道”从方向变成了有坐标的落地物;随之而来的副作用是打包形态开始出问题(#11682 Nix 打包因 pi-schema 缺失直接 fail)
  • earendil-works/pi: v1.5.0 把 MCP OAuth 的客户端注册默认切成 "auto"(优先用 Client ID Metadata Document,否则像 Codex / Claude Code / opencode 一样动态注册),并新增 GPT-6.1 Terra(Codex 侧 500K context)、默认 OpenAI 模型从 gpt-5.5 换成 gpt-6.1-sol
  • anomalyco/opencode: 两个 web 权限绕过缺陷被修掉——#60505 webfetch 规则按模型原文匹配、大小写/默认端口不同的同一 URL 能绕过 deny 规则(HTTPS://EVIL.COM/x 命中 https://evil.com/* 之外的写法);#60502 Code Mode fetch 只检查首跳、跟随 302 后不再校验 deny 规则
  • anomalyco/opencode: process-daemon 进入收尾期——Unix 下不用 PTY 执行命令、SIGTERM/SIGINT 干净退出、macOS 上补跑 pipe 测试;同一天 pi 也做了同一件事(feat(env): run programs with plain pipes through the daemon)
  • anomalyco/opencode: 本期 54 个提交里约 一半是同一位作者的 refactor(core) 重复代码清理(“share X” / “remove duplicated X” 连续 20+ 条),其余是 fix;期间无新 release(最新仍是 10-30 的 v2.2.5),但 3746 个 open issues 是上一期的 3 倍量级
  • vectorize-io/hindsight: 上周报告的三个记忆层正确性问题本期全部落地修复——NaN/Inf embedding 在 pgvector 绑定前显式报错(#6268)、Codex 接入补 session-id 让一次操作共享 prompt cache(#6267)、consolidation 的 LLM 调用失败时不写入 triage 判定(#6273);同时 mental-model 的 staleness 改为单次调用并发询问(#6261)
  • agegr/pi-web: 一天两个 release(v0.14.1、v0.14.2)。v0.14.1 落地”侧聊(side chat)“——从主会话分叉、只带只读 + shell 类工具、主会话不受影响,并开始发布 ghcr.io/agegr/pi-web Docker 镜像;v0.14.2 补手机上逐级全屏的 Settings、模型选择器 “scoped | all”、在 Agents 列表删除侧聊
  • 跨仓库: “同一个进程里跑 agent”的进程安全成为独立缺陷面——pi #11691(.pi/extensions/ 下的 *.test.ts 被自动 import,其 process.exit() 直接打死宿主进程,已两次打挂 pi-web 的服务器)、pi #11684(两个 Pi 进程 resume 同一 session 会分叉,重新打开只显示最后写入的分支)、opencode #61298(并发 plugin 配置更新会丢失成功的修改)、#61131(同一插件跨位置并发 npm install 报 LockTimeoutError)
  • 跨仓库: 缓存命中率仍然是最高频的用户痛点——opencode #61276(Go 通道几乎每轮都失效缓存)、#61282(经 Claude Agent provider 跑 Opus 5.5,CacheX 16.2x vs 原生 Claude Code 63.3x,成本约 2 倍),hindsight 侧则直接以补 session-id 作为对策

各仓库详情

earendil-works/pi

AI agent 工具包:统一 LLM API、agent loop、TUI、coding agent CLI| stars: 119604 | open issues: 316 | 默认分支: main | 最近 push: 2026-11-02T23:53:09Z | 主页: (仓库未填写)

近 2 天 release 重点:

  • v1.5.0(2026-11-02)— AI agent 工具包 v1.5.0(本期唯一一个大版本)
    • Breaking:工具入参校验改由 @earendil-works/pi-schema 执行。TypeBox 中超出 JSON Schema 的能力(Type.Refine()、Type.BigInt()、Type.Undefined()、codecs、Format.Set() formats)不再作用于工具参数
    • Breaking(行为变化):纯 JSON Schema 工具(含 MCP 工具)现在获得与 TypeBox 工具相同的强制转换(例如数字字符串转数字、单值包成数组);校验失败时模型看到的是 pi-schema 的文案(- path: missing、- limit: expected number, got string)而不是 TypeBox 的
    • 新增 GPT-6.1 Terra(OpenAI / Azure OpenAI Responses / OpenAI Codex 三条通道),带 tool search、会话中途改 thinking level、thinking off;Codex 侧提供 500K context window
    • 新增 Extension update changelogs:扩展包作者可指定 changelog 路径,pi 在更新后的下次冷启动展示比上次所见版本更新的条目,collapseChangelog 可折叠成一行
    • 新增 流式性能改进:大 tool call 改为增量解析;代码密集的回复与 tool row 复用高亮与渲染好的 Markdown,不再每次更新重做
    • 新增 自定义自更新命令:PI_SELF_UPDATE_COMMAND 或全局 selfUpdateCommand,可用 wrapper / 其他包管理器更新 pi
    • 新增 pi.exec() 的 maxBuffer 选项与结果里的 truncated 字段;默认上限取 256 MiB 与运行时字符串上限的较小者,超限直接终止进程
    • 新增 ctx.ui.custom() 内联组件的 blocked 选项,审批类弹窗可以声明”正在等待用户输入”
    • 新增 Usage.cost.totalFromProvider,区分厂商实际计费总额与目录估算
    • 变更:MCP OAuth 登录默认使用 pi 的 Client ID Metadata Document(授权服务器支持时),否则像 Codex / Claude Code / opencode 一样动态注册客户端;新默认值 oauth.clientRegistration: "auto","dcr" 表示总是注册
    • 变更:默认 OpenAI 模型从 gpt-5.5 改为 gpt-6.1-sol(ChatGPT 登录后未选模型时也用它);模型目录升级到 models.dev v2
    • 变更:pi-ai 不再重新导出 TypeBox,扩展侧从 @earendil-works/pi-ai 导入 Type / Static / TSchema 会被映射到 compat 入口 + 内置 TypeBox
    • 移除:原生 OS sandbox/ 扩展示例及依赖(改用 Gondolin 示例或容器化指南)
    • 安全修复:MCP 登录现在拒绝非 http: / https: 的授权端点与 OAuth metadata URL(此前恶意 MCP server 可用 file: 或自定义协议 URL 交给平台 URL handler)
    • 安全修复:glob 匹配更新,阻断放大型 glob 造成的 DoS;登录弹窗不再打印控制字符(避免终端超链接被截断与转义序列注入)
    • 可靠性修复:pi.exec() 不再因命令忽略 SIGTERM 而永远不返回(5 秒后 SIGKILL);abort bash 命令时改为先杀进程组(不再误跑列表里的下一条命令);session 写盘失败不再让内存里留下磁盘上不存在的条目(曾导致 resume 后历史与工具丢失);HTML 导出不再对上千条目的 session 空白页,且现在包含 system prompt 与 tools
    • 性能修复:大的流式 tool call 不再每个 delta 重解析累积参数(曾导致过高 CPU 与内存);tool row 与流式回复不再每次重绘都重新高亮同一段代码
    • 国际化修复:tool_search / codemode searchTools() 此前对中日泰等非 ASCII 查询完全找不到结果(分词器只保留 ASCII 字母数字),现已支持任意文字系统并能正确切分无空格文本与 Unicode 等价形式(#10816、#11037)
    • 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.5.0

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 9c9ce85 环境(进程) — feat(env): run programs with plain pipes through the daemon (@Armin Ronacher, 2026-11-02)|与 opencode 的 process-daemon 去 PTY 化是同一方向
  • e9c0ff4 Chord(架构) — feat(chord): Chord v2 is the package's root (@Mario Zechner, 2026-11-02)|v1 被删除,v2 成为包的根
  • 5bc4145 Chord(功能) — feat(chord): Chord v2 web and terminal surfaces (slice 11) (@Mario Zechner, 2026-11-02)
  • 072e413 Chord(功能) — feat(chord): Chord v2 slice 13, the app kit (@Mario Zechner, 2026-11-02)
  • 9823079 Chord(功能) — feat(chord): Chord v2 slice 12, the plugin model (@Mario Zechner, 2026-11-02)
  • 0a4fad5 修复(用量) — fix(ai): leave room for OpenRouter's input overcount when clamping max tokens (#11712) (@David Brailovsky, 2026-11-02)
  • 4a6a58e 修复(协议) — fix(ai): keep root $defs in Anthropic non-strict tool schemas (@David Brailovsky, 2026-11-02)
  • 0ec20e1 功能(模型) — feat(ai): add Microsoft-Decision-1 classifier to GitHub Copilot (#11679) (@m3, 2026-11-02)
  • db8307e 文档(规范) — docs: no runtime checks of values TypeScript already guarantees (@Mario Zechner, 2026-11-02)|与 pi-schema 收紧是同一方向:类型系统能保证的就不在运行时再查一遍
  • #11691 缺陷(进程安全) — Extension loader imports *.test.ts from .pi/extensions/ — a self-executing test's process.exit(0) kills the host process (took down our pi-web server twice) (@strainhzj, 已关闭)
  • #11684 缺陷(并发) — Resuming the same session in two Pi processes leads to potential conversation loss (@maxmo74, 已关闭)|两个进程各自基于自己知道的最后一条记录继续写,重新打开只显示最后写入的分支
  • #11682 缺陷(分发) — Nix package fails to evaluate: pi-schema missing from packageSourceOverrides (@ricardsmf, 未关闭)
  • #11692 缺陷(凭据) — OAuth refresh token lost when an RPC process is stopped during the startup catalog refresh (invalid_grant) (@astarktc, 已关闭)
  • #11675 缺陷(用量) — max_tokens clamp is defeated by a 4K safety margin when the estimate undercounts; "Input too long: model limit N tokens" is not recognized as overflow (@hmjBill, 已关闭)

社区讨论 / 行业方向:

信号观察:

  • pi-schema 从”仓库里的一个包”变成”有 npm 坐标的公共件”(1.5.0,2026-11-02T10:58Z)。上一期它还只有 monorepo 内的版本号
  • 代价也立刻出现:TypeBox 独有能力在工具参数上失效,报错文案换了一套。breaking 的第一笔账由扩展作者承担,而不是由 pi 的用户承担
  • Chord 的推进节奏非常规整:一天内完成 slice 11(web + terminal surfaces)、slice 12(plugin model)、slice 13(app kit)三块代码,外加大量 docs(chord) 决策记录(i18n proposal、p3 功能集与工作包、session sync、looks/themes、terminal 的 sandbox 是子进程)
  • 60 个 main 分支提交里,Chord 相关占 30+ 条,且几乎全部出自同一位作者——这是一个高度集中、单线推进的子系统,外部贡献者基本没有进入路径
  • 缺陷面继续集中在”多进程 + 同一份状态”:双进程 resume、RPC 进程在目录刷新中被停导致 refresh token 丢失、扩展目录里的测试文件打死宿主

anomalyco/opencode

开源 coding agent,赛道是终端 / 桌面 / Web 的通用 AI 编码代理| stars: 224110 | open issues: 3746 | 默认分支: dev | 最近 push: 2026-11-03T00:18:51Z | 主页: https://opencode.ai

近 2 天 release 重点:

  • 窗口期内无 release。最新仍是 2026-10-30 的 v2.2.5;npm 上 opencode-ai 停在 1.19.5(v1 发布线),双发布线仍未收敛
  • 期间 54 个提交全部落在 dev 分支上

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 805a42f 修复(进程) — fix(process-daemon): stop cleanly on SIGTERM and SIGINT (#60691) (@James Long, 2026-11-02)
  • 394d49d 功能(进程) — feat(process-daemon): run commands without a PTY on Unix (#60697) (@James Long, 2026-11-02)
  • 2e8a861 测试(进程) — ci(process-daemon): run the pipe tests on macOS (#61277) (@James Long, 2026-11-02)
  • 805a4b8 安全修复(权限) — fix(core): match web permissions against the URL that is requested (#60505) (@Aiden Cline, 2026-11-02)|webfetch 与 Code Mode fetch 现在统一按解析后的规范化 URL(URL.href)做权限判定,HTTPS://EVIL.COM/x 与 https://evil.com:443/x 不再绕过 deny 规则
  • b5b9bdd 安全修复(权限) — fix(core): check each Code Mode fetch redirect against webfetch rules (#60502) (@Aiden Cline, 2026-11-02)|fetch 改为 redirect: "manual" 自行跟随,每一跳都过 permission.assertNotDenied,被拒的跳转永不发出请求
  • 056d5f0 性能(流式) — perf(ai): make the response fold internal and stop copying events per chunk (#61194) (@Aiden Cline, 2026-11-02)
  • 260a87d 性能(核心) — perf(core): skip decoding a completed assistant when a new step starts (#61159) (@Aiden Cline, 2026-11-02)
  • 06cd1a3 修复(打包) — fix(core): pin platform-node-shared so the packed SDK has one Effect runtime (#61182) (@Aiden Cline, 2026-11-02)|打包后的 SDK 此前会带两份 Effect runtime
  • 6e101e8 重构(凭据) — refactor(core): share credential helpers in provider plugins (#61179) (@Aiden Cline, 2026-11-02)
  • adcfc83 功能(codemode) — feat(codemode): let programs import globals by Node module name (#61151) (@Aiden Cline, 2026-11-02)
  • d074773 功能(CLI) — feat(cli): add --archived to opencode run (#61270) (@Dax, 2026-11-02)|opencode run 可以跑归档会话
  • 21e66f2 修复(Console) — fix(core): reuse Console skill downloads and keep skills when a download fails (#61074) (@Aiden Cline, 2026-11-02)
  • d9184f2 文档(Console) — docs(console): add Pulse Alpha Free (#61285) (@opencode-agent[bot], 2026-11-02)

社区讨论 / 行业方向:

信号观察:

  • 54 个提交中约 28 条是 refactor(core) / refactor(ai) 的”提取共享实现 + 删重复代码”,且几乎全部出自同一位作者、集中在 2026-11-02 03:00–04:30 的一个多小时窗口内。这是一次有计划的代码库收敛工作,而不是功能推进
  • 与收敛同时发生的两处安全修复(web 权限 URL 规范化、Code Mode 跳转逐跳校验)都指向同一个模式:判定依据必须绑定”实际会发出的请求”,而不是”用户写下的字符串”
  • process-daemon 三连提交(无 PTY 执行、SIGTERM 干净退出、macOS 跑 pipe 测试)说明这条子系统已经进入收尾阶段,而非探索期
  • issue 数量是本期最刺眼的数字:3746 个 open issues,其中相当比例是”免费模型 429 / 免费额度重置后立刻耗尽 / Go 计划用不了免费模型”这类供给侧问题(#61152 明确说从 10-24 起每天如此、#61222 连续三天、#61193、#61261、#61264)
  • Console 相关的提交仍在增加(企业询价按 reason 分流、合规字段映射、Console skill 下载复用、Pulse Alpha Free),opencode 正同时经营”本地开源代理”和”托管 Console 产品”两套叙事

agegr/pi-web

pi coding agent 的 Web 工作区(桌面 / 手机浏览器 UI)| stars: 7993 | open issues: 5 | 默认分支: main | 最近 push: 2026-11-02T16:01:20Z | 主页: (仓库未填写)

近 2 天 release 重点:

  • v0.14.2(2026-11-02)— v0.14.2

    • 模型选择器新增 “scoped | all” 切换:设置了 enabledModels 时顶部多一行,与 pi 的 /model 行为一致;范围外的模型只用于当前会话,不会成为默认(#1486、#1503)
    • Agents 列表里可删除侧聊:只删该侧聊,主会话与其他侧聊保留;删掉的正是当前打开的侧聊时回到主会话(#1507)
    • 手机上 Settings 逐级全屏:先分区列表,再分区,再条目详情,每级全屏、有返回按钮与居中标题,系统返回键逐级回退,切换带滑动动画(尊重 reduced motion)
    • 窄屏手机上 Agents 按钮留在”更多”按钮左侧;顶栏 / 侧栏工具栏 / 文件面板标签栏高 44px,输入框控件行 44px,触屏文件树行高 36px
    • Windows 上默认终端改为 PowerShell:按 pi 的 powershell 工具查找顺序(PowerShell 7 → Windows PowerShell → cmd),此前原生 Windows 上新建终端总是 cmd.exe(#1394、#1508)
    • 内部调整:升级 pi 到 1.5.0 并新增固定依赖 @earendil-works/pi-schema;MCP 的 oauth.clientRegistration 支持 pi 的新默认值 "auto";Next.js → 16.4.4、undici → 8.12.3,npm audit --omit=dev 无告警;发布流程合并为一个 Release 工作流(npm + Docker 镜像),demo 只在 demo/ 或 package.json 变化时部署
    • 完整 release notes: https://github.com/agegr/pi-web/releases/tag/v0.14.2
  • v0.14.1(2026-11-02)— v0.14.1(v0.14.0 标签打出后发布被取消,因此包含自 0.13.0 以来的全部改动)

    • 侧聊(side chat):从当前会话分出侧聊,右侧面板标签页提问,带主会话全部上下文,主会话不受影响,运行中也能用。侧聊只保留主会话已有的只读与 shell 类工具(read / bash / grep / find / ls,Windows 上还有 powershell),不能编辑或写文件;只读主会话分出的侧聊连 shell 也没有。四个入口:/side 或 /side <问题>、选中文字后的”在侧聊询问”、运行中输入框旁的侧聊按钮、Agents 面板里的”新建侧聊”(#1469、#1502)
    • 选中回答里的文字后,“在这里提问”改为**“引用”**,只插入 > 选中的文字,不再附带提问模板;多段引用各自成段(#1502)
    • Docker 镜像:每个版本发布 ghcr.io/agegr/pi-web(linux/amd64、linux/arm64),标签为版本号、主.次 与 latest,仓库附 Compose 示例(#1478)
    • 标签页图标显示待处理数量:等待输入显示琥珀色数字(等待 + 未读),仅未读显示蓝色数字,页面在后台时完成的会话也计入(#1484)
    • Git 改动列表可切换树状视图,折叠目录在刷新后保持折叠,选择会被记住(#1490)
    • 改进:扩展消息保留排版(等宽字体、保留换行缩进与空格,与 pi 的 TUI 一致);共享扩展运行时保留一小时(原来十分钟),11 个扩展时打开模型设置从约 13 秒降到不用等(#1500);空项目分组可置顶;子代理 id 写错时列出本会话最近十个子代理 id 与描述
    • 修复:HTML 预览里的脚本可用 localStorage / sessionStorage(沙箱 iframe 原本抛 SecurityError 使脚本停止);设置网页密码时 PWA 可安装(manifest 请求带 cookie);工具顺序与 pi CLI 一致(此前切换工具后第一轮会因提示词变化而让缓存失效、重新计费)(#1481);服务器重启打断的子代理可在自己的聊天框里继续并正常记录结果(#1473);md / mdx / rst / adoc / txt 默认自动换行,代码文件与 .log 不换行
    • 完整 release notes: https://github.com/agegr/pi-web/releases/tag/v0.14.1

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 3bad742 功能(会话) — feat(side): side chats forked from the current session (/side) (#1469) (@dingxiaobo, 2026-11-02)
  • e97d00b 功能(部署) — feat: Added docker support (#1478) (@Misir, 2026-11-02)
  • 0b1eeff 功能(状态) — feat(tab): badge the favicon while sessions need attention (#1484) (@Vlad Sirenko, 2026-11-02)
  • 2251c3f 功能(文件) — feat(files): View as Tree / List for Git changes panel (#1490) (@betago, 2026-11-02)
  • c319c85 修复(缓存) — fix(tools): keep the carried tool order so the prompt matches the pi CLI (#1481) (@Vlad Sirenko, 2026-11-02)|直接对应上一期报告里”提示词一变就缓存失效、重新计费”的怀疑点
  • 98ad390 修复(子代理) — fix(subagents): settle a cut-off child's run when a turn in its chat ends (#1473) (@Brynne Taylor, 2026-11-02)
  • 15c52bb 性能(模型设置) — fix(models): keep the shared extension runtime for an hour (#1500) (@Alex Yang, 2026-11-02)
  • 5269cb0 修复(沙箱) — Fix sandboxed HTML preview storage (#1494) (@zhangdxchn, 2026-11-02)
  • b54a63d 修复(PWA) — fix(pwa): add credentials to manifest link (#1477) (@Denis Kazimirov, 2026-11-02)
  • 57078bb 功能(移动端) — feat(mobile): Agents button beside More, touch-sized controls, full-screen Settings (@Alex Yang, 2026-11-02)
  • #1501 缺陷(扩展运行时) — GET /api/models rebuilds the extension graph in the session process, corrupting module-level extension state (notifications lost) (@Luckylos, 已关闭)
  • #1493 缺陷(排序) — feat: slash command search should not deprioritize dormant (disableModelInvocation) skills (@xwh5, 已关闭)

社区讨论 / 行业方向:

  • agegr/pi-web v0.14.1 on GitHub(newreleases.io): 外部发布聚合站已收录 v0.14.1,正文强调”只读主会话分出的侧聊连 shell 也没有”
  • pi-web: 面向 pi coding agent 的本地 Web 工作区: 中文镜像站描述其能力为”会话分叉 / 分支 / worktree 切换 / 文件预览 / 上下文与压缩状态展示”,侧聊尚未进入描述
  • pi-web:这个界面让我爱上了 Pi Agent: 从使用者视角评价其定位——“浏览器内会话、文件树、Git 面板一体化”,并把它类比为 Claude 的 Cowork
  • wzken/pi-web(中文 README): 独立实现的同类项目同样强调”每个活动会话一个 Pi RPC 进程、Pi 的 JSONL 始终是对话内容的持久事实来源”——pi-web 的架构已被社区当作参考范式
  • 多个 fork(RexVane/PiWeb、Huterox/pi-web、ygncode/pi-web)在同期活跃,说明这一层 UI 需求真实存在

信号观察:

  • 一天两个 release、38 个提交、13 个 PR 合并,且几乎全部提交出自维护者一人——这是个人高速迭代项目的典型节奏,与 opencode / pi 的团队协作形态差别明显
  • 本期最有价值的两处修复都指向”与 pi CLI 对齐”:工具顺序(#1481)与”不信任”目录判定。pi-web 的正确性上限取决于它与 pi 的行为差异有多小
  • 侧聊(side chat)的权限设计值得注意:只读 + shell,不给编辑/写文件——它把”并行探索”与”并行改动”在能力层面就分开了,而不是靠提示词约束
  • 依赖侧明确写下”新增固定依赖 @earendil-works/pi-schema”,说明 pi-schema 已在同一时刻进入 npm,pi-web 才能把它变成固定依赖

vectorize-io/hindsight

Agent 记忆系统:分层认知架构 + 混合检索,让 agent “学会”而非只是”记住”| stars: 58083 | open issues: 178 | 默认分支: main | 最近 push: 2026-11-02T17:51:26Z | 主页: https://hindsight.vectorize.io/

近 2 天 release 重点:

  • 窗口期内无 release。最新仍是 2026-10-21 的 v1.1.0;PyPI 上 hindsight-client 仍为 1.1.0

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 92c4e7e 修复(嵌入) — fix(embeddings): fail loudly on a NaN/Inf embedding instead of at the pgvector bind (#6255) (#6268) (@Nicolò Boschi, 2026-11-02)|上一期报告点名的缺陷落地:NaN 向量此前在 pgvector 绑定时才炸,会静默丢掉整篇文档
  • 72a014e 修复(缓存) — fix(codex): send session-id so one operation's calls share the prompt cache (#6243) (#6267) (@Nicolò Boschi, 2026-11-02)|上一期报告点名的第二个缺陷落地
  • 9e1237c 修复(整合) — fix(consolidation): a batch whose LLM call fails writes no triage verdict (#6239) (#6273) (@Nicolò Boschi, 2026-11-02)
  • 7038c00 修复(API) — fix(api): answer 4xx, not 500, for malformed ids, priorities and unstorable text (#6276) (@Nicolò Boschi, 2026-11-02)
  • df59b6a 修复(导出) — fix(transfer): export and import mental-model history a page at a time (#6259) (#6274) (@Nicolò Boschi, 2026-11-02)|此前大 bank 导出会一次性载入 mental_model_history 并 OOM 掉 API
  • 7420747 性能(心智模型) — perf(mental-models): the store answers a single model's staleness in one call, so a store can ask its parts concurrently (#6261) (@Nicolò Boschi, 2026-11-02)
  • 4f37f93 修复(部署) — fix(embed): find hindsight-api in the venv holding the package when another Python loads it (#6252) (#6272) (@Nicolò Boschi, 2026-11-02)
  • 2813ea7 可观测性 — fix(tracing): stamp hindsight.bank_id on every span in a bank operation (#6269) (@Nicolò Boschi, 2026-11-02)
  • 6301f8c 修复(知识库) — fix(knowledge): a page's evidence shows its images on a store-owned bank (#6262) (@Nicolò Boschi, 2026-11-02)
  • #6264 缺陷(整合) — fix(consolidation): earlier-state notes grow without bound and make the model loop (@nicoloboschi, 未关闭)|上一期点名的第三个问题仍在,只是形态变了:不再是”没有输出预算”,而是”早期状态的笔记无界增长把模型逼进循环”
  • #6265 缺陷(心智模型) — Mental model delta refresh fails for good when the model's reply runs away to the output token cap (@nicoloboschi, 未关闭)
  • #6275 / #6271 缺陷(测试) — 两个被标为 flaky 的系统测试:operation_id 在 sync 中被丢弃时的 retain 警告、记忆详情与列表返回的实体顺序不一致

社区讨论 / 行业方向:

信号观察:

  • 上周报告点名的三个记忆层正确性问题,本期两个已修、一个换形(consolidation 的无界早期状态笔记 #6264)。修复节奏与报告节奏几乎同步
  • 9 个提交 9 个 PR 合并全部出自维护者一人,且全部是 fix / perf——本期是纯粹的稳定性与正确性窗口,没有新功能
  • hindsight.bank_id 被打到每一个 span 上(#6269):多 bank 场景的排障成本被显式承认
  • 社区对 agent memory 赛道的关注度仍高,但内容集中在 9–10 月的爆发期;实现层的精确性问题(NaN、flaky 顺序、output token cap)目前还只在仓库内部流通

agentclientprotocol/agent-client-protocol

面向编辑器与 coding agent 之间的 JSON-RPC 协议,赛道是 agent 接入层标准| stars: 4572 | open issues: 30 | 默认分支: main | 最近 push: 2026-11-02T15:27:56Z | 主页: https://agentclientprotocol.com

近 2 天 release 重点:

(上一轮 v1.15.0 / schema-v1.29.0 / alpha.12 发布于 2026-11-01。v1 稳定通道与 v2 alpha 通道继续每次同批推进。)

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • bf35ca1 文档(规格) — docs: reconcile v1.15 spec text, unstable RFDs and the proxy-chains RFD (#2743) (@Ben Brandt, 2026-11-02)
  • 6d701b5 文档(v2) — docs(unstable-v2): report follow-up work with the removal only when the Agent knows of it (#2745) (@Ben Brandt, 2026-11-02)|把”移除某个能力”的 follow-up 写进协议,前提是 Agent 自己知道这件事
  • 8fed1ac 文档(客户端) — docs(clients): add Coincide to Desktop and Web (#2742) (@Apoorv Darshan, 2026-11-02)
  • 0fc1832 发版 — chore: release (#2744) (@acp-release-bot[bot], 2026-11-02)
  • 3374199 依赖 — build(deps): bump the minor group with 30 updates (#2748) (@dependabot[bot], 2026-11-02)
  • #61302 缺陷(协议实现,来自 opencode 仓库) — ACP: session/set_config_option reply can describe the previously selected model (@dimiboi, 已关闭)
  • #61265 缺陷(协议实现,来自 opencode 仓库) — ACP: tools of an MCP server passed in session/new are missing on the session's first step (@Anerco, 未关闭)
  • #61283 缺陷(协议实现,来自 opencode 仓库) — ACP question tool silently drops questions whose text merely mentions "token"/"secret"/"API key" (@klonuo, 未关闭)

社区讨论 / 行业方向:

信号观察:

  • 本期协议本体几乎没有新能力:v1.15.1 只是把文本对齐到已存在的 RFD。规范的推进方式仍然是”先写 RFD、再写 spec 文本、再发 alpha schema”
  • 值得注意的是协议缺陷开始在下游实现仓库里被逐条记录(三条来自 opencode):session/set_config_option 的回复描述的是上一个模型、session/new 里传的 MCP 工具在会话第一步丢失、question 工具因文本里出现 “token”/“secret”/“API key” 就静默丢弃问题。“第一轮”是当前 v1 实现最脆弱的位置
  • v2 的 RFD 正在收拢会话语义(required session methods、follow-up 移除语义、proxy chains),而这些 RFD 的落地仍排在 alpha 通道之后
  • 依赖维护(dependabot 三条、30 个包的 minor group 升级)占了本期 7 个提交中的 3 条,仓库活动的主体仍是自动化依赖更新

yxc023/yxc023.github.io

本项目的报告分发站点(blog)| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-11-02T06:28:26Z | 主页: (未填写)

近 2 周 release 重点:

  • 窗口期内无 release。

其他重要 commits / PRs(按重要性挑选 5–10 条):

  • 5 个提交,全部是 auto(reports): 同步 daily-research <日期> 形式的自动同步(含 2026-11-02 的一次)
  • 本期 0 个新 PR、0 个合并 PR、0 个新 issue、0 个关闭 issue

社区讨论 / 行业方向:

  • 无。该仓库只承担报告分发角色,窗口期内没有内容侧改动。

信号观察:

  • 仓库活动完全由 daily-research 的自动同步驱动,不含人工内容

跨项目观察

  1. JSON Schema 从”方向”变成了”有坐标的公共件”,而 breaking 的账单落到了扩展作者头上。 上一期 pi 用 pi-schema 替换 TypeBox 时它还只在 monorepo 里;本期 @earendil-works/pi-schema 已发布到 npm(1.5.0,2026-11-02T10:58Z),pi v1.5.0 同日把工具入参校验切过去。但代价是 TypeBox 独有特性失效、报错文案换了一套、连 Nix 打包都因为缺这个依赖而 fail(#11682),pi-web 则必须把它列为固定依赖才能升级。公共件一旦落地,兼容性成本立刻从核心团队转移到生态。

  2. “判定依据必须绑定实际会发生的事”这个模式,本周在三个仓库各撞了一次。 opencode 修掉两处 web 权限绕过(URL 规范化、Code Mode 跳转逐跳校验)——之前判定用的是模型写下的字符串;hindsight 让 NaN embedding 在进入 pgvector 前就报错,而不是在绑定时静默丢文档;pi 的 v1.5.0 让工具校验在 pi-schema 上跑并给出路径化的错误信息。三处的共同点:失败位置从”下游”提前到了”边界”。

  3. 多进程 / 同状态并发,正在成为独立于业务逻辑的一类缺陷。 pi 双进程 resume 同一 session 会分叉并丢分支(#11684)、.pi/extensions/ 下的测试文件被自动 import 后 process.exit() 打死宿主进程(#11691,已两次打挂 pi-web 的服务器)、RPC 进程在目录刷新时被停导致 OAuth refresh token 丢失(#11692);opencode 并发 plugin 配置更新丢失成功修改(#61298)、同一插件跨位置并发 npm install 报 LockTimeoutError(#61131)。agent 越来越像一个长期运行的服务进程,而它自己的状态文件却还是单进程时代的设计。

  4. 缓存命中率仍然是用户能直接感知、且最容易被归咎于”钱包”的痛点。 opencode 侧:Go 通道几乎每轮失效(#61276)、经 Claude Agent provider 跑 Opus 5.5 的 CacheX 只有原生 Claude Code 的 1/3.6(#61282)、zen 上超过 256k 上下文缓存塌陷(#58175);第三方已经指出 Go 通道要求 x-opencode-session,会话亲和从”优化项”变成”接入前提”。pi 侧也给出对应修复:pi-web 保证工具顺序与 pi CLI 一致以免提示词变化导致缓存失效(#1481)。hindsight 的对策最直接——补 session-id 让一次操作共享 prompt cache(#6267)。“会话亲和”这个词,已经从三个仓库的 issue 标题里同时长出来。

  5. 免费额度正在变成产品问题而不是运营问题。 opencode 的免费模型(DeepSeek V4.1 Flash)自 10-24 起每天 429、额度重置后几秒内再次耗尽、Go 计划无法使用免费模型、gateway 免费模型 400——这些在 3746 个 open issues 里成规模出现。开源 agent 用免费模型当默认入口的模式,正在被供给侧卡住。

  6. 协议的”第一轮”是目前最脆弱的一段。 ACP v1.15.1 本身几乎没有新内容,但下游实现里已经暴露出三条”首轮”缺陷:session/new 传入的 MCP 工具在第一步丢失、session/set_config_option 的回复描述上一个模型、question 工具因文本含 “token”/“secret” 就静默丢弃问题。这三条都不是协议文本的问题,而是”客户端与 agent 谁负责把第一轮对齐”的分工问题。

元信息

  • 报告生成时间: 2026-11-03T00:55:33Z
  • 基准时间: 2026-11-01T00:30:00Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段;该值为上次报告(2026-11-02)的扫描窗口起点)
  • 扫描窗口: 2026-11-01T00:30:00Z → 2026-11-03T00:30:00Z(共 2 天);本期新增内容全部落在 2026-11-02T00:30:00Z 之后的 24 小时(增量口径 = 上次报告生成时间)
  • 数据源: GitHub API(gh CLI core + Search API)+ mmx web search + npm registry + PyPI + 仓库内 release notes / PR body 校验
  • API rate limit 剩余: 4914 / 5000(core,抓取完成后查询;Search API 独立限流 30 / 30,计数请求已分批 sleep 6s)
  • 抓取结果: 6 / 6 仓库 × 5 endpoint(repo / releases / commits / pulls / issues)全部成功;discussions 5 / 6 成功(opencode 返回「Discussions are disabled for this repo」),pi / hindsight / ACP 的 discussions 返回的均为历史帖,窗口期内无新讨论
  • 增量统计口径(2026-11-02T00:30:00Z 之后):opencode 54 commits / 54 合并 PR / 93 新 PR / 96 新 issue / 71 关闭 issue;pi 60 commits / 6 合并 PR / 13 新 PR / 30 新 issue / 32 关闭 issue;pi-web 38 commits / 25 合并 PR / 17 新 PR / 3 新 issue / 11 关闭 issue;hindsight 9 commits / 9 合并 PR / 12 新 PR / 7 新 issue / 9 关闭 issue;ACP 7 commits / 7 合并 PR / 6 新 PR / 0 新 issue / 0 关闭 issue;blog 5 commits / 0 / 0 / 0 / 0
  • 窗口期内的 release: pi v1.5.0;pi-web v0.14.1、v0.14.2;ACP v1.15.1 / schema-v1.29.1 / schema-v2.0.0-alpha.13。opencode 与 hindsight 窗口期内无 release(opencode 最新 v2.2.5 发布于 10-30,hindsight 最新 v1.1.0 发布于 10-21)
  • npm / PyPI 校验: @earendil-works/pi-schema 1.5.0(2026-11-02T10:58Z,本期新发布)、@earendil-works/pi-coding-agent 1.5.0、@agegr/pi-web 0.14.2、opencode-ai 仍为 1.19.5(v2 线未上 npm)、PyPI hindsight-client 仍为 1.1.0

评论