2026 2026年11月2日 22 min · 6.3k chars by yxc023

GitHub 调研周报 2026-11-02

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

2026-11-02 GitHub 调研周报

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

本期速览

  • agentclientprotocol/agent-client-protocol: 一晚连发三个 release(Rust Crate v1.15.0 / Schema v1.29.0 / Schema v2.0.0-alpha.12),v2 unstable 补齐 background work、session/archive + session/unarchive、proxy/initialize + proxy/successor、session/status、auth/status(+auth/status_update 通知)、session/set_title;另有一条 RFD 把 client system prompt 移入 preview
  • earendil-works/pi: 用自研 pi-schema 全面替换 TypeBox——pi-ai / pi-agent-core / pi-durable 的工具入参校验全部切到 pi-schema,Chord v1/v2 的 contracts 也建在 pi-schema 上;pi-ai 不再导出 Type / Static / TSchema(breaking),扩展侧靠一个 extension view 保留旧名字
  • earendil-works/pi: pi-schema 自述通过 JSON-Schema-Test-Suite 核心用例 2222/2223、8.5 KB min+gzip、编译成闭包不依赖 eval、无依赖;本期新增了对 ata-validator / Ajv / Zod 的 benchmark 脚手架——但 npm 上仍查不到 @earendil-works/pi-schema,只在 monorepo 内(package.json 版本 1.4.0)
  • anomalyco/opencode: Console 被拉成正式产品面——老站点页面 301 跳到 console、robots.txt 收录 console 公共 sitemap、站点头部去掉 Enterprise 且 “OpenCode Zen” 改名 “OpenCode Models”;Console workspace 的 instructions/skills 通过 /api/v2/config 下发,以 skill:// 内存 URI 形式加载,全程不落盘
  • anomalyco/opencode: AI 层继续「去类化」——AIError 暴露 status / code / isRetryable / retryAfterMs,ai.request 改为返回普通对象(shape 变更),tool loop 被拆成小函数;session warming 改为可按 provider / model 分别配置
  • 缺陷面同时暴露两处「权限 / 凭据绕过」类问题:opencode #61121 worktree_remove 只被 edit 权限挡住,会改文件的 agent 可以删掉自己的 worktree(含未提交改动);pi #11655 通过软链打开同一 auth.json 的两个进程可绕过 OAuth refresh 锁并发刷新同一 refresh token
  • vectorize-io/hindsight: 主干 0 提交、9 个新 issue、1 个新 PR,且几乎全部指向记忆层的正确性而非新功能——ONNX embeddings 路径无 finiteness guard,NaN 向量进 pgvector 会静默丢失整篇文档;知识库检索没有相关性下限,不相关查询也返回每一页;consolidation 的 LLM 调用默认不带输出预算,失控生成会占住 serving slot 并形成热重试环
  • agegr/pi-web: 6 个新 PR、0 合并、main 分支 0 提交,只有两个特性分支在动(View as Tree/List、子代理 run 记录、favicon 需关注徽标、/side 分叉侧聊);需求端仍由外部贡献者推动

各仓库详情

agentclientprotocol/agent-client-protocol

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

近 1 周 release 重点:

