2026 2026年10月19日 36 min · 10.5k chars by yxc023
GitHub 调研周报 2026-10-19
扫描窗口:2026-09-08T09:23:29Z → 2026-10-19T00:30:18Z(共 40.6 天)| 基准来源:上次报告 reports/2026-10-18.md
2026-10-19 GitHub 调研周报
扫描窗口:2026-09-08T09:23:29Z → 2026-10-19T00:30:18Z(共 40.6 天)| 基准来源:上次报告
reports/2026-10-18.md仓库范围:config/repos.yaml中 6 个仓库。基准时间字段自 2026-09-08 起连续 10 期未变,窗口逐日变宽,本期新增内容全部落在 2026-10-18T00:33:51Z 之后的约 24 小时。 本期的形状是「零 release 日」——6 个仓库没有一个打出新版本,但 24 小时内 opencode 合了 14 个 PR、pi-web 合了 17 个 PR。信号全部压在 commit 与 issue 层。 pi 补上了可观测性底座,ACP 只有 bot 在动,opencode 把 1.x/2.x 分裂的前端收口了,而「静默降级」第三次成为主要缺陷形状。
本期速览
- earendil-works/pi:
48909d9把pi-telemetry从「只有 span 契约」补成完整的可观测性底座——TelemetryPropagation(inject/extract + opaque carriers)、span links、TelemetryMetrics(counter / up-down counter / histogram)、typed metric schemas(createTypedMetrics)、in-memory measurement log、propagation 与 metrics 的 conformance tests(+140 行metrics.ts、+135 行propagation.test.ts、README +123/-4)。chord/context同步拿到Context.telemetry(NOOP 默认)、withTelemetry、traceIn。 - earendil-works/pi: 包 README 自己写死了立场——「no exporter, global current-span state, or dependency on a telemetry backend」,可观测性是显式注入的契约,不是全局埋点。
durable只加了HarnessOptions.telemetry的类型,changelog 原文:「adds the configuration type only; Durable instrumentation and persisted carriers are not yet implemented.」 - earendil-works/pi:
91b33ca让 durable 的失败面从字符串变成类型。ReportInfo.type有 9 种取值(session_failed/task_faulted/task_parked/migration_failed/task_outdated/task_error/extension_error/host_error/listener_error),restart_limit与 outdated 定义不再是error.cause里的一段文本,host_error点名是哪个HarnessOptions回调炸的。 - anomalyco/opencode:
501b15a把 21 个语言版本的 README 安装方式全部改指 V2(README.md / .ar / .bn / .br / .de / .es / .fr / .ja / .ko / .ru / .th / .tr / .uk / .vi / .zh / .zhht …)。配合上期 v1.19.2 那条「1.x 安装永不把 2.x 当常规更新推给它」,1.x/2.x 分裂的前端在本期收口。 - anomalyco/opencode: 同一个迁移 bug 被三个人在三天内各开了一个 issue——#54679(Ivony, 10-12)、#55081(crash123, 10-13)、#55275(yzy-15, 10-14),都是「V1 的 global project 会话在 V2 的 cwd-scoped 列表里消失」,三个全部已 closed。这不是巧合,是同一份账单被重复提交。
- anomalyco/opencode: 当天又到两个「配置看起来对、功能却不存在」的报告——#56903(Desktop 2.0.32 / Windows 11,
File → Open Project…恒灰:菜单项绑到project.open,而整个 app bundle 里没有注册过这个 command id,菜单渲染器把未知 id 视为永久禁用)与 #56902(2.0.32 / Linux,provider 配置里新增的模型要opencode service restart才出现在opencode models,因为 catalog 是启动时的快照)。 - agentclientprotocol/agent-client-protocol: 本窗口仓库里唯一的变化来自 bot——5 次
docs: update registry agents,全部是docs/get-started/registry.mdx的版本号顶替:harn 0.10.168 → 0.10.169 → 0.10.170(一天两次)、sigit 1.7.0 → 1.7.1。生态扩张体现在还 open 的 PR 上:#2427 acp-sdk (Ruby) 进 community libraries、#2423 Eleven 进 clients、#2420 Octomind 进 agents。 - agentclientprotocol/agent-client-protocol: v2 的形状在
docs/protocol/v2/migration.mdx里已经写死——五条要点之一是 「The Client file system, terminal execution, and session modes APIs are gone」,Agent 侧要 client 工具就改用 client 提供的 MCP server;Agent 拥有的终端输出变成一个独立的、仅显示的 v2 surface。同一页反复要求 「gate v2 support behind explicit version negotiation and feature flags until it stabilizes」。 - vectorize-io/hindsight: 本窗口 main 分支零提交、零 release,star 仍 +370(+807 → +370,环比腰斩),open issues 从 148 升到 162。行业侧却是它最热的一周:10-13 这一天,Vectorize 把 Hindsight 推到 1.0 GA + Memlake 存储引擎,同一周 Tencent 开源了 TencentDB Agent Memory,两家不约而同落在同一条赛道上。
- vectorize-io/hindsight: TencentDB Agent Memory 的接入清单里同时写着 Opencode 和 Pi——本清单 6 个仓库里有 4 个(OpenCode、Pi,外加 Claude Code / Codex 阵营)已经成了竞品的接入目标。其分层记忆为 L0 Conversation → L1 事实原子 → L2 场景 → L3 长期画像,召回由 Proxy 在每轮注入 system prompt。
- agegr/pi-web: 24 小时 20 个 commit / 17 个 PR 合并 / 0 release。主线是模型配置面:per-model Base URL 原生覆盖(#1288)、Claude adaptive thinking 开关(#1331)、provider id 参与搜索匹配(#1308,修 #1272)、保存的模型定义应用到 idle session(#1287)。
- agegr/pi-web: AI 协作已经不是例外:2026-09-01 以来最近 100 个 commit 里 52 个带
Co-authored-by: Claude Opus 5.5,且 PR 标题与它所关闭的 issue 标题完全一致(#1308 ↔ #1272、#1329 ↔ #1277、#1311 ↔ #1286、#1310 ↔ #1296)。 - agegr/pi-web: 「子 agent 正在后台跑」第一次有了常驻指示——Agents badge 在有 subagent 运行时才切到运行数 + accent 色 + spinner(
prefers-reduced-motion下退化为静态),并复用 sidebar 已有的 running poll,不新增任何请求(#1311,修 #1286)。 - agegr/pi-web: 附件存储的边界正在重画——#1333 提议把每次上传的原始文件落到
<agentDir>/attachments/<sha256>/<name>(同名不同内容得到不同路径,会话删除时才剪枝无引用目录);同期 #1332 暴露了「Uploads must total 100MB or less」的硬上限,且没有人知道去哪里改。 - earendil-works/pi: 新贡献者的 PR 依然在 8–10 秒内被自动关闭且未合并——#11098(
feat(ai,agent,coding-agent): server-side compaction via Responses API,06:19:37 创建 / 06:19:45 关闭)、#11104、#11108、#11109 均如此。#11108 / #11109 的作者改走 issue 通道,两个 issue 当天就被维护者接住。 - earendil-works/pi: 增长曲线明显拐头:+178 star / 24h,上期 +509,环比约 −65%;open issues 持平 347(未变)。这是本清单里增速掉得最狠的一个。
各仓库详情
earendil-works/pi
AI agent 工具包:统一 LLM API、agent loop、TUI、编码 agent CLI;MIT,Pi 生态的核心 harness| stars: 116152(上期 115974,+178)| open issues: 347(上期 347,±0) | 默认分支: main | 最近 push: 2026-10-18T20:43:40Z | 主页: (仓库未填 homepage)
近 40.6 天 release 重点(本期无新 release):
窗口期内的最新 release 仍是 v1.3.0(2026-10-15)。本期 24 小时内无新 release。
- v1.3.0(2026-10-15)— Durable 的 SQLite 存储层
SqliteStorage.open(database, { prefix })可以给所有表和索引加命名空间,openNodeSqliteStorage()/openDurableObjectSqliteStorage()透传该参数,给宿主自有表共库用。- 同一个 storage object 创建的多个 Cloudflare Durable Object SQLite adapter 现在会协调各自的操作,多个 Pi storage 可以安全共用一个 DO database。
- 完整 release notes: https://github.com/earendil-works/pi/releases/tag/v1.3.0
其他重要 commits / PRs(本期窗口内 6 个 commit,全部为 Mario Zechner):
48909d9可观测性 —feat: telemetry propagation, span links and metrics; telemetry member in chord/context(2026-10-18T20:36Z)pi-telemetry: TelemetryPropagation(inject/extract、opaque carriers)、span links(SpanOptions.links、addLink)、TelemetryMetrics(counter / up-down counter / histogram)、typed metric schemas(createTypedMetrics)、in-memory measurement log、propagation 与 metrics 的 conformance tests。chord/context: 固定的Context.telemetry成员(NOOP 默认),withTelemetry、traceIn。durable:HarnessOptions.telemetry选项类型——commit message 自己标注 “no instrumentation yet”。
91b33ca可观测性 —feat(durable): ReportInfo says what happened, with typed reasons(2026-10-18T01:58Z)onReport的 info 按类型打标:session_failed / task_faulted / task_parked / migration_failed / task_outdated / task_error / extension_error / host_error / listener_error。- task report 携带一个
ReportTask;restart-limit 与 outdated 定义的 reason 变成类型化字段而不是error.cause字符串;host_error点名出问题的那个HarnessOptions回调。
5ba1cbadurable —fix(durable): close keeps admitted aborts, reports name the extension that ran, review nits(2026-10-18T01:00Z)- close 在已 admit 的 commit 之后回读它写的记录,让排队中的 abort mark 活下来;task 的 report 记下装它的那个 extension(在 reservation 时捕获);
wake()只在真的有活时才算一次 reconcile pass。
- close 在已 admit 的 commit 之后回读它写的记录,让排队中的 abort mark 活下来;task 的 report 记下装它的那个 extension(在 reservation 时捕获);
440a5fcdurable —fix(durable): review fixes for the crash-loop guard, reports, and blocked tasks(2026-10-18T00:53Z)- crash-loop guard:一个任务连续 5 次被崩溃打断而没有提交新状态就被 park 而不是再跑;只有状态变化才重置计数;被 abort handler 打断
restartLimit次的任务以faulted结束;parked report 带blocked: restart_limit。
- crash-loop guard:一个任务连续 5 次被崩溃打断而没有提交新状态就被 park 而不是再跑;只有状态变化才重置计数;被 abort handler 打断
1402973测试 —fix: chord boundary test allows pi-telemetry, the dependency of Context.telemetry(2026-10-18T20:43Z)482c138定价 —fix(ai): update GLM-4.6V Coding Plan cache read price in test(2026-10-18T02:15Z):models.dev 现在给 glm-4.6v 列cache_read 0.05,Coding Plan 条目拿它当参考成本。- #11098 [未合并,8 秒关闭]
feat(ai,agent,coding-agent): server-side compaction via Responses API— 让持有 compaction 的 provider(OpenAI Responses 的context_management)在服务端摘要并裁剪上下文,pi 把结果当成一条普通的 session compaction 条目采纳。创建于 06:19:37,关闭于 06:19:45。 - #11104 [未合并,10 秒关闭]
durable: add task-scoped model access for hosts[piclaw-bot] —HarnessOptions.taskModels(scope, models)回调,scope 含 task ID / conversation ID / task kind / invocation abort signal,让宿主按任务返回模型访问权限。 - #11109 [未合并]
fix(durable): builtin read resolves images to programs as image blocks in codemode— 根因写得很清楚:codemode program 里嵌套read读图片拿到空串,因为read没声明结构化输出 schema,harness 把它投影成文本,图片没有文本就被丢掉。 - #11108 [未合并]
fix(tui): keep the leading tilde in fullscreen double-click word selection—TERMINAL_WORD_SELECTION_JOINERS里有/和-但没有~,双击~/Downloads/archive.zip会丢掉开头的 home 标记。
社区讨论 / 行业方向:
- Pi Durable demonstrates durable code execution for agent workflows: 记述 Mario Zechner 报告的 Pi Durable 内部 durable codemode 支持——正好对上本期 pi 侧把 SQLite / migrations 从 durable 挪到
@earendil-works/chord/sqlite的动作。 - Beyond the Ephemeral Loop: The Architecture of Durable AI Agents: 把 durable agent 的核心问题描述为「built on while loops lose state when processes crash」,与 pi durable 本期的 crash-loop guard(
TaskRecord.restarts、restartLimit、parked)正面相关。 - ACP 协议深度解析:v1/v2 架构、迁移与安全(中文): 与本清单的 ACP 仓库互为外部记录,核心论断是「消息符合协议,不代表智能体可信」——可部署契约必须明确记录线协议版本、能力集合、传输 Profile、client 与 agent 构建,「只有『ACP』这个缩写,不能构成兼容性声明」。
- Earendil 发布 Pi 1.0 正式版,同日推出面向长时 Agent 应用的实验包 Pi Durable(中文): 记录 2026-10-01 的双发布与「官方称 Pi 每周全球用户达数十万」这一未经验证的说法。
信号观察:
- 可观测性底座成形,但还没接线。 pi-telemetry 一次性补齐 propagation + metrics + typed schema + conformance tests,README 立场是「no exporter, global current-span state, or dependency on a telemetry backend」——可观测性被设计成显式传递的契约(
Context.telemetryNOOP 默认、withTelemetry、traceIn),而不是全局埋点。但 durable 的 changelog 明确说「adds the configuration type only; Durable instrumentation and persisted carriers are not yet implemented」——这是一块刚浇好的地基,还没有管线接上去。 - durable 的失败面从字符串变成类型。 9 种
ReportInfo.type、类型化的restart_limitreason、点名的host_error回调、report 里携带装它的 extension 名字——三期报告连起来看,pi durable 正在把「任务为什么没跑起来」这个问题从日志里挖出来变成 API 的一部分。 - 新贡献者入口仍然是自动关闭。 #11098 / #11104 / #11108 / #11109 全部在 8–10 秒内 closed 且未合并。值得注意的是 #11108 / #11109 的作者随后把同样的根因写成了 issue(#10980、#11015),两个 issue 当天就被维护者接住——筛人的机制没变,但被筛掉的人有第二条路。
- 增长明显拐头。 +178 star / 24h,上期 +509,环比约 −65%;open issues 持平在 347(本清单里唯一零增长的 issue 数)。1.x 主力版本停在 10-15 的 v1.3.0 已 4 天,本期全部产出都在 unreleased。
- 社区侧同时存在三类「隐藏失败」报告,且都在 idle / compaction / context 这条线上:#10704(
waitForIdle()在 settled-handler compaction 期间提前 resolve,Dante-dan 已在 main1402973a9上复现并给出对比修复链接)、#10956(cacheWarming 的 “idle” 在 extension 接管turn_end后静默停掉,ianks 报告看到 idle agent 打出 $500 级别的调用费,自嘲「lighting money on fire」)、#9409(reasoning 模型上会话永久卡在 context ceiling,chironcheng 今天补上来自@deepseek-ai/dsh→@earendil-works/pi-ai1.1.0 的 openai-completions 路径数据点,指出该路径下限是MIN_MAX_TOKENS = 1)。
anomalyco/opencode
通用开源编码 agent,MIT,提供 TUI、桌面端、Web 与共享后台服务| stars: 216573(上期 215308,+1265)| open issues: 4668(上期 4617,+51) | 默认分支: dev | 最近 push: 2026-10-19T00:08:57Z | 主页: https://opencode.ai
近 40.6 天 release 重点(本期无新 release):
最新仍是 v1.19.3(2026-10-16),本期 24 小时内 1.x 与 2.x 均无新版本。
- v1.19.3(2026-10-16)— 模型 reasoning 选项
- 模型 reasoning 选项改为生成 reasoning variants,替换 catalog variants,同时保留用户已配置的 variant 覆盖。
- v1.19.2(2026-10-16)— 1.x / 2.x 分裂写成契约(上期已详述)
- update check 只用 npm
opencode-ai的 latest 版本,1.x 安装永不把 2.x 作为常规更新推给它。 - 升级到 OpenCode 2 是独立且显式的选择(
/update里的 2.0 offer,或opencode upgrade --major)。 - 修 yarn 托管安装的升级;Homebrew Core 安装跳过 1.x 更新(它现在跟 OpenCode 2),提供更新前先查 tap 与 Chocolatey;安装脚本拒绝安装 2.x。
- update check 只用 npm
- v1.19.1(2026-10-15)— session sharing 下线
- session sharing 已停止:既有 share 链接与 session-sharing 命令不再可用,从 share URL 导入 session 不再支持。
V2 线(release notes 记在 dev:CHANGELOG.md,GitHub Releases 上无对应条目):
- v2.0.32(2026-10-16)— 本期无新增条目
/copy改为复制最近一条 assistant 消息或已完成的 compaction 摘要,完整 transcript 走命令面板或/export(#56053、#56055)。opencode auth login在无法打开浏览器的容器 / headless 环境不再崩溃(#56082)。- 实验性
client.voice.session(...):服务端 broker 的 OpenAI GPT-Live / Realtime WebRTC、OpenAI Realtime WebSocket、xAI Grok Voice WebSocket;用服务端存的 API key 或OPENAI_API_KEY/XAI_API_KEY,不使用 ChatGPT 登录凭据(#55951)。
其他重要 commits / PRs(本期 12 个 commit,14 个 PR 合并):
501b15a文档 —docs: point README install methods at V2(#56839, 2026-10-18T17:13Z, Aiden Cline)- 改动 22 个文件:
README.md+ 21 个语言版本(ar / bn / br / bs / da / de / es / fr / gr / it / ja / ko / no / pl / ru / th / tr / uk / vi / zh / zht)。这是 1.x/2.x 分裂在前端入口上的收口。
- 改动 22 个文件:
3099ec2控制台 —chore(console): retire the Black pages and redirect them to Go(#56612, 2026-10-18T01:10Z, Kit Langton)- 27 个文件,含
routes/black.tsx、routes/black/index.tsx、routes/black.css、middleware.ts与 19 个 i18n 文件。Black 页面退役并重定向到 Go。
- 27 个文件,含
214fb7f文档 —docs(console): add harness setup guides(#56364, 2026-10-18T09:54Z, Victor Navarro)- 新增 5 份 harness 接入指南:
console/harnesses/claude-code.mdx、codex.mdx、hermes.mdx、pi.mdx、raycast.mdx,外加harnesses/index.mdx与console/go.mdx。
- 新增 5 份 harness 接入指南:
802f2d8CI —chore(ci): run Cloudflare deploys on Blacksmith runners(#56818, 2026-10-18T15:03Z, Dax)9c2611bCI —chore(ci): verify Cloudflare token rotation(#56841, 2026-10-18T16:39Z, Dax)49e9786—fix(core): bound skill discovery and watches(#55597):给 skill 发现与文件监听加上界。60a5a6c—fix(ai): treat null Responses stream fields as absent(#56669):Responses 流里的null字段按「缺失」处理而不是当值。63c1a27—fix(core): tolerate sandboxed filesystem denials during location boot(#55817)。3bdab63—fix(core): report shell exit only after output is captured(#56321)。c38d83c—fix(protocol): accept idle in the message type filter(#56504)。- #56904 [已合并,2026-10-19T00:08Z]
fix(desktop): install each Windows channel into its own directory[Hona] — 每个 Windows channel 装到%LOCALAPPDATA%\Programs\<app id>(与数据目录同名),既有安装在下次安装/更新时自动搬出共享的@opencodedesktop目录,不动其它 channel 的文件。 - #56900 / #56899 / #56897 / #56898 — V2 桌面端与插件宿主的连续小 PR(
share host runtime with compiled plugin consumers、Target one V2 terminal client when selecting a session、ship the CLI as opencode and put it on the Windows PATH、add Focus and Pro interface picker to preferences)。
社区讨论 / 行业方向:
- session: V1 to V2 migration hides legacy sessions from the default cwd-scoped list · #54679 / #55081 / #55275: 三个独立报告,同一个 bug——从 V1(1.18.x)迁到 V2(2.0.26)后,V1 global project 的全部会话在同一个工作目录下启动时从 session 列表消失(V2 默认按 cwd scope 过滤 project + subpath)。三个 issue 分别由 Ivony(10-12)、crash123(10-13)、yzy-15(10-14)开出,均已 closed。
- 从单进程应用到可编程 Agent 基础设施,OpenCode v2 重构全量详解(中文): 按节点梳理 v2.0.0 tag(2026-09-11)以来的发布线,把 v2 定性为基础设施级重构。
- OpenCode 双线狂奔:v1 每周还在发版,v2 已经冲到 2.0.22(中文): 描述 v2 的形状——一个 Hono/SQLite 服务端同时托起终端、Electron 桌面端与 Web UI 三个界面,状态在三界面间自动同步,关掉终端换到桌面端会话还在原地,另附带 SSE 实时推送的 HTTP REST API 与
@opencode-ai/client@next。 - OpenCode 2.0 Turned the Coding Agent Into a Service: 同一判断的英文版——每次 tool call 都被移进一个后台服务,sandbox 围绕旧终端构建。
- OpenCode 1.19.0 Adds an Upgrade Command to OpenCode 2, Whose Migration Guide Lists Three Breaking Changes Including a New Plugin API 与 OpenCode 2: How to Upgrade From v1 Without Breaking Your Setup: 两篇都在讲同一件事——升级前先检查自己的插件与集成。
- Before upgrading to OpenCode 2, check your plugins and integrations: 同上,附「哪些能带过去、哪些要迁移、哪些值得先等」的分类。
信号观察:
- 1.x/2.x 分裂的前端收口完成。 v1.19.2 用五条 release note 把 1.x 钉在自己的线上(1.x 永不把 2.x 当常规更新推给它),本期
501b15a把 21 个语言版本的 README 安装方式全部改指 V2。两端合起来的效果是:1.x 从「默认版本」正式退位成「需要显式选择的旧线」,而/update与opencode upgrade --major成为唯一的越线入口。 - 同一个迁移 bug 被三个人各开一个 issue。 #54679 / #55081 / #55275 三天三个账号,标题措辞各不相同但根因一致,全部 closed。当一个缺陷类第一次以「重复提交」的形式出现时,通常意味着它没有被归类,只是被逐个关闭。
- 「静默降级」第三次成为主要缺陷形状。 上期是 #56602(V2 配置静默丢弃 MCP server,
opencode mcp list说「没有配置任何 MCP」)、#56583(CLI 对更高版本创建的 DB 报一个不指向根因的错误)。本期是 #56903(project.open从未被注册,菜单渲染器把未知 command id 视为永久禁用,于是 File → Open Project 在 Windows 上恒灰)、#56902(配置里新增的模型要重启 service 才出现,因为 catalog 是启动时的快照)、#56906 / #56907(subagent 视图里 permission prompt 挂住)。共同点:配置看起来完全正确,功能却不存在,且没有任何一句警告。 这类缺陷不会自己冒出来,只会由用户逐个撞上。 - Console 在做品牌与定位的双重调整。 Black 系列页面退役、redirect 到 Go(#56612),同期补上 claude-code / codex / hermes / pi / raycast 五份 harness 接入指南(#56364)——Console 的叙事正在从「OpenCode 自己的 Web 端」转成「多 harness 的控制面」,而 pi 是它文档里的五家之一。
- 基础设施在换供应商。 Cloudflare 部署迁到 Blacksmith runners(#56818),并加了 token 轮换校验(#56841)。V2 的活跃面停在 2.0.32(10-16),本期 14 个 PR 合并却没有打包——开发节奏与发布节奏第一次明显分离。
- 注意力已经整体转向 V2 线。 +1265 star / 24h 是本清单最高,open issues +51 也是最高;但 1.x 分支上一个 release 都没出。
agegr/pi-web
pi coding agent 的 Web UI| stars: 7484(上期 7466,+18)| open issues: 22(上期 43,−21) | 默认分支: main | 最近 push: 2026-10-18T13:10:59Z | 主页: (仓库未填 homepage)
近 40.6 天 release 重点(本期无新 release):
最新仍是 v0.12.2(2026-10-15),本期 24 小时内无新 release。
- v0.12.2(2026-10-15)— release body 10,008 字符,为本清单最长的单条 release notes。
其他重要 commits / PRs(本期 20 个 commit,17 个 PR 合并):
f0b3117模型 —feat(models): Claude adaptive thinking switch for custom models(#1331, 2026-10-18T11:58Z, Alex Yang):给自定义模型加 Claude adaptive thinking 开关。dd8201b模型 —feat(models): expose native per-model Base URL override(#1288, 2026-10-18T11:51Z, xcg):暴露每个模型原生的 Base URL 覆盖。df163cd模型 —feat(models): match provider ids in the model and Add provider searches(#1308, 2026-10-18T13:00Z):模型选择器此前只匹配模型名与 id,像relay-a这样的 provider id、或带限定的anthropic/claude在多家 provider 提供同一模型时就搜不到;现在也匹配 provider id 与provider/modelId,大小写不敏感且 trim,排序与分组不变。Settings › Models › Add provider 此前 API-key provider 按名或 id 匹配、OAuth provider 只按名匹配,现在两者都走providerMatchesSearch()。修 #1272。0347c5d模型 —fix(models): apply saved definitions to idle sessions(#1287, 2026-10-18T03:19Z, xcg)。fbcbc31子 agent —feat(agents): show running subagents on the top bar's Agents badge(#1311, 2026-10-18T12:56Z):Agents 按钮此前只显示 session family 的 subagent 总数,一次长时间后台运行要打开面板才会被发现。现在只要 family 内有 subagent 在跑,badge 就切到运行中的个数、accent 色着色并套一圈 spinner(prefers-reduced-motion下静态),title 与 aria-label 说明有几个在跑。运行态复用 sidebar 已有的 running poll,即 Agents 面板表头数的同一集合,不新增任何请求。 修 #1286。35af710终端 —feat(terminal): follow the chat font size in the terminal(#1329):xterm 原先硬编码 13px 字体且无从更改;现在跟随 Settings › General › Fonts & layout 的 chat 字号,与代码块一致(terminalFontSize(): chat - 1,即 11–23px),今天的默认值仍然精确是 13px。滑块变动会设置 live xterm 的fontSize并通过面板的fitAndResize重排,其onResize把新 cols/rows 发给 PTY,shell 与它的 SSE 流都保住。修 #1277。51b1159对话 —feat(chat): play markdown audio and video files inline(#1280/#1281, 2026-10-18T03:16Z, maximilize)。5a2f991侧边栏 —fix(sidebar): keep a repo-root session open after a subdirectory(#1307):紧跟在子目录视图之后点击仓库根(或其某个 worktree)的会话会再次关掉聊天,文件动了、聊天空着、URL 退回/。修 #1305 系列。4eed9e9—fix(sessions): leave the system prompt out of agent status reads(#1306)。246c1f2—fix(chat): mark the lines a diff leaves out between hunks(#1304)。3e4c175—fix(sidebar): sync unread markers between a browser's tabs(#1292, dingxiaobo)。f4adfd0—fix(files): keep the panel tabs 36px and scroll them with the wheel(#1303, Val.)。f1b6d62—fix(files): open PDFs from Android Chrome's placeholder(#1305)。cc041d8—fix(models): keep the mobile picker visible above the keyboard(#1294, xcg)。42909b6—fix(skills): group skills installed into .agents/skills under skills.sh(2026-10-18T04:34Z)。962f1e8/6967ad6/1280e4f/b8a3ffc— 设置页居中、字体权重显示名字而非数字、Models 表单字段说明与 footer 文案收紧。- #1321 [已合并 2026-10-18T02:05Z]
feat(shortcuts): read pi's keybindings.json instead of hard-coding keys - #1314 [已合并 2026-10-18T13:29Z] PWA 下用 Keyboard Lock API 支持浏览器保留快捷键(如 Ctrl+N 新建会话),并扩展全局快捷键
社区讨论 / 行业方向:
- HTTP/1.1 multi-tab event streams can starve Settings requests · #1283(wowayou,10-18 更新):在 0.12.2(Pi SDK 1.2.0)直接走 HTTP/1.1 时,多个 Pi Web 标签页打开的情况下 Models / Skills / Plugins 会一直 loading,关掉任意一个其它标签页立刻恢复。报告者自己做了严格取证:事故期间
/api/plugins、/api/skills、/api/auth/providers、/api/models/enabled、/api/models-config全部 HTTP 200、耗时 3–132 ms;同一生产环境的干净浏览器上下文加载同样的面板无 JS 报错;受影响浏览器一侧有 6 条持久 TCP 连接(但没抓到具体路由)。并明确写下「用户感知的一条消息丢失,是显示/同步症状的证据,不是持久化丢失的证据」。 - Store chat attachments in the Pi agent directory · #1333(TophC7,10-18 更新):指出图片目前只内联传输(且大图会在服务端看到之前被缩放),其他附件则上传进 workspace——污染项目目录、同名上传被跳过时会引用到过期文件、粘贴的非图片文件直接丢失。提议把每次上传的原始文件存到
<agentDir>/attachments/<sha256>/<name>,再插入绝对@path复用现有 mention formatter。 - 被限制了上传文件大小 · #1332(sxfbest,10-18):报错原文
Uploads must total 100MB or less,提问「需要上传大文件,请问在哪里修改?」——一个硬上限,且没有暴露配置入口。 - agegr/pi-web – GitHub stats & insights: 第三方统计站记录 #211 本周 stars、1.1K forks。
- Pi Coding Agent 包注册表: pi.dev 的包注册表里已经出现至少 6 个第三方 pi-web 变体——
@jmfederico/pi-web、@gang-of-beads/pi-web、@hyperdreamer/piwebui、@larose/pi-web、pi-web-ui、@firstpick/pi-package-webui,描述高度雷同(「Web UI for persistent Pi Coding Agent sessions in real workspaces」)。
信号观察:
- AI 协作从例外变成默认工作流。 2026-09-01 以来最近 100 个 commit 里 52 个带
Co-authored-by: Claude Opus 5.5;PR 标题与它所关闭的 issue 标题完全一致(#1308 ↔ #1272、#1329 ↔ #1277、#1311 ↔ #1286、#1310 ↔ #1296),issue 侧则大量是中文报告(#1296、#1286、#1332、#1319)。中文 issue → 英文 PR 标题 →Co-authored-by的完整链路已经是这个仓库的常规形态,而不是新鲜事。 - 主线是「模型配置面」而不是「新功能面」。 per-model Base URL 原生覆盖、Claude adaptive thinking 开关、provider id 参与搜索匹配、保存的模型定义应用到 idle session——四个 PR 都在解决「同一个模型在不同 provider / 不同环境下表现不同」这一类问题。这与 provider id 匹配修复(#1308)指向同一个根因:当同一个模型被多家 provider 提供时,UI 层缺少「这条到底是哪一家」的表达。
- 子 agent 的后台运行第一次有了常驻指示。 之前 long-running background run 要打开面板才看得见;现在 Agents badge 在有 subagent 运行时才切到运行数 + accent 色 + spinner,并且明确复用 sidebar 已有的 running poll,不新增请求——这是一个「零额外成本换可观测性」的典型做法。
- open issues 从 43 掉到 22,方向与别处相反。 本期合并 17 个 PR,其中多数 PR 用
Closes #NNNN关掉了对应的 issue;同时 star 只 +18。这是本清单里唯一一个「关闭速度快于新增速度」的仓库。 - 附件存储的边界正在重画。 #1333 把原始上传从「workspace 里的一次性文件」改成「agent 目录里按 sha256 寻址的持久资产」,并要求会话删除时才剪枝无引用目录;同期 #1332 暴露的 100MB 硬上限说明这条 intake 路径还没有配置面。「聊天附件属于项目还是属于 agent」这个问题正在被明确回答。
- 多标签页 / 多连接的资源争抢第一次被完整记录。 #1283 的取证方式值得注意:报告者主动区分了「显示症状」与「持久化丢失」,并逐一给出各 API 的延迟数据。这是一个本清单里少见的、把「我以为」和「我验证了」分开写的 bug 报告。
vectorize-io/hindsight
Agent 长期记忆系统(Agent Memory That Learns),MIT,四类隔离记忆网络 + retain/recall/reflect/consolidate 循环| stars: 51231(上期 50861,+370)| open issues: 162(上期 148,+14) | 默认分支: main | 最近 push: 2026-10-17T14:59:44Z | 主页: https://hindsight.vectorize.io/
近 40.6 天 release 重点(本期无新 release):
最新仍是 v1.0.0(2026-10-13)。
- v1.0.0(2026-10-13)— 1.0 GA:确立稳定且向后兼容的 API 标准,配套自研存储引擎 Memlake。
其他重要 commits / PRs:
窗口期内 0 个 commit、0 个 PR。main 分支自 2026-10-16 19:58Z 起无新提交(pushed_at 停在 2026-10-17T14:59:44Z)。
社区讨论 / 行业方向:
- Agent Memory 独立数据库品类成型:1 亿条记忆 80 毫秒召回已落地(中文)(2026-10-13):「一周内,Vectorize 把 Hindsight 推到 1.0 GA + Memlake 企业存储引擎上线,Tencent 开源 TencentDB Agent Memory——两个不同步的产品在同一周落在 Agent 长期记忆这条赛道上。」 两家路线不同:Vectorize 走对象存储 + 自家检索引擎,Tencent 走本地 SQLite + 语义金字塔。硬指标对比是「1 亿条记忆 99 分位召回 500 毫秒意味着 agent 在用户等待时会卡顿;99 分位单路极致延迟 > 跨 region 复制」,而 Hindsight 的取舍明显把「4 路统一」放在第一位,单次 99 分位 80 毫秒。
- Hindsight 1.0 与 Memlake 发布:面向 AI 智能体的开源长效记忆系统(中文): 中文侧对同一次发布的记录,标题点出 Memlake 是「可扩展、Rust 驱动的 agent memory 架构」。
- TencentDB Agent Memory 新增 DeepSeek Harness 桌面端接入支持: 明确列出已支持的 harness——Claude Code、CodeBuddy、Codex、WorkBuddy、Opencode、Pi、Hermes 和 OpenClaw。本清单 6 个仓库里有 2 个(opencode、pi)已经写进了竞品的接入清单。
- 腾讯开源 Agent Memory 引发讨论:分层记忆之外,「全本地」仍需看模型配置(中文): TencentDB Agent Memory 于 2026-10-13 在 Reddit 的 r/AI_Agents 与 r/LocalLLaMA 引发讨论,帖子强调本地 SQLite 存储、记忆可追溯、token 用量下降;但社区评论指出本地存储不代表整条处理链路都离线,安装配置中的模型端点同样需要关注。
- TencentDB Agent Memory: Layers, Team Memory, Setup: 记录 L0–L3 记忆分层、Team Memory 与 Memory Hub、给 Claude Code 和 OpenClaw 做代理接入,并直接与 Hindsight 和 Mem0 做对比。
- Hindsight Tops GitHub Trending Again, 10 Months After Launch: 把本月周期描述为「tokenizer swap and a deadlock fix this month, the kind of unglamorous release cycle that keeps pulling people back」。
- Hindsight: AI agent memory becomes a product in its own right (1,653 stars in one day)、I Tested Hindsight, the Open-Source Memory Layer for Coding Agents、Hindsight Review: Vectorize Agent Memory, Install Tested: 第三方实测,其中 andrew.ooo 记录了「60+ integrations, and a failed pip install」。
- Agent Memory 独立数据库品类成型 / TencentDB Agent Memory wiki: 后者标注 MIT、TypeScript + Python,并注明内容反映到 2026-10 月。
信号观察:
- 代码停了,注意力没停。
main分支自 10-16 起零提交、零 release,但 star 仍 +370(+807 → +370,环比腰斩但仍是本清单第三)。open issues 从 148 升到 162(+14),是本清单里唯一 issue 数上升的仓库。注意力与代码在这两周里脱钩了。 - 它所在品类在同一周完成了对位。 10-13 这一周,Vectorize 把 Hindsight 推到 1.0 GA + Memlake,同一周 Tencent 开源 TencentDB Agent Memory(L0–L3 分层、Team Memory、Memory Proxy、TypeScript/Python SDK)。两家不约而同落在同一条赛道上,且都在同一周对外发布。
- 竞品的接入清单里写着本清单的两个仓库。 TencentDB Agent Memory 明确支持 Opencode 和 Pi。它的策略不是替换 harness,而是在 harness 旁边加一层记忆——这与 Hindsight 的 60+ integrations 是同一条路线的两种执行。
- 可观测性是这一品类对外的主要论据。 墨天轮那篇的中文对照给出了具体数字:1 亿条记忆、99 分位召回 500 毫秒 vs Hindsight 单次 99 分位 80 毫秒、4 路统一 vs 单路极致延迟。能给出 p99 数字的记忆系统,已经在用数据库的方式而不是插件的方式自我推销。
- 「本地 = 离线」这个卖点当场被社区拆掉。 r/AI_Agents 与 r/LocalLLaMA 的讨论里,最实际的反驳是:本地 SQLite 存储不代表整条处理链路离线,模型端点仍然要联网看配置。这是「本地优先」叙事在 2026-10 的实际接受度。
agentclientprotocol/agent-client-protocol
连接任意编辑器与任意 agent 的协议(LSP 之于编辑器之于编程 agent)| stars: 4464(上期 4461,+3)| open issues: 37(上期 35,+2) | 默认分支: main | 最近 push: 2026-10-18T23:16:15Z | 主页: https://agentclientprotocol.com
近 40.6 天 release 重点(本期无新 release):
最新仍是 2026-10-16 的 v1.12.0(Rust crate)、schema-v1.26.0、schema-v2.0.0-alpha.9,本期无新 release。
- schema-v2.0.0-alpha.9(2026-10-16)— v2 草案的又一次澄清
- (unstable-v2) 按顶层 key patch upsert
_meta(#2372);(schema) 对齐 v2 实验特性兼容性(#2397)。 - 其余几乎全是
Other类的文档澄清:定义前台状态转换(#2411)、澄清 replay ID 与不支持的 cursor(#2398)、对齐规范化取消要求(#2390)、澄清 prompt 插入契约(#2392)、澄清前台工作生命周期(#2387)、澄清关闭 session 时的 prompt 取消(#2385)、说明git_patch如何写路径(#2362)、澄清 fork 出的 session 是 active 的(#2359)、列出 v2 完整 session baseline(#2358)、澄清前台工作可以无 prompt 启动(#2357)。
- (unstable-v2) 按顶层 key patch upsert
- v1.12.0(2026-10-16)— Rust crate 与上面同一批条目,另加 (rust) 为 content block 实现
Eq(#2352)。
其他重要 commits / PRs(本期 5 个 commit,全部为 acp-release-bot[bot]):
191987a/2c82704/2848de6/39e495e/de7b6e5—docs: update registry agents(10-18 的 09:40 / 14:05 / 17:26 / 20:44 / 23:15Z,一天五次)- 每次只改一个文件
docs/get-started/registry.mdx,且只顶替版本号:harn0.10.168 → 0.10.169 → 0.10.170(一天两次),sigit1.7.0 → 1.7.1。
- 每次只改一个文件
- #2427 [仍 open]
docs: add acp-sdk (Ruby) to community libraries[bottrall],10-18 19:57Z 更新。 - #2423 [仍 open]
docs: add Eleven to the clients list[Zfinix],10-18 09:23Z 更新。 - #2420 [仍 open]
docs: add Octomind to the agents list[donk8r],10-17 11:54Z 更新。 - #2413 [仍 open]
chore: release[acp-release-bot],10-18 23:16Z 更新。
社区讨论 / 行业方向:
- Agent Client Protocol (ACP) — Editors to Coding Agents | Hivebook: 第三方维护的 v1/v2 对照,逐条记录
session/load与session/set_mode已移除(分别由带 replay 的session/resume与session/set_config_option取代),以及整个 client 侧的fs/*与 terminal API 被删除。 - ACP v2 Draft Rewrites How Coding Agents Talk to Editors | AI Insiders: 记述 v2 draft 于 2026-07-20 发布,重写协议四个核心部分:放弃 turn-based 模型,改为流式更新、结构化 diff 与默认前向兼容的 schema;并明确强调它是 draft 不是 spec。
- ACP v2 is available in Draft(官方公告): 官方口径——v2 的文档与 schema 以 draft 形式发布,供审阅与测试。
- Protocol Specification — v2 (Draft) | DeepWiki: 把 v2 定性为「旨在提升一致性、简化核心交互循环、更好支持 streaming thoughts 与 item-based planning 等高级 agent 特性的重大重设计」。
- ACP: The Universal Remote Control for AI Agents — Alex Hancock, Block: 一家支付公司把 ACP 讲成「通用遥控器」——指出 ACP 起源于编辑器厂商(Zed、JetBrains),但正在被定位成适用于编辑器之外的中立标准。
- Which Coding Agents Support ACP? | AgentRQ: 逐个回答「Claude Code 支持 ACP 吗」这类问题,结论是「大多数都支持了」。
- ACP Clients & Agents: Editors, IDEs & Coding Tools 与 Agent Client Protocol Review | HysenLabs: 生态目录与第三方评测。
信号观察:
- 本期仓库里唯一的变化来自 bot。 5 个 commit 全部是
docs: update registry agents,每次只改registry.mdx里的一个版本号:harn 一天从 0.10.168 走到 0.10.170,sigit 从 1.7.0 到 1.7.1。ACP 本体(schema、文档、示例代码)本期零改动。 - 生态扩张体现在还 open 的 PR 上,不在 commit 里。 acp-sdk (Ruby) 进 community libraries、Eleven 进 clients、Octomind 进 agents,三个 PR 都在等待。注册表是 ACP 唯一的「活动面」,而它由 bot 驱动、由社区 PR 填充。
- v2 的破坏性变更已经写死在迁移文档里。
docs/protocol/v2/migration.mdx的五条要点之一是 「The Client file system, terminal execution, and session modes APIs are gone.」——Agent 侧要 client 工具就改用 client 提供的 MCP server;Agent 拥有的终端输出变成一个独立的、仅显示的 v2 surface。同一份文档的「五条要点」还规定:更新语义变成 upsert(省略 = 不变、null= 清空、值 = 替换、chunk = 追加);capabilities 重组成两侧各一个capabilities+ 必填info;枚举与 tagged union 接受未知值,_前缀归你自己、其余保留给未来版本。 - 同一份文档反复要求「按开关上 v2」,而且给了理由。 原文:「gate v2 support behind explicit version negotiation and feature flags until it stabilizes」,并解释「一个丢掉 v1 的 Agent 会切断自己与现有 Client 的连接,一个丢掉 v1 的 Client 会失去对现有 Agent 的访问」——每条连接只讲一个协商后的版本,但实现方要 v1/v2 并行。 对照本期仓库状态:v2 停在 alpha.9,v1.12.0 与两个 schema 一起发,这个节奏与文档要求一致。
- 协议正在从「编辑器标准」向「agent 通用遥控器」扩张。 一家支付公司(Block)的播客在讲它,多个第三方站点在做 ACP client/agent 目录,Hivebook 在维护 v1/v2 逐条对照。但 star 增速是本清单最低(+3 / 24h),open issues +2。叙事在扩张,代码在沉淀。
yxc023/yxc023.github.io
个人博客站(Astro),同时是本报告的发布目标仓库| stars: 1 | open issues: 27 | 默认分支: master | 最近 push: 2026-10-18T00:35:21Z | 主页: (仓库未填 homepage)
近 40.6 天 release 重点:
窗口期内无 release。
其他重要 commits / PRs:
dc5c762—auto(reports): 同步 daily-research 2026-10-18(杨晓辰(小德) & 再探再报, 2026-10-18T00:35:16Z):上一期报告的自动同步,本期该仓库同样只有这一个 commit。
社区讨论 / 行业方向:
- 窗口期内未检索到公开讨论。
信号观察:
- 本仓库是本报告的发布目标,不是被观察的对象。唯一的 commit 永远是上一期报告自己的同步,它的 push 时间戳(00:35Z)与报告生成时间(00:33Z)差两分钟,可以当作流水线是否跑通的探针。
- stars: 1 | open issues: 27 —— 27 个 issue 是历次自动同步留下的,不是待办信号。
跨项目观察
-
「零 release 日」第一次出现,而开发节奏是本清单里最快的。 本期 6 个仓库全部没有新版本,但 24 小时内 opencode 合了 14 个 PR、pi-web 合了 17 个 PR。发布节奏与开发节奏第一次明显分离:上期是「架构改动日」(pi durable 删 sleep、ACP 从规范里删特性),本期是「纯 commit 日」。对读者的含义是明确的——当报告里没有 release 时,信号全部在 commit 与 issue 里,去看
pushed_at与 PR 数而不是 tag 列表。 -
可观测性第一次作为「显式注入的契约」被设计,而不是全局埋点。 pi 的
pi-telemetryREADME 逐条列出了它不做什么:「no exporter, global current-span state, or dependency on a telemetry backend」,Context.telemetry默认 NOOP,用withTelemetry/traceIn显式包装;同一批提交把 durable 的失败面从字符串变成 9 种 typed reason,并让 report 点名是哪个 extension、哪个HarnessOptions回调出的问题。opencode 同日有机器人开的fix(core): log providers removed by policy(#56905)。三方都在补同一个东西:「这个进程到底做了什么」的查询面,而且都不打算依赖一个后端 SDK。 -
「静默降级」第三次成为主要缺陷形状,而且这一次是跨三个仓库的。 opencode 上期的 #56602(V2 配置静默丢弃 MCP server)与 #56583(CLI 对高版本 DB 报一个不指向根因的错误),本期变成 #56903(
project.open从未注册,菜单渲染器把未知 command id 视为永久禁用,File → Open Project 在 Windows 11 上恒灰)与 #56902(provider 配置里新增的模型要重启 service 才出现,catalog 是启动时的快照);pi 侧同时有 #10074(Anthropic tool call 里\uXXXX掉了u变成控制字符,会话在 streamingedit时无限卡住,eyalroth 今天补了 1.3.0 上的数据点)、#10704(waitForIdle()在 settled-handler compaction 完成前就 resolve)、#10956(cacheWarming 的 idle 静默停掉,烧掉约 $500)。共同点一句话:配置看起来完全正确,功能却不存在,且没有任何一句警告。 这类缺陷不会自己冒出来,只会被用户逐个撞上——而每一个撞上的用户都会开一个独立 issue。 -
「一个缺陷类第一次以重复提交的形式出现」是它没被归类的证据。 opencode 的 #54679 / #55081 / #55275 是同一个 bug(V1 的 global project 会话在 V2 的 cwd-scoped 列表里消失),三个人在 10-12 / 10-13 / 10-14 各开一个,措辞各不相同,三个都 closed。加上 #56902 与上期的 #56583(CLI 1.19.3 跑在 Desktop 2.0.32 建的
opencode.db上崩),V1→V2 迁移的断点不在代码里,而在「谁拥有~/.local/share/opencode」这个没有写下来的约定上。 -
Agent memory 这一周完成品类对位,而且竞品已经反向接入本清单的仓库。 10-13 这一周,Vectorize 把 Hindsight 推到 1.0 GA + Memlake,Tencent 开源 TencentDB Agent Memory(L0 Conversation → L1 事实原子 → L2 场景 → L3 长期画像,Team Memory、Memory Proxy,TypeScript + Python SDK,80 天 star 破万并多次上 trending 第一)。墨天轮把这两件事并列成「Agent Memory 独立数据库品类成型」,并给出可比的硬指标(1 亿条记忆、99 分位 500ms vs Hindsight 的 4 路统一单次 99 分位 80ms)。TencentDB Agent Memory 的接入清单里同时写着 Opencode 和 Pi——本清单 6 个仓库里已有 2 个成了别人的接入目标。而本期 hindsight 本体零提交、star 仍 +370:注意力的来源已经从它自己的代码,转到了它所在的品类。
-
「一个 harness + 多个界面 + 多个 harness 并列」正在收敛成同一张图。 pi-web 本期 20 个 commit 几乎全是设置项与移动端打磨(模型配置面、字体、面板、移动端 picker),同期 pi.dev 的包注册表里已出现至少 6 个第三方 pi-web 变体(
@jmfederico/pi-web、@gang-of-beads/pi-web、@hyperdreamer/piwebui、@larose/pi-web、pi-web-ui、@firstpick/pi-package-webui),描述几乎相同;opencode 侧同期把 Console 的 Black 页面退役并 redirect 到 Go,补齐 claude-code / codex / hermes / pi / raycast 五份 harness 接入指南。「Web UI for X」正在变成一个可复制的品类,而 ACP v2 那条「Client 侧 fs/* 与 terminal API 整体删除、Agent 要 client 工具就用 client 提供的 MCP server」则给出了这个品类在协议层的收敛方向。
元信息
- 报告生成时间: 2026-10-19T00:30:18Z
- 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告
reports/latest.md的基准时间:字段,自 2026-09-08 起连续 10 期未变) - 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-19T00:30:18Z(约 40.6 天);本期新增内容全部落在 2026-10-18T00:33:51Z 之后的约 24 小时
- 数据源: GitHub API(gh CLI)+ mmx web search
- API rate limit 剩余: 4903 / 5000(core,抓取完成后查询)
- 抓取结果: 6 / 6 仓库 × 4 endpoint 全部成功;V2 changelog 另取自
anomalyco/opencode默认分支的CHANGELOG.md;ACP v2 迁移说明取自docs/protocol/v2/migration.mdx
评论