Appearance
功能清单
本清单汇总全部功能规格说明,作为功能设计和实现的唯一真实来源。
统计
| 指标 | 数量 |
|---|---|
| 规格文件 | 115 |
| 用户故事 | 727 |
| 验收场景 | 4,266 |
| 测试用例 | 11,536 |
清单
| 分组 | 功能 | 描述 | 用户故事 | 验收场景 |
|---|---|---|---|---|
| Agent 核心 | 文件系统工具 | Read、Write、Edit 文件工具,搜索默认走 Bash 的内嵌 grep/find | 4 | 23 |
| Bash 工具 | `Bash` 前台/后台命令执行:超时上限与自动转后台、输出在结束时一次性下发、跨平台 bash/zsh 与 Git Bash 解析、登录 shell 环境注入、终止时清理整棵进程树 | 10 | 59 | |
| Bash 沙箱 | `Bash` 命令的 OS 级沙箱:macOS Seatbelt / Linux bubblewrap 的文件系统与网络隔离、域名白名单代理、违规回注,以及与权限系统的自动放行联动 | 6 | 29 | |
| WebFetch 工具 | 获取 URL 内容,HTML 转 markdown,AI 模型处理,支持缓存 | 6 | 27 | |
| Artifact 工具 | 发布本地 HTML/Markdown 为默认私有网页、读取/列举 artifact、资源库五动作、页内评论五动作与评论事件叫醒、WebFetch 拦截 | 14 | 150 | |
| Exec 工具 | 把延迟工具池(内置 + MCP)收敛为一个可编排的沙箱脚本工具 | 11 | 100 | |
| 工具参数校验 | 内置工具调用前按自己声明的 JSON Schema 校验参数,参数错误作为可恢复的工具结果返回给模型 | 1 | 10 | |
| LSP 集成 | Language Server Protocol 代码智能(定义跳转、引用查找、悬停信息) | 3 | 4 | |
| 自定义工具 buildTool() | buildTool() 工厂方法,供 SDK 用户定义自定义工具 | 3 | 7 | |
| Agent 配置 | Agent 构造参数与 settings.json 分层配置:模型、token 上限、语言、env/headers 与热重载语义 | 15 | 62 | |
| 消息压缩 | 自动与手动 `/compact` 上下文压缩:请求前触发、摘要 fork、熔断上限、压缩钩子与重载后从最后压缩边界重建 | 17 | 91 | |
| 上下文工程 | 系统提示词静态/动态分块与精简模式、`<system-reminder>` 注入、messages 组装层次与 fork 上下文边界 | 9 | 48 | |
| Responses API 传输 | 按 models.<name>.capabilities.apiType 逐模型选择 Responses 端点:参数/工具/消息/流式与用量映射,让只允许 Responses 工具调用的新模型可用 | 5 | 40 | |
| Anthropic Messages API 传输 | 按 models.<name>.capabilities.apiType 逐模型选择端点:新增 messages 取值走原生 Anthropic Messages,思考块 signature 全链路回传、tool_use/tool_result 原生结构、cache_control 原生打点,让 Claude 模型不再因 OpenAI 兼容层压平思考块而丢推理连续性 | 6 | 42 | |
| Prompt 缓存控制 | 按模型能力声明注入 cache_control:系统提示静态/动态分块、最后消息标记与缓存 token 追踪口径 | 5 | 25 | |
| 记忆管理 | `AGENTS.md` 与 `.wave/rules` 分层记忆、自动记忆提取 fork 与 `MEMORY.md` 容量治理、嵌套注入与陈旧提醒 | 16 | 87 | |
| 流式输出 | 助手文本/推理/工具参数与结果的增量流式传输、工具块阶段事件、思考用时与长会话增量推送 | 10 | 55 | |
| AI 错误处理 | 输出截断自动续写与连续恢复上限、推理内容保留、429/5xx 重试、流式中断降级非流式、截断工具参数恢复 | 9 | 24 | |
| 工具权限系统 | 权限规则通配符匹配、复合命令结构感知判定、安全区域/附加目录、MCP 工具权限与 `acceptEdits`/`dontAsk` 等模式 | 21 | 94 | |
| Plan 模式 | Shift+Tab、`/plan`、`EnterPlanMode` 进入的只读计划模式,`ExitPlanMode` 审批与三端计划面板预览(远控 Web 页例外:计划正文渲染在确认对话框内) | 15 | 87 | |
| Agent 生命周期 | destroy() 的确定性排空语义:存活工作注册表、destroy 后公开 API 抛错、destroy 终态守卫(防幽灵 dispatch) | 3 | 12 | |
| 后台任务完成通知 | Bash/Agent/Workflow 后台任务完成时注入主对话的 task-notification 消息语义(UI 隐藏、模型可见、持久化) | 1 | 7 | |
| 会话文件保留清理 | 按可配置保留期清理过期的会话 jsonl 文件(对齐 Claude Code) | 4 | 14 | |
| 最近工作目录 | 机器级持久化的最近打开目录(~/.wave/recent-workdirs.json):桌面端按主机读取、远控 Web 页新建会话时共用同一份 | 3 | 18 | |
| 交互与 UI | 会话管理 | 按项目目录组织的会话存储与聚合列表:跨目录/worktree 聚合、`/resume` 热切换、`/rename` 重命名与子代理会话分离 | 13 | 87 |
| Markdown 渲染 | 终端 Markdown 渲染,Ink 组件支持标题、列表、代码块、表格 | 3 | 12 | |
| 消息渲染 | Ink 消息流(静态历史 + 动态块)与 webview 消息渲染:首屏一页 + 上翻按需从转录按游标取更早(内存口径仍是压缩后的上下文;远控页页大小 60 条、同一套翻页)、宿主对消息内容零状态(用的时候现取)、差异/写入预览、路径相对化、按像素预算的虚拟窗口、按会话恢复阅读位置、钉底跟随与用户滚动意图识别,以及对话流的表格展示与对齐(表格横向滚动四端共用)、链接角色、助手消息代码块的复制按钮、没有可渲染块的消息不占位、键盘可达与无障碍 | 24 | 159 | |
| 图片粘贴 | 从剪贴板粘贴图片到聊天输入,支持占位符和附件;粘贴时就降到 2000 像素预算,工具产图 / Read 图片在入列表时降到预算内,出站再按 2000 像素 / 5MB 兜底 | 11 | 50 | |
| 文件选择器 | `@` 触发的文件/目录选择器:快速选择、模糊搜索、目录导航与输入框上下文标签 | 4 | 13 | |
| 长文本占位符 | 用 `[LongText#ID]` 占位符替换粘贴的长文本,提交时展开 | 1 | 2 | |
| 确认 UI | 工具权限确认弹窗:按钮布局与滚动、确认队列、持久权限模式与 Bypass 切换、模态焦点圈 | 10 | 45 | |
| AskUserQuestion 工具 | `AskUserQuestion` 结构化提问工具:单选/多选选项、多问题循环轮播、键盘可达与选项区折叠 | 8 | 38 | |
| Print 模式 | `-p` 模式下仅输出主 agent 响应的干净输出:抑制子代理内部信息、等待后台任务与收尾完成的退出语义,以及 `--output-format json` / `stream-json` 的结构化结果 | 5 | 25 | |
| 工具选择 | `--tools` 以逗号名单限定 agent 可用工具集(空串全禁、`default` 复原),含打印模式与 `Exec`/MCP 边界 | 4 | 5 | |
| Bash 模式 | `!` 前缀在聊天输入直接执行 shell 命令,输出以 bash tool block 全量展示并进入模型上下文,命令可中止 | 3 | 4 | |
| 模型选择 | CLI 的 `/model` 命令与桌面端/插件/远控页的输入卡片底栏模型选择器:清单与视觉标识由宿主下发,选中即时生效;底栏放不下时模型与权限在三端同一套收法里收成图标档 | 5 | 34 | |
| 上下文用量指示器 | 输入工具栏的上下文用量指示器:圆环 + 百分比、悬停气泡说明、纯展示元素不进 Tab 序、用量为 0 或未推送时整块不渲染;三端(desktop / VSCE / JetBrains)共用 | 1 | 7 | |
| 提示词模板(快捷方式) | 空态页「快捷方式」区:12 个开发场景分类 → 该分类的提示词模板,点模板整段填入输入框 | 2 | 9 | |
| 状态栏 | 左下角状态栏组件,用于模式和 shell 命令状态显示 | 1 | 5 | |
| 通知组件 | 右下角 Notifications 组件:token 用量与登录提示 | 2 | 9 | |
| 历史搜索 | Ctrl+R 历史搜索,复用 `~/.wave/history.jsonl` 中的历史提示 | 2 | 6 | |
| 输入编辑键与清空 | 输入行编辑键:Ctrl+U/K/W/A/E 行编辑、空闲 Esc 双击清空输入、SSH/tmux 退格兼容与占位符删除支持 | 5 | 23 | |
| Stdio 传输层 | 宿主(插件端/桌面端)驱动 `wave --stdio` 的 JSON-RPC 传输层:CLI 解析同步、首次启动的进度文案、多会话路由、消息拉取/增量通知与失败诊断,以及下发 UI 的载荷裁剪(工具图片字节不下发) | 14 | 104 | |
| Webview 链接解析 | webview 中链接的解析与点击行为:消息 markdown、行内代码内的 URL、围栏代码块内的 URL、bash 命令输出中的 URL | 3 | 20 | |
| 消息中的 markdown 图片 | 助手消息里 markdown 图片语法()的渲染与点击:页面能自己加载的地址内联显示,本地路径降级为可点击的路径链接,加载失败的图片就地降级不留破图标 | 2 | 18 | |
| Webview 文件路径点击识别 | 助手文本 markdown 中文件路径的识别与点击打开:行内代码、正文纯文本、围栏代码块与 bash 输出多通道,仅识别绝对路径,支持行号定位与跨端打开 | 5 | 33 | |
| 操作确认对话框 | 三端共享的破坏性操作确认对话框:消息回滚、删除会话(含 worktree 改动检查)、主按钮初始焦点与 Enter/Esc 键盘语义 | 3 | 11 | |
| 文本粘贴 | 终端输入框的粘贴处理:启用 bracketed paste(DECSET 2004)识别粘贴标记,粘贴内容仅插入不提交 | 1 | 6 | |
| 会话内查找 | 会话内容区的就地查找条:Ctrl/Cmd+F 打开、在已加载的消息数据层匹配(虚拟列表下不依赖 DOM)、命中高亮与计数、上一个/下一个、大小写/整词/正则、流式追加不打断当前命中;三端(desktop / VSCE / JetBrains)共用 | 1 | 12 | |
| 会话消息大纲 | 会话内容区左边缘的竖排刻度大纲:每条用户消息一项,悬停显示这条问的是什么,点击跳到该轮问答;窗口留白不足时自动隐藏;三端(desktop / VSCE / JetBrains)共用 | 1 | 12 | |
| 内置命令与技能 | 斜杠命令 | markdown 文件定义的自定义斜杠命令:项目/用户两级作用域、参数替换(含插件命令的插件根占位符)、frontmatter 模型与 `allowed-tools` 自动批准语义;弹窗里宿主本地命令的唯一来源是服务端经 RPC 下发的一张表(按入口过滤) | 8 | 31 |
| Clear 命令 | `/clear` 命令清空对话历史并生成新会话 ID,SDK 侧对应 `agent.clearMessages()` | 2 | 7 | |
| Rewind 命令 | `/rewind` 从检查点列表回退对话与文件变更,保留会话标题与文件级元数据 | 5 | 20 | |
| 技能列表命令 | `/skills` 浏览、新建、编辑与删除技能,按来源分组与 Tab 展示;CLI 终端覆盖层与 IDE 设置页技能选项卡两入口 | 10 | 50 | |
| 钩子命令 | `/hooks` 浏览用户/项目/插件三级作用域的已配置钩子与各 HookEvent 事件摘要,CLI 只读覆盖层与 IDE 设置页钩子选项卡 | 3 | 12 | |
| Init 命令 | `/init` 内置技能,分析代码库并创建或改进 `AGENTS.md` 指导文件 | 2 | 4 | |
| Agents 命令 | `/agents` 查看与管理当前会话可见的 agent 定义 | 8 | 38 | |
| BTW 命令 | `/btw` 旁路提问:绕过主消息队列、单轮且不执行工具、复用主对话 prompt 前缀,CLI overlay 与 Webview 面板两入口(含远控 Web 页) | 5 | 42 | |
| Help 命令 | `/help` 交互式帮助视图:快捷键标签页与命令列表(内置命令 + 自定义/插件斜杠命令),Tab 切换、方向键浏览、Esc 关闭 | 3 | 7 | |
| Status 命令 | `/status` 只读状态覆盖层:版本、会话 ID、cwd、Wave base URL 与当前模型 | 1 | 2 | |
| Update 命令 | `wave update` 检查并安装最新版:支持 npm/pnpm/yarn、npmmirror 镜像回退与 Windows 分离进程后台更新 | 4 | 11 | |
| Code Review 技能 | `/code-review` 分档并行审查当前 diff 的正确性与效率问题,可发布 PR/MR 评论 | 5 | 19 | |
| Simplify 技能 | 审查已变更代码的质量问题(重复、低效)并通过 `/simplify` 自动修复 | 3 | 10 | |
| 代码安全审核 | 会话内自动拦危险模式、按需多 agent 深扫、`/security-review` 单次过分支三层代码安全能力及其分发渠道 | 7 | 41 | |
| 内置 Settings 技能 | 内置 `settings` 技能,查看与修改各作用域 settings.json,并提供 hook 编写指导 | 3 | 4 | |
| 内置 SDD 插件 | 规格优先工作流插件:`specify` 技能、会话引导、spec-count 校验、阶段单选衔接与执行方式选择 | 9 | 39 | |
| 插件端 | 插件端 | VS Code/JetBrains 共享 React webview 的横切关注点:主题变量、共享包与构建产物、生命周期与消息协议、插件端专属对话框 | 4 | 12 |
| 代码补全 | VS Code 扩展与 JetBrains 插件的行内代码补全(ghost text):编辑停顿自动触发、Tab 接受、补全专用模型与独立请求通道;含跨文件定义片段(两端各自采集) | 7 | 44 | |
| 下一步编辑建议 | 编辑器内的下一步编辑建议(Next Edit Suggestion):依据最近编辑轨迹预测下一处该改的位置与改法,以差异形式呈现、Tab 接受;含轨迹采集、跳转定位、与行内补全的互斥及开关配置 | 7 | 37 | |
| IDE 上下文提及 | 输入框 @ 手动附加 IDE 运行时上下文:终端输出(@terminal)、当前文件问题(@problems),发送时取内容并入消息、渲染为用户气泡里的标签 + 弹窗预览 | 4 | 25 | |
| 插件更新策略 | VS Code 扩展与 JetBrains 插件的更新交由官方市场机制,各宿主的状态对话框都不提供手动检查更新入口 | 2 | 5 | |
| 桌面应用 | 桌面端窗口与外观 | CodeWave IDE 桌面端窗口与外观:开箱即用(内置 CLI)、与插件端一致的交互、SSO 登录、无干扰通知、主题设置、菜单栏与右键菜单、macOS 隐藏标题栏、退出时保护运行中的会话 | 10 | 60 |
| 桌面端分发与更新 | CodeWave IDE 桌面端的分发与升级:内置 CLI 的随包发布与远端同步(按字节判等)、macOS(arm64 + Intel x64 手动旁路)/Windows 打包、自动更新状态与外置 feed、Beta 版通道 | 6 | 44 | |
| 桌面端会话 | CodeWave IDE 桌面端会话:新建/切换/重命名/删除、侧栏搜索筛选(标题 + 正文内容)、行状态位与后台确认提醒、会话状态看板、历史恢复、worktree 隔离、跨客户端 /resume | 12 | 122 | |
| 桌面端远程主机 | CodeWave IDE 桌面端 SSH 远程:主机接入与连接、远端 CLI 与 Node 运行时经 ssh 推送同步、远程后台会话、断线自动重连、远端 daemon 常驻、端口转发与远端目录浏览 | 4 | 59 | |
| 桌面端 WSL 发行版主机 | CodeWave IDE 桌面端(Windows)把本机 WSL2 发行版作为一种主机接入:发行版枚举与选择、发行版内 Node/CLI 按需安装与同步、POSIX 工作目录与目录浏览、终端与文件/差异/预览面板、与 SSH 远端的行为边界 | 1 | 21 | |
| 桌面端布局 | CodeWave IDE 桌面端布局:侧边栏收起/展开与状态持久化、会话列表滚动区间、常驻入口与账户卡片不被列表带走 | 2 | 13 | |
| 桌面端分屏 | CodeWave IDE 桌面端分屏:并排多对话、新会话并排打开、分屏重排与调宽、上下两行布局、启动即单个分屏承载欢迎态 | 5 | 35 | |
| 桌面端右侧面板 | CodeWave IDE 桌面端右侧面板槽位:一级 Tab 栏与实例语义、空态与「+」新增入口、展开/折叠与空间守卫、preview guest 跨会话保活 | 4 | 41 | |
| 桌面端差异面板 | CodeWave IDE 桌面端差异面板:会话变更基准与查看范围、按 commit 查看、改动文件树导航、统一/并排视图与大规模差异降级、行评论 | 6 | 44 | |
| 桌面端原型预览 | CodeWave IDE 桌面端独有原型预览闭环:localhost 原型预览、本地 HTML 文件预览、元素评论、全屏与跨会话保活 | 4 | 33 | |
| 桌面端文件面板 | CodeWave IDE 桌面端文件面板:工具路径查看、当前对话文件清单、自动刷新、工作区目录树与按名字查找、已打开文件标签、文件内查找与跳行、复制路径与复制文件内容、拖拽上传与面板内编辑保存 | 10 | 130 | |
| 桌面端内嵌终端 | CodeWave IDE 桌面端内嵌终端面板:以对话工作目录启动真 PTY、交互式程序与 Ctrl+C、尺寸同步、折叠保活与关闭销毁、终端内链接点击 | 1 | 9 | |
| 创作集(Artifacts 画廊) | CodeWave IDE 桌面端创作集:我发布的/共享给我的列表、自定义分类(本机存储)与批量归类、文件名搜索、分享范围与查看者版本、撤销发布、模板新建 | 9 | 57 | |
| 桌面端设置页 | CodeWave IDE 桌面端设置页面:覆盖整个窗口的导航与视图、可编辑的全局设置与个性化、结果型反馈统一走宿主 toast、用户偏好写入用户级 settings.json 实时重载且不重建会话 | 1 | 16 | |
| 桌面端账户卡片 | CodeWave IDE 桌面端侧边栏账户卡片:认证方式三形态(企业账号 / 自定义网关 / 无凭据)、套餐用量/API 余额双维度用量浮层(点击行尾用量按钮向上弹出 + 预警点)、用量刷新时机(模型响应头 x-codechat-quota-* 驱动 + 打开浮层时核对,已删 60 秒轮询)、个人信息行纯功能菜单、应用更新按钮状态机 S0–S3(后台静默下载 + 点开「更新」看记录再重启),含 desktopAccountInfo 数据契约 | 6 | 70 | |
| 桌面端深链唤起 | 从网页通过 `wave://` 唤起 CodeWave IDE:协议注册与三端接收、克隆仓库到所选目录、自动新建会话并发送链接携带的提示词、clone 出的仓库经 credential helper 复用本机登录态(链接不携带任何凭据) | 3 | 25 | |
| 桌面端渲染进程崩溃与卡死恢复 | CodeWave IDE 桌面端渲染进程崩溃/卡死的自愈入口、现场取证(minidump、JS 调用栈采样、崩溃前 renderer 内存读数)与一键导出诊断包 | 6 | 42 | |
| 远程控制 | 远程控制开关 | 本机怎么开启、关闭与查询远程控制:`wave remote-control` 与 `/remote-control` 两个入口、开关与拨号的两层语义,以及设置页里的那一项 | 4 | 26 |
| 中继通道 | 本机到中继的那条出站通道:白名单与单帧预算、连接生命周期(重连 / 背压 / 断连恢复)、断线自愈,以及状态怎么在页面上播报 | 4 | 41 | |
| 机器身份 | 同一台机器只有一行登记、同一时刻只有一个服务方,以及页面上的机器列表与切换 | 3 | 28 | |
| Web 端适配 | 远控页这一端:作为第五种宿主怎么接上本机、怎么保持不失真,页面上能真正执行的动作(审批、宿主命令、`/btw`、看原图、往上翻更早),以及这一页上的会话 | 12 | 133 | |
| 移动端适配 | 触控设备上的远控页:整屏装得下、聚焦不被自动放大、文字与图标按钮按手指给足的那一档尺寸 | 1 | 4 | |
| PWA 集成 | 把远控页装到主屏:主屏元信息(图标与具名)、接收推送的 Service Worker,以及锁屏也能收到的两条通知 | 2 | 11 | |
| 多 Agent 与并发 | 子代理 | 加载 `.wave/agents/` 子代理并经 `Agent` 工具委派,支持自动委托、`@` 显式点名、上下文隔离与 worktree 隔离 | 8 | 46 |
| 内置子代理 | 内置 `Explore` 只读子代理,与用户自定义子代理共用同一套调用接口 | 3 | 10 | |
| 通用代理 | 内置 `general-purpose` 子代理,全工具访问(`*`),面向研究与多步骤实现任务 | 3 | 7 | |
| Plan 子代理 | 内置 Plan 子代理,只读探索代码库,输出多视角实现方案与关键文件 | 5 | 13 | |
| 任务后台执行 | `run_in_background` 后台执行、`TaskStop` 终止、Ctrl-B 前台转后台、`/tasks` 列表与完成通知 | 7 | 30 | |
| 任务管理工具 | TaskCreate/TaskGet/TaskUpdate/TaskList,`~/.wave/tasks/` 存储和任务列表 UI | 7 | 24 | |
| Workflow 编排 | 确定性多子代理编排:pipeline/parallel 控制流、受控脚本沙箱、预算硬上限与失败上报 | 13 | 70 | |
| CLI Worktree | `-w/--worktree`、会话内 `EnterWorktree`/`ExitWorktree` 工具与 worktree hook 支持 | 16 | 75 | |
| Daemon 客户端命令 | `wave daemon` 子命令组:按需拉起常驻 daemon,创建、查看、阻塞等待空闲、续聊、审批、中断、销毁后台会话,并优雅停止/重启 daemon(默认 socket 在 POSIX 是 unix socket、在 Windows 是命名管道) | 12 | 96 | |
| 视觉子代理 | WAVE_VISION_MODEL 环境变量 + 内置 vision 子代理,仅在主模型禁用 vision 时注册,供其委托图像识别 | 4 | 13 | |
| 扩展与生态 | Agent 技能 | `SKILL.md` 技能包的发现与解析、`/` 调用、`allowed-tools` 限制与派生到子代理 | 10 | 40 |
| MCP | MCP 服务器接入与管理:项目/用户/插件来源配置合并、生命周期控制、`instructions` 播报与设置页增删改 | 11 | 65 | |
| 插件系统 | 插件加载与市场生态:作用域管理、命令/技能/代理/钩子/LSP/MCP/工作流组件与就地重载 | 12 | 96 | |
| 自动化 | 钩子系统 | `PreToolUse`、`PostToolUse`、`Stop`、`PreCompact` 等事件钩子的配置、退出码语义与设置页管理 | 30 | 116 |
| 会话生命周期钩子 | `restoreSession` 运行时切换会话时按序触发 SessionEnd/SessionStart 钩子并注入上下文 | 4 | 12 | |
| Loop 命令 | `/loop` 通过 cron 调度循环提示(如 `/loop 5m check the build`),支持持久化和多会话调度锁 | 2 | 3 | |
| CI/CD 集成 | 在 GitHub Actions / GitLab CI 里跑 wave:可复用 workflow 与 job 模板、凭证注入、审查专用最小工具集、结果 JSON 产物 | 4 | 13 | |
| 企业管控 | SSO 认证 | `/login` 浏览器 SSO 登录、token 自动刷新与网关路由,含 IDE/桌面登录入口与未登录输入禁用 | 6 | 33 |
| 服务端托管配置 | 从服务端下载托管配置:校验和缓存、键级合并优先级与插件市场/启用列表下发 | 4 | 15 | |
| OpenTelemetry 集成 | OpenTelemetry 指标与日志插桩:默认上报到 Wave 服务端的首方出口、console 与 OTLP 导出器、可轮换的出站头与统一的标准归属属性面 | 12 | 83 | |
| 用量追踪 | SDK 用量追踪:`onUsagesChange` 回调、`usages` 读取与 CLI 退出 token 摘要 | 5 | 18 |