(窗口期内无其它 release;上一次 v1.14.0 / schema-v1.28.0 / alpha.11 发布于 2026-10-30。)

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

  • 212f0ca 项目(发版) — chore: release (#2731) (@acp-release-bot[bot], 2026-11-01)
  • #2743 文档(规格对齐) — docs: reconcile v1.15 spec text, unstable RFDs and the proxy-chains RFD (@benbrandt, 未合并)
  • #2742 文档(客户端清单) — docs(clients): add Coincide to Desktop and Web (@apoorvdarshan, 未合并)

社区讨论 / 行业方向:

信号观察:

  • 本期新增的六个 v2 方法几乎全部围绕「会话的身份与状态」:能不能归档、现在什么状态、叫什么、谁有权限(auth/status)、能不能放到后台跑。协议正在从「一问一答」走向「可长期持有、可调度」的会话对象
  • proxy/initialize + proxy/successor 一起进草案,说明「一个会话后面还有继任者」这种多进程接力场景已经进入规范讨论
  • alpha 通道(schema-v2.0.0-alpha.12)与 v1 稳定通道(schema-v1.29.0)保持每次发版同批推进,v1/v2 双轨仍在持续

earendil-works/pi

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

近 1 周 release 重点:

  • 窗口期内无 release。(最新 release 仍为 v1.4.0,2026-10-21 发布;monorepo 内 packages/schema 版本已到 1.4.0,但 npm 上仍查不到 @earendil-works/pi-schema。)

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

  • 6536f80 项目(schema 迁移,breaking) — feat(ai,agent,coding-agent): validate tool arguments with pi-schema, drop TypeBox (@badlogic, 2026-11-01)
    • pi-schema 新增 opt-in coercion:compile(schema, { coerce: true }),兼容 TypeBox Value.Convert 与 pi-ai 旧有强制转换规则;新增 unresolvedRefs 选项与 url / json-pointer-uri-fragment format
    • pi-ai 的 Tool 现在接受任意 JSON Schema;Type、Static、TSchema 不再导出(breaking)
    • coding agent 的扩展通过一个 extension view 继续暴露 Type / Static / TSchema / StringEnum,内置工具仍留在 TypeBox
  • be039fb 项目(chord 迁移) — feat(chord): Chord v1 and v2 on pi-schema, drop TypeBox (@badlogic, 2026-11-01)
    • schema helper 变成 pi-schema builder 之上的薄层,JSON 形状不变,指纹与存量数据不变;错误信息改为 pi-schema 的;format 降级为 annotation
  • 6291b9b 项目(schema 能力) — feat(agent): pi-schema's Static types TypeBox-built schemas too, without depending on TypeBox (@badlogic, 2026-11-01)
  • a6bde34 项目(基准测试) — feat(schema): benchmark against ata-validator, Ajv and Zod (@badlogic, 2026-11-01):新增 packages/schema/test/bench/ 全套(candidates / speed / size / conformance / zod),并在 ATA_NO_NATIVE=1 下跑,保证结论是纯 JS 的
  • c09c98d 项目(chord 修复) — fix(chord): admit a routed host even when the relay that spawned it is gone (@mitsuhiko, 2026-11-01):relay 被释放或拒绝后,路由解析会先抛错,导致被 spawn 的 host 的 link 从未被读取,自身 upstream 全部 unavailable/ready_timeout;现在 resolve 之后立即建立连接,检查失败只影响 relay
  • 0f21a33 项目(渲染复用) — fix(coding-agent,tui): reuse syntax highlighting and rendered Markdown blocks (@mitsuhiko, 2026-11-01)
  • c9f4c7b / e1669ee 文档(chord 设计) — 折叠跨插件导入规则、“contracts 来自插件代码的来源地” (@badlogic, 2026-11-01)
  • #11655 issue(凭据锁) — Symlinked auth.json paths bypass the OAuth refresh lock (@bymoses, 2026-11-01):两个 pi 进程经不同路径(其中一个是软链)打开同一 auth.json,可同时进入加锁的凭据修改段,OAuth refresh 会在同一 refresh token 上竞争
  • #11666 issue(代理) — OAuth flows ignore HTTP(S)_PROXY: token requests bypass the proxy (@PelyDeng, 2026-11-01):packages/ai/src/auth/oauth/* 直接调全局 fetch(),不读 HTTP(S)_PROXY / ALL_PROXY,在必须走本地代理的网段里 OpenAI Codex / Anthropic / xAI / GitHub Copilot / Kimi 等全部登录失败
  • #11661 issue(durable) — lazyApi: a shared first-load promise runs one Durable Object’s stream in another object’s context (workerd) (@Soju06, 2026-11-01)
  • #11669 issue(durable) — pi-durable: a JSON value nested ~1000 deep fails the whole Harness on SQLite storage (@gjermundgaraba, 2026-11-01):SQLite JSON 解析器在 1000 层处停止,CHECK (json_valid(...)) 失败被当成未知结果拒绝

社区讨论 / 行业方向:

  • pi-schema README(仓库内): 自述通过官方 JSON-Schema-Test-Suite 核心用例 2222/2223,编译一次成普通闭包,在严格 CSP 下可用,8.5 KB min+gzip,format 检查为可选导入
  • Chord v2 目标设计(仓库内 docs/next/design.md): Chord 被定义为「跨进程(server / worker / 浏览器标签)构建应用的对象运行时,支持热重载」;对象有 principal(owner 与 guest 拿到不同对象、不同方法),状态是可观察 JSON,远端看快照 + 增量,contracts 用 pi-schema 描述
  • TypeBox, a JSON schema type builder: 外部文章梳理 TypeBox 在 pi-mono 里的用法(import type { Static, TSchema } from "@sinclair/typebox")——本期 pi 把这条依赖整体摘掉,外部教程的写法已过期
  • pi-multix 架构说明(第三方): 第三方扩展专门处理 TypeBox 的「模块身份」问题(pi 加载扩展时把 typebox 别名到自带的副本,本地开发时 npm 又会嵌套一份,TSchema 因解析路径不同而无法互认)——这类 workaround 的存在前提正是本期被移除的那套依赖

信号观察:

  • 「JSON Schema 是公共轨道」从方向变成了既成事实:本期之前是 opencode 收 API 形状、pi 造校验实现;本期 pi 直接把 TypeBox 从 pi-ai / pi-agent-core / pi-durable / chord 里整体摘除,只在 coding agent 的扩展视图上保留一层兼容面
  • TypeBox 在 pi 生态里的双重身份(既是 builder 又是 validator)被自己复制的 pi-schema 取代——packages/schema/src/formats/typebox/ 说明连 format 兼容都一并接管
  • pi-schema 声称的「无依赖 + 不依赖 eval + 8.5KB」是把它做成可被第三方直接依赖的独立包的形态,但 npm 上尚无该包,目前仍只有 monorepo 内部可用
  • Chord v2 的设计文档以「book.md + decisions.md + 逐条 fold」的方式维护,决策有 owner 与日期,属于把架构决策当作产品资产在经营
  • 本期 issue 侧几乎全是「并发 / 环境 / 边界」类:软链绕过锁、代理未生效、DO 上下文串号、SQLite 嵌套深度上限——pi 的使用面正在向「多进程 + 代理网络 + Durable 运行时」这类生产环境延伸
  • 24 小时内 12 个新 issue、13 个 issue 被关闭,0 个 PR 被合并;维护节奏偏「快速 triage + 少合并」,与 opencode 的高频合并形成对照

anomalyco/opencode

开源 coding agent(终端 + Web + 桌面多端)| stars: 223852 | open issues: 3750 | 默认分支: dev | 最近 push: 2026-11-01T23:29:04Z | 主页: https://opencode.ai

近 1 周 release 重点:

  • 窗口期内无 release。(latest 仍为 v2.2.5,发布于 2026-10-30;npm @opencode/cli 的 latest 也是 2.2.5,另有 dev 构建 0.0.0-dev-477 / -478 / -479 在 11-01 连续发布;另一条发布线 opencode-ai 仍停在 1.19.5(2026-10-28)。)

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

  • 288fa12 功能(Console workspace) — feat(core): load Console workspace instructions and skills (#60401) (@adamdotdevin, 2026-11-01)
  • #60401 功能(Console workspace) — feat(core): load Console workspace instructions and skills (@adamdotdevin, 已合并):Console 侧已有 per-workspace 的 Library(instructions + skills),此前没有任何 opencode release 会读它;现在启动与配置变更时走 GET /api/v2/config,instructions 排在全局 AGENTS.md 之前,skills 带 slug 与版本,全部驻留在 Console plugin 内、不落盘
  • #60921 功能(内存技能) — feat(core): support in-memory skill:// URIs (@rekram1-node, 已合并):Skill.prepare 与 ReadTool 原先假定多文件 skill 都在磁盘上,内置 skill 用假的 /builtin/*.md 路径导致 ReadTool 读不了;现在支持 skill://<id>[/<path>] 直读内存,并在读之前检查 skill 与 read 权限
  • #60808 功能(错误结构化) — feat(ai): status, code, isRetryable and retryAfterMs on AIError (@rekram1-node, 已合并):AIError 新增只读 getter(HTTP status / provider error code 或传输层 system code / retryAfterMs,取自 RateLimit、QuotaExceeded、ProviderInternal),body code 解析器挪到 utils/provider-codes.ts,reason 与 _tag 不变
  • #60968 重构(breaking 形状) — refactor(ai): return plain request objects from ai.request (@rekram1-node, 已合并):ai.request(...) 原先返回 LLMRequest Schema 类,spread 会丢类;现在所有 .request(...) builder 返回普通归一化对象(@opencode/ai 与 @opencode/ai/effect 两侧一致),校验移到调用处,坏请求在那里抛 AIError
  • #60025 功能(缓存预热) — feat(core): configure session warming per provider and model (@rekram1-node, 已合并):cache.warming 可在 provider 与 model 级覆盖顶层 warming(true / false / { interval, duration }),keep-alive prompt 仍是顶层设置——背景是不同 provider 的缓存寿命差异很大、本地模型通常不该预热
  • #60879 功能(用量透传) — feat(core): report Claude Agent plan usage on step metadata (@nexxeln, 已合并):Claude Code 发来的 rate_limit_event(5 小时与周窗口的利用率、重置时间)此前只用于措辞限流错误,现在直接进 step metadata,插件无需再轮询 Anthropic 用量端点或读取 Claude Code 的 OAuth token
  • #61005 / #61015 / #60812 / #60797(AI 层重构与修复) — 拆分 tool loop 成小块;压缩时不重发被拒的会话;stream 事件修复;tool loop 从坏的工具输入中恢复、跳过被截断的调用并强制 toolChoice 一次 (@rekram1-node)
  • 8bca532 / e99d665 / 9a611d3 / 2347bc8(站点与 Console) — 老站点页 301 跳到 console、robots.txt 收录 console 公共 sitemap、站点头部去掉 Enterprise、“OpenCode Zen” 改名 “OpenCode Models” (@thdxr, @adamdotdevin, 2026-11-01)
  • #61121 issue(权限越界) — worktree_remove is gated only by edit, so a file-editing agent can delete its own worktree (uncommitted work included) (@dasanache, 2026-11-01)
  • #61122 issue(超时失效) — core: shell timeout never starts when process creation stalls (@LongpanZhou, 2026-11-01)
  • #61115 issue(讨论) — [DISCUSSION] Settings: order, priority and clarifications for agents, models, variants and providers (@m21-cerutti, 2026-11-01)
  • #61118 / #61120(并发锁) — fix(core): avoid holding models.dev refresh lock across network timeout (@Bearmancer),issue 与 PR 同时存在
  • #61091 issue(压缩) — fix(core): preserve pending requests across auto compaction (@kitlangton, 2026-11-01)

社区讨论 / 行业方向:

  • OpenCode Console 文档: Console 已有独立文档树(workspaces / providers API / intro),另有 console.dev.opencode.ai 环境;本期仓库里出现 packages/console/ 目录,说明 Console 应用已并入 opencode monorepo
  • Boot.dev: OpenCode Console 课程: 第三方教学站点已把 Console 纳入课程,说明它开始被当作可学习的产品面而非内部工具
  • DeepWiki: opencode 的 ACP 子系统: 外部对 opencode ACP 实现的拆解仍停留在 packages/cli/src/acp/ 下的 Effect 架构,窗口期内未检索到与本期 Console / AI 层改动相关的新讨论

信号观察:

  • Console 正从「云端控制台」变成 opencode 的一等运行面:老站点整体 301 迁移、sitemap 进 robots.txt、workspace 级 instructions/skills 下发到本地 agent、monorepo 里出现 packages/console/
  • AI 层连续三天下沉为「普通对象 + 显式字段」:ai.request 返回普通对象、AIError 暴露只读 getter、tool loop 拆成小函数——接口从类/Schema 向 plain data 收敛
  • 缓存命中率被当成产品参数来调:session warming 下沉到 provider / model 级,与昨天观察到的「session affinity + prompt cache」是同一条线,只是今天从 provider 侧落到了配置面
  • 生态文档型 PR 一天内出现十余个(docs(ecosystem): add ... 涉及 opencode-loop-recover、wudland-plugins、opencode-ducksay、@wavespeed/opencode、Zozo HQ、Iris Chat 等),是外部使用方在自发登记
  • dev 分支 24 小时内 16 个 commit、49 个新 PR、15 个合并 PR,但官方 release 已 3 天未动(v2.2.5 仍是 latest)——发布节奏明显落后于主干

agegr/pi-web

pi coding agent 的 Web UI| stars: 7977 | open issues: 22 | 默认分支: main | 最近 push: 2026-11-01T16:33:45Z | 主页: (仓库未填写)

近 1 周 release 重点:

  • 窗口期内无 release。(latest 仍为 v0.13.0,发布于 2026-10-29;npm @agegr/pi-web 的 latest 同为 0.13.0。)

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

  • main 分支本期 0 提交;活动集中在两个特性分支 fix/empty-project-pin-1476(7b0925a)与 claude/review-pi-web-prs-57e470(ecf1df0)
  • #1490 功能(文件面板) — feat(files): View as Tree / List for Git changes panel (@betgo, 2026-11-01):对应的 issue #1489「View as Tree for the Git changed-files panel」也由 betgo 提出
  • #1492 修复(侧栏) — fix(sidebar): offer a pin on an empty project's group (@agegr, 2026-11-01)
  • #1491 修复(子代理) — fix(subagents): list the session's latest subagents when an id finds nothing (@agegr, 2026-11-01)
  • #1487 修复(移动端) — fix(chat): keep a message's actions on screen on narrow phones (@maximilize, 2026-11-01)
  • #1484 功能(标签页) — feat(tab): badge the favicon while sessions need attention (@sirenkovladd, 2026-11-01),对应 issue #1483
  • #1486 issue(模型选择) — feat(models): toggle scoped vs all models in chat selector (TUI /model parity) (@salmanabdurrahman, 2026-11-01)
  • #1488 issue(更新流程) — Feature: update dialog with release notes and an "Update & restart" action(已关闭)
  • #1482 issue(侧栏) — Inbox-style sidebar: settle finished sessions (T3 Sidebar V2: pinned / working / snoozed / settled)(已关闭)
  • #1478 功能(部署) — feat: Added docker support (@themisir, 2026-10-31)

社区讨论 / 行业方向:

  • Pi Web 讨论区: 最近的 discussion 仍是 2026-10-14 的「Thank you for Pi Web!」与 09-29 的中文「Subagent 插件……主agent 容易不调用 get result 工具」,窗口期内无新 discussion
  • pi-web-statusline(Show and tell): 第三方扩展把状态行做成单行(model | think | dir | context | cache | cost),侧面印证 Web UI 侧对成本与缓存的可观测性需求

信号观察:

  • 需求描述越来越具体地指向「与 CLI 对齐」:#1486 直接写明要 TUI /model parity,#1481 要求保留 tool 顺序以匹配 pi CLI——Web 端在向 CLI 的行为语义追赶,而不是另起一套
  • 本期 6 个新 PR 全部来自外部贡献者,0 合并;main 分支无提交,仓库处于「需求涌进来、合并节奏停滞」的状态
  • 侧栏 v2 的收束(pinned / working / snoozed / settled)与 favicon 徽标指向同一件事:把「会话需要关注」这件事从消息流里提到界面层

vectorize-io/hindsight

Agent Memory 基础设施(bank / recall / reflect / consolidation)| stars: 57691 | open issues: 177 | 默认分支: main | 最近 push: 2026-11-01T14:13:50Z | 主页: https://hindsight.vectorize.io/

近 1 周 release 重点:

  • 窗口期内无 release。(latest 仍为 v1.1.0,发布于 2026-10-21;PyPI hindsight-client 同为 1.1.0。)

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

  • main 分支本期 0 提交;push 来自 PR 分支(#6256,14:13 建立)
  • #6256 修复(指标) — fix(metrics): count a validator rejection as rejected, not as a failed operation (@cdbartholomew, 2026-11-01):校验器拒绝原本被记成一次失败操作,污染成功率口径
  • #6255 issue(嵌入) — ONNX embeddings path has no finiteness guard — a NaN vector reaches pgvector and silently loses whole documents (@xeology13, 2026-11-01)
  • #6253 issue(检索) — Knowledge-base search: add an opt-in relevance floor (every page is returned for unrelated queries) (@alexgrama-dev, 2026-11-01)
  • #6250 issue(资源) — Consolidation LLM calls send no output budget by default — runaway generations hold serving slots for minutes and form hot retry loops (@slamdunk111, 2026-11-01)
  • #6249 issue(数据一致性) — Delta retain ignores bank-level store_document_text=false and stores original_text (@nathanschram, 2026-11-01)
  • #6254 issue(可观测性) — Model-call spans don't carry hindsight.bank_id (@shivanathd, 2026-11-01)
  • #6257 / #6251 / #6258 issue(coding-agents 集成) — opencode reflect toast 显示原始 ANSI 转义序列([38;2;0;116;217mH…)而非文本;Pi codebase survey 在选 fallback runner 之前静默中止;分页查询做了无用的 freshness 检查
  • #6252 issue(打包) — _find_api_command 在已安装二进制位于 venv 的 Scripts 目录、而 sysconfig 未上报该目录时,回退到 uvx (@williamgbe-sketch, 2026-11-01)
  • 前一日已合并的修复仍构成主线:bc5ea19 reflect 的 decision model 在限流时重试 cut 与 verdict;71d4356 consolidation 的 decision model 从不写 observation text;b801b69 并发删改同一条 memory 时保持 mention_count 精确;a461a00 本地 embeddings 改用固定线程池而非默认 executor

社区讨论 / 行业方向:

信号观察:

  • 9 个新 issue 全部是「记忆系统会悄悄出错」类,没有一个是「想要新功能」——NaN 向量导致整篇文档静默丢失、不相关查询返回全部页面、consolidation 失控生成占满 serving slot 且形成热重试环,这些都属于生产事故型的隐性故障
  • 与 pi 的 durable 侧 issue(SQLite 嵌套深度 1000 层上限、DO 上下文串号)并看:记忆层与运行时层正在被同一批人放到真实的多进程 / 真实数据库 / 真实网络条件下压测
  • 主干 0 提交但 PR 分支有活动,说明当前节奏是「先在 issue 里把边界条件钉死,再由分支修」;指标语义(#6256)这类改动被当成正确性问题而非可观测性装饰
  • bank_id 未随 model-call span 传播(#6254)暴露了多 bank 场景下的追踪缺口——多租户记忆的可观测性还没跟上功能

yxc023/yxc023.github.io

个人站点仓库,本项目报告中转站| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-11-01T00:37:08Z | 主页: (未填写)

近 1 周 release 重点:

  • 窗口期内无 release。(仓库没有任何 release。)

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

  • 2f7ff70 自动同步(报告) — auto(reports): 同步 daily-research 2026-11-01 (2026-11-01)
  • 本期 0 个新 PR、0 个新 issue、0 个新提交(除上述自动同步)

社区讨论 / 行业方向:

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

信号观察:

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

跨项目观察

  1. 「JSON Schema 是公共轨道」在 24 小时内从方向变成既成事实。 昨天还是「opencode 先改 API 形状、pi 先造校验实现」的并行节奏,今天 pi 直接把 TypeBox 从 pi-ai / pi-agent-core / pi-durable / Chord 里整体摘除,只在扩展视图留一层兼容面,工具入参一律走 pi-schema;opencode 同日继续把 ai.request 变成 plain object、AIError 变成可读字段。两家在同一天分别从「类型系统」和「请求形状」两端推向同一个终点:模型侧只认 JSON Schema。
  2. 会话(session)正在成为跨层的一等公民。 ACP v2 一口气加了 session/status、session/archive + unarchive、session/set_title、auth/status 与 background work;opencode 把 session warming 下沉到 provider / model 级,并在压缩时守住 pending requests;pi 的 Chord 用 principal、引用、快照 + 增量、可热重载的对象来承载会话语义。协议层、运行时层、记忆层都在回答同一组问题:一个会话有哪些状态、谁有权看、怎么归档、断了怎么续。
  3. 「错误与资源」开始被结构化,而不是被当作日志。 opencode 让 AIError 暴露 status / code / isRetryable / retryAfterMs;hindsight 把「validator 拒绝被记成失败操作」当 bug 修;hindsight 的 consolidation 无输出预算被明确指为「占满 serving slot 并形成热重试环」;pi 的 Chord 用 BACKGROUND_CONTEXT 与显式取消把后台执行纳入契约。资源上限和失败语义,正在从运维话题变成 API 话题。
  4. 本期的问题清单里出现了两类此前少见的「绕过」缺陷。 opencode #61121:worktree_remove 只被 edit 权限挡住,于是会改文件的 agent 能删掉自己含未提交改动的 worktree;pi #11655:软链路径让两个进程绕过同一把 OAuth refresh 锁。两处都在同一位置——「权限/锁的判定依据是路径或动作名,而不是被作用的对象身份」。
  5. 生态的自证行为开始有可观测的形状。 opencode 一天内收了十余个 docs(ecosystem): add ... PR(插件、服务商、调度器自登记);pi 用 docs/next/design.md + decisions.md + 分片式 book 把架构决策当产品维护;ACP 的 v2 用 alpha 通道 + RFD 推进。三个项目各自发明了一种「让外部看见内部」的机制,代价是维护者要额外承担叙事成本。
  6. 窗口期内的外部讨论几乎没有新增。 mmx 搜索命中的中文与英文内容基本停留在 10 月及更早(ACP v2 draft 公告、opencode 的 ACP 接入教程、pi 的 TypeBox 扩展写法、Hindsight 上手指南),本期最值得记录的变化都还没被外部写作者覆盖。协议与实现跑在前面,行业叙事落后约 2–4 周。

元信息

  • 报告生成时间: 2026-11-02T00:30:33Z
  • 基准时间: 2026-11-01T00:30:00Z(按 spec 读取自上次报告 reports/latest.md 的 基准时间: 字段)
  • 扫描窗口: 2026-11-01T00:30:00Z → 2026-11-02T00:30:33Z(共 1 天);本期新增内容全部落在 2026-11-01T00:30:00Z 之后的 24 小时
  • 数据源: GitHub API(gh CLI + Search API)+ mmx web search + npm registry / PyPI + 仓库内 packages/chord/docs/next/design.md、packages/schema/README.md、packages/schema/test/bench/ 校验
  • API rate limit 剩余: 4927 / 5000(core,抓取完成后查询;Search API 单独限流,计数请求已分批 sleep,opencode 与 pi 的明细查询因触发 Search 限流在等待 60 秒后重取成功)
  • 抓取结果: 6 / 6 仓库 × 5 endpoint(repo / releases / commits / pulls / issues)全部成功,discussions 5 / 6 成功(opencode 返回「Discussions are disabled for this repo」),pi 与 hindsight 的 discussions 返回空列表。增量统计口径为 Search API 的 created:>2026-11-01T00:30:00Z / merged:>2026-11-01T00:30:00Z(opencode:49 新 PR / 15 合并 PR / 85 新 issue / 77 关闭 issue / 16 commit;pi:2 / 0 / 12 / 13 / 10;pi-web:6 / 0 / 4 / 4 / 0;hindsight:1 / 0 / 9 / 0 / 0;ACP:2 / 1 / 0 / 0 / 1;blog:0 / 0 / 0 / 0 / 1)。窗口内唯一的新 release 是 ACP 的 v1.15.0 / schema-v1.29.0 / schema-v2.0.0-alpha.12;npm 上 @opencode/cli 仍为 2.2.5、opencode-ai 仍为 1.19.5(双发布线未收敛),@earendil-works/pi-schema 仍查不到(仅 monorepo 内 1.4.0),@agegr/pi-web 仍为 0.13.0,PyPI hindsight-client 仍为 1.1.0。

评论