2026 2026年10月7日 29 min · 7.7k chars by yxc023
GitHub 调研周报 2026-10-07
扫描窗口:2026-09-08T09:23:29Z → 2026-10-07T00:30:35Z(约 28.6 天)| 基准来源:上次报告 2026-10-06
2026-10-07 GitHub 调研周报
扫描窗口:2026-09-08T09:23:29Z → 2026-10-07T00:30:35Z(约 28.6 天)| 基准来源:上次报告 2026-10-06
仓库范围:
config/repos.yaml中 6 个项目。本期相对上份的 24 小时窗口里最关键的信号是 earendil-works/pi 在 2026-10-06 一日内 30 commit(全部 30 条都落在过去 24h 内),主轴是 Mario Zechner 把 Durable execution model 推到「每条 conversation 的 context 在内存中常驻 + Cloudflare Durable Object SQLite adapter」与「scan conversations / entries / tasks / submissions 的顺序解耦」;同时 Armin Ronacher 同日连发 6 commit,把--tools改成+name/-namemodifiers、把 bundled Radius catalog 换成 gateway catalog、把 llama.cpp classifier models 拉成 native provider;anomalyco/opencode v2 一日合入 Office file preview(BetterOffice WASM)+ Responses reasoning replay 修复;agentclientprotocol 落定 background subagents cancel 语义 RFD(#2308)。
本期速览
- earendil-works/pi Durable 24h 三连击(2026-10-06,Mario Zechner):① 每条 conversation 的 context 在内存中常驻(
da866adfeat(durable): keep each conversation's context in memory; Durable Object SQLite adapter)——runtime.context()缓存每条 conversation 最后读到的 range 与 derived view,下次任一 task 再读只需扫描之后的 entries;busy conversation 永远保留,idle 保留settings.contextRetentionMs(默认 10 分钟)。新增 Cloudflare Durable Object SQLite adapter(openDurableObjectSqliteStorage(ctx.storage),无 per-row copy)。② scan conversations / entries / tasks / submissions 的顺序解耦(4dd2af4)——之前必须按 conversation → entry → task → submission 的固定顺序,现在任意顺序扫,依赖关系由数据驱动。③ 读 conversation context 早于某个 entry 的快照(76f6c06)——可在历史 entry 处取回当时的 context,对 fork / subagent 拉分叉前视图至关重要。 - earendil-works/pi AI 层 hardening 24h 一批:① 把 bundled Radius catalog 换成 gateway catalog(
43d3763,Armin)——之前 fetched catalog 与 shipped default catalog 合并导致组织 owner 禁用的 model 仍然列出。②--tools接受+name/-namemodifiers(ddaa0a0,Armin)——纯+/-列表按defaultTools那样改默认工具集合,例如pi -t +codemode;混入普通条目 / 修饰符带 glob 一律 reject;/reload保留-name的移除。③ llama.cpp classifier models 走 native path(f6127a1,Armin,#10382)——Julia-1/Laya/Kev/lev/OpenJev等 classifier model 不再当 chat model 列举,类型化为typesafe-system-oneclassifiers;只有 HTTP 501 / 404 才回落到llama-cpp-classify,从 model store 恢复后会重检。④ Bedrock Converse 给 OpenAI model 发 reasoning effort(#10142,@jsanter27)——之前reasoning_effort只发到原生 OpenAI endpoint,Bedrock 转发时丢失。⑤ pi-aiAssistantMessageEventStream用单调时钟记durationMs(36a686e,#10549)——agent loop / durable tool task / coding-agent bash renderer 都拿到真耗时,reload 后仍可见。⑥ package artifact validation 统一(23cf2b9,#10197,Christian Klotz)——npm / Bun consumer install 视作可运行 release artifact,其他包保留隔离校验;smoke fixture 简化。 - earendil-works/pi coding-agent / codemode / TUI 收尾 24h:① codemode 输出项分组(
eb326d2,Armin)——文本项多块时带==> text N/M <==头,console 输出合并到一个<console_output>块,console 文本项标console: true。②outputPad应用于全部 transcript blocks(#10557,@rwachtler)。③ fullscreen 选区在 transcript rebuild 时清掉(#10567,Christian Klotz)。④ clear mouse selection on session switch(#9310,@xdagiz,open)。⑤ compare Windows paths 不区分盘符大小写(#10570,@yhe960809-ai,open)——realpath在 Windows 保留输入大小写,于是C:\和c:\比成不同,触发~/.agents/skills重复发现为 project skill,每个 global skill 报一次 collision;hasTrustRequiringProjectResources同样受累,现已 case-insensitive。 - earendil-works/pi AI layer 其它 fix 24h:①
feat(durable): expose models on ToolExecutionApi and HookApi(b0114ef)——hook / 工具侧不再要绕createModels()。②take the TaskRuntime.context() cutoff as an options object(636703a)。③report settings failures when checking kept context retention(ae92585)。④reuse the scanned context range within a task invocation(68ccef1)。⑤lead the model context with the initial system message(92216fa)。⑥raise the root entry budget for the shared storage scan module(4c28a68)。⑦scan conversations, entries, tasks, and submissions in either order(4dd2af4)。⑧compare faux prompt-cache usage per message(fe11328)。⑨time responses with private fields; use the real stream in proxy and test mocks(f284a24)。⑩keep AssistantMessageEventStream assignable from plain event streams(3ba22ce)。⑪retry transient server-busy provider errors(8b5708d)。⑫estimate request context at 3.5 characters per token(27075fe)。⑬update output limit assertions for token estimate(311f0e0)。⑭ Bedrock HTTP/2 stream cancel 重试(#10379,已在 v1.0.4 覆盖)。⑮ let caller headers override Codex originator and User-Agent(#10429)。⑯ let apps name themselves in OpenAI logins(#10433)。⑰ disable .env autoload in standalone binary(1ffb6bd)。⑱ mark codemode lookup helpers as async in description(2691216)。 - anomalyco/opencode v2 一日两枚重磅:① #53305 feat(app): preview Word / Excel / PowerPoint files(Hona,+7681 / -53)——只读预览
.docx/.xlsx/.pptx;基于 BetterOffice(openooxml/betteroffice,Apache-2.0)的 Rust engines,每个 engine 在独立 worker 里跑,文件字节走 server file API,engine / 字体都从 app 自己的 origin 加载——完全不外发。这是 opencode 桌面端「AI 编辑器可看任何 Office 文件」的形态。② #53603 fix(ai): drop empty unfinished reasoning items on replay(rekram1-node,v2)——修 #48319:Responses stream 中response.output_item.added立刻持久化session.reasoning.started但encrypted_content要到.done才到;如果进程在.ended/.step.failed之前被 kill,to-llm-message.ts之前按message.error === undefined判定为可 replay,把空壳{ type: "reasoning", id: "rs_A:rs_B", summary: [], encrypted_content: null }喂回去,Responses 后端返400 Referenced reasoning item 'rs_A:rs_B' was not found or has expired,每条后续 turn 都坏——现在未完成的 reasoning block 不再回放providerMetadata,summary 部分降级成text。 - anomalyco/opencode v2 同期 8 commit 小动作:v1.18.35 patch 发布(2026-10-06T20:18:39Z)——① canonical redirects + JSON / Markdown data formats for agent-readable stats(
a79ecfe,已在前份 PR 提过)——给 stats 加 content negotiation;② xAI tool-result images 走通了(#53549,@Jaaneek)——bump@ai-sdk/xai到3.0.139,支持的图片类型带上,不支持的跳过;③ Mistral Large 4 discount 上 Zen docs(Frank,2 commit)+ Exo Free 上 Console / Zen(dc85,2 commit)+ Fledge Alpha Free 上 Zen(@dc85,#52895,10-03)——provider 矩阵继续「周内已合」。④ remove unused artifacts directory(#53436,Shoubhit Dash)。⑤ chore(ci): use blacksmith for dev deploys(#53423,Adam)。⑥feat(go): list paid Space Bunny(#53486,Jack)。⑦ stats retire legacy s3 lake(#52514 / #52572 / #52515,Adam,3 commit)。 - anomalyco/opencode v1.18.35 release notes 全文:
- Core
- Improvements: Added canonical redirects and JSON and Markdown data formats for agent-readable stats.
- Bugfixes: xAI tool results now include supported images, while unsupported image formats are skipped. (@Jaaneek)
- 致谢 3 位社区贡献者:@dc85 (docs)、@jm0ney337 (
docs(ecosystem): add opencode-supabase to ecosystem plugins, #49848)、@Jaaneek (xAI)。 - 完整 release notes: https://github.com/anomalyco/opencode/releases/tag/v1.18.35
- Core
- agentclientprotocol 24h 三件事:① #2308 docs(rfd): let the Agent decide whether background subagents survive a cancel(@benbrandt,merged)——修改 subagents RFD:取消会话不再必然级联停掉所有 active descendants,仍会停掉「被取消工作所等待的 descendant work」,其它 descendants 由 Agent 自己决定(背景 child 例外);Client 通过 reported work state 得知哪些 descendant 已停,而非从 cancel 自身推断。这与 claude-agent-acp #1257 的实现动机一致——Claude Code 的 background subagent 在 Esc 之后仍运行,强制级联会让用户预期外的背景工作被中断。② #2314 RFD: negotiate structured text formats including Portable Org(@Cassiel-girl,open)——可选的、向后兼容的 ACP agent message 结构化文本协商机制;Markdown 仍默认;可协商
text/plain/text/markdown/text/org;每个 text content block 携带稳定的 format / profile 跨 streaming chunks 与 replay;text/org配portableprofile 覆盖 headlines / paragraphs / lists / emphasis / links / tables / safe static blocks;实验阶段可走_meta命名空间能力,再走 schema。Discussion #2147 是其前身。③ #2311 docs(clients): add Threadlines to Desktop and Web(@badcuban,merged)——新进 registry,macOS / Windows / Linux 上的桌面 workspace,开多个 ACP agent 作 child process 并通过 stdio 对话。 - vectorize-io/hindsight 24h 主要看 dependabot 一波 + 两条真 fix:① Nicolò Boschi 双 PR——#5358
fix(api): cancel a sync retain when its client disconnects:之前ClientDisconnectCancellationMiddleware只盯/memories/recall//reflect,POST /memories拿不到 cancellation token;queued retain 在客户端挂断后仍占 lane slot,sync retain(async: false,无async_operationsrow)没有任何东西能 stop。issue 里的实测:客户端 3 秒挂断,retain 跑了 1880 秒、占了半小时 LLM slot、把文档提交到一个 85 秒前已被删的 bank。修:/memories的POST也进 middleware,pump queue 上限 1 条消息;#5360fix(hermes,embed): local_embedded daemon start, restarts and Windows launch:一次扫掉 7 个长期 open 的 hermes / embed 问题(#5006 / #5192 / #5222 / #5252 / #5023 / #4974 / #5025)——helper 起 daemon 时不剥PYTHONPATH/ 把~/.hermes/tools/uv-*加 PATH / drift 检查只看 plugin 自己写的 key / profile env 不被无脑清掉 / embedded client 发 API key / Windows daemon launch 等。②fix(worker): retire --max-retries/--log-level flags that never took effect(#5190,Rudy Mizrahi Celekli)——hindsight-worker --max-retries N/--log-level L只动了 startup banner,poller / engine 的 retry budget / logging 都读HINDSIGHT_API_WORKER_MAX_RETRIES/HINDSIGHT_API_LOG_LEVEL;现在两 flag 保留解析但隐去--help、stderr 提示迁到 env var,banner 改用真生效值config.worker_max_retries。③ Chris Bartholomew 26 条 dependabot bumps——source-map-js/multidict/fsspec/mako/sharp/shell-quote/@modelcontextprotocol/sdk等在 17 个 workspace sub-lockfile 里推 minor(cursor / aider / autogen / composio / google-adk / hermes / meta-muse / strands / crewai / llamaindex / ai-sdk / chat / cloudflare-oauth-proxy / eliza / eve / nemoclaw / obsidian / openclaw / opencode / paperclip / dify / system-evals / workspace / cloudflare-oauth-proxy 等)。 - agegr/pi-web:窗口期内无新 commit / release(最近 v0.10.0 在 2026-10-02,已在上份覆盖);4 个 open PR(#1078 修 demo bundled-deps / #1070 collapse compact info / #1064 启用 renovate / #951 open & reveal paths in OS file manager)仍未 merge;stars 7117。
- yxc023/yxc023.github.io:
ec6fc9eauto(reports): 同步 daily-research 2026-10-06(@yxc023,2026-10-06T00:39:48Z)——自动化同步流程正常。 - 跨项目共有信号:① “single-day huge commit burst”——earendil-works/pi 在 2026-10-06 一日 30 commit(Mario 21 + Armin 6 + 其它 3),全部 30 条都落在过去 24h 内;opencode v2 同期 12 commit;ACP 6 commit;hindsight 30 commit——「周一刷一波」的节奏仍在。② “Durable Object SQLite adapter 落地”——pi Durable 在
MemoryStorage/openNodeSqliteStorage之外,新增openDurableObjectSqliteStorage(ctx.storage),把 conversation context 常驻内存与 Cloudflare Durable Object SQLite 配对,把 Durable harness 推到 edge runtime。③ “responses / reasoning replay correctness”——opencode #53603 与 pi #10493 同期都在修「网络协议里的 reasoning 流在不同 termination 路径下的可重放性」;前者补 Responses stream 的空壳 leak,后者补 MCP OAuth CIMD 的 redirect URI 派生。④ “—tools 的语法扩展”——v1.0.4 加 glob(mcp__radius__*),24h 后又加+name/-namemodifiers,让「只切默认工具集合」无需列全表。⑤ “background subagents 取消语义正式落 RFD”——ACP #2308 把 Claude Code / claude-agent-acp 的实际行为写进协议 RFD;这是 ACP 第一次把 “the Agent decides” 写进正式规范而不是 adapter 行为。⑥ “agent-readable stats”——opencode v1.18.35 的 canonical redirects + JSON / Markdown 内容协商让 model 也能消费 stats,是「AI 编辑器的 AI 工具开始自我量化」的信号。
各仓库详情
earendil-works/pi
AI agent 工具集:统一 LLM API、agent loop、TUI、coding agent CLI;MIT 许可,月活”数十万”级(Earendil 自述)。| stars: 112,965(上份 112,722,+243 / 24h) | open issues: 286 | 默认分支:
main| 最近 push: 2026-10-06T22:14:54Z | 主页: https://earendil.com
近 N 周 release 重点:
-
v1.0.4(2026-10-05T22:03:50Z)—
--toolsglob +--no-mcp+ codemode image block--tools/--exclude-tools支持 glob:例如--tools read,codemode,'mcp__radius__*'保留单家 MCP 的工具;--tools默认不再移除 MCP 工具(除非显式mcp__前缀),--no-mcp单次关闭 MCP。修 #10143 / #10249 / #10251 / #10343 / #10379 / #10444 等。- Codemode
read()解析 image block:tools.read()在 image 文件上现在返回 image block(带 note),image()渲染——codemode 终于能”读图”。fix #10251。 - MCP OAuth CIMD
application_type=native:OpenID Connect 授权服务器对未声明application_type的注册按 web client 处理,从而拒绝 loopback redirect URI;现在按 redirect_uris 派生——loopback host / custom scheme 视为 native,否则 web——修 #10493 / MCP SEP-837。 - MCP 连接关闭 race fix:
close()在连接中 abort per-connection signal(取消 in-flight client + retry wait + 等 connect 收敛后再返回),修 #10249。 - 隐藏工具不污染 system prompt:声明规则和 skills hint 跟随”active minus hiddenDeclarations”;reader 被 hide 时 skills hint 不再点名;codemode 把每个 tool 的 prompt guidelines 跟着 declaration 一起出现,新增
ToolLoadout.getPromptGuidelines(),修 #10343。 - Bedrock HTTP/2 stream cancel 重试:stalled HTTP/2 连接会让 Bedrock 请求挂到 SDK 的 5 分钟 session timeout(
ERR_HTTP2_STREAM_CANCEL),现在未发送的请求自动重试,修 #10379。 - Codemode 内置对象冻结:
Array.prototype.toJSON = ...之类的 patch 不再有效;worker payload 在 host 侧校验,畸形 payload 走 sandbox error 而非 host crash,修 #10444。 - 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.0.4
-
v1.0.3(2026-10-05T08:38:23Z)— Azure provider 重命名 + Foundry Chat Completions + codemode image files
- Breaking:Azure provider
azure-openai-responses→azure(#9714,@jsanter27):auth.json/models.json/settings.json(defaultProvider/enabledModels/modelThinkingLevels)的 provider key 都要改,旧 provider 的 session 在 resume 时降级到其它 model 且 prompt cache 不复用;AZURE_OPENAI_*环境变量名不变。 - Azure Foundry Chat Completions(#9714,@jsanter27):
azure/provider 现在也服务 Foundry 部署,首发azure/deepseek-v4-pro,fix #9645。 - Codemode
image()落 temp files(#10310):image()同时把生成的图片写到 temp 文件并在 result 里给出 path,后续 turn 可复制 / 移动——延续 v1.0.2image()的方向,让”生成图片”成为跨 turn 可寻址的资源。 - 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.0.3
- Breaking:Azure provider
(窗口期内新增 release:0;上份覆盖的 v1.0.4 + v1.0.3 仍为最新;v0.99.2 / v0.99.0 / v0.87.x / v0.86.x / v0.85.x 已在前几份覆盖。)
其他重要 commits / PRs(过去 24h,按重要性挑选;全部 30 条 commits 都落在 24h 内):
da866adDurable:每条 conversation context 在内存常驻 + Cloudflare Durable Object SQLite adapter —feat(durable): keep each conversation's context in memory; Durable Object SQLite adapter(Mario Zechner, 2026-10-06)。runtime.context()缓存最后读到的 range + derived view,下次再读只扫描之后的 entries;busy conversation 永久保留,idle 保留settings.contextRetentionMs(默认 10 分钟)。新增openDurableObjectSqliteStorage(ctx.storage)——SQLite-on-Cloudflare-DO,无 per-row copy。Files:+925/-95(含cloudflare.ts新文件+139+harness-context.test.ts+442)。4dd2af4Durable:scan conversations / entries / tasks / submissions 顺序解耦 —feat(durable): scan conversations, entries, tasks, and submissions in either order(Mario Zechner, 2026-10-06)。依赖关系由数据驱动而非固定顺序。76f6c06Durable:读 conversation context 早于某个 entry 的快照 —feat(durable): read a conversation's context as of an earlier entry(Mario Zechner, 2026-10-06)。fork / subagent 拿分叉前视图的支撑。b0114efDurable:把 models 暴露到ToolExecutionApi与HookApi—feat(durable): expose models on ToolExecutionApi and HookApi(Mario Zechner, 2026-10-06)。hook / 工具侧不再绕createModels()。636703aDurable:TaskRuntime.context()cutoff 改成 options object —feat(durable): take the TaskRuntime.context() cutoff as an options object(Mario Zechner, 2026-10-06)。ae92585Durable:报 settings failures 给 kept context retention checker —fix(durable): report settings failures when checking kept context retention(Mario Zechner, 2026-10-06)。68ccef1Durable:task invocation 内复用 scanned context range —fix(durable): reuse the scanned context range within a task invocation(Mario Zechner, 2026-10-06)。92216faDurable:model context 把初始 system message 放最前 —fix(durable): lead the model context with the initial system message(Mario Zechner, 2026-10-06)。4c28a68Durable:提高 shared storage scan module 的 root entry budget —fix(durable): raise the root entry budget for the shared storage scan module(Mario Zechner, 2026-10-06)。43d3763AI:bundled Radius catalog 换 gateway catalog —fix(ai): replace bundled Radius catalog with gateway catalog(Armin Ronacher, 2026-10-06)。组织 owner 禁用的 model 之前仍出现在 fetched+shipped 合并后的列表里。ddaa0a0coding-agent:--tools接+name/-namemodifiers —feat(coding-agent): accept +name/-name entries in --tools(Armin Ronacher, 2026-10-06)。pi -t +codemode像defaultTools那样改默认;混普通条目 / 修饰符带 glob 一律 reject;/reload保留-name的移除。f6127a1coding-agent:llama.cpp classifier models 走 native —feat(coding-agent): use llama.cpp classifier models natively (#10382)(Armin Ronacher, 2026-10-06)。Julia-1/Laya/Kev/lev/OpenJev类型化为typesafe-system-oneclassifiers;只有 HTTP 501 / 404 才回落到llama-cpp-classify,从 model store 恢复后重检。36a686e通用:AssistantMessageEventStream用单调时钟记durationMs—feat: record response, tool execution, and durable task times(Mario Zechner, 2026-10-06,closes #10549)。agent loop / durable tool task / coding-agent bash renderer 都拿到真耗时,reload 后仍可见。23cf2b9通用:package artifact validation 统一 —feat: unify package artifact validation (#10197)(Christian Klotz, 2026-10-06)。npm / Bun consumer install 视作可运行 release artifact,其它保留隔离校验;附restrict local artifact output paths/clarify package artifact module names/support pnpm package artifact consumers/preserve local release package installs4 子 commit。eb326d2codemode:分离输出项 —fix(codemode,coding-agent): separate codemode output items(Armin Ronacher, 2026-10-06)。文本项多块时带==> text N/M <==头,console 输出合并为一个<console_output>块,console 文本项标console: true。f284a24AI:用 private fields 计时响应 —fix(ai): time responses with private fields; use the real stream in proxy and test mocks(Mario Zechner, 2026-10-06)。3ba22ceAI:AssistantMessageEventStream可从 plain event stream 赋值 —fix(ai): keep AssistantMessageEventStream assignable from plain event streams(Mario Zechner, 2026-10-06)。fe11328AI:faux prompt-cache usage 按 message 比 —fix(ai): compare faux prompt-cache usage per message(Mario Zechner, 2026-10-06)。2989eb5AI / #10142:Bedrock Converse 给 OpenAI model 发 reasoning effort —fix(ai): send reasoning effort to OpenAI models on Bedrock Converse (#10142)(Justin Santer, 2026-10-06)。原reasoning_effort只发到原生 OpenAI endpoint,Bedrock 转发丢失。311f0e0AI:output limit assertions 按 token estimate 更新 —fix(ai): update output limit assertions for token estimate(David Brailovsky, 2026-10-06)。27075feAI:request context 按 3.5 字符 / token 估算 —fix(ai): estimate request context at 3.5 characters per token(David Brailovsky, 2026-10-06)。8b5708dAI:retry transient server-busy provider errors —fix(ai): retry transient server-busy provider errors(David Brailovsky, 2026-10-06)。0cf65d2AI / #10429:caller headers 覆盖 Codex originator / User-Agent —fix(ai): let caller headers override Codex originator and User-Agent (#10429)(Lucas Meijer, 2026-10-06)。9ad0831AI / #10433:apps 给自己在 OpenAI logins 起名 —feat(ai): let apps name themselves in OpenAI logins (#10433)(Lucas Meijer, 2026-10-06)。2691216coding-agent:codemode lookup helpers 标 async —fix(coding-agent): mark codemode lookup helpers as async in description(Armin Ronacher, 2026-10-06)。1833698coding-agent / #10557:outputPad应用于所有 transcript blocks —fix(coding-agent): apply outputPad to all transcript blocks (#10557)(Ramiz Wachtler, 2026-10-06)。83c9e26tui,coding-agent / #10567:transcript rebuild 清 fullscreen 选区 —fix(tui,coding-agent): clear fullscreen selection on transcript rebuild (#10567)(Christian Klotz, 2026-10-06)。56b25ffcoding-agent / #10566:documented message types 对齐 —docs(coding-agent): align documented message types (#10566)(Christian Klotz, 2026-10-06)。1ffb6bdcoding-agent:standalone binary 禁用 .env autoload —fix(coding-agent): disable .env autoload in standalone binary(Armin Ronacher, 2026-10-06)。428a12bchore:approve contributors from issue #10353 —chore: approve contributors from issue #10353(github-actions[bot], 2026-10-06)。
未合并的 open PR(24h 内更新过的):
- #10513
feat(durable): support entry cutoffs in conversation context(mattiacerutti, updated 2026-10-06T16:38:49Z)——与本周期 commit76f6c06主题相同(conversation context 早于 entry 取回);Resolves #10512。 - #10570
fix(coding-agent): compare Windows paths without drive-letter case(yhe960809-ai, updated 2026-10-06T15:20:42Z, open)——修 #10488。 - #9310
fix(coding-agent): clear mouse selection on session switch(xdagiz, updated 2026-10-06T15:17:20Z, open)。
社区讨论 / 行业方向:
- Pi Durable 长篇介绍(earendil.com, 2026-10-01)——仍是上周报覆盖的「pi-durable 是什么」主文,但本周期 commit
da866ad正是文中提到的「SQLite storage 能在 Cloudflare Durable Object 跑」承诺的实现。 - Pi 1.0 + Pi Durable 上线(eogee.com, 2026-10-02)——中文媒体总结,强调 codemode 重构后 prompt token 减少约 40%(GPT-5.6 单次请求从 ~5300 → ~3300 tokens)。
- Pi releases version 1.0 with durable sessions backed by SQLite(ai-primer.com, 2026-10-01)。
- Earendil Ships Pi 1.0 Coding Agent With Built-In MCP and a New Pi Durable Framework(aibacon.net, 2026-10-02)。
- Pi Durable: An Agent Harness That Survives Its Own Crashes(bokvi.com, 2026-10-03)。
- Pi Durable(technocapture.com, 2026-10-02)。
信号观察:
- durability 三件套(conversation 常驻 + scan 顺序解耦 + 早于 entry 取 context)同日落地:把 Durable harness 的「跨重启一致性」抽象从「每 turn 全量读 + 固定顺序扫」提升到「增量读 + 任意顺序扫 + 历史快照」——这是 edge runtime(Cloudflare Durable Object)上跑 conversation-heavy 应用的最低必要条件;Harness 在 SQLite 上的代码量本来就小,再加一个 DO adapter 不算新成本。
+name/-name与 glob 互补:v1.0.4 glob 解决「单家 MCP 工具保留」,+name/-name解决「不动defaultTools,单次切默认」——--tools的语法边界在两次 release 内从「白名单枚举」扩展到「带 glob 的白名单」再到「带 modifier 的白名单」。AssistantMessageEventStream.durationMs全面化:之前要看一个 API 调用耗时只能从startedAt/endedAt推;现在 agent loop / durable tool task / bash renderer 都拿durationMs,并在 reload 后仍可见——可观测性从「开发调试」走到「用户面 UI」。- Bedrock Converse 上 OpenAI reasoning effort:把 OpenAI 协议层的特性往 Bedrock 适配器方向延伸,是「Bedrock 兼容 Anthropic / OpenAI 模型」赛道的常见痛点——给 OpenAI model 走 Bedrock 不能丢
reasoning_effort。
anomalyco/opencode
开源 coding agent:TypeScript / Bun,单仓多 target(CLI / Desktop / TUI / ACP server / Web);MIT 许可;v2 分支距 v1.0.0 已 7553 commit。| stars: 212,048 | open issues: 6,242 | 默认分支:
dev| 最近 push: 2026-10-07T00:31:02Z | 主页: https://opencode.ai
近 N 周 release 重点:
-
v1.18.35(2026-10-06T20:18:39Z)— agent-readable stats + xAI tool images
- Core · Improvements:Added canonical redirects and JSON and Markdown data formats for agent-readable stats.
- Core · Bugfixes:xAI tool results now include supported images, while unsupported image formats are skipped. (@Jaaneek)
- 致谢 3 位社区贡献者:@dc85 (
docs(web): add Fledge Alpha Free to Zen docs, #52895)、@jm0ney337 (docs(ecosystem): add opencode-supabase to ecosystem plugins, #49848)、@Jaaneek (fix(opencode): bump @ai-sdk/xai to 3.0.139 so tool-result images reach xAI, #53549)。 - 完整 release notes: https://github.com/anomalyco/opencode/releases/tag/v1.18.35
-
v1.18.34(2026-09-30T22:39:45Z)— namespaced session identity + macOS signing
- 已在 2026-10-06 上份覆盖。
(窗口期内新增 release:1,即 v1.18.35;v1.18.30 / v1.18.31 / v1.18.32 / v1.18.33 已在前几份覆盖。)
其他重要 commits / PRs(过去 24h,按重要性挑选):
- #53305 feat(app): preview Word / Excel / PowerPoint files(Hona, base=v2, merged 2026-10-07T00:31:02Z,
+7681 / -53)——只读预览.docx/.xlsx/.pptx,基于 BetterOffice(Rust 引擎编译为 WASM)的全新 built-in GUI extensionmicrosoft-office;每个 engine 在独立 worker 里跑,文件字节走 server file API,引擎和字体都从 app 自己的 origin 加载——文件不出本机。 - #53603 fix(ai): drop empty unfinished reasoning items on replay(rekram1-node, base=v2, merged 2026-10-07T00:03:38Z)——修 #48319。Responses stream 的 reasoning item 在
output_item.added时即持久化但encrypted_content要到.done才到;进程被 kill 时产生空壳 reasoning block,被回放后让 Responses 后端返400 Referenced reasoning item ... was not found or has expired;现在未完成的 reasoning block 不再回放providerMetadata,summary 部分降级成text。 - #47666 fix(tui): derive tab busy state from execution only(opencode-agent[bot], base=v2, NOT merged, updated 2026-10-06T22:15:26Z)——把 tab spinner 从「synthetic item + inbox contents」改为「execution only」;一行生产改动:
busy: members.some((id) => data.session.status(id) === "running")。覆盖:completed shell context / pending synthetic / pending user / compaction / move 在 steer + queue 下 / 成功 / 失败 / 中断 / 家族成员 busy 状态。 - #53627 fix(desktop): fix browser bar review findings(Hona, base=v2, merged 2026-10-06T23:50:14Z)。
- ecc4916 fix(stats): attribute exo usage to an unknown provider(Daniel Chen, 2026-10-06T22:32:45Z, #53621, merged)。
- e256433 docs(web): add Exo Free to Zen docs(Daniel Chen, 2026-10-06T22:29:35Z, #53622, merged)。
- adf32d6 / d5772b1 docs(web): Mistral Large 4 discount + locales(Frank, 2026-10-06T21:55:13Z / 21:31:54Z)。
- 83802d8 fix(opencode): bump
@ai-sdk/xaito 3.0.139 so tool-result images reach xAI(Milosz Jankiewicz, 2026-10-06T16:11:21Z, #53549, merged)——同 v1.18.35 release note 中致谢的 @Jaaneek 是同一 PR。 - 3f393d7 fix(stats): show public specs for stealth models(opencode-agent[bot], 2026-10-06T10:29:36Z, #53381, merged)。
- f03046d feat(go): list paid Space Bunny(Jack, 2026-10-06T05:14:54Z, #53486)。
- fa49567 chore: bump gitlab-ai-provider to 6.19.0(Vladimir Glafirov, 2026-10-06T02:12:00Z, #53345)。
- 7723920 chore: remove unused artifacts directory(Shoubhit Dash, 2026-10-05T21:44:02Z, #53436)。
- 3569ebe chore(ci): use blacksmith for dev deploys(Adam, 2026-10-05T20:04:53Z, #53423)。
- 63be8f9 opencode: sync release versions for v1.18.35(2026-10-06T20:18:36Z)。
社区讨论 / 行业方向:
- OpenCode ships major coding-agent updates(aicrier.com, 2026-10-03)——非技术更新报道,覆盖 v2 节奏。
- OpenCode Changelog(gradually.ai)——第三方 changelog 镜像,自动同步。
- BetterOffice — DOCX, XLSX and PPTX editors(betteroffice.dev)——opencode #53305 背后的引擎项目主页,Apache-2.0 / Rust engines 编译为 WASM。
- GitHub - openooxml/betteroffice(GitHub)——引擎项目仓库。
- 窗口期内未检索到针对 v1.18.35 或 Office preview 的独立行业报道(功能新、传播周期未到)。
信号观察:
- v2 → 桌面的视觉闭环:#53305 Office preview 把 v2 的桌面端从「AI 编辑器能改文件」推到「AI 编辑器能看任何 Office 文件」——BetterOffice WASM 把渲染/解析放到 worker,server file API 出字节,是「本机 + 异构 worker」的形态。
- reasoning 流可重放性进入主线:#53603 与 pi 当日 commit 都把「流被中断后回放」当一等公民。opencode 走 Responses 协议侧的 leak 修复,pi 走 Bedrock Converse 侧的 reasoning effort 转发——两者都不是协议 bug,是 harness 与协议交互的细节,长期会成为 harness 成熟度的衡量。
- stats 数据可被 agent 消费:
feat(stats): add canonical redirects and agent-readable data formats(a79ecfe,已合入 v1.18.35)让 stats 既能给人看也能给 agent 解析——「让 AI 编辑器的 AI 工具自我量化」的最早形态之一。
agegr/pi-web
pi coding agent 的 Web UI;TypeScript。| stars: 7,117 | open issues: 97 | 默认分支:
main| 最近 push: 2026-10-02T16:57:25Z | 主页: https://github.com/agegr/pi-web
近 N 周 release 重点:
- v0.10.0(2026-10-02T16:57:33Z)——已在 2026-10-02 / 2026-10-04 / 2026-10-05 / 2026-10-06 上几份覆盖。
(窗口期内新增 release:0;最近 release 仍为 v0.10.0。)
其他重要 commits / PRs:
- 过去 24h 内无新 commit / PR(仓库自 v0.10.0 之后未见 push)。
- 4 个长期 open PR:#1078 修 demo bundled-deps / #1070 collapse compact info / #1064 启用 renovate / #951 open & reveal paths in OS file manager。
社区讨论 / 行业方向:
- 窗口期内未检索到针对 pi-web 的新讨论。
信号观察:
- release 后 5 天无 commit:自 2026-10-02 v0.10.0 之后到 2026-10-07 未见 push,与 pi 主仓的一日 30 commit 节奏形成对比——pi-web 仍按 pi 主仓的节奏「跟」。
- 首次运行无历史对比,本次运行窗口期内无 commit,信号观察以窗口期内的 push 间隔 + open PR 数量为准。
vectorize-io/hindsight
Agent 记忆系统:retain / recall / reflect 三大能力 + 本地嵌入式 hermes / embed;MIT。| stars: 46,321 | open issues: 136 | 默认分支:
main| 最近 push: 2026-10-06T20:20:06Z | 主页: https://hindsight.vectorize.io
近 N 周 release 重点:
- v0.10.2(2026-09-29T10:06:40Z)——已在 2026-10-04 / 2026-10-05 / 2026-10-06 上几份覆盖。
(窗口期内新增 release:0;最近 release 仍为 v0.10.2。)
其他重要 commits / PRs(过去 24h,按重要性挑选;30 条 commits 全部落在 24h 内):
- #5358 fix(api): cancel a sync retain when its client disconnects(Nicolò Boschi, merged 2026-10-06T15:55:43Z)——修 #4526。
ClientDisconnectCancellationMiddleware之前只盯/memories/recall//reflect,POST /memories拿不到 cancellation token;queued retain 在客户端挂断后仍占 lane slot,sync retain(async: false,无async_operationsrow)没有任何东西能 stop。issue 实测:客户端 3 秒挂断,retain 跑了 1880 秒、占了半小时 LLM slot、把文档提交到一个 85 秒前已被删的 bank。修:/memories的POST进 middleware,pump queue 上限 1 条消息。 - #5360 fix(hermes,embed): local_embedded daemon start, restarts and Windows launch(Nicolò Boschi, merged 2026-10-06T15:57:15Z)——一次扫掉 7 个长期 open 的 hermes / embed 问题(#5006 / #5192 / #5222 / #5252 / #5023 / #4974 / #5025)——helper 起 daemon 时不剥
PYTHONPATH/~/.hermes/tools/uv-*加 PATH / drift 检查只看 plugin 自己写的 key / profile env 不被无脑清掉 / embedded client 发 API key / Windows daemon launch 等。 - #5190 fix(worker): retire
--max-retries/--log-levelflags that never took effect(Rudy Mizrahi Celekli, merged 2026-10-06T15:32:29Z)——hindsight-worker --max-retries N/--log-level L只动了 startup banner,poller / engine 的 retry budget / logging 都读 env var;现在保留 flag 解析但隐去--help、stderr 提示迁到 env var,banner 改用真生效值。 - Chris Bartholomew 26 条 dependabot bumps(2026-10-06T15:32–16:21)——
source-map-js/multidict/fsspec/mako/sharp/shell-quote/@modelcontextprotocol/sdk在 17 个 workspace sub-lockfile(cursor / aider / autogen / composio / google-adk / hermes / meta-muse / strands / crewai / llamaindex / ai-sdk / chat / cloudflare-oauth-proxy / eliza / eve / nemoclaw / obsidian / openclaw / opencode / paperclip / dify / system-evals / workspace 等)里推 minor。
社区讨论 / 行业方向:
- Hindsight Agent Memory System Achieves State-of-the-Art LongMemEval Results(gittimes.com, 2026-09-25)——LongMemEval 基准第一。
- Hindsight Review: Vectorize Agent Memory, Install Tested(andrew.ooo, 2026-10-05)。
- Hindsight vs. Vector Search for Agent Memory: What Changes?(macmyths.com, 2026-10-05)。
- 拿下 45.2k Star,记忆准确率 94.6%!Vectorize 开源 Agent 记忆引擎(53ai.com, 2026-10-05)——中文媒体总结。
- GitHub 3.2万 Star,又一款开源的 Agent 记忆系统火出圈了(joto.ai)。
- Hindsight Benchmarks - #1 on Agent Memory Benchmark(benchmarks.hindsight.vectorize.io)——官方 benchmark 页面。
- 窗口期内未检索到针对 #5358 / #5360 / #5190 的新讨论(功能新、传播周期未到)。
信号观察:
local_embedded系列 issue 一次性收口:#5360 一次扫掉 7 个长期 open 的 hermes / embed 问题——helper 启动 daemon 时对PYTHONPATH/ PATH / profile env 的处理是「细节越攒越错」的高发区,本周期把它们一次性收紧。- sync retain 取消通道补齐:
ClientDisconnectCancellationMiddleware之前是「recalled 路径全覆盖、retain 路径没接管」的经典 split;现在统一,sync retain 也能被 cancel 干净——harness / API 边界的常见 bug 类。 - CLI flag 的语义退役:#5190 把
--max-retries/--log-level这种「只动 banner、其它读 env」的 CLI flag 保留解析但隐去--help——CLI 的 long-term API 收敛策略。
agentclientprotocol/agent-client-protocol
Agent 与 Editor 之间的协议(ACP);Rust crate + JSON schema 双轨;Apache-2.0。| stars: 4,381 | open issues: 46 | 默认分支:
main| 最近 push: 2026-10-06T21:42:03Z | 主页: https://agentclientprotocol.com
近 N 周 release 重点:
- v1.10.2(2026-10-01T13:16:02Z)——已在 2026-10-04 / 2026-10-05 / 2026-10-06 上几份覆盖。
(窗口期内新增 release:0;最近 release 仍为 v1.10.2;schema-v1.24.1 / schema-v2.0.0-alpha.7 已在前几份覆盖。)
其他重要 commits / PRs(过去 24h,按重要性挑选):
- #2308 docs(rfd): let the Agent decide whether background subagents survive a cancel(@benbrandt, merged 2026-10-06T10:54:50Z)——修改 subagents RFD:取消会话不再必然级联停掉所有 active descendants;仍会停掉「被取消工作所等待的 descendant work」,其它 descendants 由 Agent 自己决定(背景 child 例外);Client 通过 reported work state 得知哪些 descendant 已停,而非从 cancel 自身推断。与 claude-agent-acp #1257 的实现动机一致——Claude Code 的 background subagent 在 Esc 之后仍运行,强制级联会让用户预期外的背景工作被中断。
- #2314 RFD: negotiate structured text formats including Portable Org(@Cassiel-girl, NOT merged, updated 2026-10-06T12:36:58Z, base=main)——可选的、向后兼容的 ACP agent message 结构化文本协商机制。Markdown 仍默认;可协商
text/plain/text/markdown/text/org;每个 text content block 携带稳定的 format / profile 跨 streaming chunks 与 replay;text/org配portableprofile 覆盖 headlines / paragraphs / lists / emphasis / links / tables / safe static blocks;实验阶段可走_meta命名空间能力,再走 schema。Discussion #2147 是其前身。 - #2311 docs(clients): add Threadlines to Desktop and Web(@badcuban, merged 2026-10-06T07:59:46Z)——新进 registry,macOS / Windows / Linux 上的桌面 workspace,开多个 ACP agent 作 child process 并通过 stdio 对话;v0.5.0 起运行 Cursor Agent 与 fx(其它 code 如 Codex / Claude Code 走自己集成)。
- #2319 / #2318 / #2312 / #2310 docs: update registry agents(acp-release-bot[bot], 2026-10-06T21:41:03Z / 16:55:21Z / 10:18:46Z / 03:02:46Z, all merged)——auto-generated by the sync-registry workflow,每天从 ACP Registry CDN 同步 agents registry。
- bf508a1 chore(deps): bump
taiki-e/install-actionfrom 2.87.20 to 2.87.22(dependabot[bot], 2026-10-05T16:22:42Z, #2301)。 - 08e3582 chore(deps): bump
dtolnay/rust-toolchain(dependabot[bot], 2026-10-05T16:22:16Z, #2302)。 - 9c2f93d / 52bcdfe chore(deps): bump the minor group with 2 / 34 updates(dependabot[bot], 2026-10-05T16:21:51Z / 16:21:27Z, #2303 / #2305)。
社区讨论 / 行业方向:
- Agent Client Protocol (ACP): Connect Any AI Agent to Any Editor(dev.to, 2026-07-03)——介绍 ACP 与 LSP 类比。
- Agent Client Protocol (ACP) Explained: The LSP for AI Coding Agents(learncodecamp.net, 2026-07-24)。
- RFDs and Protocol Evolution | agentclientprotocol/agent-client-protocol | DeepWiki(deepwiki.com, 2026-08-20)。
- 窗口期内未检索到针对 #2308 / #2314 的独立行业报道(功能新、传播周期未到)。
信号观察:
- RFD 落字定调:#2308 把「取消会话」对 background descendants 的影响从「必然级联」改成「Agent decides」——这是 ACP 第一次把 Claude Code / claude-agent-acp 等实际实现的”the Agent decides”写进正式规范,而非 adapter 行为。
text/org加进谈判表:#2314 在 Markdown 之外加text/plain与text/org(org-mode),profile 在 streaming chunks 与 replay 之间稳定——ACP 第一次把”结构化文本”作为可选 axis 写出。- registry 增长不停:本周 4 条
docs: update registry agents(#2319 / #2318 / #2312 / #2310),加 #2311 Threadlines / #2309 / #2307 Raven / #2306 / #2304 CallBro / #2295 AgentDeck / #2289 AiRC / #2287 GetPullRequest——按每日 1+ 家 client 的速度进。
yxc023/yxc023.github.io
个人技术博客(Astro);本仓库作为 daily-research 报告自动同步的目标。| stars: 1 | open issues: 27 | 默认分支:
master| 最近 push: 2026-10-06T00:39:52Z | 主页: https://yxc023.github.io
近 N 周 release 重点: 无 release。
其他重要 commits / PRs:
ec6fc9eauto(reports): 同步 daily-research 2026-10-06(@yxc023, 2026-10-06T00:39:48Z)——自动化同步流程正常。
社区讨论 / 行业方向: 暂无(个人博客站)。
信号观察:
- 自动同步流程正常:上一份 daily-research 报告于 2026-10-06 凌晨完成同步——deploy pipeline 与 daily-research 的衔接稳定。
跨项目观察
- 「24 小时 30 commit 大单日」三家齐发:earendil-works/pi 30 commit(24h 窗口几乎独占) / opencode v2 12 commit / vectorize-io/hindsight 30 commit / agentclientprotocol 6 commit——周一凌晨的 burst 是这几个项目的稳定节奏,但 pi 与 hindsight 的 30 是「全部」落在 24h 内,说明 2026-10-06 当天特别密集。opencode v2 的 12 条更偏 docs / chore。
- 「Durable execution model 走向 edge」:pi Durable 在本周期正式加入 Cloudflare Durable Object SQLite adapter(
openDurableObjectSqliteStorage),加上 conversation context 常驻内存、scan 顺序解耦、早于 entry 取 context——Edge runtime(Cloudflare Workers / Durable Objects)成为 Durable harness 的部署目标之一,与 Hono / Workers 生态进一步对齐。 - 「Reasoning stream replay correctness」:opencode #53603(Responses stream 空壳 reasoning item 回放 → 400)与 pi #10142(Bedrock Converse 给 OpenAI model 发 reasoning effort)本期都在「reasoning 在不同 termination 路径下的可重放性」上交作业;前者修协议侧 leak,后者修适配器侧转发——harness × 模型协议的交互细节正在成为可重放性的主战场。
- 「CLI 工具语法在两周内两次扩展」:pi 的
--tools在 v1.0.4 (glob) → 24h 后 (ddaa0a0+name/-namemodifiers) → 后续 (#10570 case-insensitive Windows paths) 一系列微扩展里,从「白名单枚举」走到「带 modifier 的白名单」——CLI 长尾的语法扩展通常是用户反馈驱动的,pi 团队的节奏反映用户群的成熟度。 - 「ACP 把 Agent decides 写进 RFD」:#2308 是 ACP 第一次把 background subagents 的 cancel 语义交给 Agent 自己决定——协议侧不再假设 adapter 必须级联取消;这是 ACP 从「editor → agent」单向走向「editor ↔ agent 双向」的标志事件,与 opencode v2 的 ACP turn fold 重写(#52826 / #52825,上份覆盖)同期落地。
- 「AI 工具开始自我量化」:opencode v1.18.35 的 stats 加 canonical redirects + JSON / Markdown 内容协商,让 agent 与 human 都能消费 stats 数据——「让 AI 编辑器的 AI 工具自我量化」的最早形态之一。
- 「Registry 仍在以每日 1+ 家 client 的速度扩张」:ACP 本周新增 Threadlines / Raven / CallBro / AgentDeck / AiRC Orchestration / GetPullRequest 等多家;opencode ecosystem plugins 也加了 opencode-supabase——registry 增长不停,背后的 agent runtime 兼容性是真正的护城河。
元信息
- 报告生成时间: 2026-10-07T00:30:35Z
- 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告
reports/latest.md的基准时间:字段) - 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-07T00:30:35Z(约 28.6 天)
- 数据源: GitHub API(gh CLI)+ mmx web search
- API rate limit 剩余: 5000
评论