opencode 1.18.25: Azure CLI 登录不再依赖 Bun
Azure Provider 的认证命令封装改为接收参数数组并返回 Promise,`packages/opencode/src/plugin/azure.ts` 引入 `which` 与 `Process`。官方发布说明称 Azure CLI 登录现在无需 Bun;这使 Azure 认证可在不具备 Bun 的环境中使用。
Azure Provider 的认证命令封装改为接收参数数组并返回 Promise,`packages/opencode/src/plugin/azure.ts` 引入 `which` 与 `Process`。官方发布说明称 Azure CLI 登录现在无需 Bun;这使 Azure 认证可在不具备 Bun 的环境中使用。
Azure Provider 增加通过 Azure CLI 使用 Microsoft Entra ID 登录的实现,代码集中在 `packages/opencode/src/plugin/azure.ts`;发布说明确认 Azure 登录不再要求 API Key。Session 归档新增集中处理模块,并由时间线接入,Home 索引增加移除缓存项的路径,使归档 Session 能更快从 Home 列表消失。其他可观察调整涉及 Cloudflare AI Gateway 的 Workers AI 凭据处理、OpenAI Codex 的 residency 提取,以及未知结束状态下的 Session 续接判断;这些源码样例来自 v1.18.17 到 v1.18.24 的代码概览,发布说明还提到 V1 读取受支持的 V2 配置字段。
官方发布说明将 2.1.250 的变化概括为 Bug 修复与可靠性改进;可观察的代码改动落在 feed.xml 和 CHANGELOG.md,但现有代码概览未显示实现细节,因此无法据此说明具体行为影响。相邻版本 Runtime Prompt 的唯一差异是账单头中的版本标识更新,工具数量及定义没有变化。Static Prompt 当前不可用,不能据此判断其是否变化。
官方发布说明显示,`--restricted` 会移除默认命令、代码执行工具和 WebFetch(除非通过 `--tools` 指定),将文件工具限制在工作目录内,拒绝 `bypassPermissions` 并忽略用户、项目和本地设置;这改变了 Agent 的执行与信任边界。Session 机制方面,跨 Session 的 SendMessage 明确回复会送到父 Session 的对话;官方还修复 Tool Definition 在 OAuth 刷新及恢复时变化造成的 Prompt 缓存未命中和扩展思考 Context 丢失,并调整桌面 Session 清理与后台 Worktree 锁定。Workflow Tool 的 Runtime Prompt 明显精简,工作流脚本参考移入 workflow-authoring Skill;其通用 Tool Schema 数量仍为 30,Artifact、SendMessage、Workflow 三项定义有修改。Static Prompt 基线不可用,因此不据此判断 Static Prompt 是否变化。
Tool 执行流程在 `ops_toolcalling.rs`、`ops_unknown_tool.rs` 中增加 PreToolUse 结果事件,并保持 Tool 生命周期中的 `tool_call_id` 稳定,使 Hook 能关联调用前后的结果;扩展管理和 Session 构建也加入命名消歧、OAuth 客户端支持及更多安全检查。`agent.rs` 与 `final_output_tool.rs` 增加对不支持内置 `final_output` Tool 的 Provider 的结构化响应诊断,避免配方进入无法满足响应格式的执行路径;`gen_ai_telemetry.rs` 补充响应元数据记录。Runtime Prompt 和 Tool Schema 的相邻比较不可用,Static Prompt 也无可比较资产;这些层级不能据此判断是否变化。
本版在 Session 恢复与工具注册路径修复了状态覆盖和持久化边界:损坏的 Session 头不再覆盖可恢复 transcript,工具启用集合从构造时的工具清单播种,并在注册表锁内协调 Code Mode。Terminal 输出与 transcript 生命周期也增加了有界队列、尾部重绘和收尾规则,减少大输出导致的卡顿、重复显示与任务结束后残留。发布说明还记录了 Bedrock 推理参数映射、LiteLLM transport 隔离及额度展示等局部兼容性和可观测性调整;这些实现位置在所给代码概览中未展开。
Subagent 启动与选择流程增加提供方、模型、推理力度及最大输出长度等配置;ACP 补齐 Session 控制、模型设置、MCP、权限和取消能力,扩展了调用方控制 Agent 运行的入口。Session 初始化、记录存储与图片处理也有优化,并修复持久 Terminal 输出、PTC Mode 工具暴露和网络访问认证等问题,影响从执行可靠性延伸至 Session、Context 与接入边界。代码变更摘要跨越多个版本,且仅观察到截断前缀;以下实现位置以发布说明及可见代码概览为依据。
cron Tool Schema 将独立的 `monitor_script`、`monitor_url` 合并为 `monitor`,用脚本或 URL 输出变化来决定是否唤醒 Agent,并将变化差异注入 Prompt;Terminal 后台通知也收敛为可接受布尔值或模式数组的 `notify`。桌面端代码在 `single-flight-resume.ts` 按 stored session ID 合并并发恢复,在 `submit.ts` 与 `rewind.ts` 处理只读 transcript 和恢复后的行 ID 映射,降低重复恢复与回放错位风险。官方发布说明还提到密钥链加密、更新器暂停 Gateway 等多项变动,但本次代码样本集中于桌面 Session 与流事件处理,不能据此把这些发布项归因于所列源码实现。
本版加入实验性 Remote Control 和 tower 多 Agent 编排,并为 Subagent、swarm 工具提供可选的调用历史快照,使远程接入、任务分工和 Context 传递有了新的使用方式。发布记录还提到前台 Bash 命令或 Subagent 可转入后台;代码概览确认源码变更包含 CHANGELOG 和 Web 构建产物,但未提供这些功能的具体实现文件,因而实现细节以发布说明为限。Runtime Prompt 中的日期改为依据最新提醒更新,Read 说明补充了长行内容的恢复方法,Bash 说明调整了后台任务面板称谓;Bash、Read 的 Tool Definition 有修改,但工具总数未变。Static Prompt 无可用对比。
浏览器 Relay 的 Runtime Prompt 现在说明:启用 `browser.relay` 时可跨项目默认接入,`open` 携带 `url` 会导航当前采用的标签页,并要求 Agent 在真实登录浏览器中明确目标、避免未经请求的导航和操作,结束后关闭 Session。代码改动还覆盖持久 Agent roster、Host 压缩后的 Guest Context 同步、Responses 多模态结果保留和 Session 恢复等路径,改善协作状态与历史回放的可靠性。模型目录刷新、Edit Tool 展示、Git TUI 和 Host/SDK 也有局部更新;发布说明列出大量修复,但发布说明与代码变更摘要并未为每项提供对应实现细节。
Subagent 消息现在通过 `send_subagent_message`、Prompt Turn Receipt 和结果结算协同处理,并加入取消运行中 turn、初始 Subagent Prompt 就绪信号及回执超时机制。实现分布在 Subagent、Session Prompt Queue、Tool Call 分发和 Telemetry 模块,便于跟踪消息是否完成及其结算结果;Session 还新增受 Telemetry 开关控制的 Context 快照事件。官方发布说明为空;Runtime Prompt 与 Tool Schema 的相邻比较状态不可用,不能据此判断相邻版本是否变化。
`/model <name>` 可按名称、slug 或 label 选择模型并保存为默认值,`/effort` 提示则跟随已输入内容补全;这让模型与 Reasoning Effort 设置能在命令输入过程中直接确认。发布说明还描述了两类运行期行为调整:文件事件突发会合并为一次 artifact 重扫,模型端 HTTP 502 会重试;无配置记录的 `self` Subagent 会沿用父 Agent 的设置,减少运行模式漂移。公开代码差异只观察到 `CHANGELOG.md`,未包含实现文件,因此这些实现机制来自发布说明而非源码样本。
Remote compaction 默认把保留图片计入 Token 预算,超出预算时裁剪较早的图片,减少压缩后 Context 超预算的风险。相邻源码差异可见于 `codex-rs/core/tests/suite/compact_remote.rs` 的测试改动;已观察的文件列表未显示实现代码位置。
Codex 增加从 TUI 管理和引用其他任务的能力,并提供顶层 turn 被打断时触发命令或 MCP handler 的 Interrupt Hook;相关实现落在 app-server 协议、MCP 事件流和配置处理等模块,扩展了任务协作与生命周期处理。新增 realtime 事件历史和持久化 thread artifact 模型,同时多处改动为消息及生成 Context 保留内容类型与来源标注,影响 Context 的记录和恢复。官方说明还涉及不可信项目指令、托管 deny-read 规则及 MCP 执行器兼容性修复;可见源码概览包含协议 Schema、realtime 历史和 MCP 事件流文件,但源码差异仅检查到截断前缀。
SendMessage 的 Tool Definition 明确区分本地 transcript 行标签与发给接收方的消息正文,并规定接收方默认只看正文首行;这让 Agent 在发送消息时需要把首行写成独立、清晰的说明。官方发布说明还记录了 Subagent 首次模型请求遇到 404 时改用 Session 的 fallback model chain,以及超长 Hook 或后台任务错误输出、Session 容器重启等故障的处理改进。代码变更概览仅观测到 feed.xml 和 CHANGELOG.md,未提供实现源码样本,因此这些发布说明可用于识别变化主题,不能据此确定具体实现路径。
MCP 配置新增 `sessionless` 判定,并在 `internal/agent/tools/mcp/init.go` 中对无 Session 的服务器跳过订阅监听流;GitHub MCP 可自动按无 Session 模式工作,其他服务器也可显式配置。`internal/ui/xchroma/chroma.go` 改为逐行渲染多行内容,`internal/stringext/string.go` 保留首行缩进,改善 Tool Call 预览和 Markdown 代码块的缩进显示。
仓库新增 ACP 托管自动 Memory 的设计文档,以及定时任务进入当前 Session 的入口设计文档;这些文件显示项目在记录 Memory 管理和任务入口机制的设计,但现有变更摘要不足以确认实现细节或运行时行为。CI 工作流、平台敏感性分类脚本和 CUA Driver 发布流程也有改动,表明发布与平台适配流程在调整。官方发布说明为空;Runtime Prompt 与 Tool Schema 的相邻版本比较不可用,不能据此判定它们是否变化。
任务工具在 Todo kind 被禁用时改为仅调度模式,并加入系统规则约束:仅按用户明确要求创建计划任务、先查重,且为无人值守的新 Session 提供自包含 Prompt;这让延迟执行更可控。Context 广播和 Workspace 元数据处理也有明确改动:Hub 不再向每个客户端重复广播完整对话记录,发送给模型的 Git remote 信息会遮蔽凭据,减少长任务内存膨胀与凭据暴露。执行层还处理超长单行搜索、按平台换行符创建新文件,并修正 MCP 安装参数解析;Runtime Prompt 与 Tool Schema 的相邻版本比较不可用,不能据此判断其变化。
本版扩展 Git 提交消息生成:新增可配置缓存和大 Diff 分析行为,并让 Git TUI 与 `omp commit --legacy` 采用同一套常规提交生成机制。Terminal 侧加入 Unstaged/Staged 分区折叠与整区暂存操作,并让长篇流式思考输出延续到滚动区;渲染中断、生成报错和退出清理也得到处理,改善交互连续性与进程收尾。Runtime Prompt 的唯一差异是日期提醒从 2026-08-25 改为 2026-08-26;本次未提供源码变更样本或 Static Prompt 比较。
ACP 的请求结算现在等待因果准入的 Subagent 与父级工作结束;`acp-mode.ts` 增加终结状态与失败信息处理,`acp-events.ts` 为助手流块附上 `messageId`,使调用方能区分消息边界并关联运行结果。新 Session 的 RLM 默认最大递归深度从 1 调至 2,扩大默认递归空间。另有 OpenAI Completions Provider 对 `reasoning_details` 的签名封装,以及 Cloudflare AI Gateway 默认模型调整;这些是 Provider 与配置层变化,不能据此推断 ACP 或 Runtime Prompt 的行为。
版本加入 `/voice` 语音听写,并扩展 `always-proceed`,使其自动批准 MCP Tool Call 和页面读取;同时允许状态栏数据模型提供当前 Session 未取整的估算费用。文件搜索改用内嵌 ripgrep,编辑、流式响应和文件写入路径也针对字符偏移、无效 UTF-8 与误报失败进行了修复,影响语音输入、权限提示、搜索一致性及操作可靠性。代码变更摘要仅观察到 `CHANGELOG.md`;Runtime Prompt/Tool Schema 相邻比较显示相同,Static Prompt 比较不可用。
MCP 初始化路径调整了 stdio 启动诊断和生命周期处理,针对配置错误或服务异常提升可靠性;相关代码位于 `internal/agent/tools/mcp/init.go`、`channel.go`,并由 `lifecycle_test.go` 补充测试。Terminal 列表高亮逻辑及其测试也有改动,配合 UI 状态调整修复 Ctrl+A 回到行首和换行消息的选区复制计数问题。Runtime Prompt 与 Tool Schema 的相邻比较不可用,Static Prompt 也没有可比较资产;以下机制判断来自官方发布说明与代码文件概览。
Artifact 的上传契约扩展为可接收 CSV、Markdown、JSON 和纯文本,发布的多文件资源明确要求使用无前导斜杠的相对路径;这使静态数据可进入资产存储,也让资源引用边界更清楚。Artifact 的评论自动回复授权条件也收紧:对可编辑且由用户在消息中提供链接的 Artifact 执行 watch 时可启用自动回复,而仅有查看权限时不会启用,降低了订阅超出用户授权范围的可能。
Hub 的 `list` 增加状态筛选和行数上限,默认只列出运行中与空闲的 peer,并汇报各状态计数;同时,`read` 可用 `:img` 将本地 SVG/SVGZ 栅格化为 PNG。前者减少停放 Agent 名单进入 Context 的风险,并保留按需查看历史的入口;后者让 Agent 能将 SVG 布局作为视觉输入。官方发布说明还涵盖 Provider、重试、Thread 恢复和 Terminal 可靠性更新,但源码变更概览只观察到构建锁文件与配置文件,无法据此定位这些实现。
Provider 请求路径调整,支持经 Cloudflare AI Gateway 调用非 Workers 模型,并将 Anthropic 点分模型 ID 转为网关所需的原生短横线 slug;发布说明还记录修复了请求头中的父 Session ID。相关代码改动集中在 `provider.ts`,并增加或调整 Gateway 端到端测试及 Session LLM 测试,改善这些 provider 与 Session 场景的请求兼容性。GitHub Function 与 TUI 也有 GitHub 认证相关改动;Runtime Prompt 差异仅为日期变化,Static Prompt 比较不可用。
此版本修复了搭载 glibc 2.44 的 Linux 发行版上的启动崩溃,官方说明列举 Arch、CachyOS 和 Fedora Rawhide。代码概览未提供,因此无法定位修复落点或确认具体机制;Runtime Prompt 的相邻差异仅是版本计费标头更新。
模型选择改为跟随对话 Session:每个 Session 独立保存模型,并在每轮将模型、Provider 凭据与 Context Window 绑定,降低切换模型后误用旧凭据或窗口的风险。MCP 传输或握手失败现在收敛为单个服务器的连接错误,其他服务器仍可注册,主轮次可以继续进入模型循环;新增 `raven trajectory`,将失败现场记录为可确定性重放的回归用例。官方发布说明还描述了 `web_search` 按凭据配置门控、`ask_user` 批次时限与输入校验,以及配置和 TUI 改进;这些是发布说明层面的观察,未附对应源码样本。
此版本调整了标准回合和交付回合的收尾控制流,移除隐藏的收尾后续回合,减少额外思考轮次和服务请求;代码变更集中在 `internal/agent/final_readiness.go`、`internal/agent/branch.go`,并移除了 `internal/control/readiness_continuation.go`。桌面端还修复损坏 Session 元数据的恢复、模型服务删除和长 Session 滚动,相关代码位于 `internal/agent/branch.go`、`desktop/provider_access_removal.go` 与桌面 transcript 滚动模块;这些调整改善了 Session 可恢复性、配置操作和流式输出期间的阅读稳定性。官方说明另提到降低指标汇总的数据库读取成本,但所列关键文件没有对应实现细节。
本版调整了多项 CLI 行为:Skill 的 `metadata.icon` 可显示在目录、详情和 Slash Command 自动补全中;默认 review mode 下 Workspace 内读取自动获准,而文件修改和外部访问仍需确认;print mode 将普通工具错误与权限拒绝和级联失败区分处理。另有路径补全、Git 子模块扫描、配置保留、内置定制项列表和空闲动画等改进,变更记录位于 CHANGELOG.md。Runtime Prompt 与 Tool Schema 相邻版本一致;没有可用的 Static Prompt 比较,代码变更摘要仅观察到 CHANGELOG.md,因此实现细节以发布说明为据。
代码差异显示,Session 加载、外部 Session 处理与 picker 路由集中调整,并新增 `x10_filter.rs`;这将影响 Session 发现、选择和恢复的路径。Shell 侧还修改了 Session 持久化、公告状态和权限配置,Agent 构建器与 Subagent Context 测试也有改动,体现出 Session 与执行配置的局部演进。官方发布记录未提供说明;代码差异覆盖 1.0.8 至 1.0.10 且已截断,因此以下仅归纳可见文件信号。
Artifact 工具增加批量数据库写入和显式删除已发布文件的契约,并明确更新时保留未列出的文件;实现落在 Artifact 的 Tool Schema,改变了多文档写入的审批与提交路径,以及多文件 Artifact 的更新语义。批量写入最多包含 50 项、每个文档至多出现一次,服务端支持时原子提交,否则按顺序逐项执行并报告结果;官方发布说明另记录了启动、连接恢复、Session 恢复和内存管理等运行时修复与改进。
Hub 事件日志现在限制为 64 MiB,按需优先丢弃最早事件并回收空间;`hub-event-log.ts` 与 `hub-websocket-server.ts` 的改动落在 Hub 服务端,针对长 Session 快照曾导致日志膨胀的问题。模型目录与 Provider 定义也有大幅更新,部分 Provider 的未固定默认模型因此改变。Hook 工厂、发现缓存和本地 Runtime Host 同样有代码改动;现有代码概览未给出这些改动的具体行为细节。
发布说明记录了 OpenAI-compatible Provider 的 `textVerbosity` 兼容修复、Amazon Bedrock 兼容修复,以及设备登录链接对相对验证 URL 和 base path 的处理修复。代码变更样本显示 `packages/opencode/test/provider/cf-ai-gateway-e2e.test.ts`、`packages/opencode/test/plugin/codex.test.ts` 和 `packages/opencode/test/session/llm.test.ts` 有改动,但给出的源码概览未包含这些实现的具体差异;因此可确认修复主题及相关测试位置,不能据此还原内部实现。相邻 Runtime Prompt 仅更新 Git 环境中的日期字段;Tool Schema 无变化。
Pi 增加 `/thinking` 选择与显式保存流程,并扩展 compaction 事件和摘要路由信息;对应实现集中在 `interactive-mode.ts`、`agent-session.ts` 与设置组件,影响模型选择、Session 状态管理和扩展对 compaction 失败的处理。安装器管理的更新现在先暂存、验证再原子激活;`package-manager-cli.ts` 是相关代码位置,减少更新中断时留下不完整安装的风险。发布说明还列出 PowerShell 工具、Provider 适配、启动性能和多项可靠性修复;Runtime Prompt 的 bash Tool Definition 仅将描述从“Bash command”改为“Shell command”,未增删工具。
Coding Agent 增加交互式仓库 Git TUI,并将 `/extensions` 扩展管理改为支持标签切换、统一检查视图和实时 MCP 连接管理的全屏控制台;代码分别落在 `packages/coding-agent/src/cli/git-tui/` 与 `packages/coding-agent/src/modes/components/extensions/`。这让开发者可在 Agent 内查看、暂存和提交变更,并集中检查扩展状态;同时流式渲染、Context 处理和错误恢复也有局部改进。Runtime Prompt 仅显示清理旧代码的安全规则范围调整,Tool Schema 未变;Static Prompt 比较不可用。
远程压缩新增图像预算处理,落在 `compact_remote_v2_images.rs`,并由 `compact_remote_v2_image_budget_tests.rs` 与 `compact_remote.rs` 覆盖;这表明压缩流程开始专门约束图像相关输入预算。Exec 的 Rust 实现与 TypeScript SDK、恢复测试也有改动,涉及命令执行和 Session 恢复行为。Runtime Prompt 的前后版本哈希及工具统计相同;官方发布说明仅提供版本比较链接,未说明这些代码变化的因果关系。
新增可选的 Edit 自动修复:编辑导致 AST 解析失败时,由 smol model 原地修复问题区域,并通过重新解析验证;修复被拒绝时回滚,成功结果以 diff 展示。实现位于 `packages/coding-agent/src/edit/auto-repair.ts`,并接入 `packages/coding-agent/src/edit/index.ts`,让编辑失败可以进入受验证的修复流程。另有一项执行可靠性调整:并行调用遇到超时时中止进行中的 bridge calls,使 runner 以 KeyboardInterrupt 收束并保留 Kernel Thread 状态。
`eval` 明确区分共享 Kernel 的 `task` Subagent 与使用独立 Kernel 的 `agent()` Subagent;`todo` 则按成功的状态变更操作推进任务,并让阻塞任务退出自动晋升队列。这使并行工作的状态边界和任务恢复路径更确定。`hub` 的 readiness、日志和等待匹配器也明确采用带 `u` 标志的 JavaScript `RegExp`;官方发布说明另列出 Context 去重、后台诊断修复、启动加载与编辑可靠性变化,但未提供对应代码概览。
Hub 新增排空和升级流程:先停止接收新的变更操作,等待现有工作结束后重启;升级中止时恢复接单。Hub 重启后,客户端可按事件 ID 补放断线期间遗漏的事件并去重,使既有 Session 延续并避免重复交付。另修复部分 OpenAI-Compatible 模型因推断能力列表而丢失 Tool Call 的问题,并更新模型目录。Runtime Prompt 与 Tool Schema 当前捕获及相邻比较均不可用,Static Prompt 比较也不可用;这些层无法用于判断版本间变化。
Runtime Prompt 中的 `x-anthropic-billing-header` 将版本标识从 `2.1.240.105` 更新为 `2.1.241.bfc`,入口仍标为 `cli`;这改变了捕获到的版本元数据,没有显示 Tool Schema 变化。源码差异落在 `feed.xml` 和 `CHANGELOG.md`,官方发布说明称本版包含 Bug 修复与可靠性改进,但所给代码概览没有具体实现样例,无法据此确定修复机制或行为范围。