本文档是 ACECode 项目内唯一的待办入口。自 2026-08-08 起,所有后续待办均直接追加至本文档;项目外原始文件仅保留作历史来源,不与本文档同步。
docs/待开发.md为既有历史清单,不再作为新增待办入口。
- 新待办追加至清单末尾,沿用现有编号继续编号,不重排旧编号。
- 状态直接标注在标题末尾,例如“进行中”“已完成”或“待验收”。
- 已完成项继续保留,便于追踪历史;文档过长时再单独归档。
当前模型设置区域过于简陋,且存在多项设计问题。需要重新梳理信息架构、交互和视觉设计,做成更完整、易用的模型配置体验。
专家功能尚未完成。保留现有“新建专家”按钮,并将其改造成尺寸不变、右侧带下拉箭头的按钮。用户直接点击主按钮时,默认进入对话式创建流程,并自动附加用于创建专家的专用 Skill,由对话引导完成创建;不额外增加一个通用的对话创建入口。点击下拉箭头后显示菜单,其中提供“高级模式”;用户选择高级模式时,才打开原有的新建专家菜单。
设计并实现独立的帮助界面,将软件帮助文档和帮助 Agent 整合在同一入口。用户既能浏览文档,也能通过帮助 Agent 的对话式引导理解软件功能和具体用法。
用户在聊天中选择蜂群模式或专家后,发送消息不应清除该选择。当前已选的蜂群模式和专家需要持续保留,直到用户主动更改或取消。
为“变更”区域增加可切换的树状目录展示模式。当前扁平逐行的文件列表之外,处于同一目录的变更文件应按照目录层级归类展示,类似 Git 客户端中的文件树,便于理解文件所在位置和结构。
扩展 Web/Desktop 的 @ 功能,使其可以引用会话。文件与会话在原有下拉菜单内纵向分组展示,共用同一个滚动区域;分组名称随界面语言显示为“文件”与“会话”,或“Files”与“Sessions”。会话行只显示会话标题和工作区名称,不显示更新时间;无工作区时显示“任务”或“Task”。只输入 @ 时默认显示最近 10 个可引用会话,输入首个查询字符后显示所有匹配结果。选中后插入稳定的内联会话标签,发送时由服务端安全解析并加载有容量上限的会话上下文。
让 macOS 上的 Agent Browser 在与右键菜单、选择气泡等浮层相交时,仅让出相交区域,而不是整块隐藏网页;目标与 Windows 的局部穿孔体验一致。
后续运行时根据子代理状态选择专家头像:working 用于执行、编程等工作中,needs_attention 用于向用户提问或等待确认,idle 用于无操作或等待;对应状态头像缺失时继续回退主头像。本项仅记录后续动态切换,当前已完成的数据字段、编辑与持久化支持不代表已实现运行时自动切换。
当 AI 完成一个项目时,AI 应能将该项目的编译指令和运行指令整理为一个固定的执行流程,并通过 ACECode 提供的内置工具写入这个流程。ACECode 界面提供对应的一键执行按钮;用户要启动项目时可以直接点击按钮,不必再让 AI 临时分析并执行启动命令,从而减少等待时间,尤其方便新手用户。
简单细化:该流程以项目为单位保存,至少包含编译和运行两个步骤;AI 在确认项目可构建、可运行后调用内置工具写入或更新流程,用户随后从固定入口一键执行。
建议:将“一键运行”放在当前项目的常用操作区,例如顶部项目工具栏或工作区标题附近;未配置流程时不展示主按钮,改为提示“由 AI 配置运行流程”。按钮可保留一个下拉入口,用于查看或编辑已保存的编译、运行步骤。
已按 Codex 的工具命名拆成独立能力:create_thread、fork_thread、list_threads、read_thread、send_message_to_thread、wait_threads、set_thread_title、set_thread_pinned、set_thread_archived 和 delete_thread。这些工具在 daemon、TUI 与 headless 运行时直接复用 ThreadService、SessionRegistry、SessionStorage、AgentLoop 和事件游标,不反向调用 ACECode 的 HTTP API。
list_threads 返回置顶会话和有界普通会话列表;read_thread 按 turn 分页并限制单项输出;wait_threads 最多等待八个目标,只返回紧凑快照和游标。delete_thread 与 Codex 的 thread 删除语义一致,永久删除目标及其派生后代,并同步清理搜索索引和置顶状态;工具执行期间不允许当前会话删除自己。
Web/Desktop 的 RichComposer 会跨会话复用同一个 Slate editor。中文输入法仍处于组合输入状态时切换会话,外部草稿同步可能让 Slate 根节点短暂或永久变成空数组,同时遗留指向 [0,0] 的选区,进而出现输入内容(例如“啊啊”)跨会话串显、无法输入以及整个界面白屏。
修复时不得通过给编辑器增加会话级 React key 来强制重建,因为这会带来明显的会话切换性能开销。应保留 editor 实例,通过会话同步代次隔离旧回声,在组合输入期间延迟外部文档替换,并保证替换过程始终至少保留一个合法 paragraph;同时补充中文组合输入、快速连续切换、空草稿切换和异常回退的回归测试。
参考 Codex 的侧边聊天机制和交互,改善用户在当前任务中临时提问、探索和补充讨论的体验,但不要为此再增加一个独立、常驻的 Sidebar。优先在现有聊天界面内部提供可展开和关闭的“内部聊天”,让它与主对话保持区分,同时不额外占用一套侧边栏空间。
内部聊天应按需继承当前会话和工作区的必要上下文,避免临时讨论打断或污染主对话。具体的消息归属、上下文范围、是否支持把结论带回主对话,以及 Web/Desktop 的呈现和切换方式,实施前应对照 Codex 的实际机制进一步细化。
Provider 在尚未产生正文、推理或工具调用前明确返回上下文溢出时,AgentLoop 会先追加一个 repair checkpoint,只裁掉最旧的完整用户 turn 组,保留当前输入和人类可见原始记录,再重试同一模型步骤。若仍溢出,则只再尝试一次 emergency request profile,去掉动态技能、记忆、Git、Todo、Hook 和非核心工具 schema;再次失败便停止,不会无限压缩或重试。
若 Provider 已产生任何部分输出,则不自动重放,避免重复执行工具。429、5xx、超时和网络错误不进入这套恢复流程。另提供 repair_thread:一个健康会话可以对另一个已阻塞或历史损坏的会话执行确定性修复;它不会调用模型、不会重放工具,也不会改写已有可见记录。
当前 macOS .pkg 安装包的签名问题仍未解决。需要根据实际构建和发布日志确认故障位于证书导入、签名身份选择、临时 Keychain 权限、应用及嵌套二进制签名、外层 Developer ID Installer 签名,还是公证与票据装订环节,避免把缺少凭据、签名失败和验签失败混为一类。
修复后必须同时验证 .app 的严格签名、PKG 外层签名、公证和 stapling,并使用 pkgutil --check-signature、spctl --assess --type install 及干净 macOS 环境中的实际安装进行确认。发布流程不得上传未签名、签名无效或公证未完成的 PKG;Intel 与 Apple Silicon 两种产物都需要通过相同门禁。
为 ACECode 建立统一的多模态消息和内容分片协议,不再把图片或其他媒体仅当作普通文本链接或临时附件处理。协议应同时覆盖用户输入、模型输出和工具结果,首期完整支持图片,后续可扩展音频、视频等多媒体内容;每个内容分片需要携带稳定类型、MIME、尺寸、来源、存储引用和必要的安全元数据,并能在会话持久化、恢复、分叉、引用和导出时保持一致。
增加图片生成能力,使支持的模型或工具可以接收生成参数并返回一个或多个图片结果,在 Web/Desktop 对话中直接展示预览、进度、失败状态、下载和再次作为上下文使用的入口。Provider 层需要声明并适配图片理解、图片生成、音频和视频等能力,前端按能力提供对应入口;不支持某类媒体的模型必须明确提示或安全降级。还需要覆盖文件大小与格式校验、远程 URL 和本地文件处理、缓存清理、隐私边界,以及 TUI 无法直接展示媒体时的可访问文本与文件路径回退。
补齐稳定、可重复的 Windows 安装包构建流程,覆盖安装、升级、卸载、回滚和产物校验。当前安装包在内网环境中疑似会被安全软件误报,需要先保留安装包哈希、报毒产品、规则名称和具体命中文件等证据,再区分是打包器、压缩方式、启动器行为、缺少签名还是实际高风险行为导致,不能只通过关闭安全软件绕过。
如果内网策略要求使用内部证书,应将最终安装程序及其中需要信任的可执行文件接入获批准的内网签名流程,并验证签名链、时间戳、签名前后产物关系和安装时的实际信任结果。发布门禁至少包含 Authenticode 验签、干净 Windows 环境安装/升级/卸载、内网安全软件扫描,以及架构和版本信息核对;未签名、签名无效或仍被阻断的安装包不得作为正式产物发布。
开发可服务 ACECode 远程访问场景的反向代理和内网穿透能力,客户端目标覆盖 iOS、Android 和 PC。实施前需要明确采用自托管中继、反向隧道还是可选点对点连接,并尽量复用现有 Remote Web、Daemon API、会话权限和认证边界,不另外建立一套失控的远程控制协议。
首版需要覆盖设备配对、端到端加密或等价安全传输、身份认证、精确授权、连接状态、断线重连、设备撤销、审计日志和服务端部署方式。移动端与 PC 端应共享稳定协议,但分别适配后台保活、网络切换、通知和平台权限;任何公网入口默认不得暴露本地 Daemon Token、工作区文件或未授权会话。
ACECode 主仓库已迁移到 tmoonlight/acecode。以新地址作为本地 remote、文档链接、徽章、下载地址和自动化脚本的规范来源,同时保留完整 Git 历史、分支、Tag、Release、Issue、PR、Actions、Packages 和必要的权限设置。独立依赖仓库继续使用各自已验证可用的来源,不因主仓库迁移而机械改写。
迁移后需要逐项验证新地址的拉取、推送、CI、Release、安装与升级链路。密钥和 Token 不得直接复制进仓库;需要在新归属下重新配置并最小化授权。
在 ACECode 中补齐可直接编辑普通文本和代码文件的内置文本编辑能力,并与现有文件预览、标签页和工作区导航衔接。基础体验应包含打开与保存、未保存状态、撤销/重做、查找替换、编码与换行符保持、只读和大文件降级,以及外部文件发生变化时的冲突提示。
具体支持范围、编辑入口、语法高亮、快捷键、多标签和 AI 修改协同方式需要在实施前进一步确认;不得因内置编辑器保存行为覆盖用户尚未合并的外部修改。
允许用户在现有 Web/Desktop 工作区中创建和管理自定义 Panel,用于承载项目工具、状态信息、网页、命令结果或扩展提供的交互界面。需要定义 Panel 的标题、图标、内容来源、可见条件、位置、尺寸、工作区归属和持久化方式,并支持打开、关闭、移动、调整大小和恢复默认布局。
自定义 Panel 应复用现有布局和扩展边界,不允许未经授权的内容直接获得文件系统、Daemon Token 或任意脚本执行能力。实施前需明确首版支持的 Panel 类型及配置入口,并验证多窗口、窄屏、会话切换和布局恢复行为。
当前全局记忆存在触发和召回不灵敏的问题,需要检查记忆写入、索引、作用域匹配、查询生成、相关性排序、容量预算和注入时机,区分“没有成功保存”“已经保存但检索不到”和“检索到但没有进入模型上下文”三类故障。
增加可诊断的记忆状态和回归测试,让用户能够确认哪些全局记忆已生效、为何被选中或跳过,并提供必要的搜索、刷新、固定或禁用入口。优化后应提高跨会话、跨工作区的稳定召回,同时严格控制隐私边界、过期信息和无关记忆污染,不能通过无差别注入全部历史来换取表面上的灵敏度。
当前子代理在应当自动折叠时没有自动折叠,而主聊天框已有完整且正确的自动折叠机制。修复时必须让子代理复用主聊天框的全部自动折叠逻辑,包括判定条件、触发时机、展开/折叠状态、用户手动操作后的保持规则,以及后续消息或状态更新时的处理。
严格遵循 DRY:应抽取或下沉共享逻辑,由主聊天框与子代理调用同一实现;不得复制判断、另写近似分支或形成两套后续需要同步维护的状态机。验证应证明两处在相同输入和状态下行为一致,并覆盖主聊天框无回归、子代理完成后的自动折叠、手动展开/折叠及后续更新。
在现有旁路聊天功能基础上,参考用户提供的 Claude App Side chat 界面优化 Web/Desktop 呈现。重点借鉴浮层式独立对话窗口的结构和视觉层级:清晰的标题栏、紧凑的清空/弹出独立窗口/关闭操作、独立可滚动的消息区,以及固定在底部的跟进输入框;窗口使用轻量边框、圆角、阴影和克制的消息气泡,让旁路聊天与主内容同时可见且边界明确。
本项只负责界面与交互呈现,与第 12 项的上下文范围、消息归属等机制设计分开。实施时应复用 ACECode 现有聊天消息、输入框、按钮和主题 token,不复制新的聊天渲染链路;需要覆盖明暗主题、窄屏与窗口缩放、长消息滚动和键盘操作,并避免浮层遮挡主界面的关键操作。参考的是 Claude App 的交互结构和视觉层级,不照搬品牌资产;参考截图中的对话文字及 API 400 错误不属于本任务。