能力矩阵
Droid CLI/SDK 是聊天与任务的权威;编辑器补全使用用户单独配置的模型服务。这里描述产品是否已经消费某项能力,不代表 SDK 中出现接口就自动成为产品功能。
聊天、模型管理、FIM 补全与 Next Edit 均由 main 的 dist/droidvisx.vsix 统一交付, 安装需用户明确指令,默认目标 Microsoft VS Code 当前用户扩展目录。 “已接入”只表示存在生产调用链,不代表当前版本已完成行为验收或已经安装。 最近验证与已知缺口以 STATUS 和 PLAN 为准。
| 能力 | 状态 | 说明 |
|---|---|---|
| 界面多语言 | 已接入 | 简体中文/繁体中文/英语,默认跟随编辑器;管理页可立即切换,已打开面板同步,保留聊天与任务草稿;消息、代码、模型名称及外部服务原文不翻译。原生命令与配置说明跟随编辑器语言 |
| 跨文件夹继续会话 | 已接入 | 管理页“全部文件夹”中的聊天可直接切到当前窗口主聊天,保留原 Session ID 与工作目录;文件操作和重载恢复跟随该会话。管理页当前文件夹筛选及新建聊天仍使用编辑器目录;Exec、已归档记录和任务占用保持原有限制 |
| 正式模型目录与禁用信息 | 已接入 | Process / daemon 使用 SDK listModels;显示内置/自定义、禁用原因和图片能力,禁用模型不能在主聊天、Spec 或侧聊中应用 |
| 模型来源展示 | 已接入 | 官方/BYOK/全部仅在模型管理页设置;主/子聊天、Spec、BTW 与 Mission 角色菜单读取同一 Host 偏好,依据目录 isCustom 筛选,不改当前模型,范围外选择保留名称;不隐藏模型管理配置 |
| 自定义模型禁用与恢复 | 已接入 | 插件按接口协议、地址和 Model ID 保存可恢复禁用;保留 Droid 配置和密钥,从 GUI 可选目录移除,Host 在选择和发送前校验。当前回复不强行中断;同名配置自动附渠道名,可跨渠道添加同一 Model ID |
| 新会话系统提示 | 已接入 | 聊天设置选择默认/追加/替换;当前 VS Code 用户配置档生效,新聊天、Worktree 与 Mission 使用;恢复/分叉保留原提示 |
| 持久回合结果恢复 | daemon 已接入 | 发送前落盘真实后端 ID;重载后只查询该 ID,缺失结果不报完成,不重复提交;保留待答交互 |
| 普通 Task 子代理查看 | 已接入 | 正文卡片与 Agents 列表均打开只读 Viewer,按本次派发显示父代理任务正文、回复与工具过程;不提供输入或跟进发送,后续派发不混入旧任务。父聊天仍保留运行任务的 Stop |
| Mission 子会话聊天 | 已接入 | daemon 卡片打开原 child 的正常 ChatApp,支持跟进、流式、工具、附件、权限、队列、Stop 和 Review;父聊天 Agents 列表切换,父会话保持连接,关标签不取消待回答请求。Fork/Compact/编辑重发暂不开放;显式 process 模式保留只读查看 |
| Mission Worker/Validator 模型 | 已接入 | 初始化后显式更新并等待角色/校验开关确认,再接管聊天和开始规划;失败原因传到创建表单。官方配置文件产生前按原会话恢复所选配置,之后服从官方配置;创建草稿同步 Host,继承当前编辑的 Orchestrator,来源筛选不改模型或推理档位 |
| 仅供用户查看的历史记录 | Process 已接入 | 通过公开 appendMessages 保存 user_only 记录,不触发模型、不加入上下文;daemon SDK 无公开接口,明确拒绝 |
| Worktree 检查和清理 | 已接入 | 管理页展示路径/分支/变更/占用,确认后复查;阻止当前/活跃会话目录删除,保留分支 |
| 缓存、临时 Worktree 上限和强制归档 | 已接入 | Droid defaults 管理一小时 Anthropic 缓存与临时目录上限;强归档需确认且不会停止任务 |
| 文本聊天与流式回复 | 已接入 | Process 与 daemon 模式;设置更新期间禁用发送,竞态拒绝反馈具体请求并保留草稿;Stop 未确认继续锁定回合,支持重试停止 |
| Browser Dev Client | 已接入 | 4173/live 使用生产 ChatApp;加 ?view=management 打开生产管理页,读取真实 Missions、设置与模型服务,管理流独立于聊天。已在内置浏览器验证真实任务列表、刷新和默认设置读取;4176 为模拟预览。Reload 后需重新 Start 并打开新链接 |
| Session 列表、恢复、切换 | 已接入 | 聊天以 Droid 历史为权威,不提前显示缓存;目录读取失败保留原恢复目标,重试成功后再决定恢复;本地只存选择、关联、队列、轮次与 Diff 元数据 |
| 页面状态确认与补同步 | 已接入 | 按 pageId/sequence 确认 store 应用,漏收 2 秒后补快照,连续未确认最多补 3 次;新 ready 排队,Plan 文档独立确认。启动 5–30 秒退避继续,均不重发用户请求;ACK 不保证 DOM 绘制 |
| 手动 Refresh 状态 | 已接入 | 只取当前会话更新的完整快照;10 秒无响应说明未收到并恢复按钮,不重启会话或重发消息 |
| Droid 状态动效 | 已接入 | 工作/思考/加载共享点阵,连接点表达真实状态;主要页面使用统一加载提示,支持系统减少动态效果 |
| Rename、Fork、Compact、Rewind | 已接入 | 通过公开 SDK |
| 历史编辑文件恢复明细 | 已接入 | 有界工作区/外部 basename、恢复/删除/不可恢复动作及省略数量;完整恢复范围仍由 SDK 决定 |
| Delete | 不可用 | 没有稳定公开 API |
| 历史与长会话 | 已接入 | daemon 分页、对账和虚拟化 |
| 平滑滚动与历史定位 | 已接入 | 主聊天与只读 Viewer 共用可中断跟随;离底阅读不因回复结束或布局补偿重新跟随,Viewer 提供显式到底部。历史点动态跟踪虚拟列表目标,支持减少动态效果 |
| 长内容滚动开销 | 已接入 | 主聊天按问题边界刷新,Viewer 保留回复缓存。较长流式及静态 Markdown 共用 Worker 队列完整解析,变化节点回传后分批呈现;等待期间保留虚拟行高度和导航,手动滚动可取消跟随。已知语言代码按 150ms 节流高亮,新文字立即显示;图表等待完成态,未知语言保持纯文本。旧局部测量不能代表当前完整聊天性能 |
| 队列编辑与普通草稿 | 已接入 | 编辑排队消息保留原普通草稿,保存、取消或队列项移除后恢复;临时编辑稿不覆盖持久普通草稿 |
| 文字选择与引用 | 已接入 | 聊天正文的 Add to Chat/By the Way 支持多段追加,紧凑引用块点开查看完整原文、逐项删除;主聊天、BTW、队列、历史编辑与 Viewer 共用展示,保留完整发送文本 |
| 复制代码引用 | 已接入,原生复制仍待实测 | 主聊天、BTW 和代码问答共用行内文件/行号标签,可与文字交替排列;快照与顺序随问题保存、排队及发送。Diff 首次提问自动带入选区,点击引用在当前比较中定位 before/after 行并短暂高亮;主聊天、BTW 点击打开实际文件。支持自有 Diff 的连续单侧选区,以及同一已安装扩展的 VS Code/Cursor 窗口内普通文件单选区复制;未确认来源、多光标、旧标识失效或不支持的剪贴板格式保留普通文本。定位不承诺还原文件旧版本 |
| BTW 回复进度 | 已接入 | 准备时立即显示问题,持续展示实际等待/思考/工具/正文接收状态;已有正文仍显示活动,停止准备后不误发原问题 |
| BTW 思考内容 | 已接入 | 同时合并 SDK 流式与完整消息中的思考,按消息/块去重并保留实际耗时;正文折叠、限高滚动、复用多语言高亮,每条最多 32,000 个文本单位。无正文时保留状态/耗时并明确提示未返回文本,停止或失败保留已收到部分 |
| 权限与 AskUser | 已接入 | 普通会话与 Mission 均在会话创建前绑定当前审批/提问回调;Mission 就绪后才切换所有权,创建失败仍可回答原会话请求。真实 ProposeMission 审批通过,AskUser 可回答及失败保留旧审批已通过本地回归 |
| TodoWrite Plan | 已接入 | 计划放在创建它的问题底部,默认收起显示当前步骤与完成数;点击展开完整步骤,更新原卡并保留手动选择;完成后保留摘要,新计划不删除历史计划,不在过程区或 Composer 重复展示 |
| 设置与 Context | 已接入 | 打开自动刷新;daemon 最近一次调用的压缩进度,分类估算单独展示;未报告用量时等待,Process 无同等来源时不可用 |
| 模型与 Reasoning | 已接入 | 运行时目录,不硬编码 |
| BTW 图片与独立模型 | 已接入 | 支持图片粘贴/拖入/选择、预览、移除和纯图片提问;每张 4 MB、每条最多 8 张。每条追问携带所选模型,只修改 BTW 分支;队列保存图片和模型,停止后清除待发请求 |
| BTW 草稿与关闭 | 已接入 | 同一 session 统一持有文字、引用、图片和显式模型,关闭仅隐藏、不停止侧答;切会话清理。Host 接受后只清提交部分,失败或 5 秒未确认保留草稿且不自动重发,图片读取同步阻止发送 |
| 上下文压缩阶段提示 | 已接入 | SDK 明确报告压缩时单独展示,当前主 Bridge 44 保留阶段字段;不按正文停止或超时猜测完成,恢复会话缺少阶段事件时不推断压缩 |
| 自定义 Provider / Model | 已接入 | 独立中文 Models 页按 host 分服务商组,组内选择兼容接口;服务商/接口/模型别名可分别编辑。完整协议、地址与 SecretStorage Key 独立保留;选择管理接口不切换聊天。支持两步添加、daemon 配置读写、发现导入、手动编辑与空闲聊天选用,不增加代理或协议转换 |
| 自定义模型调用验证 | 已接入 | 用户确认后使用独立 Droid 会话;保存、目录加载和调用结果分开;非系统沙箱,当前尚未执行真实服务验证 |
| 文件与图片附件 | 已接入 | 原始文件由 Host 持有;图片预览按需有界读取;主输入/历史编辑在准备中同步拦截提交,同批次粘贴后发送也不越过门禁 |
| Tool 活动与输出预览 | 已接入 | V2 Chat Worked 汇总连续活动,各详情独立行内展开;命令输出保持实时,缺整轮时间不猜测 |
| Read/Grep/Glob/LS 结果片段 | 已接入 | 原生工具当次有界文本,随 Conversation 保存;普通外部源码返回内容可只读展示并标明 External 来源,拒绝已识别的敏感来源/内容,不保证识别所有秘密 |
| Git Changes 与聊天归因 | 已接入 | 聊天 Diff/底部计数只使用逐文件已确认工具结果,缺补丁不回退工作区快照;聊天汇总和底部 Review 打开 Agent Turn,文件名单同样只取 SDK 成功操作;快照提供全文,缺正文保留记录片段。Recorded Edits 从范围菜单打开;同文件快照可能包含手动修改,不计为 AI 操作 |
| 普通目录轮次快照 | 已接入 | 私有 Git 快照支持非 Git 根目录及其中的嵌套项目;不修改项目 index,仍需本机 Git;旧回合缺失基线无法补回 |
| 操作级 Diff | 已接入 | 进行中逐文件展开详情,结束后每轮一张汇总卡,默认三个文件、支持更多与 Review 定位;Undo…走既有预览确认。统计仅使用已确认工具结果,累计操作行数不等于净差;拟议、失败和未知副作用不算成功,Viewer 可读保留片段 |
| 终端/代码/回复/选区复制 | 已接入 | Host 原生剪贴板及成功回执;选区浮条 Copy 保留原始空白和页面选区,文本标题拖选不触发点击动作 |
| 源码语法高亮 | 已接入 | Review 分栏/合并 Diff、聊天内 Diff、文件内容与 Markdown 代码块共用 Shiki TextMate 语法和后台 Worker;包含全部打包语言及别名,按文件/语言标记识别。准确历史版本补齐混合语言及跨行上下文;仅有片段时不猜测缺失部分。未知语言、超长行保留纯文本,配色继承当前主题 |
| 独立 Review 工作台 | 已接入 | Recorded edits 默认真实操作片段;整轮/Git 默认 3 行上下文,可切 20/100 行与全文。按 toolUseId 固定当前编辑、History 切换、过滤后文件导航,已查看确认后才跳转;截断预览不能标记完整文件已读。保留阅读位置、统一/分栏、有限词级强调与离屏回收;完整版本按需读,页面 2 MiB/100,000 行,Native 8 MiB。完整可读不等于可撤销 |
| 大编辑正文按需读取 | 已接入 | 常驻聊天仍限制 24k 补丁/128k 写入内容;更大结果保存来源摘要,选中文件时从原会话日志或已有 daemon 连接读取并核对 session/tool/file/内容摘要,单文件最多 512,000 字符单元。超限文件保留结果及说明,同次其他文件继续可读;不创建每次编辑的完整快照,不读取当前文件冒充历史 |
| 安全操作撤销 | 已接入 | 完整可逆 ApplyPatch 文本更新,以及结果确认新建且内容哈希仍匹配的文件;精确反向匹配、预览及字节复核,保留不冲突编辑。失败即时补偿,保留恢复日志,持久化已撤销记录。Edit/普通 Create/删除/移动、缺证据、链接、未保存编辑与歧义仍拒绝;原因单独展示 |
| SDK 消息回退 | 已接入 | 编辑重发使用原生 getRewindInfo/rewind;可选恢复旧文件、删除新文件,范围包含后续轮次。保留真实成功/失败数量;恢复部分失败或结果缺失时停止自动重发,文字与附件回到输入区。后继会话重接不重复恢复文件 |
| Review 的 Git 比较 | 已接入 | 六个范围为记录操作、Agent Turn、Workspace、Branch、Unstaged、Staged;后四项统一使用本地 Git。无 HEAD 可查看 Workspace/Index 比较;Branch 采用本地所选引用的 merge-base→HEAD,无唯一默认分支时要求选择,不自动 fetch。不改变逐轮归属和撤销证据 |
| Git Commit | 已接入 | Files 暂存所选文件当前修改,Staged 只提交已有 Index、保留未暂存部分;全部已有暂存文件必须明确选中。完整状态分页加载后才能提交,预览绑定分支/Index/内容,执行前复核,Files 暂存后再次核验。单仓库根目录约束保留;不承诺与外部 Git 进程原子隔离,失败可能保留已执行的暂存,不自动 push |
| Review 行内问答 | 已接入 | 分栏/合并 Diff 选区下方提问、选模型、流式回答与追问;独立隐藏 fork 禁用工具,不提供 Edit,不改主聊天或 BTW。一次一个问答,关闭/切范围/布局/会话/原补丁变化时释放;File 全文与 Native Diff 不提供入口 |
| Review Agent | 已接入,受限 | 复用独立 /review 会话与 Viewer 报告;不宣称精确审阅单次操作或 Index,不替用户执行 push |
| Markdown、KaTeX、Mermaid | 已接入 | 禁止原始 HTML |
| Canvas HTML | 已移除 | 不再提供文件、代码块、工具结果或 /canvas 预览入口;HTML 文件仍可正常打开 |
| Skills | 已接入 | 浏览与启停;daemon 原生管理可查看定义、资源、版本和禁用来源,明确 user/project 范围并重读有效状态;不自动生成、保存或覆盖 Skill |
| MCP | 已接入 | 保留服务器 CRUD;新增官方注册表添加、工具级启停、daemon 浏览器授权/取消/清理凭据。自动完成之外可在原生密码输入框提交含 state 的回调 URL,必须等 SDK 完成通知才报成功;Process 认证保持原路径 |
| 官方原生 IDE | 已接入 | 主聊天独立 daemon/本地 IDE relay,按完整握手及初始上下文确认连接。worker 空闲回收后,发送先恢复原会话并重新握手,无需手动迁移;元数据提前加载同样支持。重连使用 SDK preserveEmptyDraft 保留空会话,不再要求已有消息;确认新握手后解除对应失败提示且不重发。旧活跃任务保留,断线、错误和心跳超时按事实反馈;不承诺运行中 Reload 无缝重连 |
| Plugins | 已接入 | 原生管理支持发现、安装、更新、卸载、启停与市场增删更新;保留 user/project 身份和受管限制,写入前确认,检查部分失败并刷新目录 |
| Droid 默认设置 | 已接入 | 公开 updateDefaults 支持模型、推理、模式、Autonomy、Spec、压缩、子代理分档、Mission、工作树目录和可选云同步;高级 JSON 只允许公开字段,不覆盖整个配置文件或切换当前聊天 |
| Droid 管理终端 | 已接入 | 当前 daemon Session 的终端创建、原生交互、实时输出、resize 和显式确认关闭;关闭本地视图只 detach,输入失败不自动重发。已有终端不补放历史,不等于任意后台进程接管 |
| Droid 更新 | 已接入 | 用户原生确认后调用公开 trigger;“请求被接受”不等于更新完成,也不更新扩展本身 |
| 子代理活动与状态 | 已接入 | 任务条独立保留在所属轮次,保留真实活动、结果、失败提示和后台状态。普通 Task 使用只读 Viewer,Mission worker 使用上述可交互子会话;后台子任务触发的父自动续写实时接回,支持原会话停止与断流恢复。未确认状态不伪造,迟到工具事件不把完成态回写为 running;原只读 Viewer 验收不代表本轮子会话发送已验收 |
| Mission | 已接入 | 审批接线、公开分页目录、历史身份与 SDK 状态订阅已修复。真实执行两个 Feature、Scrutiny 与 User Testing 共 4/4 完成,独立产物验收 29 项及产物测试 32 项通过;规划页重载、暂停/恢复、停止当前 Feature、Viewer 实时进度及完成态通过;最新 bundle 冷启动和页面重载均恢复原会话 4/4 完成详情。使用生产调用链和独立测试外壳;构建、VSIX 校验与安装完成,原生 Cursor 待 Reload 后验收 |
| Worktree 生命周期 | 受限 | 已有创建/关联会话及新增默认目录配置;安装版公开资源没有完整清理/合并/删除语义,不用直接删目录补造 |
| 后台进程管理 | 受限 | SDK 管理终端可创建、交互和关闭,不等价于任意工具后台进程;后者没有完整公开控制契约 |
| 账号、用量、组织策略 | 部分/受限 | 会话用量与默认设置受管状态可读;本地 SDK 无完整账号计费与组织管理资源。官方平台 REST API 存在,但独立登录、权限与产品契约尚未接入 |
| 跨设备 Session | 部分/未接入 | 已有云同步默认开关;SDK 另有需独立 API Key 的 listRemoteSessions 分页发现接口,尚未接入目录,不能由列表推断远端下载/恢复能力 |
| SDK 自动化 | 未接入 | 已确认公开 automations 资源存在,尚无扩展内配置、执行和生命周期管理流程,不以接口存在宣称功能完成 |
| SSH/relay/workspace 资源 | 未接入独立管理 | SDK 有公开资源,但尚未形成扩展基础设施管理流程;当前本地聊天与工作区功能不等于完整远端管理 |
编辑器代码补全(独立服务)
- 原生灰字、Tab 接受、候选列表接续、手动请求、状态栏与配置向导已接通,默认关闭。 自动/仅手动模式、5/15/60 分钟暂停和立即恢复由状态栏管理;停用仍保留恢复入口。
- 普通续写使用 Kilo/Continue 的导入定义、语法路径、近期编辑/浏览/打开文件、排序与 token 裁剪;最终字符预算默认 12,000,含标头,优先未保存文本,主文件保留至少 60%。 Tree-sitter 的 27 个语言语法资源随包提供,定义与签名使用编辑器语言服务;缺少对应 语法或服务时仍使用当前文件及允许的近期片段,不承诺所有语言具有相同定义解析能力。 Kilo 上下文链的 LSP 查询共享 150ms 等待预算,超时后保留其他可用上下文,下次请求可重试。 主体编辑复用未变的导入定义;导入语句、定义文件或规则变化时刷新。Codestral 文件末尾也保留关联片段。
- 原生 FIM 支持 Mistral/Codestral、Mercury、DeepSeek 及兼容服务;Ollama generate、 SiliconFlow prefix/suffix 扩展独立适配。代码续写与 Next Edit 可独立配置和同时启用,官方 Mercury FIM/Edit 地址共用 SecretStorage 凭据,其他地址隔离。模型服务独立于 Factory 聊天。
- 所有关联读取受同工作区根、Git/Droid ignore、配置排除、敏感文件及根外链接门禁约束。 默认不枚举项目文件或读取剪贴板;静态上下文开关仅为 TypeScript 枚举最多 2,000 个 候选;用户级剪贴板开关可额外提供最多 4,000 字符。两者默认关闭,不读取聊天历史。
- 缓存支持继续输入和退格、兼容请求复用;自适应防抖、分类退避、版本/光标校验与 Kilo 自动触发条件已接通。行中只展示首行、缓存保留完整结果;过滤重叠和重复输出。 代码围栏整条拒绝并支持手动重试,合法 Markdown 围栏保留,不声称修复模型语义。
- Notebook 代码单元接入相邻同语言上下文、位置映射和单元版本/顺序失效;官方 Mercury Next Edit 模式下单元使用 Mercury FIM。普通文件不对 Next Edit 空结果自动追加 FIM 请求。
- Mercury Next Edit 使用光标区域、允许的相关片段与近期编辑历史;同行灰字、跨行提示、 Tab 跳转/接受、Esc 丢弃、Undo、接受后继续预测与过期结果失效已接通。暂停/仅手动时 不追加自动预测。普通续写与 Next Edit 都可能没有建议,真实质量与速度见 STATUS。
判断规则
- 已接通:Runtime、Host、Bridge 和 UI 都有真实生产路径。
- 部分:只有部分用户流程可用。
- 受限:能观察,但不能安全完成完整生命周期。
- 不可用:没有受支持的公开能力。
- 未计划:当前产品范围明确排除。
安全规则
- 凭据、OAuth URL、原始工具参数和敏感输出不进入 Webview。
- 本机路径只投影为经过边界检查的工作区相对路径。
- Session、Turn、Worker 和请求身份不由 UI 猜测。
- 未知字段、额外键、越界文本和非法枚举整条拒绝。