2026 2026年10月9日 31 min · 9.3k chars by yxc023
GitHub 调研周报 2026-10-09
扫描窗口:2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)| 基准来源:上次报告 2026-10-08
2026-10-09 GitHub 调研周报
扫描窗口:2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)| 基准来源:上次报告 2026-10-08
仓库范围:
config/repos.yaml中 6 个项目。本期最重要的事件是 agegr/pi-web v0.11.0(2026-10-08T16:50:58Z)修复一个「打包进 npm 的固定密钥」导致的认证绕过漏洞——腾讯玄武实验室 XlabAI Team 报告,公开 tarball 里的preview.previewModeId被 Next.js 当作「跳过 middleware」的通行证,任何读过包的人都能绕过密码与 Host/Origin 检查。第二个事件是 opencode 把 Zen 免费层全部免费模型的后端代理迁完(#53959 → #53963 → #53967 三连,24 小时内完成),最后用模型自身已有的allowAnonymous标记替掉硬编码模型表。第三个事件是 pi 在 v1.1.0 之后进入消化期:主分支 24h 只落 8 个 commit,主轴是「配置 schema 化」(#9880,+5178/−1493,breaking)+ 打包兼容 + 定价元数据修正。
本期速览
- agegr/pi-web v0.11.0 是本窗口第一件必须立刻升级的事(2026-10-08T16:50:58Z):0.11.0 之前密码保护可被绕过。根因在
cf3ebfb——已发布的 npm tarball 带着.next/prerender-manifest.json,其中preview.previewModeId每个 release 都一样;Next.js 对x-prerender-revalidate等于该 id 的请求跳过 middleware(proxy.ts),于是密码门与 Host / Origin / Fetch-Metadata 检查一并失效,能直接执行命令、读写文件。修法是每次启动在bin/pi-web.js里用随机值重写三个 preview secret(id / signing key / encryption key),且放在 guaranteed launch path 而非 postinstall,--ignore-scripts绕不过去;安装目录只读则告警。同批还有 Windows 目录联接(junction)跨出允许目录读文件的 git diff 端点(#1039)与 Next.js 16.3.8。 - opencode Zen 免费层后端迁移在 24h 内收尾:#53959 把
fledge-alpha-free/jev-1.13-free/ling-3.0-flash-fin-free/longcat-2.5-preview-free/mimo-v2.6-flash-free/muse-spark-1.2-contributor-free/nemotron-3-ultra-free移到新 inference;#53963 把最忙的三个(big-pickle、muse-spark-1.3-contributor-free、space-bunny-free)也移过去,并修掉一个可读性问题——新 inference 返 404 时 SolidStart 会把响应替换成自己的Cannot find any route matching [POST] …/zen/v1/chat/completions,调用方看到的是路由错误而非真实原因,现在按 400 原样返回新 inference 的 body 与 headers;#53967 直接用ZEN_MODELS里既有的allowAnonymous标记替掉硬编码列表(+2/−17),以后新增免费模型不需要改代码就会被代理。同日Fledge Alpha Free从 Zen 文档与全部翻译里撤下(#53984,−72 行)。 - pi v1.1.0 之后的消化期:8 个 commit,主轴是「配置 schema 化」。
7f9e119/ #9880 从 canonical TypeBox 契约生成并发布 models / settings / keybindings / themes 的 JSON Schema(+5178/−1493),breaking change 是 theme schema 从src/modes/interactive/theme/theme-schema.json移到schemas/theme.schema.json;配套做了 Kitty / xterm shifted-symbol 事件归一化,让+、ctrl++这类逻辑绑定可用,同时保留物理绑定。其余:6fb2e78/ #10680 兼容 npm 12 把npm pack --json从单元素数组改成按包名索引的对象(原本打包校验、publish dry run、本地发版全挂,fixes #10633);ce950d7删掉 Opus/Sonnet/Haiku 5.5 的硬编码 fallback 改走 models.dev 元数据;6b07b4e把 Mistral 的 request timeout 收窄到「只等 response headers」,body 卡顿交给 HTTP client idle timeout(长流式 extended thinking 不再被误杀,fixes #10609);7933a0e打了mcp/codemode/durable标签会自动指派 owner 并重开 issue。 - pi 的贡献者治理有一个可观察的机制:新贡献者的 issue 默认被
github-actions[bot]自动关闭(state_reason: not_planned+ 「Maintainers review auto-closed issues daily and reopen worthwhile ones」注释),本窗口内 #10696 / #10699 / #10700 / #10701 / #10697 五个 issue 都是这样在数十秒内关闭的;同日还有 4 条外部 PR(#10688–#10690 dakjdakd、#10698 BichengWang)在几分钟内 closed 且merged_at: null。 - pi 侧新贡献者报出的三个 cache 相关问题质量很高(均被自动关闭):#10699「wake 触发的 run 不渲染
before_agent_start贡献,导致 system prompt 头部每到 subagent 边界就翻转,prefix cache 全失效、按写入价重算全历史」;#10700「cacheWarming: "idle"在 11–28 分钟的静默期里静默停止预热,条目过期后下一次调用读 0 全量重写,怀疑是isCurrent()失效或refresh()里的catch {}吞掉了错误」;#10696「--no-skills不拦截扩展经resources_discover注入的 skill,host 用--no-skills --skill <granted>启动时期望的恰好是授权集合」。 - vectorize-io/hindsight v0.10.3 发布(2026-10-08T15:47:49Z):这是一个横跨约 200 个 PR 的累计 release(#4535 → #5441,含 19 位新贡献者)。24h 内真正的新代码只有 3 条:#5432(bank 被其它进程删掉但仍在本进程 cache TTL 内时,所有 store 调用改返 404,而不是继续读写)、#5437(Oracle 时间统一到 UTC)、#5396(worker 丢掉的 append 竞态改为 defer,而不是直接失败);其余是首页 hero 的全宽改造与「可 hover 的记忆星座」可视化(#5436)、social card / link preview 修复(#5441、#5440)与 Next 16.3.8 依赖。
- agentclientprotocol/agent-client-protocol 进入纯版本同步模式:24h 内 4 条
acp-release-bot同步(claude-agent-acp 0.87.0→0.88.0、kimchi 1.7.1→1.7.2、cline 3.0.69→3.0.70、nova 1.1.50→1.1.51、sigit 1.6.3→1.6.4、goose 1.53.0→1.54.0、Copilot 2.162.0→2.163.0、另一客户端 0.235.0→0.236.0),零新增 client;人工新增的两条都是社区自荐(#2321 Gonggong Space,自建 Rust daemon 驱动 Claude Code / Codex 的群聊,可 @ 别人的 agent;#2317 Bellows,桌面端驱动 gemini-cli,带 hash 链接的审计轨迹)。 - opencode 免费额度故障在同一时段集中出现:#14273「Free usage exceeded. Add creddits(when using Zen free models)」、#53456「Your access has been restricted due to repeated policy violations」、#53827「Upstream request failed: Insufficient account funds」ずっと出てまったく使えない。这三条与上面 24h 内的免费层后端迁移在时间上重叠。
- 跨项目共有信号:① 「安全边界不能放在构建产物里」——pi-web 把三个 secret 从打包常量改成每次启动随机生成,且刻意放在
--ignore-scripts绕不过的启动路径上;② provider 兼容性仍是 bug 的主要来源——pi 的 Mistral 超时语义、Claude 5.5 定价元数据、opencode 的ultrafastservice tier、pi 的 DashScope quota 限流分类、hindsight 的 Oracle 时区,都属于「协议声明与实际行为不符」;③ 「让新条目自动生效」成为共识做法——opencode 用allowAnonymous标记替掉硬编码模型表,hindsight 用 tag scope 替掉按表枚举,方向一致;④ 两个项目同时在做「只列这个 key 能用的模型」——pi 的 #10672 / #10569(按 OpenRouter key 可用性过滤模型);⑤ 免费额度/代理层正在变成新的故障面,而不是纯技术改造。
各仓库详情
agegr/pi-web
pi coding agent 的 Web UI;TypeScript / Next.js,读取本地 pi session JSONL 维持会话。| stars: 7,168(上份 7,145,+23 / 24h) | open issues: 54(上份 78,−24) | 默认分支:
main| 最近 push: 2026-10-08T17:36:49Z | 主页: https://github.com/agegr/pi-web
近 N 周 release 重点:
- v0.11.0(2026-10-08T16:50:58Z)— 侧边栏重新设计 + 一个严重安全漏洞的修复
- ⚠️ 安全修复(0.11.0 之前密码保护可被绕过):此前每个 npm 包都带着同一组固定的内部密钥,任何人从公开 tarball 里读到就能跳过密码登录与来源检查(Host / Origin),进而执行命令、读写文件。新版本每次启动生成新的随机密钥;安装目录不可写时启动打印警告;由腾讯玄武实验室 XlabAI Team 报告(对应 commit
cf3ebfb,Co-Authored-By: Claude Opus 4.8)。 - Windows 目录联接越权:git diff 接口可通过 junction 读到允许范围以外的文件,已修复(#1039)。Next.js 升到 16.3.8。
- 侧边栏重做:所有项目同时显示(每个项目是可折叠分组,折叠时仍能看到运行中 / 未读会话数)、会话可置顶与归档(10 秒内可撤销,已归档会话收到新消息自动回来)、项目顺序不再被新消息顶到最前(拖分组头或菜单上移 / 下移,跨浏览器与设备同步)、可在侧边栏直接分叉会话(运行中也能分叉,名称为原标题 + 短随机后缀)、「会话 | 文件」双标签(文件浏览器占满侧边栏高度,顶部是项目 / 工作树选择与终端 / 在文件管理器打开 / 上传 / 刷新 / 显示被忽略文件 / 改动视图)、新建会话时可直接选项目与工作树且草稿 / 图片 / 模型 / 推理等级一起带过去。
- 新增:拖文件进聊天框即上传并 @ 提及(#1094)、自定义界面与代码字体及字重(#1074)、文件浏览器可显示 Git 忽略文件并变暗注明原因(#1092)、扩展可在状态栏放命令按钮如
ctx.ui.setStatus("command:/mode toggle", "Build")(#1030)、subagent profile 支持skills:预加载与extensions:白名单(#1034 / #1091)、write工具卡片直接显示写入内容(#1024)。 - 修复:CJK 标点旁的粗体 / 斜体正确渲染(#1072)、表格长单元格换行(#1056)、运行中上下文用量实时更新(#1058)、
session_start才注册的 provider(如 pi-claude-bridge)不再从模型列表消失(#1071)、升级后偶发「Pi Web is offline」(#1089)、子代理回合上限与终态处理(#1093)。 - 改进:运行中转圈动画改用 CSS,GPU 占用明显下降(#1042);随 pi 1.1.0 升级,项目
.pi/mcp.json可单独调整某个全局 MCP 服务器的开关与暴露方式。 - 升级注意:pi 1.1 把
azure-openai-responses改名为azure;置顶 / 归档 / 顺序保存在~/.pi/agent/pi-web-session-state.json;强调符号规则调整,少数旧消息可能露出星号。 - 完整 release notes: https://github.com/agegr/pi-web/releases/tag/v0.11.0
- ⚠️ 安全修复(0.11.0 之前密码保护可被绕过):此前每个 npm 包都带着同一组固定的内部密钥,任何人从公开 tarball 里读到就能跳过密码登录与来源检查(Host / Origin),进而执行命令、读写文件。新版本每次启动生成新的随机密钥;安装目录不可写时启动打印警告;由腾讯玄武实验室 XlabAI Team 报告(对应 commit
其他重要 commits / PRs(24h 内 30 条 commit,按重要性挑选):
cf3ebfb修复认证绕过 —fix(security): rotate preview-mode secrets at startup to close proxy auth bypass(Alex Yang, 2026-10-08)。prerender-manifest.json里的previewModeId每个 release 固定,Next 对x-prerender-revalidate命中该 id 的请求跳过 middleware;改为在bin/pi-web.js里重写三个 preview secret,不走 postinstall。2e87ddb侧边栏项目分组 / 置顶 / 归档 + 「会话 | 文件」分栏 —feat(sidebar): project groups, pins and archive with a Sessions | Files split(Alex Yang, 2026-10-08)。085fba9从会话行菜单分叉会话 —feat(sidebar): fork a session from its row menu;02ded7e固定项目顺序并支持手动重排。2f6a0a9文件浏览器显示 Git 忽略文件(变暗 + 注明原因,#1092)— Matthias Kuchem。86d94e2自定义字体族与字重(#1074)— Liang Gong。012e805文件提及可撤销(#1098)— Tiger。6d4d6b5CJK 标点旁强调渲染(#1072)— keeword。86dea26升级 pi 到 1.1.0;1e294b0bump Next 到 16.3.8 并修 npm audit。- 未合并的 PR(24h 内更新,14 条来自作者本人的跟进):#1123「折叠 compaction 摘要,与 pi TUI 行为对齐」(#1026)、#1122「composer 的附件按钮可附加任意文件,不只图片」(#1101)、#1121「自定义面板每次按键不再重渲染整个回答」(#1005)、#1117「启动时即开始导入 pi SDK,而不是首个请求时」(#964)、#1115「接纳扩展在
session_start注册的工具」(#883)。
社区讨论 / 行业方向:
- newreleases.io 上 @agegr/pi-web 0.11.0 的发布页:安全通告中文明示「0.11.0 之前的版本,密码保护可以被绕过」,并要求局域网 / 公网暴露的用户立即升级——说明公告在发布后 2 小时内已被第三方镜像站完整收录。
- hysenlabs 的 pi-web 评测:从第三方视角复述了同一风险模型——「它不是沙箱,假设用户可信,其价值取决于你怎么处理访问;不要用于多租户隔离或公网暴露」。
- Pi Web fork(PriceNing/pi-web 与 NolanHo/pi-web 等):生态里已有多份 fork,且 README 里的密码设置指引仍停留在旧的安全模型上(
PI_WEB_PASSWORD、-H 0.0.0.0),说明这次修复尚未传导到下游 fork。 - 窗口期内未检索到针对该漏洞本身的公开技术分析;HN / dev.to / InfoQ 均无相关讨论。
信号观察:
- 这是一个「把 secret 放进构建产物」的经典失误:秘密本应属于运行时状态,却被固化进了可公开下载的 tarball,且 Next.js 的机制让这个固化值恰好等价于一张绕过凭证。
- 修复方式的选择很有信息量——放在 guaranteed launch path 而非 postinstall,理由是
npm install --ignore-scripts会跳过 postinstall;宁可让只读安装目录启动失败告警,也不留一个静默的漏洞版本。 - 24h 内 30 条 commit 中约 18 条是同一波侧边栏重做的子提交(同一作者、同一分钟批量提交),说明这次是一次性的大改而非渐进演化。
- open issues 从 78 降到 54,与 v0.11.0 一次性关掉一批重构类 issue 同步发生。
- fork 生态尚未同步安全修复,是本次事件里最直接的下游风险面。
earendil-works/pi
AI agent 工具集:统一 LLM API、agent loop、TUI、coding agent CLI;MIT 许可。| stars: 113,524(上份 113,186,+338 / 24h) | open issues: 307(上份 284,+23) | 默认分支:
main| 最近 push: 2026-10-08T15:26:37Z | 主页: https://pi.dev
近 N 周 release 重点:
- 窗口期内无新 release;最新仍是 v1.1.0(2026-10-07T22:26:31Z),已在 2026-10-08 报告中详述(OSC 7501 Program Status、Claude Haiku 5.5、OpenAI Decisions 分类器、
--tools的+name/-name、llama.cpp 原生 decision models)。 - 本期值得注意的是 v1.1.0 之后 24h 只落 8 个 commit,属于典型的「发布后消化期」,且其中最大的一条是一个 breaking change(见下)。
其他重要 commits / PRs(24h 内 8 条 commit,按重要性挑选):
7f9e119发布配置 schema —feat(coding-agent): publish configuration schemas(Christian Klotz, 2026-10-08,#9880,+5178 −1493)。从 canonical TypeBox 契约生成并发布 models / settings / keybindings / themes 的 JSON Schema;集中 schema 元数据、无条件默认值、theme tokens 与 provider 兼容性定义;条件兼容性字段刻意不给 schema 默认值以保留运行时自动探测;加载与 reload 时校验 theme 并拒绝非法 keybinding 语法;归一化 Kitty 与 xterm 的 shifted-symbol 事件使+/ctrl++这类逻辑绑定可用。Breaking change:theme schema 从src/modes/interactive/theme/theme-schema.json移到schemas/theme.schema.json。6fb2e78兼容 npm 12 打包输出 —fix: support npm 12 pack JSON output(Christian Klotz, 2026-10-08,#10680,fixes #10633)。npm 12 把npm pack --json从单元素数组改成按包名索引的对象,导致包安装校验、publish dry run、本地发版与打包全部失败。ce950d7Claude 5.5 定价改走 models.dev —fix(ai): use models.dev metadata for Claude 5.5 models(David Brailovsky, 2026-10-08)。删掉 Opus 5.5 / Sonnet 5.5 / Haiku 5.5 的硬编码 fallback;Sonnet 5.5 测试改为期望官方 cache read 价 0.1。6b07b4eMistral 超时只算响应头 —fix(ai): apply Mistral request timeout only to response headers(David Brailovsky, 2026-10-08,fixes #10609)。长流式响应(如 extended thinking)即使仍在持续收数据也会被timeoutMs中止;现在超时只覆盖等待响应头,body 卡顿交给 HTTP client 的 idle timeout。7933a0e标签驱动 owner 指派与自动重开 —feat: assign owners and reopen issues when mcp, codemode, or durable labels are applied(David Brailovsky, 2026-10-08)。bd21693docs: add dup prompt template(David Brailovsky, 2026-10-08)。
未合并的 open PR / issue(24h 内更新):
- 新贡献者 issue 默认自动关闭:#10699 / #10700 / #10696 / #10701 / #10697 全部
state_reason: not_planned,机器人注释为「All issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily and reopen worthwhile ones.」。内容质量并不低——#10699 指出 wake 触发(subagent 结果到达、sleep 唤醒)的 run 不渲染before_agent_start贡献,导致 system prompt 在 subagent 边界处来回翻转、promptGuidelines里的扩展规则与 MCP 扩展写的<mcp_servers>段交替出现,在支持 prefix caching 的 provider 上整个缓存失效、全历史按写入价重新计费;#10700 指出cacheWarming: "idle"在 11–28 分钟静默期里预热静默停止、条目过期后下一次调用读 0 全量重写,怀疑是等待期间追加内容导致isCurrent()失效,或refresh()里的catch {}吞掉了 replay 错误(建议至少加一行「warmer stopped:」日志);#10696 指出 --no-skills不拦截扩展经resources_discover注入的 skill,破坏 host 的授权语义。 - 同一天 4 条外部 PR 被关闭且未合并:#10698(mcp
oauth.clientId的环境变量展开,#10654 同题仍 open)、#10690(OAuth HTTP Basic 凭证 form-encode)、#10689(prepareRequest后同步工具声明)、#10688(过滤包资源时保留 manifest 边界)——均merged_at: null,提交者 dakjdakd / BichengWang。 - 仍在推进的功能提案:#10672 / #10569(按 OpenRouter key 可用性过滤模型,避免列出用不了的)、#10663(
pi auth --continue)、#10703(feat(durable): let extensions annotate aborted tool results,lucasmeyer,2026-10-08T23:37Z)、#9301(device-code 登录时确认浏览器与剪贴板动作)、#10663/#8112(Windows shell 解析、jiti import 前 realpath 扩展条目)。 - #10577(mitsuhiko,in-context compaction)自 2026-10-06 起仍是 open 状态,无更新;同题的 #8307(vegarsti,cache-friendly compaction)已于 2026-10-07 被关闭未合并。
社区讨论 / 行业方向:
- CVE-2026-54328:Pi 在共享 Linux 主机上因可预测的临时扩展安装路径导致本地提权:影响 0.74.0 – 0.78.1,
npm/git扩展的临时安装路径可预测,多用户 Linux 系统上可被本地攻击者劫持。属于已修复版本区间,但说明「把扩展装进系统临时目录」这一做法在 pi 里存在过完整的可利用窗口。 - Pi 1.0: A.I. Agent From Austria’s Developer Scene Tops Hacker News(2026-10-02):1.0 发布当天冲上 HN 首页并破 1000 分,同期 Earendil 一并发布 Pi Durable;是本窗口内 pi 外部声量的顶点,10-07 的 v1.1.0 未再触发同等量级的外部讨论。
- A deep dive into Pi(flaviocopes.com) 与 Pi coding agent explained(eesel.ai):两份第三方长文都把 pi 定位为「minimal, extensible agent harness」,强调四个内置工具与不到 1000 token 的 system prompt,其余交给扩展系统——这与仓库内
AGENTS.md的自我定位一致,说明外部叙事已经稳定。 - Pi 生态揭秘(cn-sec):梳理 Pi 与 OpenClaw、Earendil Inc.(Public Benefit Corporation)的生态关系;窗口期内无新增内容。
信号观察:
- 发布后 24h 只有 8 个 commit,但其中一条就是 +5178 行的 schema 化改造——pi 的节奏是「小批量、高杠杆」,不是连续功能流。
- 配置契约从「TypeScript 常量」变成「可发布的 JSON Schema」,是生态层面的事:编辑器、第三方客户端、配置生成器第一次有了稳定接口;同时 breaking change(theme schema 换路径)说明 schema 还在剧烈变动期。
ce950d7与 v1.1.0 当天的943a10e是同一个问题的两次修:Haiku 5.5 发布当天先硬编码,次日 models.dev 有数据后又删掉硬编码——定价元数据的上游延迟直接决定了代码形态。- 新贡献者 issue 的自动关闭机制把「首提质量」的责任从维护者转移到了机器人 + 每日复审;本期五个被自动关闭的 cache 相关报告,如果成立,影响面(成本重计费)远大于它们现在的可见度。
- open issues 从 284 涨到 307,与新贡献者自动关闭机制同期发生——总量上升可能来自自动化标签重开。
anomalyco/opencode
开源 coding agent:TypeScript / Bun,单仓多 target(CLI / Desktop / TUI / ACP server / Web);MIT 许可。| stars: 212,200(上份 212,209,−9 / 24h) | open issues: 6,211(上份 6,248,−37) | 默认分支:
dev| 最近 push: 2026-10-09T00:17:44Z | 主页: https://opencode.ai
近 N 周 release 重点:
- 窗口期内无新 release;最新仍是 v1.18.35(2026-10-06T20:18:39Z)。本窗口内 opencode 已从「产品迭代」完全转入「变现与免费层基建」。
其他重要 commits / PRs(24h 内 9 条 commit,按重要性挑选):
687664c+9c1fdf8+5a8c1d8免费层迁移收尾 —refactor(console): proxy every keyless free Zen model to new inference(#53967, +2 −17)、feat(console): proxy remaining free Zen models and keep proxied 404 errors(#53963)、feat(console): proxy more keyless free Zen models to new inference(#53959)(Victor Navarro, 2026-10-08)。#53967 用ZEN_MODELS里既有的allowAnonymous标记替掉硬编码模型表,新增免费模型不再需要改代码;#53963 修掉 SolidStart 把上游 404 换成Cannot find any route matching [POST] …/zen/v1/chat/completions的问题,代理来的 404 现在按 400 返回新 inference 的原始 body 与 headers,与 legacy handler 对自身 provider 响应的处理一致。03146da+fa0073cStep 5 Free 内容 —feat(opencode): add Step 5 Free content(#53898, +332 −10,MrMushrooooom):把 Step 5 Preview Free 加进 Free 与 Go 文档、Go 首页与 legacy Console。5e2df97接受 OpenAI ultrafast service tier —fix(provider): accept OpenAI ultrafast service tier(#53875, +204 −4,Aiden Cline):扩展已有的@ai-sdk/openai@3.0.88patch,让 Chat Completions 与 Responses 接受serviceTier: "ultrafast",并加了一条离线回归测试断言 GPT-6 Astra 的 Responses 流式请求里确实带上了service_tier: "ultrafast"(fixes #53538)。3884062+663fbd7文档调整 —docs(web): remove Fledge Alpha Free from Zen docs(#53984,−72 行,删掉端点表 / 价格表 / 免费模型说明 / 隐私说明里的fledge-alpha-free及全部翻译) 与docs(web): add Sonnet 5.5 to Zen model tables(Frank)。
24h 内更新的 open PR / issue(挑有信号的):
- #14273
[bug] Free usage exceeded. Add creddits (when using Zen free models)、#53456Error from provider (Console): Your access has been restricted due to repeated policy violations.、#53827「Upstream request failed: Insufficient account funds」がずっと出てまったく使えない——三条都指向免费额度与账户限制,且时间上与免费层后端迁移重叠。 - #46369
feat(opencode): add cache-preserving compaction(AnnoyingTechnology,open)——与 pi 侧 mitsuhiko 的 #10577 属于同一题(保缓存的 compaction),两边各自独立推进。 - #53387
fix(desktop): prevent background service SIGKILL loops and tune SQLite WAL concurrency、#54030fix(core): ignore a corrupt cached project id、#51422fix(core): resolve configured instructions、#53814cli: opencode api get silently truncates stdout for responses larger than ~256 KiB、#43806 类的 session 与 model 状态不一致(#53806--model在--session恢复时被忽略)——桌面端与服务端的健壮性问题集中在 23:00–00:20 这一小时。 - #44065
V2 runner sends a non-credential env var as the bearer API key for env-configured providers、#54023fix(core): coordinate credential refreshes across locations`——凭证处理仍是活跃问题域。
社区讨论 / 行业方向:
- dsh-llm-opencode-zen(npm) 与 dsh-opencode-zen-free-provider:生态里已有多条把 OpenCode Zen 免费模型整体转接给第三方 harness 的插件,自述支持「27 个免费模型」「以
Authorization: Bearer public匿名请求」「完整适配器实现(流式、tool_calls、reasoning_content→reasoning-delta、用量统计)」,启动时同步 Zen 与 models.dev 目录、取 id 以-free结尾的模型。 - pi-opencode-zen(npm):同类插件,把 Zen 的 OpenAI 兼容端点
https://opencode.ai/zen/v1接进 pi;文档明确写了免费访问的额外条件——必须用空 Bearer(填任何非空无效 token 反而 401)+ 携带特定 header。这正是 opencode 侧 Console 一直在收紧的免费层规则。 - opencode-free-proxy:一个自托管的 OpenAI / Anthropic 双格式免费代理,提供
api-keys.json供 Claude Code 使用。 - opencode pricing & plans(agentplans.fyi):截至 2026-10-01,Zen Go $10/月(首月 $5 促销)到 Zen Go Plus $40/月,官方按「解锁的 API 等价算力 / 每美元」折算——量化了免费层迁往 inference 后端背后的定价压力。
- opencode is free until the model rotates out:社区侧对免费轮换模型的预期文章。
信号观察:
- 24h 内 9 条 commit 有 5 条属于同一条主线(免费层代理迁移的三个 PR + 两次自动 generate),核心工作是「把硬编码模型表换成数据驱动」——
allowAnonymous这个改动只有 2 行,却是本窗口内 opencode 最有杠杆的一次重构。 - 同一天里
Fledge Alpha Free从文档撤下、Step 5 Free加入内容、Sonnet 5.5加入模型表:模型目录的进出频率远高于代码变更频率。 - 免费层故障的形态变了——从「模型不可用」变成「账户被限制 / 额度用尽 / 余额不足」,说明商业侧的风控与额度逻辑已经先于代理迁移就位,迁移期只是把它暴露给用户。
- 生态里出现了成规模的「Zen 免费模型二次分发」层(dsh、pi-opencode-zen、opencode-free-proxy),这些插件的规则嗅探(空 Bearer + 特定 header)与官方 Console 的实现细节强耦合——官方每收紧一次规则,这些插件就会先坏。
- 生态侧对「保缓存的 compaction」的兴趣已经独立成 PR(#46369),与 pi 侧的 #10577 / #8307 遥相呼应,且 opencode 的 provider 矩阵更宽(OpenAI service tier、Gemini 枚举),这类跨 provider 的能力探测会持续产出 bug。
- 24h 内 stars 微降 9、open issues 降 37,是本窗口唯一一个星数负增长的仓库。
vectorize-io/hindsight
Agent 记忆系统:retain / recall / reflect 三大能力 + 本地嵌入式 hermes / embed;MIT。| stars: 47,285(上份 46,815,+470 / 24h,本窗口增速最快) | open issues: 167(上份 148,+19) | 默认分支:
main| 最近 push: 2026-10-08T21:42:39Z | 主页: https://hindsight.vectorize.io/
近 N 周 release 重点:
- v0.10.3(2026-10-08T15:47:49Z)— 一个横跨约 200 个 PR 的累计 release
- 范围异常大:changelog 从 #4535 一直排到 #5441,把 TraeCode(TRAE CN)harness、Codex 内容过滤、Hermes 嵌入式 daemon 拆出进程、Codex account id header、WorkBuddy / CodeBuddy harness、Grok Bot + Cursor 插件、BEIR 检索基线(nDCG / Recall 下限)、tag scope 体系(#5032 per-caller tag scopes)等大批改动一次性打包进来,New Contributors 段列出 19 位首次贡献者。
- 正确性主线:consolidation 一次响应的写入进一个 store batch、sources 合并读取后再应用(#5420 / #5421);worker 重启不再阻塞 claim(#5411);structured-output schema 剥掉 numeric bounds(#5401,修 Bedrock Converse 拒绝
minimum/maximum导致 131 个模型里 60 个 mental-model refresh 暂停);retain 重问时明确告诉模型哪些 key 错了(#5402);多个来源指向同一条 memory 时保留最强的 link(#5237);被模型从未见过的 memory id 不得出现在回答与页面里(#5302 / #5246)。 - provider 兼容主线:OpenRouter 的 structured-output 调用只路由到支持
response_format的上游(#5304);Gemini 在 tool loop 中途 failover 不再 400(#5241);embeddings 输入上限改用模型自己的 tokenizer 计算(#5243);cohererecall embeddings 改用 query task(#5155);新增「跳过 OpenAI-compatible provider 的json_object」开关(#4935 / #5261)。 - Full Changelog: https://github.com/vectorize-io/hindsight/compare/v0.10.2…v0.10.3 | 完整 release notes: https://github.com/vectorize-io/hindsight/releases/tag/v0.10.3
其他重要 commits / PRs(24h 内 10 条 commit):
31fc17cbank 被其它进程删除后的 404 语义 —fix(api): 404 any store call for a bank deleted by another process within the cache TTL(Nicolò Boschi, 2026-10-08,#5432):本进程 cache TTL 内拿到的是已删除 bank 的陈旧标识,此前会继续读写。ca4da5fappend 竞态改为 defer —fix(worker): defer a lost append race instead of failing it(Nicolò Boschi, 2026-10-08,#5396)。9db878bOracle 统一到 UTC —fix/oracle now at utc(#5437):配合 v0.10.3 里 Oracle 的时间排序与 knowledge-page 搜索修复(#4804 / #4805)。eb6df49Release v0.10.3;3d5aa17changelog 与博客文章(#5435)。9ed897e+45bd39d+6d8b096官网首页改造 — 全宽 overview hero + 可 hover 的实时「记忆星座」可视化(#5436)、宽屏下 hero 铺满窗口(#5440)、修首页 link preview(真实 description、不裁剪的 social card,#5441)。1152717Next 16.3.8 依赖升级(#5438);10d8b1b删掉未使用的any_memory_exists并修过时注释(#5430)。
社区讨论 / 行业方向:
- Hindsight Memory Provider for Hermes Agent(vectorize-io/hindsight README):README 明确「它原先内嵌在 Hermes 的
plugins/memory/hindsight/里,Nous Research 已把每个 memory provider 移出核心树」,改为从 Hermes plugin catalog 安装——这是本窗口内 Hermes 侧对 memory 层的一次架构性外移。 - What Changes Now That Hindsight Is a Hermes Plugin(#4879 博客) 与 Your Paperclip Org Chart Has a Memory Boundary(#5265 博客):官方用两篇博客解释同一件事——「记忆有边界」是产品定位,不是实现细节;另一篇 One Bank, Two Audiences, Two Briefs(#5001)讲的是同一个 bank 服务两类读者时的 brief 差异。
- hermes-agent 的 Hindsight 插件在极狐 GitLab / HuggingFace 上的多份镜像:第三方 fork 在把外部集成包里的能力(retain/recall 的 tags、setup wizard 等)反向移植回原生插件,说明插件形态的收敛还没结束。
- 窗口期内未检索到新的 HN / InfoQ / 媒体讨论;社区动静集中在自家 Hermes / Paperclip / Grok Bot 集成链上。
信号观察:
- stars 24h +470,是本窗口唯一维持高速增长的仓库;open issues +19,说明社区提问也在同步增加。
- v0.10.3 的 changelog 长度(约 200 个 PR、38KB)已经超过可读阈值——一个 release 里同时装着基础设施、正确性修复、provider 兼容、文档站改造和 blog,这在工程上等价于「发布节奏落后于合并节奏」。
- 24h 内 10 条 commit 中 7 条是文档与官网,说明团队在版本发布后的注意力主要放在对外呈现(首页 hero、记忆星座可视化、blog 体系)而非继续堆功能。
- 「bank 被删除但还在 cache TTL 内」这类 bug(#5432)与「append 竞态丢失」(#5396)指向同一个结构性问题:多进程共享一个 bank 时,进程内缓存与跨进程状态的一致性没有明确的失效协议。
- Hermes 把 memory provider 移出核心树、hindsight 同时维护 hermes / paperclip / grok-bot / cursor / obsidian 等多条插件链——「agent 框架把记忆层当插件、记忆项目把 agent 框架当宿主」的双向依赖已经在事实上形成。
agentclientprotocol/agent-client-protocol
Agent 与 Editor 之间的协议(ACP);Rust crate + JSON schema 双轨;Apache-2.0。| stars: 4,394(上份 4,388,+6 / 24h) | open issues: 46(上份 48,−2) | 默认分支:
main| 最近 push: 2026-10-08T22:09:07Z | 主页: https://agentclientprotocol.com
近 N 周 release 重点:
- 窗口期内无新 release;最新仍是 v1.10.2(2026-10-01T13:16:02Z)。协议本体在这 24h 内没有变化。
其他重要 commits / PRs(24h 内 6 条):
8c4b8fa#2329 Copilot2.162.0 → 2.163.0、goose1.53.0 → 1.54.0;43e664a#2328 claude-agent-acp0.87.0 → 0.88.0、kimchi1.7.1 → 1.7.2;e0236ea#2327 cline3.0.69 → 3.0.70、nova1.1.50 → 1.1.51、另一客户端0.235.0 → 0.236.0;1c2b84c#2326 sigit1.6.3 → 1.6.4(均为acp-release-bot[bot]自动同步,改动只落在docs/get-started/registry.mdx)。5ed386e#2321 新增 messaging client Gonggong Space(yoqu):Apache-2.0 自建群聊,每个成员机器上跑一个 Rust daemon 驱动 Claude Code / Codex over ACP,可以在群里 @ 其他成员的 agent、看到 live process。538a9e9#2317 新增桌面 client Bellows(bellowsai):Windows / macOS / Linux 桌面应用,通过 ACP 驱动 coding agent(已对 gemini-cli 测试,另有 Claude 与 Codex),带团队规则、hash 链接的审计轨迹与 live session 共享。
社区讨论 / 行业方向:
- ACP v2 draft 上线(pulsegate.ai):PulseGate 的存活探测在 2026-09-14 发现
agentclientprotocol.com的 ACP v2 draft,站点自 2026-07-21 起被索引——协议已进入第二个大版本周期,本仓库当前的 v1.10.2 属于 v1 线。 - agentclientprotocol/registry(registry 仓库):registry 是独立仓库,已有 2,004 次 commit,最近一次同样在 2026-10-08;本仓库的 registry.mdx 是它的 CDN 同步产物,两者的更新节奏一致。
- VibeAround 出现在官方 Clients 列表:「一站式 ACP coding agent 枢纽(Claude Code、Codex CLI、Gemini CLI、Pi、OpenCode),任意模型 provider,同一会话可跨桌面 / CLI/TUI / Web / 移动浏览器 / 即时通讯继续」——官方 clients 页面直接把 pi 与 opencode 列为 ACP 可驱动的 agent。
- Which Coding Agents Support ACP?(AgentRQ) 与 Tom Rochette 的协议对照:第三方把 ACP 定位为 editor↔agent,与 MCP 的 agent↔tool 互补而非竞争;后者明确列出 ACP 相对厂商 IDE 集成的优势是可移植性、代价是集成时间。
信号观察:
- 24h 内 6 条 commit 里 4 条是纯版本号同步、零新增 agent 实现——与 2026-10-08 报告里「每日 1+ 家新 client」形成反差,说明 registry 活动已进入稳定维护期。
- 新增的两条都是人工提交的社区项目,且都不是 IDE 插件:一个是自建群聊(messaging),一个是带审计轨迹的桌面端——ACP 的 client 一侧正在从「编辑器」向「任意宿主」扩散。
- registry 与协议仓库分离(
registry2,004 commits,CDN 同步回registry.mdx)意味着协议文档的更新已经是全自动流水线,人工成本只在新增条目上。 - pi 与 opencode 同时作为「可被 ACP 驱动的 agent」出现在官方 clients 页面,两个被跟踪的项目都在协议生态的供给侧而非消费侧。
yxc023/yxc023.github.io
个人技术博客(Astro);本仓库作为 daily-research 报告自动同步的目标。| stars: 1 | open issues: 27 | 默认分支:
master| 最近 push: 2026-10-08T04:04:10Z | 主页: https://yxc023.github.io
近 N 周 release 重点:
- 窗口期内无 release(该仓库不发 release,15 个 release 列表为空)。
其他重要 commits(24h 内 3 条):
bffed37revert: 撤下《Agent Skill 管理实践调研》(yxc023, 2026-10-08T04:03:46Z)——文章暂时下线,源文件备份于本地~/michael-work/discovery-and-think/20260929-agent-skill-管理实践调研/output/。604a732post: 新增《Agent Skill 管理实践调研》(yxc023,作者时间 2026-09-29T11:34:08Z,但 committer 时间 2026-10-08T03:50:18Z,故落在本窗口):调研 2026 年社区在 skill 管理上的主流实践,解决「全局 vs 项目 skill 两难、只有少数项目要用的 skill 该不该进全局」。要点为 skill 随 artifact 分发(IVPM 四级发现机制 + 中立目录多 provider 镜像)、package manager 模型(稳定身份 / 独立版本 / merge 故事、lockfile 钉版本)、profile 分发与继承(gh skill)、Vercel eval 结论(AGENTS.md 索引 100% vs Skill 79%,其中 56% 的 run 根本没调用)、agentskills.io 官方实践(gotchas、500 行上限、精简判定句)。b8a5d98auto(reports): 同步 daily-research 2026-10-08(yxc023, 2026-10-08T00:33:45Z)——本报告系列的自动同步目标。
社区讨论 / 行业方向: 窗口期内未检索到公开讨论(个人博客仓库,无 Discussions 活动)。
信号观察:
- 一篇调研文章在同一天内先发布(04:03 前)再撤下(04:03:46),源文件留在本地备份目录——说明发布前的复核流程还在进行中,内容涉及 Vercel eval 等外部数据需要二次确认。
- 该仓库同时是 daily-research 报告的部署目标(
master分支),今天最后一条 commit 仍是昨日报告的自动同步,今日报告将在本次运行末尾写入并触发部署。
跨项目观察
-
「秘密不能进构建产物」在本窗口被实证了一次。pi-web 把三个 Next.js preview secret 烘焙进公开 tarball,且那个值恰好是 Next 跳过 middleware 的凭据,等于给每一个下载过 npm 包的人发了一张绕过密码的通行证;修法不是换个默认值,而是把 secret 的生命周期挪到启动时、并刻意放在
--ignore-scripts绕不过的路径上。同一天 ACP / opencode / hindsight 都在做「把硬编码表换成数据驱动」(allowAnonymous标记、registry 的 CDN 同步、tag scope),两条线合起来的教训是:凡是能靠「读公开产物」获得的值,就不能当作授权凭证。 -
免费额度正在从「福利」变成「故障面」。opencode 在 24h 内把全部免费模型迁到新的 inference 后端,同一时间用户报出三条不同形态的失败(free usage exceeded、access restricted due to repeated policy violations、Insufficient account funds);生态里已经长出四条以上「Zen 免费模型二次分发」插件,它们的可用性取决于「空 Bearer + 特定 header」这类实现细节。免费层不再是「模型列表」问题,而是「身份、额度、风控、后端路由」四件事的耦合。
-
provider 兼容性仍然是 bug 的主要来源,且形态一致。pi 的 Mistral
timeoutMs语义(是整条流还是只等响应头)、pi 的 Claude 5.5 定价(硬编码 vs models.dev 延迟)、pi 的 DashScope quota 限流是否可重试、opencode 的service_tier: "ultrafast"、opencode 的 Gemini 枚举字符串化、hindsight 的 Oracle 时区、hindsight 的response_format路由——全都是「协议文档写的样子」与「服务端实际行为」不一致。这类 bug 无法靠读文档消除,只能靠真实调用打出来。 -
「让新条目自动生效」正在成为共识做法。opencode 用
allowAnonymous标记替掉硬编码模型表(+2 行代码换掉一串模型名)、hindsight 用 per-caller tag scope 替掉按表枚举、ACP registry 把版本同步交给 bot。与之相对的是仍在手工枚举的地方——两者并存,说明迁移还在进行中。 -
能力探测正在独立成一个跨项目议题。pi 的 #10672 / #10569(按 OpenRouter key 可用性过滤模型)、#10654(
mcp.json里 transport 在环境变量展开前就被解析)、#10699 / #10700(prefix cache 是否还在、cacheWarming是否真的在跑);opencode 的 #46369(cache-preserving compaction)与 pi 的 #10577 / #8307 同题;hindsight 的 #5275 / #5261(structured-output 的能力边界)。这一类问题的共同点是:模型与 provider 的真实能力(缓存、service tier、schema 支持、限流阈值)没有可靠的探测手段,只能靠运行时试错补齐。 -
协议生态的重心从「新增实现」转向「宿主多样化」。ACP 24h 内零新增 agent 实现,两条人工新增全是 messaging(群聊里 @ 别人的 agent)与带审计轨迹的桌面端;hindsight 同时被 Hermes、Paperclip、Grok Bot、Cursor 当作可插拔记忆层,并已从 Hermes 核心树外移到 plugin catalog。两个项目共同说明:协议与插件的供给侧已经够多,现在的工作是把它们接到更多类型的宿主上。
元信息
- 报告生成时间: 2026-10-09T00:32:57Z
- 基准时间: 2026-09-08T09:23:29Z(按 spec 读取自上次报告
reports/latest.md的基准时间:字段) - 扫描窗口: 2026-09-08T09:23:29Z → 2026-10-09T00:32:57Z(约 30.6 天)
- 数据源: GitHub API(gh CLI)+ mmx web search
- API rate limit 剩余: 5000
评论