From 4e5a0195a2b6a23d3472b6e8266dade0d8389e28 Mon Sep 17 00:00:00 2001 From: tmoonlight Date: Fri, 9 Oct 2026 03:37:08 +0800 Subject: [PATCH] feat: Improve detail previews, response recovery and built-in help --- assets/seed/MANIFEST.json | 6 +- assets/seed/seed.version | 2 +- .../acecode/acecode-desktop-usage/SKILL.md | 58 +++-- .../references/features.md | 123 ++++++++++ .../skills/acecode/acecode-tui-usage/SKILL.md | 64 ++++- docs/daemon-api.md | 14 +- docs/desktop-agent-office.md | 4 + docs/help-authoring.md | 26 +- docs/help-source/getting-started.json | 17 +- docs/help-source/group2.py | 24 +- docs/help-source/group3.py | 8 +- docs/help-source/group4.py | 4 +- docs/help-source/group4_extensions.py | 3 +- docs/help-source/group5.py | 17 +- docs/help-source/group6.py | 4 +- docs/help-source/group6_reference.py | 19 +- docs/help-source/image-plan.md | 8 +- docs/help-source/images.json | 20 +- docs/help-source/screenshot-map.json | 12 +- docs/help-source/shell.html | 2 +- docs/help-source/sources.json | 26 +- docs/help-source/tree.json | 4 +- docs/help-source/updates-2026-10-09.md | 75 ++++++ docs/help/acemodel.html | 6 +- docs/help/agent-browser.html | 7 +- docs/help/api.html | 6 +- docs/help/appearance.html | 6 +- docs/help/architecture.html | 6 +- docs/help/assets/search-index.js | 126 ++++++---- docs/help/build.html | 6 +- docs/help/channels.html | 22 +- docs/help/cli.html | 6 +- docs/help/configuration.html | 6 +- docs/help/connectors.html | 6 +- docs/help/context-usage.html | 10 +- docs/help/contributing.html | 6 +- docs/help/conversation.html | 16 +- docs/help/daemon.html | 6 +- docs/help/desktop.html | 17 +- docs/help/examples.html | 6 +- docs/help/experts.html | 6 +- docs/help/extension-development.html | 6 +- docs/help/faq.html | 6 +- docs/help/feedback.html | 6 +- docs/help/git.html | 6 +- docs/help/hooks.html | 6 +- docs/help/index.html | 20 +- docs/help/installation.html | 6 +- docs/help/lsp.html | 6 +- docs/help/manage-models.html | 6 +- docs/help/mcp.html | 6 +- docs/help/memory.html | 11 +- docs/help/model-basics.html | 6 +- docs/help/model-capabilities.html | 8 +- docs/help/network.html | 6 +- docs/help/permissions.html | 8 +- docs/help/project-rules.html | 6 +- docs/help/providers.html | 10 +- docs/help/quick-start.html | 6 +- docs/help/reference.html | 14 +- docs/help/schedules.html | 6 +- docs/help/skills.html | 9 +- docs/help/swarm.html | 12 +- docs/help/tools.html | 6 +- docs/help/troubleshoot-context.html | 10 +- docs/help/troubleshoot-desktop.html | 6 +- docs/help/troubleshoot-install.html | 6 +- docs/help/troubleshoot-models.html | 6 +- docs/help/troubleshoot-tools.html | 6 +- docs/help/tui.html | 6 +- docs/help/update-uninstall.html | 8 +- docs/help/web.html | 6 +- docs/help/workspaces.html | 8 +- docs/releases/v1.0.2.md | 16 ++ src/adapters/pa/README.md | 9 +- src/adapters/pa/pa_context_budget.hpp | 14 +- src/adapters/pa/pa_overflow_rescue.cpp | 17 +- src/adapters/pa/pa_overflow_rescue.hpp | 5 +- src/adapters/pa/pa_rescue_driver.cpp | 13 +- src/apps/desktop/desktop_pet_layout.cpp | 9 + src/apps/desktop/desktop_pet_layout.hpp | 4 + src/apps/desktop/desktop_pet_mac.mm | 230 +++++++++++++++++- src/apps/desktop/main.cpp | 2 +- src/apps/desktop/web_host.cpp | 14 +- src/domain/llm/context_thresholds.cpp | 4 +- src/domain/llm/context_thresholds.hpp | 2 + .../agent/model_step/active_model_view.cpp | 8 +- .../model_step/provider_stream_collector.cpp | 2 + .../recovery/context_overflow_recovery.cpp | 4 +- src/engine/agent/turn/response_recovery.cpp | 45 +++- src/engine/agent/turn/turn_runner.cpp | 46 ++-- src/engine/agent/turn/turn_runner.hpp | 2 +- .../agent/agent_loop_compact_events_test.cpp | 41 ++-- tests/agent/agent_loop_construction_test.cpp | 8 +- ...t_loop_empty_response_integration_test.cpp | 28 ++- tests/agent/agent_loop_pa_rescue_test.cpp | 54 +++- tests/agent/agent_loop_termination_test.cpp | 22 +- tests/agent/characterization_context_test.cpp | 5 +- tests/agent/compact_core_test.cpp | 12 + tests/agent/turn/turn_recovery_test.cpp | 25 ++ tests/desktop/desktop_pet_layout_test.cpp | 30 +++ tests/hooks/hook_agent_loop_test.cpp | 6 +- tests/pa/pa_context_budget_test.cpp | 23 +- tests/pa/pa_overflow_rescue_test.cpp | 43 +++- tests/pa/pa_rescue_driver_test.cpp | 10 +- tests/session_host/session_registry_test.cpp | 4 +- web/scripts/i18n-en-overrides.mjs | 3 + web/scripts/test-desktop-office.mjs | 99 +++++++- web/scripts/test-preview-presentation.mjs | 180 ++++++++++++++ web/src/App.jsx | 19 +- web/src/components/ChatView.jsx | 4 +- web/src/components/DesktopContextMenu.jsx | 9 +- web/src/components/FilePreviewContent.jsx | 5 + web/src/components/PresentationPreview.jsx | 16 ++ web/src/components/PreviewDetailsPanel.jsx | 19 +- .../components/SelectionAnnotationOverlay.jsx | 3 +- web/src/i18n/catalogs/systemNotice.js | 4 + web/src/i18n/sourceCatalog.generated.js | 6 + web/src/lib/appShortcuts.js | 2 + web/src/lib/appShortcuts.test.js | 3 + web/src/lib/desktopContextMenu.js | 17 ++ web/src/lib/desktopContextMenu.test.js | 22 ++ web/src/lib/presentationPreview.js | 17 +- web/src/lib/presentationPreview.test.js | 11 + web/src/lib/sidebarContextMenuIcons.test.js | 2 +- web/src/lib/systemNotice.test.js | 10 + web/src/lib/usePreviewPresentation.js | 63 +++++ web/src/lib/usePreviewTextZoom.js | 26 ++ web/src/styles/globals.css | 17 ++ 129 files changed, 1895 insertions(+), 473 deletions(-) create mode 100644 assets/seed/skills/acecode/acecode-desktop-usage/references/features.md create mode 100644 docs/help-source/updates-2026-10-09.md create mode 100644 docs/releases/v1.0.2.md create mode 100644 web/scripts/test-preview-presentation.mjs create mode 100644 web/src/lib/usePreviewPresentation.js create mode 100644 web/src/lib/usePreviewTextZoom.js diff --git a/assets/seed/MANIFEST.json b/assets/seed/MANIFEST.json index d722dde71..cd4b0ca37 100644 --- a/assets/seed/MANIFEST.json +++ b/assets/seed/MANIFEST.json @@ -1,5 +1,5 @@ { - "bundle_version": "2026-10-04.1", + "bundle_version": "2026-10-09.1", "description": "Versioned default ACECode global Skill, expert, and managed hook seed bundle reconciled at startup.", "skills": [ { @@ -42,13 +42,13 @@ "name": "acecode-tui-usage", "source_id": "acecode:acecode-tui-usage@2026-07-20", "relative_path": "acecode/acecode-tui-usage", - "skill_md_sha256": "8dc11abf0224872ffa3d98f6d218aac623e5b3bbd383639673fd9cc45f488468" + "skill_md_sha256": "cbe94d9b1ec3b445a19ffdc422e4a328438edacdb245daa77520bf8f5f806149" }, { "name": "acecode-desktop-usage", "source_id": "acecode:acecode-desktop-usage@2026-10-04", "relative_path": "acecode/acecode-desktop-usage", - "skill_md_sha256": "e67f13bd466c274840be46ab48bcffb8b4c06e61012010ab6cb2ae5670a64485" + "skill_md_sha256": "96cc03b4bca81be8db23629f3c4723e73b5ec435e618645281e060c6dacaf0fd" }, { "name": "vision-image-reader", diff --git a/assets/seed/seed.version b/assets/seed/seed.version index 2dc1bd9e9..ffeed077b 100644 --- a/assets/seed/seed.version +++ b/assets/seed/seed.version @@ -1 +1 @@ -2026-10-04.1 +2026-10-09.1 diff --git a/assets/seed/skills/acecode/acecode-desktop-usage/SKILL.md b/assets/seed/skills/acecode/acecode-desktop-usage/SKILL.md index f85c1b9b5..c11f4582a 100644 --- a/assets/seed/skills/acecode/acecode-desktop-usage/SKILL.md +++ b/assets/seed/skills/acecode/acecode-desktop-usage/SKILL.md @@ -1,6 +1,6 @@ --- name: acecode-desktop-usage -description: "说明 ACECode Desktop 原生桌面应用的用法,包括工作区、任务、会话、输入框、权限、可选 Git worktree、搜索、文件与差异面板、设置、技能、MCP、定时任务、通知、更新和故障排查。当用户询问 Windows、macOS 或 Linux 图形界面的操作方法时使用。不要用终端 TUI 的命令代替 Desktop 界面操作。" +description: "说明 ACECode Desktop 和共享 Web 界面的操作,包括任务、文件、模型、权限、记忆、蜂群、定时任务、消息通道、虚拟办公室、快捷键和更新排错。用户询问图形界面操作时使用;区分原生桌面能力与直接 Web 的限制,不用 TUI 专属命令代替界面操作。" --- # ACECode Desktop 使用指南 @@ -8,6 +8,10 @@ description: "说明 ACECode Desktop 原生桌面应用的用法,包括工作 说明 ACECode 原生桌面应用的操作方法。以当前 Desktop 界面中实际可见的控件和行为为准, 不要照搬终端 TUI 的命令或快捷键,因为两个界面的功能范围并不完全相同。 +内容核对日期:2026-10-09。涉及记忆、侧边聊天、蜂群、定时任务、消息通道、虚拟办公室、 +快捷键、Responses、HTML 预览或更新时,按需读取 [功能操作说明](references/features.md)。 +仓库中的离线帮助手册入口为 `docs/help/index.html`,正文源为 `docs/help-source/`。 + ## 按当前界面回答 - 将 `acecode-desktop.exe`、`acecode-desktop` 和 `ACECode.app` 视为由原生外壳、 @@ -15,8 +19,8 @@ description: "说明 ACECode Desktop 原生桌面应用的用法,包括工作 - 先给出最短的界面操作步骤,再补充相关选项。 - 明确区分工作区、任务/会话、Git worktree 和定时任务。 - 不要声称新建任务会自动创建目录或 Git worktree。 -- 不要在 Desktop 中推荐仅 TUI 支持的 `/model`、`/mode`、`/resume`、 - `/memory` 或 `/theme`。应改用模型选择器、权限选择器、侧边栏、搜索或设置页。 +- 不要在 Desktop 中推荐仅 TUI 支持的 `/model`、`/mode`、`/resume` 或 `/theme`。 + 应改用模型选择器、权限选择器、侧边栏、搜索或设置页。`/memory` 已支持 Desktop/Web。 - 如果可以读取当前仓库,并且问题涉及容易变化的细节,应检查: - `web/src/`:界面控件和快捷键 - `web/src/lib/settingsNavigation.js`:设置页分类 @@ -73,6 +77,8 @@ Git 仓库,再查看任务中显示的错误。 - 在原生 Desktop 中使用添加按钮附加图片、文件或目录。 - 将文件拖入输入框也可以添加附件。 - 当前任务需要网页信息时,可加入已连接浏览器的上下文。 +- 文件引用标签可以与文字一起选择、复制、剪切、删除和撤销;拖入后可以继续输入。 + `/goal` 或加号菜单选项转换为底部标签时会短暂反馈,不会自动提交任务。 如果用户实际使用的是浏览器中的 Web UI,而不是原生 Desktop,应说明浏览器版支持的附件 类型可能少于原生应用。 @@ -81,15 +87,18 @@ Git 仓库,再查看任务中显示的错误。 Desktop 支持以下三条特殊消息命令: -- `/turn <插话内容>`:在下一个模型边界调整当前主任务的方向。 -- `/btw <问题>`:发起一次与主任务分离的旁问。 +- `/turn <指导内容>`:中断当前回合并立即提交新的指导。 +- `/btw <问题>`:打开与主任务分离的侧边聊天浮窗,可继续追问。 - `/side <问题>`:`/btw` 的别名。 需要改变当前工作方向时使用 `/turn`。只是临时问一个不应影响、取消或替换主任务的问题时, 使用 `/btw` 或 `/side`。 -任务执行期间发送普通消息时,该消息可能进入队列。不要把普通排队消息描述成与 `/turn` -完全等价。 +任务执行期间发送普通消息时,该消息可能进入队列。排队卡片的 **插话** 在下一模型边界补充 +当前回合;`/turn` 使用中断后立即提交指导的路径。普通排队、插话和 `/turn` 要分别说明。 + +侧边聊天可使用受限的文件读取、搜索和 LSP 工具,不能写文件、执行 Shell、调用 MCP 或派生 +子代理。浮窗中的停止只停止旁问;最小化停止生成并保留当前会话的临时记录,切换主会话会清空。 ## 选择权限 @@ -113,6 +122,7 @@ Desktop 内置命令菜单只提供一组聚焦的命令: - `/goal`:管理长期目标。 - `/plan`:进入计划模式。 - `/lsp`:查看语言服务器集成。 +- `/memory`:查看和管理全局、工作区记忆,或对当前会话开关记忆。 - `/rc` 或 `/remote-control`:管理远程控制。 - `/turn`、`/btw` 和 `/side`:控制当前任务或发起旁问。 @@ -138,6 +148,10 @@ Desktop 内置命令菜单只提供一组聚焦的命令: 已归档会话位于 **设置 > 已归档会话**。 +置顶按钮在任务行悬停或获得键盘焦点时出现。长列表按需展开,还可收起。 +已归档会话支持搜索、工作区筛选和组内时间排序;分组顺序跟随侧边栏。 +全选只选中当前筛选结果,批量恢复或删除失败的记录会保留供重试。 + 会话右键菜单包含置顶/取消置顶、重命名、复制标题、复制 ID 和归档。消息右键菜单可以复制 内容,或使用 **从这里分叉** 创建新任务。 @@ -162,6 +176,10 @@ Desktop 内置命令菜单只提供一组聚焦的命令: 文件和目录右键菜单可以复制路径或将其加入对话上下文。工具结果右键菜单可以复制当前可见 输出或完整输出。折叠内容中缺少所需诊断信息时,优先复制完整输出。 +文件路径面包屑可逐级进入目录。支持原生 Agent 浏览器时,HTML/HTM 文件预览工具栏的 +浏览器图标会用 `file://` 打开磁盘上的文件;有未保存修改时先处理保存、不保存或取消。 +长会话先显示最近内容,向上滚到历史边界会加载更早记录;底部悬浮箭头返回最新消息并恢复跟随。 + 通过对话流中现有的状态信息和工具卡片跟踪进度。不要另行虚构一个重复的固定进度面板。 ## 打开设置 @@ -170,11 +188,14 @@ Desktop 内置命令菜单只提供一组聚焦的命令: - **常规**:应用行为和通知。 - **外观**:主题和显示偏好。 +- **快捷键**:按操作名称或组合键搜索快捷键。 - **配置**、**个性化**:ACECode 行为和个性化说明。 +- **虚拟办公室**:Windows/macOS 桌面端的办公室显示开关,默认关闭。 - **使用情况**:使用量信息。 - **技能**:管理全局和工作区技能。 - **MCP 服务器**:管理 MCP 配置和状态。 - **连接器**:管理已连接服务。 +- **消息通道**:连接和管理 QQ、微信、飞书、钉钉、Telegram、Discord、LINE。 - **模型**:配置提供商和模型。 - **工具**:配置工具。 - **钩子**:配置钩子。 @@ -193,9 +214,9 @@ Desktop 内置命令菜单只提供一组聚焦的命令: - 新增或修改文件后刷新技能发现。 - 为技能编写准确的描述,使 ACECode 能在正确的请求中选中它。 -内置 seed 技能只会在 ACECode 首次创建 `~/.acecode` 用户目录时安装。应用升级不会覆盖 -现有技能,也不会自动把后来新增的 seed 技能补装到已有用户目录。现有用户需要显式复制 -或安装新技能。 +启动新版 ACECode 时,会按内置资源版本补装缺失技能、更新仍与上次安装内容一致的内置技能。 +用户修改过的技能会保留;存在同名自定义目录时也不会直接覆盖。升级后仍看到旧说明时,先刷新 +技能发现并核对实际加载路径和本地修改,不要删除整个技能目录或用户数据。 ## 管理 MCP 服务器和连接器 @@ -214,6 +235,9 @@ Desktop 内置命令菜单只提供一组聚焦的命令: 打开定时任务页面,或从快捷菜单选择 **定时任务**。 +**智能添加定时任务**会打开带 `scheduled-task` 技能的未发送草稿。补齐时间和天数后提交, +由内置创建工具询问执行权限;只有返回创建成功后才算已保存。也可选择 **手动添加**。 + 按需配置: - 模板或自定义提示词; @@ -224,8 +248,10 @@ Desktop 内置命令菜单只提供一组聚焦的命令: - 单次、间隔或定时触发方式; - 界面提供的有效时间范围。 -Desktop 定时任务的权限选择少于普通任务,通常只提供默认审批或完全访问。保存后可以启用、 +Desktop 定时任务只提供默认权限或完全访问,新建表单默认完全访问,保存前核对允许的操作。 +保存后可以启用、 停用定时任务,并查看运行记录。除非调度设置明确要求立即运行,否则不要声称保存定时任务后会马上执行。 +daemon 需在到期时运行,离线错过不补跑;停用只影响后续计划,停止当前执行需进入关联任务。 ## 使用通知、托盘和更新 @@ -235,8 +261,9 @@ Desktop 可以在任务完成、请求权限或提出问题时发送系统通知 启用“关闭到托盘”后,关闭窗口可能只是把 ACECode 隐藏到系统托盘。需要彻底退出时,使用 托盘菜单、快捷菜单中的 **退出**,或操作系统提供的明确退出操作。 -使用 **检查更新** 或 **关于** 检查新版本。更新流程可以下载、应用并重启应用。应用更新前, -先保存或提交工作区中的重要改动。 +使用 **检查更新** 或 **关于** 检查新版本。发现更新后,入口位于侧边栏底部、问题反馈左侧, +下载中显示进度。下载和安装准备阶段可取消,开始替换程序后不可取消;慢速下载没有固定的 +30 秒总时限。更新前先保存工作。MSIX 安装由商店管理更新;不据此宣称产品已在商店上架。 ## 使用诊断快捷键 @@ -248,10 +275,9 @@ Desktop 可以在任务完成、请求权限或提出问题时发送系统通知 ## 遵守当前 Desktop 边界 -- Desktop daemon 会话目前没有与 TUI 完全一致的持久记忆支持,不要承诺 `/memory` - 可以在 Desktop 中使用。 +- Desktop/Web、TUI 和 headless 共用全局与工作区记忆;自动摘要默认关闭,需显式开启。 - Desktop 和 TUI 的命令注册表本来就不同。 -- 不使用工作区的任务是有效的,但无法访问工作区文件。 +- 不使用工作区的任务是有效的,不会自动提供某个项目的文件树和 Git 上下文;仍可显式引用允许访问的路径。 - `@目录/` 只提供目录路径上下文,不代表递归上传。 - 一个托管 daemon 服务应用中的多个工作区,不要按“每个工作区一个 daemon”排查。 - Worktree 和定时任务都是显式选择,在出现复选框的地方默认关闭。 diff --git a/assets/seed/skills/acecode/acecode-desktop-usage/references/features.md b/assets/seed/skills/acecode/acecode-desktop-usage/references/features.md new file mode 100644 index 000000000..a32cbc942 --- /dev/null +++ b/assets/seed/skills/acecode/acecode-desktop-usage/references/features.md @@ -0,0 +1,123 @@ +# 功能操作说明 + +按用户问题阅读对应章节。核对范围为 2026-10-01 至 2026-10-09 的 OpenSpec 与当前源码。 +安装版本较旧时,以该版本可见入口为准。 + +## 记忆与个性化 + +- **设置 > 个性化 > 记忆**:开关使用记忆,查看全局和当前工作区条目,点击条目查看、编辑或删除。 + 作用域重置会清空该范围的条目、索引和观察,需在界面确认,不影响另一个范围。 +- 全局目录为 `~/.acecode/memory/`;工作区目录为 `~/.acecode/projects/<工作区标识>/memory/`。 + 同一工作区的 ACECode worktree 共用工作区记忆,无工作区任务只用全局记忆。 +- `/memory list`、`view 名称`、`forget 名称`、`reload` 在 TUI 和 Web/Desktop 可用。 + `/memory edit 名称` 在 Desktop 提示前往个性化设置,在 TUI 调用编辑器。 +- `/memory off` 和 `/memory on` 控制当前会话,恢复会话后仍保留该选择。 +- 记忆上下文在会话首次请求时形成快照,中途写入不会立刻改写已有快照;新会话或压缩后重建。 + `memory_read` 可直接读取最新磁盘条目。 +- **记忆摘要**默认关闭,开启后会额外调用模型;空闲约 30 分钟后提炼观察,再批量整合。 + 可选摘要模型,查看待整合数量、最近时间和错误。`/memory flush` 立即整理,未开启摘要时只给说明。 +- 记忆属于历史信息,依赖其中路径、命令或项目状态前先核实,以用户当前指令为准。 + +## 侧边聊天与主任务控制 + +- 从会话右上角气泡按钮、打开工具菜单或 `/side`、`/btw` 打开浮窗,可拖动、调整大小、继续追问。 +- 每次提问结合主任务当前安全上下文快照与先前有效旁问记录,不写入主任务历史,也不改变主任务目标。 +- 支持的只读工具为 `file_read`、`grep`、`glob`、`lsp`,还受当前能力和路径规则限制。 + 需要确认的读取会被拒绝;写入、Shell、MCP、子代理操作应回到主对话。 +- 生成时可停止;最小化停止生成并保留临时记录;清空会停止并移除记录;切换主会话会清空。 + 不将浮窗记录承诺为持久化会话。TUI 的 `/side`、`/btw` 仍为单次旁问。 +- 普通消息在忙碌时排队;卡片的插话在下一模型边界补充当前回合,`/turn` 则中断当前回合 + 并立即提交指导。停止和中断都不会撤销已发生的文件写入。 + +## 蜂群模式 + +输入框加号菜单提供互斥的 **蜂群模式(星型)**、**蜂群模式(网状)**,也可关闭。 + +- 星型:主代理拆分并汇总,一层子任务,适合独立分工。 +- 网状:子代理可继续派生下级、互相通信和接受后续任务,适合分层协作。 +- 选择随会话保存;开启模式本身不立即派生任务。仍有活动子代理时不能关闭网状模式。 +- 默认同时驻留 4 个代理,包含主代理;这是同时加载数量,不是整棵树只能有 4 个历史任务。 + 空闲代理可暂时卸载,需要时恢复。 +- 在 **后台任务**查看子任务、打开会话、停止任务并处理带来源的权限请求和提问。 + 子会话长期保留,跟随主会话归档/删除,不能单独归档或删除。 +- 子代理共享工作目录,独立上下文不代表独立 worktree。需要并行写入时明确文件责任范围。 +- TUI 使用 `/swarm star|mesh|off`;headless 使用 `--swarm star|mesh|off`。 + Desktop 优先使用加号菜单,不假设存在 TUI 的全部斜杠入口。 + +## 智能定时任务 + +**定时任务 > 智能添加定时任务**只预填草稿,用户补全时间与任务内容并发送后才开始创建。 +也可直接要求“每天上午 9 点检查此项目”,由 `scheduled-task` 技能调用内置工具。 + +- 具体时间、天数不能保留为 `X点`、`X天`。核对时区、有效期和下一次执行时间。 +- 创建工具会询问执行权限,可选默认权限或完全访问;只有成功结果才表示任务已保存。 +- 手动表单的新任务默认完全访问,保存前主动检查。worktree 默认关闭。 +- 保存后在定时任务页查看、修改、停用、删除和查看运行记录,不需要让创建聊天一直等待。 +- daemon 必须运行;离线错过不补跑,同工作区已被定时任务占用时可能跳过。 + 不承诺每轮必定新建或复用某个会话。监控任务沿用用户的通知要求。 + +## 消息通道 + +打开 **设置 > 集成 > 消息通道**,支持 QQ、微信、飞书、钉钉、Telegram、Discord、LINE。 +卡片提供连接和管理;连接后的取消连接、更换凭据、机主/访问管理、计数与错误详情集中在管理弹框。 +连接向导和管理弹框通过关闭按钮关闭,点击外部不会关闭。 + +| 平台 | 开始方式与必要条件 | +| --- | --- | +| QQ | 手机 QQ 扫码;也可手填 AppID/AppSecret。平台认证状态影响可用用户与群范围。 | +| 微信 | 微信扫码确认,扫码账号成为唯一机主;仅私聊。 | +| Telegram | 填 BotFather Token,使用绑定链接或手机相机扫码后点开始。 | +| 飞书/Lark | 填 App ID/App Secret;连接在线时配置长连接事件、权限并发布应用。 | +| 钉钉 | 填 Client ID/Client Secret,配置 Stream 模式和机器人权限。 | +| Discord | 填 Bot Token,启用 Message Content Intent,再邀请机器人进入服务器。 | +| LINE | 填 Channel ID/secret,启用 Webhook;需要公网 HTTPS 地址或已安装 cloudflared 的临时隧道。 | + +除 LINE 的回调需求外,由本机主动连接;各平台使用 ACECode 的代理设置。飞书、钉钉、Discord、 +LINE 通过向导的一次性六位绑定码绑定机主。陌生人和群需批准;群内通常还需 @机器人及成员授权。 +同一飞书/钉钉应用不要同时连到多个机器人客户端,以免消息被分流。 + +聊天内常用 `/help`、`/status`、`/stop`、`/new`、`/sessions`、`/resume 编号`、`/model 名称`; +`/approve`、`/deny`、`/aq` 处理确认或提问,具体参数以 `/help` 为准。 +机主可切换任意会话,其他人只可切换自己的会话;同一会话不能同时绑定多个 IM 会话。 +侧边栏使用平台图标标识绑定;Desktop 中产生的回复也可能发回已绑定聊天。 + +原有渠道插件的 `/rc` 及 Webhook 配置是另一路接入;不要拿插件命令表替代内置 IM 命令表。 +真实账号可用性还依赖平台配置和网络,不能将本地模拟测试描述为所有平台都完成实测。 + +## 虚拟办公室 + +Windows/macOS 原生 Desktop 支持,默认关闭。首次邀请可以拒绝,之后仍可从左下角齿轮菜单的 +**显示虚拟办公室**或 **设置 > 虚拟办公室 > 开启虚拟办公室**打开;直接 Web/Linux 不提供同等原生窗口。 + +- 办公室展示真实主任务、星型/网状成员、工具活动、思考/回复、等待确认和交接状态。 +- 默认跟随当前会话,也可选择最近会话并固定观察;布局和角色外观按会话保持稳定。 +- 顶部控制在悬停或键盘聚焦时出现,鼠标离开约 1 秒后隐藏。 +- 默认置顶;取消置顶后普通窗口可以覆盖它,缩放不会重新置顶。 +- 关闭按钮只关闭办公室,主窗口、任务和 daemon 继续运行;菜单与设置开关同步,可再次打开。 +- macOS 的功能入口不等于每个版本已完成实机验收,诊断时仍核对平台和安装版本。 + +## 快捷键、模型与文件 + +**设置 > 快捷键**或 `Ctrl+/` 打开可搜索目录。macOS 将下表 Ctrl/Alt 对应为 Cmd/Option, +控制台仍使用 Ctrl+反引号。 + +| 操作 | Windows/Linux | +| --- | --- | +| 当前工作区新建会话 | Ctrl+Alt+N | +| 聚焦主输入框并保留草稿 | Ctrl+Alt+I | +| 显示/隐藏左侧栏、右侧面板 | Ctrl+Alt+B、Ctrl+Alt+E | +| 打开设置 | Ctrl+, | +| 停止当前会话 | Ctrl+Shift+. | +| 前进、后退 | Ctrl+-、Ctrl+Shift+- | +| 增加、降低思维深度 | Ctrl+Alt+>、Ctrl+Alt+< | + +思维深度只在模型支持的档位间调整,到边界停止;运行中修改影响后续请求。模型保存、刷新和 +进入新对话时会异步同步远端声明,失败保留本地配置;用户明确关闭推理的选择不会被自动打开。 + +OpenAI 类型模型在 **设置 > 模型 > 新增/编辑 > API 协议**选择 Chat Completions 或 Responses。 +旧预设默认 Chat Completions,不按模型名称自动切换。Responses 的 Base URL 模式填写基础地址, +完整端点模式填写完整请求地址;只改 URL 不能代替选择协议。保存前用检测验证连接。 + +HTML/HTM 预览的浏览器图标在原生浏览器可用时出现,打开保存的本地 `file://` 文件。 +取消保存或保存失败不会创建页签;无法访问的本地资源、需要服务端接口的应用仍需相应开发服务器。 +长会话先加载最近一页,向上滚动加载更早记录,悬浮向下箭头回到最新内容;运行中箭头可显示三点状态。 diff --git a/assets/seed/skills/acecode/acecode-tui-usage/SKILL.md b/assets/seed/skills/acecode/acecode-tui-usage/SKILL.md index c1add3cf1..3c8ab1d96 100644 --- a/assets/seed/skills/acecode/acecode-tui-usage/SKILL.md +++ b/assets/seed/skills/acecode/acecode-tui-usage/SKILL.md @@ -5,6 +5,9 @@ description: "Explain how to use ACECode in a terminal, including the interactiv # ACECode TUI Usage +Verified against repository source on 2026-10-09. The offline user manual is +`docs/help/index.html`; its CLI and reference pages distinguish terminal and Desktop controls. + Give instructions for ACECode's terminal surfaces. Keep TUI guidance separate from ACECode Desktop guidance, because their commands, controls, and supported features are not identical. @@ -82,13 +85,18 @@ Common options: - `--model `: override the configured model. - `--permission-mode default|accept-edits|plan|yolo`: select a permission mode. - `--max-turns `: cap agent turns. -- `--disable-tools`: run without built-in tools. -- `--enable-skills`: enable skill discovery in headless mode. -- `--enable-mcp`: enable configured MCP servers in headless mode. +- `--swarm star|mesh|off`: select the session's swarm mode. +- `--disable-tools `: disable the named built-in tools. +- `--enable-skills `: enable the named installed skills. +- `--enable-mcp `: enable the named configured MCP servers. Headless mode enables normal system tools by default, but skills and MCP are disabled unless explicitly enabled. +Names are exact and may be comma-separated. Discover them without starting a model +request with `acecode -p --list-tools --list-skills --list-mcp`. Listing cannot be +combined with execution options or a prompt. A bare enable/disable flag is invalid. + ## Use Permission Modes Press `Shift+Tab` in the TUI to cycle through permission modes: @@ -121,8 +129,8 @@ used only in a deliberately isolated environment. `Enter` to add the reference, and `Right` or `Tab` to descend into a folder. When the model is already working, submitting another message queues it. Use -`/turn`, not a queued ordinary message, when the intent is to alter the active -turn at its next model boundary. +`/turn ` to interrupt the active turn and submit immediate guidance. +The Desktop queue card's steer action instead applies at the next model boundary. ## Cancel or Exit @@ -180,10 +188,17 @@ include: - `/goal`: create, inspect, pause, resume, edit, or clear a long-running goal. - `/plan`: enter Plan mode. -- `/turn `: steer the active main turn at its next model boundary. +- `/turn `: interrupt the active main turn and submit guidance immediately. - `/btw ` or `/side `: ask a detached one-turn side question. These do not steer or replace the active main turn. +- Side questions may use registered, permitted `file_read`, `grep`, `glob`, and + `lsp` tools. They cannot run shell, write, MCP, or subagent tools; a read that + requires approval is refused. Desktop's multi-turn floating UI is separate. - `/tasks`: list, abort, or clear background subagent tasks. +- `/swarm star|mesh|off`: select star (one-level delegation), mesh (nested agents + with messages and follow-up tasks), or off; `/swarm` displays the current mode. + Mode persists with the session. Mesh cannot be disabled while descendants are active. + Its default four resident agents include the root, not a lifetime limit of four tasks. ### Integrations and Project Setup @@ -216,6 +231,43 @@ Put each skill in its own directory with a `SKILL.md` file. Use `/skills reload` after adding or editing a skill while ACECode is running. Prefer a precise skill description so ACECode can select it for the right requests. +Newer packaged seed revisions install missing built-in skills and update unchanged +managed copies at startup. User-modified or conflicting custom copies are preserved. +Refresh discovery and check the loaded path before diagnosing an outdated help skill. + +## Use Shared Memory + +TUI, Desktop/Web, and headless use the same memory system when enabled. Global +memory lives in `~/.acecode/memory/`; workspace memory in +`~/.acecode/projects//memory/`. ACECode worktrees share their parent +workspace's memory. A session without a workspace uses global memory only. + +- `/memory list`, `/memory view `, and `/memory reload`: inspect or rescan entries. +- `/memory edit `: open the entry in the configured editor. +- `/memory forget `: delete the entry and prevent automatic regeneration for + the configured tombstone period (default 90 days). +- `/memory off` / `/memory on`: persistently disable/enable memory for this session. +- `/memory flush`: immediately extract and consolidate observations when memory + summarization is enabled; otherwise explain how to enable it without a model call. + +Automatic memory summarization is off by default and makes additional model calls +when enabled. Desktop's Settings > Personalization > Memory controls it. Idle +sessions become eligible after about 30 minutes. The model-facing index is a stable +snapshot until a new session or compaction; `memory_read` reads current disk entries. +Memory is historical context; verify paths and commands and honor current instructions. + +## Model Protocol and Recovery + +OpenAI profiles can set `api_protocol` to `chat_completions` (default) or `responses`. +Select the saved profile with `/model NAME` or `--model NAME`; changing only its URL +does not convert the protocol. The Desktop model editor exposes API protocol and +connection testing. Other provider types do not accept the OpenAI-specific option. + +For request failures, distinguish transient rate limits from exhausted quota or +unsupported parameters. Stop can cancel retry waiting; compaction does not cure a +rate limit. Successful compaction refreshes the context snapshot without deleting +the visible transcript; failed compaction must not be treated as success. + ## Use MCP Support - Configure MCP servers in ACECode configuration, then use `/mcp` to inspect their diff --git a/docs/daemon-api.md b/docs/daemon-api.md index 1cacfebf2..455a8a8d9 100644 --- a/docs/daemon-api.md +++ b/docs/daemon-api.md @@ -1310,6 +1310,14 @@ snapshot, rather than a separate overview followed by a start notice. System notices start collapsed independently of the general message-collapse setting; unrelated notices are never folded into tool activity summaries. +`context_preserved_waiting` means a request below 40,000 estimated tokens was +rejected for context size and is being retried with its history and tools intact. +These requests do not lower the learned budget or enter automatic compaction, +history pruning, or a reduced request profile. Automatic compaction applies a +40,000-token floor to its final trigger; `context_threshold_lowered.params.threshold` +reports that final trigger rather than the underlying learned window. Explicit +manual compaction remains available below the floor. + Compact checkpoints are append-only. Version 2 records the Codex-shaped replacement model history together with `window_number`, `first_window_id`, `previous_window_id`, and `window_id`. Resume and fork start from the newest @@ -4948,11 +4956,13 @@ messages. While waiting, the payload is: "retry_attempt": 12, "retry_delay_ms": 1200000, "retry_at_ms": 1783153200000, - "retry_max_attempts": -1 + "retry_max_attempts": 0 } ``` -`retry_max_attempts: -1` means the count is unbounded. Immediately before the +Non-positive `retry_max_attempts` means the count is unbounded (current providers +use `0`; older events may contain `-1`). Small rejected requests use 5, 10, 20, +40, then 60-second waits, with no retry-count limit. Immediately before the next attempt, another `agent_progress` frame changes `phase` back to `model_waiting` (or `compacting`) and sets `retry_delay_ms` to zero. The retry wait is cancellable through the existing abort/stop path. A replay also emits diff --git a/docs/desktop-agent-office.md b/docs/desktop-agent-office.md index dc70ad38b..591592f39 100644 --- a/docs/desktop-agent-office.md +++ b/docs/desktop-agent-office.md @@ -24,6 +24,8 @@ Windows 与 macOS Desktop 可开启一个透明的像素办公室,默认关闭 macOS 版(`src/apps/desktop/desktop_pet_mac.mm`,ARC 编译)用非激活 NSPanel + WKWebView 承载同一份页面:文档开始前注入 `window.chrome.webview` 垫片,页面代码不分平台;透明区域的点击穿透靠定时检测鼠标是否落在房间、控制条或页面上报的浮层里,再切换 `ignoresMouseEvents`;拖动与把手缩放由定时器跟随鼠标。默认 1.25 倍(约 430×315 点),设置存 `~/Library/Application Support/ACECode/desktop-pet/settings.json`。 +macOS 在原生左键按下时保留鼠标接收和原始窗口位置,防止异步拖动消息到达前被切换成点击穿透。注入桥为画布及缩放把手捕获 pointer,画布以页面坐标判断 4 点拖动阈值;松开、取消、页面重载和关闭都清理交互状态。把手的方向光标由 AppKit 设置,位置随窗口比例变化、命中大小保持 16 点;未置顶且被其它窗口覆盖时不改动其它窗口的光标。 + 数据链为:会话元数据/事件分发器 → `GET /api/desktop-office` → App 级办公室控制器 → 原生 WebView 桥 → 像素场景。控制器复用现有引用计数 WS 订阅,事件触发刷新并以 3 秒轮询兜底;正在加载旧记录时短间隔继续读取。快速切换以请求代次和取消信号隔离迟到响应;隐藏或页面卸载释放订阅和计时器,重开/重载从原生缓存恢复当前选择与跟随状态。 Windows/macOS 共用 `desktop_office_service.hpp` 管理偏好、桥和可重建窗口。桥在主页面导航前注册,避免 WKWebView 首次加载时漏掉会话联动。`enabled` 和 `welcome_seen` 原子保存到桌宠目录的 `office.json`,与现有 `settings.json` 缩放设置分开;Windows 目录为 `%LOCALAPPDATA%/ACECode/desktop-pet`,macOS 为 `~/Library/Application Support/ACECode/desktop-pet`。 @@ -37,3 +39,5 @@ Windows/macOS 共用 `desktop_office_service.hpp` 管理偏好、桥和可重建 ## macOS 接续验证 本次在 Windows 完成原生窗口与 Web 交互验证;macOS 的源码已同步,尚未在 Mac 编译或运行。Mac 接续时先构建 `web/` 再配置/构建 Desktop。确认默认不出现办公室;菜单开启后选择、切换真实会话,检查标题、主/子角色和工作气泡;叉号关闭后从设置重新开启,检查继续跟随;退出重启检查开关持久化。版本达到 0.9.37 后首次提示应出现一次,关闭/拒绝后不再自动提示,预览关闭后也不保留 iframe。测试一次性提示时使用独立测试用户配置,勿删除日常偏好。 + +2026-10-09 鼠标修复的可移植 C++、Chromium 和 Windows WebKit 验证见 [修复验证记录](../openspec/changes/fix-macos-desktop-pet-pointer/verification.md)。Mac 仍需确认:ACECode 未激活时把手显示对角缩放光标;快速拖过透明角落和窗口外再松开、连续再次拖动正常;把手双击重置、普通角色点击及菜单按钮正常;取消置顶后被其它应用覆盖时不干扰光标;关闭/重开及跨显示器后交互正常。Windows 上的 WebKit 测试不等于 macOS NSPanel/WKWebView 实机验收。 diff --git a/docs/help-authoring.md b/docs/help-authoring.md index 25280a721..d64078284 100644 --- a/docs/help-authoring.md +++ b/docs/help-authoring.md @@ -4,13 +4,13 @@ ## 内容范围 -按用户 2026-09-05 提供的修订目录完成 7 个栏目、50 篇文章。所有二级文章都可阅读,指定的三级目录对应文章内二级标题,同时显示在左侧的文章展开项中。 +沿用用户 2026-09-05 提供的修订目录及后续删栏决定,现有 7 个栏目、49 篇文章。2026-10-09 对 10 月 1 日至 9 日的规格和源码完成内容同步,逐项依据见 [本期核对清单](help-source/updates-2026-10-09.md)。所有二级文章都可阅读,指定的三级目录对应文章内二级标题,同时显示在左侧的文章展开项中。 | 栏目 | 文章数 | 内容 | | --- | --- | --- | | 开始使用 | 4 | 认识、安装、快速开始、更新与卸载 | | 使用 ACECode | 8 | 桌面、TUI、CLI、Web、上下文、工作区、Git、用量 | -| 模型与服务商 | 6 | 概念、ACEModel、其他服务商、预设、能力、模型池 | +| 模型与服务商 | 5 | 概念、ACEModel、其他服务商、预设、能力 | | 配置与扩展 | 12 | 配置、权限、代理、外观、规则、记忆、工具、技能、MCP、LSP、Hooks、连接器 | | 进阶使用 | 6 | 专家、蜂群、定时任务、浏览器、消息渠道、实战 | | 帮助与排错 | 8 | 常见问题、五类排错、反馈、速查 | @@ -24,7 +24,7 @@ - group1.py 至 group7.py:七个栏目的正文;部分较长栏目拆为辅助模块。开始使用正文保存在 getting-started.json。 - [common.py](help-source/common.py):段落、表格、代码块和图片占位的生成辅助函数。 - [shell.html](help-source/shell.html):共同的页头、导航、目录、搜索和页脚。 -- [build_help.py](help-source/build_help.py):生成 50 个完整 HTML、全文搜索索引、逐篇依据与配图计划。 +- [build_help.py](help-source/build_help.py):生成 49 个完整 HTML、全文搜索索引、逐篇依据与配图计划。 - [sources.json](help-source/sources.json):每篇文章所核对的项目源文件。 - [captures.json](help-source/captures.json):Computer Use 原始截图的路径、应用、版本、采集时间和尺寸。 - [screenshot-map.json](help-source/screenshot-map.json):稳定配图编号与本地原图的对应关系、图注和待补辅助画面。 @@ -40,7 +40,7 @@ python docs/help-source/build_help.py Python 仅供维护者生成文档。读者直接打开 HTML,不需要 Python。生成器检查文章完整性、明确的小节名称与顺序、源文件存在性、正文基本长度和图片编号唯一性。 -修改正文后重新生成,不单独改某个输出 HTML,以免下一次生成覆盖。导航、页内目录、上一篇/下一篇以及搜索条目都会同步更新。全文及小节搜索当前共 207 条;description 是结果摘要,text 是检索正文。站内文章、锚点与资源都使用相对路径。 +修改正文后重新生成,不单独改某个输出 HTML,以免下一次生成覆盖。导航、页内目录、上一篇/下一篇以及搜索条目都会同步更新。全文及小节搜索当前共 210 条;description 是结果摘要,text 是检索正文。站内文章、锚点与资源都使用相对路径。 正文、栏目导航和页内目录保存在每个 HTML 中,关闭 JavaScript 后仍可阅读;运行时不请求 JSON、模板或内容接口。 @@ -68,7 +68,9 @@ assets/theme.js 负责首屏主题和渐进增强标记;assets/docs.js 负责 ## Windows 实拍与待补画面 -55 处配图沿用 GS、UI、MD、CF、AD、TS、DV 编号。目前 40 处已接入 43 张本地 JPEG 原图,其中 8 个图组还缺辅助画面;15 处保留带标题和说明的占位。所有内容原图都由 Computer Use 操作 Windows 应用后采集,没有生成、重绘或拼接产品状态。导航和按钮的内联 SVG 仍为功能图标。 +54 处配图沿用 GS、UI、MD、CF、AD、TS、DV 编号。目前 44 处已接入 48 张本地原图(43 张 JPEG、5 张 PNG),10 处保留带标题和说明的占位。部分图组仍缺辅助画面,详见自动生成的配图计划。原图来自 Computer Use 或有记录的用户手动截图;标注图在采集记录中说明,没有生成产品状态。导航和按钮的内联 SVG 仍为功能图标。 + +2026-10-09 本次只更新正文,没有补拍图片。旧导航、文件面板、侧边聊天和蜂群截图已注明版本差异,原图字节保持不变;虚拟办公室、快捷键和通道管理等新界面尚未补拍,不将旧截图当作当前界面的实测证据。 桌面截图来自实际运行的 ACECode v0.9.11。安装向导来自本机已有的 v0.9.6 安装包,图注明确版本,查看后取消,未执行安装。示例工作区 hello-acecode 实际完成欢迎消息修复及 3 项测试;代码执行结果、网络重试、排队消息、侧边聊天和循环失败记录均为实际画面。 @@ -94,17 +96,17 @@ assets/theme.js 负责首屏主题和渐进增强标记;assets/docs.js 负责 - 默认后台端口 12399 与当前 Vite 开发代理目标 28080。 - HTTP 202 入队、WebSocket completed/error/aborted 终态,以及 client_message_id 不提供执行去重。 -下载链接使用官方发布列表,不固定某个版本为最新版。外部链接只在读者主动打开时访问;文档阅读、搜索与页面控制不依赖外网。本次使用实际应用补拍配图,没有修改应用源码或发布网站。 +下载链接使用官方发布列表,不固定某个版本为最新版。外部链接只在读者主动打开时访问;文档阅读、搜索与页面控制不依赖外网。此前曾使用实际应用补拍配图;本次仅同步帮助内容与内置技能,没有修改应用源码或发布网站。 ## 打包与验证 -将 help 下 50 个 HTML 文件、assets 中 4 个 CSS/JavaScript 文件以及 assets/screenshots 中 43 张已核对的 JPEG 原图打包到 ZIP 的 acecode-help 目录,共 97 个文件。打包白名单从 tree.json 和 captures.json 生成,后续补图时同步更新计数。不要加入内容源、维护文档、文档预览截图、测试脚本、Python 缓存或本机运行数据。 +将 help 下 49 个 HTML 文件、assets 中 4 个 CSS/JavaScript 文件以及 assets/screenshots 中 48 张已核对的 JPEG/PNG 原图打包到 ZIP 的 acecode-help 目录,共 101 个文件。打包白名单从 tree.json 和 captures.json 生成,后续补图时同步更新计数。不要加入内容源、维护文档、文档预览截图、测试脚本、Python 缓存或本机运行数据。 验证要求: -1. 7 个栏目、50 篇文章及全部指定三级目录的名称和顺序正确。 +1. 7 个栏目、49 篇文章及全部指定三级目录的名称和顺序正确。 2. 所有本地资源、相对链接、锚点、翻页与搜索结果指向有效内容。 -3. 55 处配图编号唯一;原图文件、SHA-256、替代文本与固有尺寸匹配,剩余占位有明确原因,无远程资源请求。 +3. 54 处配图编号唯一;原图文件、SHA-256、替代文本与固有尺寸匹配,剩余占位有明确原因,无远程资源请求。 4. file 协议且离线时,在 1440、1024、768、375px 逐页检查阅读与页面溢出。 5. 检查明暗主题字号灰阶、三级目录键盘操作、全文搜索、页内定位与手机抽屉。 6. 禁用 JavaScript 后逐页检查正文与导航;剪贴板拒绝时显示真实的手动复制反馈。 @@ -112,3 +114,9 @@ assets/theme.js 负责首屏主题和渐进增强标记;assets/docs.js 负责 8. 解压 ZIP 后检查全部文件字节与源码输出一致,并从解压目录再次打开与搜索。 浏览器检查使用独立离线 Chromium,不依赖 ACECode 后台。文档预览截图与验证报告保存在本次任务输出目录,不混入 HTML 包;实际产品截图随包分发。应用源码未改动,因此文档验证不声称完成了应用构建或尚未拍摄功能的运行测试。 + +## 内置帮助技能同步 + +维护 `assets/seed/skills/acecode/acecode-desktop-usage/` 与 `acecode-tui-usage/`。Desktop 的条件功能详解保存在 `references/features.md`,由 SKILL.md 按需引用。技能使用已安装环境中的实际入口,不将 TUI 命令无条件套用到 Web。 + +修改受管技能时同步递增 `assets/seed/seed.version` 与 `MANIFEST.json` 的 `bundle_version`,更新两份 SKILL.md 的规范 LF SHA-256;原始 source_id 保留来源身份。本次 revision 为 `2026-10-09.1`。运行技能校验与现有 seed 清单/隔离用户目录测试;源码更新不表示正在运行或已安装的 Desktop 已经加载新技能,需随后续打包升级分发。 diff --git a/docs/help-source/getting-started.json b/docs/help-source/getting-started.json index 951480969..3284b1bc6 100644 --- a/docs/help-source/getting-started.json +++ b/docs/help-source/getting-started.json @@ -11,13 +11,21 @@ "id": "surfaces", "title": "桌面端、终端与 Web 如何取舍", "html": "
入口适合的工作方式从哪里开始
桌面端在同一个窗口管理工作区、任务、文件预览和面板。桌面端指南
TUI在本地终端或 SSH 会话中以键盘完成交互。进入项目目录,运行 acecode。
CLI脚本或流水线中提交一次任务,获取文本或 JSON 结果。acecode -p --help
Web通过浏览器连接运行 ACECode 的计算机。启动 acecode daemon,打开输出的地址。
\n

Web 中的工作区路径指向运行后台服务的计算机。桌面端具有原生文件选择和浏览器集成,直接 Web 不具备所有桌面专属功能。使用 SSH 时可以选择 TUI,也可以在远端运行后台服务后配置远程 Web 访问。

第一次使用,按安装、快速开始的顺序完成一个小修改,再按需要阅读后续栏目。

" + }, + { + "id": "october-updates", + "title": "10 月功能更新", + "html": "

本轮帮助内容依据 2026 年 10 月 1 日至 9 日的功能规格与源码核对,涵盖 v1.0.1 源码中的以下操作。使用旧版本时先核对应用版本;截图保留原有采集状态,控件位置以正文为准。

\n" } ], "sources": [ "README_CN.md", "docs/user-manual.md", "src/apps/headless/headless_options.cpp", - "docs/agent-browser.md" + "docs/agent-browser.md", + "web/src/lib/appShortcuts.js", + "web/src/components/VirtualOfficeSettings.jsx", + "web/src/lib/slashCommands.js" ], "intro": "" }, @@ -99,7 +107,7 @@ { "id": "check-update", "title": "检查更新结果", - "html": "

桌面端可在设置 > 关于查看当前版本。安装了 CLI 时,可以执行:

终端 · 核对版本
acecode --version
\n
GS-08
截图占位关于页面中的当前版本此处将补充实际界面截图
16 : 9
更新后:查看当前版本,并确认已有模型与任务仍可正常使用。
\n

重新打开一个已有任务,检查模型选择与历史记录。若版本仍是旧的,请确认启动的是刚更新的安装位置,而不是电脑上另一份 ACECode。

" + "html": "

通过检查更新或设置 > 关于检查版本。发现可用更新后,入口位于侧边栏底部、问题反馈按钮左侧;更新中会显示下载进度。下载和安装准备阶段可在更新对话框中取消,开始替换程序文件后不可取消。慢速下载没有固定的 30 秒总时限;如果取消中,等待界面确认结束再重试。

若当前安装是 MSIX,更新由 Microsoft Store 管理,应用不会直接覆盖包内文件。此说明不表示商店已完成上架;普通安装包继续使用其原有更新方式。

桌面端可在设置 > 关于查看当前版本。安装了 CLI 时,可以执行:

终端 · 核对版本
acecode --version
\n
GS-08
截图占位关于页面中的当前版本此处将补充实际界面截图
16 : 9
更新后:查看当前版本,并确认已有模型与任务仍可正常使用。
\n

重新打开一个已有任务,检查模型选择与历史记录。若版本仍是旧的,请确认启动的是刚更新的安装位置,而不是电脑上另一份 ACECode。

" }, { "id": "uninstall", @@ -118,7 +126,10 @@ "npm/desktop/README.md", "docs/macos-release.md", "docs/linux-self-update.md", - "web/src/components/UpdateDialog.jsx" + "web/src/components/UpdateDialog.jsx", + "web/src/components/Sidebar.jsx", + "src/adapters/upgrade/upgrade.cpp", + "src/adapters/upgrade/apply.cpp" ], "intro": "" } diff --git a/docs/help-source/group2.py b/docs/help-source/group2.py index 682303e87..1ac6dd9fd 100644 --- a/docs/help-source/group2.py +++ b/docs/help-source/group2.py @@ -6,14 +6,18 @@ """

打开桌面端后,左侧提供新建任务、定时任务和搜索任务。下方按置顶任务、独立任务和工作区组织已有记录。选择工作区中的任务后,中间显示该任务的对话和输入框。

  1. 第一次使用,进入设置 > 模型,保存一个可用模型。
  2. 选择新建任务,再选择工作区;已有项目也可以从工作区旁的新建入口开始。
  3. 检查输入区下方的模型和权限模式,输入目标后发送。
  4. 任务执行时阅读工具过程;出现权限请求或提问时,在对应控件中处理。
  5. 离开后从侧边栏回到同一个任务,继续补充目标。

侧边栏中的扩展入口包含技能、MCP 服务器和专家组件。设置中的常规、外观、配置、个性化和模型分别管理不同选项。需要重新熟悉界面时,可以在常规页选择重新查看新手指引。

""", + '''

常用操作可在设置 > 快捷键按名称或组合键搜索,也可按 Ctrl+/ 打开。Ctrl+Alt+N 在当前工作区新建会话,Ctrl+Alt+I 聚焦输入框,Ctrl+Alt+B 和 Ctrl+Alt+E 分别切换左右面板。macOS 对应使用 Cmd/Option。完整表见快捷键速查。

''', figure("UI-01", "桌面端导航与任务区域", "在已有任务中截取完整窗口,用编号标出新建任务、搜索任务、工作区、扩展入口、模型与权限控件,以及设置入口。")), section("panels", "文件预览、终端与面板", """

在文件树中点击文件打开详情标签页;点击变更文件则进入差异预览。多个文件可以同时保留在标签栏中,右上角隐藏详情面板会保留当前标签和草稿,再次打开可继续查看。

工作区内的文本和代码直接进入可编辑预览,Markdown 使用相应编辑器。修改后按 Ctrl+S 保存;未保存标签会显示标记。关闭含草稿的标签时,选择保存并关闭、不保存或取消。磁盘文件已被其他程序改动时,先处理冲突提示,避免覆盖新内容。工作区外的绝对文件保持只读预览。

详情标签栏的打开工具菜单提供文件、浏览器和侧边聊天。终端位于独立的控制台区域,可用 Ctrl+` 展开或收起,再通过加号新建终端或选择可用 Shell。终端中的命令由你直接执行,运行前检查当前路径。

文件或目录的右键菜单可添加到会话,把路径插入聊天输入框;选中的文本可引用到聊天。网页操作见Agent 浏览器,任务中的旁支问题见侧边栏对话。

""", - figure("UI-02", "文件编辑、差异预览与控制台", "展示文件树、含未保存标记的文本标签、变更标签和底部控制台。标明隐藏面板与关闭标签是两个不同操作。")) -], ["README_CN.md", "web/src/lib/sidebarNavigation.js", "web/src/components/PreviewDetailsPanel.jsx", "web/src/components/ConsoleDock.jsx", "docs/user-manual.md"]), + '''

文件路径面包屑可以逐级打开目录并选择其他文件;切换前仍会保护未保存草稿。预览 .html 或 .htm 文件时,支持原生 Agent 浏览器的 Desktop 会在换行、复制按钮旁显示浏览器图标。点击后在当前会话的新浏览器页签中,以 file:// 打开磁盘文件;有修改时先选择保存、不保存或取消。取消或保存失败不会打开页面。

''', + figure("UI-02", "文件编辑、差异预览与控制台", "展示文件树、含未保存标记的文本标签、变更标签和底部控制台。标明隐藏面板与关闭标签是两个不同操作。")), + section("virtual-office", "虚拟办公室", + '''

Windows 和 macOS 原生桌面端可用独立的虚拟办公室窗口观察任务活动,默认关闭。首次邀请可选择暂不开启;之后在左下角齿轮菜单选择显示虚拟办公室,或在设置 > 虚拟办公室开启。直接 Web 和 Linux 没有同等原生办公室窗口。

办公室默认跟随当前会话,也可选择最近会话并固定观察。主代理和星型、网状成员会展示实际的思考、回复、工具操作、等待确认和交接状态。完成动画只是状态提示,最终结果仍应回到任务查看。

鼠标移入办公室时显示顶部控件,移出约一秒后隐藏;键盘聚焦时也可操作。默认置顶,取消置顶后普通窗口可覆盖它。关闭按钮只关闭办公室,主窗口、会话和后台继续运行;齿轮菜单和设置开关同步更新,可随时重新打开。

''') +], ["README_CN.md", "web/src/lib/sidebarNavigation.js", "web/src/components/PreviewDetailsPanel.jsx", "web/src/components/ConsoleDock.jsx", "web/src/lib/appShortcuts.js", "web/src/components/VirtualOfficeSettings.jsx", "web/src/lib/desktopOfficeController.js", "web/src/components/FileBreadcrumbs.jsx", "web/src/lib/htmlPreview.js", "docs/user-manual.md"]), "tui": page("在项目终端中直接使用 ACECode,通过键盘浏览回复、管理模型和处理工具确认。", [ section("start", "进入项目并启动", @@ -69,21 +73,21 @@ section("references", "发送消息与引用文件", '''

在输入框写明目标、相关范围和验证方式,Enter 发送,Shift+Enter 换行。输入 @ 会列出当前目录的直接子项;继续输入路径可以进入目录并过滤候选。

用方向键选择后,Enter 引用文件或文件夹,Tab 或右方向键进入文件夹。目录引用保留末尾的 /,含空格的路径会加引号。选择目录不会递归附上所有文件。

''', code('检查 @src/ 和 @tests/ 中与登录相关的实现。\n修复空密码仍能提交的问题,保留现有样式,并运行相关测试。', "示例请求"), - '''

桌面端可在文件树中右键选择添加到会话,或把预览中选中的文本引用到聊天。路径引用让智能体按需读取文件,发送前可直接编辑或删除输入中的引用。

'''), + '''

桌面端可在文件树中右键选择添加到会话,或把预览中选中的文本引用到聊天。路径引用让智能体按需读取文件,发送前可直接编辑或删除输入中的引用。引用标签可与文字一起选中、复制、剪切、删除和撤销;拖入文件后可继续输入。命令或加号菜单选项转为底部标签时会短暂提示选中,不会自动发送。

'''), section("attachments", "添加图片与附件", table(["添加方式", "实际交给任务的内容"], [["桌面端:添加上下文 > 文件或文件夹", "本地路径引用,包括图片、PDF、归档和大文件;选择时不预读整个文件。"], ["桌面端:选择当前文件夹", "当前目录的相对或绝对路径引用。"], ["粘贴没有本地路径的剪贴板图片", "图片附件快照。"], ["浏览器直接上传文件", "上传到服务端任务中的附件快照,受格式和大小校验约束。"]]), '''

添加后检查输入框中的路径或附件卡片,再发送要求。例如说明截图中的错误位置,或指定 PDF 的页码。视觉能力取决于所选模型和可用工具;仅添加一张图片不代表文本模型能直接看懂它。上传被拒时查看提示,按需减小文件、拆分内容或改用桌面路径引用。

''', figure("UI-05", "路径引用与图片附件", "分别展示桌面选择文件后形成的 @ 路径,以及粘贴图片后出现的附件预览和移除入口;用图注明确两种内容的区别。")), section("queue", "排队、补充指令与中断", - '''

任务运行时,发送按钮显示排队。按 Enter 后,消息进入输入框上方的排队卡片,等当前回合结束再发送。卡片提供编辑、取消和失败后的重试操作。

想让补充信息影响当前回合时,点击排队卡片上的插话。它会在当前回合下一次模型调用前加入消息,不会瞬间撤销已经执行的工具。需要立即结束当前工作时,使用中断或停止控件,等状态结束后再发送新的任务要求。

''', + '''

任务运行时,发送按钮显示排队。按 Enter 后,消息进入输入框上方的排队卡片,等当前回合结束再发送。卡片提供编辑、取消和失败后的重试操作。

想让补充信息影响当前回合时,点击排队卡片上的插话。它会在当前回合下一次模型调用前加入消息,不会瞬间撤销已经执行的工具。提交 /turn 指导内容 则中断当前回合并立即提交指导。需要结束当前工作而不追加指导时,使用中断或停止控件,等状态结束后再发送新的任务要求。

''', note("停止后仍需检查文件", "中断停止后续执行,已经完成的文件写入仍在磁盘上。先查看变更,再决定继续、修正或恢复;不要把停止操作当作撤销。"), figure("UI-06", "排队消息与插话", "在任务运行时展示一张待发送卡片,标出编辑、插话、取消以及主输入区的中断控件。")), section("side-chat", "侧边栏对话", - '''

界面中的入口名是侧边聊天,位于详情栏的打开工具菜单。它有独立输入草稿,适合询问当前实现的理由、解释报错或补充知识,不会改写主输入草稿。

''', + '''

从会话右上角的气泡按钮、详情栏打开工具 > 侧边聊天,或提交 /side、/btw 打开浮窗。窗口可拖动和调整大小,保留独立输入草稿,支持连续追问与流式回答,不改写主输入草稿。

''', code("/side 刚才为什么选择这个实现?\n/btw 这个报错中的术语是什么意思?", "示例 · 两个命令分别发送"), - '''

/side 与 /btw 是同类旁支问答入口。回答基于当前任务的上下文快照,独立执行一轮,不调用工具,不把这条问题当作主任务的后续修改指令。需要实际读取新文件或执行修改时,把要求发到主对话。

主任务继续工作后,侧边回答仍对应提问时的上下文;需要最新进展时重新询问。每次问题都应包含清楚的指代,避免只写“它”或“这个”。

''', + '''

每次旁问使用主任务当前的安全上下文快照和已有有效旁问记录,可调用已注册且允许的 file_read、grep、glob、lsp 只读工具,工具结果显示在浮窗中。需要权限确认的读取会被拒绝;不能写文件、执行 Shell、调用 MCP 或派生子代理。需要实际修改时回到主对话。

浮窗中的停止只停止旁问。最小化会停止生成并保留当前会话的临时记录;清空会停止并移除记录,切换主会话也会清空。旁问不会写入主任务历史,不应当成永久保存的第二个任务。TUI 的同名命令仍为单次旁问,也支持这些受限只读工具。

''', figure("UI-07", "侧边聊天与主输入草稿", "同时展示主输入区中未发送的草稿和侧边聊天的问题、回答,强调二者独立,旁支问答不会中断主任务。")) -], ["docs/user-manual.md", "web/src/components/QueueCardList.jsx", "web/src/lib/inputBarState.js", "web/src/components/SideChatWindow.jsx", "web/src/components/ChatView.jsx", "docs/daemon-api.md"]), +], ["docs/user-manual.md", "web/src/components/QueueCardList.jsx", "web/src/lib/inputBarState.js", "web/src/components/SideChatWindow.jsx", "web/src/components/ChatView.jsx", "src/engine/agent/side_question/side_chat_tools.cpp", "web/src/components/ComposerSessionControls.jsx", "docs/daemon-api.md"]), "workspaces": page("工作区确定要操作的项目位置,任务保存一次持续工作的上下文。先选对范围,再组织和恢复任务。", [ section("manage", "添加与管理工作区", @@ -92,7 +96,7 @@ section("standalone", "脱离工作区的任务", '''

在新建任务时选择不使用工作区,适合通用问答、文字处理或先讨论方案。此类记录集中在侧边栏任务分组,仍可置顶和归档。

没有工作区时,不会自动获得某个项目的文件树和 Git 上下文。桌面端可以显式引用文件或目录,路径在没有项目根目录时通常显示为绝对路径。需要持续修改某个代码库时,新建对应工作区中的任务更容易确认操作范围。

'''), section("organize", "恢复、搜索、置顶与归档", - '''
  1. 恢复:点击侧边栏中的任务,阅读最近结果后继续发送;TUI 使用 /resume 或启动参数。
  2. 搜索:点击搜索任务或按 Ctrl+K(macOS ⌘K),按任务标题或消息线索查找,选择结果回到相应记录;同一个搜索框也能查找项目和设置项,选中设置项会打开设置并定位到该项。
  3. 置顶:使用任务旁的置顶按钮或右键菜单;不使用工作区的任务也可以置顶。
  4. 归档:将暂时不用的任务从日常列表收起。到设置中的已归档会话查找并恢复。

归档保留记录。已归档页面中的彻底删除会移除本地会话数据,操作前先核对对象;长期保存或分享阅读内容可先导出。

'''), + '''
  1. 恢复:点击侧边栏中的任务,阅读最近结果后继续发送;TUI 使用 /resume 或启动参数。
  2. 搜索:点击搜索任务或按 Ctrl+K(macOS ⌘K),按任务标题或消息线索查找,选择结果回到相应记录;同一个搜索框也能查找项目和设置项,选中设置项会打开设置并定位到该项。
  3. 置顶:使用任务旁的置顶按钮或右键菜单;不使用工作区的任务也可以置顶。
  4. 归档:将暂时不用的任务从日常列表收起。到设置中的已归档会话查找并恢复。

任务行的置顶按钮在悬停或键盘聚焦时出现,右键菜单同样可用。长工作区列表按需展开,也可收起。

设置 > 已归档会话支持按标题、工作区名称或路径搜索,筛选工作区,并选择最近或最早更新。分组始终跟随侧边栏工作区顺序,时间排序只改变组内顺序。顶部的全选、取消归档和删除只作用于当前筛选结果;部分失败时保留失败项供重试。

归档保留记录。已归档页面中的彻底删除会移除本地会话数据,操作前先核对对象;长期保存或分享阅读内容可先导出。

'''), section("transfer", "分叉、导入与导出会话", '''

在支持的消息右键菜单选择从这里分叉,会复制截至该消息的对话前缀并打开新任务。新任务不会自动开始执行;输入下一条消息后才继续。原任务保留,磁盘文件不会因为分叉回到过去。

桌面端任务菜单中的导出会保存可见对话为 Markdown。导出文件适合阅读和分享,不等于可直接导入恢复的完整任务备份。

项目菜单提供从opencode导入会话:先预览识别出的记录,勾选需要的会话,再启动导入并查看结果。导入入口针对识别到的 OpenCode 历史,不能把任意 Markdown 文档当作会话包导入。

''', figure("UI-09", "会话分叉与导入预览", "用两张截图展示消息菜单中的从这里分叉,以及项目菜单打开的 OpenCode 会话预览、选择与导入进度;不展示真实私有对话。")) @@ -116,10 +120,10 @@ "context-usage": page("查看当前上下文与实际用量,必要时压缩长对话,保留继续工作的关键信息。", [ section("read", "理解用量数字", - '''

当前会话的上下文占用描述下一次模型请求需要携带多少信息;输入、输出和缓存 token 记录描述已经发生的请求用量。两者不是同一个统计。长工具输出、图片和附加指令也可能增加上下文开销。

TUI 使用 /tokens 查看会话用量。桌面端在模型与状态区域查看当前信息,在设置 > 使用情况查看汇总、记录和会话统计。不同服务商上报的字段可能不同,缺失的统计不应当作零消耗。

''', + '''

长会话打开时先加载最近消息,向上滚到已加载历史边界会自动补入更早内容;加载失败时可在原位置重试。回看历史不会被新消息强行拉到底部,点击底部悬浮向下箭头即可回到最新内容并恢复跟随;任务运行时箭头可显示三点状态。

当前会话的上下文占用描述下一次模型请求需要携带多少信息;输入、输出和缓存 token 记录描述已经发生的请求用量。两者不是同一个统计。长工具输出、图片和附加指令也可能增加上下文开销。

TUI 使用 /tokens 查看会话用量。桌面端在模型与状态区域查看当前信息,在设置 > 使用情况查看汇总、记录和会话统计。不同服务商上报的字段可能不同,缺失的统计不应当作零消耗。

''', figure("UI-12", "上下文状态与使用情况", "展示任务中的上下文提示和使用情况页面中的输入、输出、缓存统计,标明当前请求范围与累计统计范围。")), section("compact", "手动与自动压缩", - '''

输入并提交 /compact 可主动压缩已有上下文。压缩需要模型生成接续摘要,因此仍会发起模型请求。界面会展示压缩过程,成功后收起为 Context compacted 一类完成记录,可以展开查看。

当前自动压缩在活动上下文达到模型标称窗口的 90% 时触发。窗口值来自当前模型配置,因此应该按服务商的实际限制设置,不能靠随意增大窗口数字解决服务端超限。

压缩保留继续工作需要的摘要和最近用户信息,人类可见的聊天记录不会因此被截短。恢复会话时会继续使用有效压缩记录后的上下文。如果压缩失败,阅读错误原因再处理,不要把失败的压缩当作已经完成。

'''), + '''

输入并提交 /compact 可主动压缩已有上下文。压缩需要模型生成接续摘要,因此仍会发起模型请求。界面会展示压缩过程,成功后收起为 Context compacted 一类完成记录,可以展开查看。

自动压缩依据当前模型窗口、有效预算和压缩配置触发;不同模型与入口的实际预算可能不同。成功后会刷新本轮上下文快照,保留继续工作的摘要;不要靠随意增大本地窗口数字解决服务端超限。

压缩保留继续工作需要的摘要和最近用户信息,人类可见的聊天记录不会因此被截短。恢复会话时会继续使用有效压缩记录后的上下文。如果压缩失败,阅读错误原因再处理,不要把失败的压缩当作已经完成。

'''), section("reduce", "让后续请求更清楚", '''
  • 引用明确的文件和范围,避免反复粘贴整个大型日志。
  • 保留目标、已经验证的结论、未完成事项和重要约束。
  • 任务主题已经改变时,考虑新建任务并附上必要交接信息。
  • 超限时先确认实际模型窗口、输出限制与错误内容,再压缩或拆分输入。

压缩减少后续上下文负担,不会退回已经消耗的 token。连接中断或服务端限制导致的错误,按上下文超限与请求失败继续排查。

''') ], ["docs/user-manual.md", "web/src/components/SettingsPage.jsx", "src/domain/session/session_manager.cpp", "docs/daemon-api.md"]) diff --git a/docs/help-source/group3.py b/docs/help-source/group3.py index 07ef72f79..3f94dc0bd 100644 --- a/docs/help-source/group3.py +++ b/docs/help-source/group3.py @@ -27,16 +27,16 @@ "providers": page("按实际接口协议选择 Provider,再填写服务给出的连接信息。不同服务商的认证方式和可选参数分别配置。", [ section("openai", "OpenAI 兼容接口", - '''
  1. 进入设置 > 模型 > 新增模型,选择自定义 OpenAI 兼容入口,或目录中对应的服务商。
  2. 填写 Base URL 和 API Key,输入服务实际支持的 Model ID。
  3. 需要完整请求地址时,在高级设置中切换端点模式。
  4. 保存后选择这个预设,发送简短请求验证。
''', + '''
  1. 进入设置 > 模型 > 新增模型,选择自定义 OpenAI 兼容入口,或目录中对应的服务商。
  2. 填写 Base URL 和 API Key,输入服务实际支持的 Model ID。
  3. 选择API 协议:Chat Completions 或 Responses,必须与接口实际支持的协议一致。需要完整请求地址时,在高级设置中切换端点模式。
  4. 保存后选择这个预设,发送简短请求验证。
''', table(["端点模式", "该填写什么"], [["Base URL", "API 基础地址,例如 https://api.example.com/v1;由客户端构造对应请求端点。"], ["完整端点", "服务要求的完整请求 URL;不要再按基础地址的方式重复拼接路径。"]]), - '''

这里的示例域名不是可用服务。请复制服务商给出的实际地址;同一平台可能有不同协议的入口。需要额外认证头时,在高级设置填写自定义请求头 JSON,保持合法 JSON 对象。

支持探测时可以点击探测模型读取服务返回的模型 ID。无法列出模型的兼容服务仍可手填 Model ID,随后用真实请求验证。

''', + '''

旧 OpenAI 预设默认保持 Chat Completions,不会根据模型名自动改协议。Responses 在 Base URL 模式下追加 /responses,完整端点模式直接使用填写的 URL;只改地址不能替代协议选择。可先点击密钥旁的检测验证连接,再保存。

这里的示例域名不是可用服务。请复制服务商给出的实际地址;同一平台可能有不同协议的入口。需要额外认证头时,在高级设置填写自定义请求头 JSON,保持合法 JSON 对象。

支持探测时可以点击探测模型读取服务返回的模型 ID。无法列出模型的兼容服务仍可手填 Model ID,随后用真实请求验证。

''', figure("MD-03", "自定义兼容接口填写示例", "标出 Base URL、Model ID、隐藏的 API Key 和高级设置中的端点模式。使用 example.com 等占位域名,不展示真实密钥。")), section("anthropic", "Anthropic", '''

选择 Anthropic 协议的 Provider,填写对应 Messages API 的地址、密钥和模型 ID。不要仅因模型名称中包含 Claude 就选择 Anthropic;若服务提供的是 OpenAI 兼容代理,应按它实际提供的协议选择。

  1. 确认账号或代理提供哪种协议和认证方式。
  2. 选择匹配的 Provider,再填入该接口地址与凭据。
  3. 从可用目录选择模型,或填写准确的模型 ID。
  4. 仅在表单支持时配置推理开关、强度或预算。
  5. 保存后先进行一次普通文本请求,再验证工具任务。

推理字段因模型而异,必需推理的模型不能随意关闭。遇到无效参数错误,先核对该模型的高级设置,而不是不断更换同一地址下的名称。

'''), section("copilot", "GitHub Copilot", '''

GitHub Copilot 使用设备登录流程。模型页的模型连接卡片提供连接 GitHub,认证由该入口管理,模型弹窗不要求手动填写受管端点和密钥。

  1. 点击连接 GitHub,查看设备验证码。
  2. 在打开的系统浏览器中完成 GitHub 授权。
  3. 回到 ACECode,按需要点击我已完成授权,确认状态为已连接。
  4. 新增一个 GitHub Copilot 模型预设并保存。
  5. 在任务中选择预设,验证账号可以访问该模型。

验证码过期或授权未完成时重新发起登录。已连接只表示认证流程成功,实际模型访问仍由账号权限和服务状态决定。需要切换账号时使用连接卡片中的退出连接。

''', figure("MD-04", "GitHub 设备登录", "展示模型连接卡片中的连接状态、验证码位置和我已完成授权按钮;验证码使用失效的示例值。")) -], ["web/src/components/model-settings/ModelProfileDialog.jsx", "web/src/components/model-settings/ModelConnectionCard.jsx", "web/src/components/model-settings/ModelSettingsSection.jsx", "src/adapters/provider/openai_provider.cpp", "src/adapters/provider/anthropic_provider.cpp"]), +], ["web/src/components/model-settings/ModelProfileDialog.jsx", "web/src/components/model-settings/ModelConnectionCard.jsx", "web/src/components/model-settings/ModelSettingsSection.jsx", "src/adapters/provider/openai_provider.cpp", "src/adapters/provider/openai_responses_provider.cpp", "src/adapters/provider/anthropic_provider.cpp"]), "manage-models": page("管理可供任务使用的模型预设,并区分新任务默认值与当前任务的模型选择。", [ section("crud", "添加、编辑与删除", @@ -55,7 +55,7 @@ '''

在新增或编辑模型的高级设置中查看上下文窗口 Token和最大输出 Token。窗口影响上下文预算与自动压缩判断;输出限制约束单次生成的规模,两个字段不能互相替代。

已有目录值时先保留目录提供的参数;需要覆盖时使用服务实际支持的值。接口限制可能比模型家族的宣传窗口更小。服务返回上下文超限时,先压缩历史或减小输入,不要只把本地数字改大。

'''), section("abilities", "思考、视觉与工具调用", table(["能力", "实际用途", "验证方法"], [["推理 / 思考", "按 Provider 支持的字段发送推理开关、强度或预算。", "使用支持推理的模型,检查请求是否正常完成。"], ["视觉", "处理图片内容;可与可用视觉工具配合。", "提交一张内容明确的示例图片并问具体问题。"], ["工具调用", "允许模型发出结构化工具请求来读写文件或执行命令。", "先要求读取一个示例文件,再检查工具记录。"]]), - '''

只有当前 Provider 支持的配置才会出现在表单中。有些模型要求推理始终启用;有些提供强度选项,有些使用 token 预算。勾选视觉或工具能力只是声明请求方式,不能让不支持该协议的模型自动具备能力。

权限模式和模型能力分别管理:模型能提出工具调用,不代表所有工具都已安装或所有操作都已获准。

''', + '''

只有当前 Provider 支持的配置才会出现在表单中。有些模型要求推理始终启用;有些提供强度选项,有些使用 token 预算。勾选视觉或工具能力只是声明请求方式,不能让不支持该协议的模型自动具备能力。

权限模式和模型能力分别管理:模型能提出工具调用,不代表所有工具都已安装或所有操作都已获准。

模型保存、启动、进入新对话以及刷新模型列表时,会在后台同步可探测模型的思维深度声明,网络失败保留已有配置。支持的模型可在输入区选档,或用 Ctrl+Alt+> / Ctrl+Alt+< 逐档增减(macOS 用 Cmd/Option);到最高或最低档后停止。运行中调整从后续请求生效。用户明确关闭推理的设置不会被同步自动打开。

''', figure("MD-06", "模型高级设置", "展示上下文窗口、输出限制、能力标识和推理设置;选取确实支持这些字段的 Provider,避免画出实际不存在的选项。")), section("probe", "能力探测", '''

模型表单中的探测模型主要获取当前 Provider 返回的模型 ID 与可用元数据。有已保存的本地结果时,查看探测结果会打开缓存;需要重新访问服务时点击重新探测。

  1. 先填写可用的地址、凭据和必要请求头。
  2. 主动点击探测模型,等待结果。
  3. 用搜索过滤 Model ID;新增时可多选,编辑时选择一个替换当前 ID。
  4. 确认回填后检查参数并保存预设。
  5. 用小请求验证实际需要的文字、视觉或工具功能。
''', diff --git a/docs/help-source/group4.py b/docs/help-source/group4.py index b7c57128f..1d1c0db0b 100644 --- a/docs/help-source/group4.py +++ b/docs/help-source/group4.py @@ -34,7 +34,7 @@ "permissions": page("权限模式决定文件修改和工具执行何时需要你确认。发送任务前确认模式,遇到请求时核对实际操作。", [ section("modes", "选择权限模式", table(["桌面端 / Web 模式", "常规行为"], [["默认权限", "读取通常自动通过;文件写入和命令执行按规则确认。"], ["自动接收编辑", "文件写入、编辑自动通过,命令执行仍需确认。"], ["完全访问权限", "常规工具权限自动通过,应明确任务范围和允许的副作用。"]]), - '''

当前任务从输入框下方切换模式。设置的常规页可设置新会话默认模式;界面提示存在活动任务时,修改也会同步当前任务。TUI 可用设置中心或空闲状态下的 Ctrl+P 切换。

CLI 另支持 --permission-mode plan,用于限制写入的分析任务。它不是当前桌面模式菜单中的第四个选项。模式不能替代操作系统权限、工具可用性或其他安全限制。

''', + '''

当前任务从输入框下方切换模式。设置的常规页可设置新会话默认模式;界面提示存在活动任务时,修改也会同步当前任务。TUI 可用设置中心或空闲状态下的 Shift+Tab 切换。

CLI 另支持 --permission-mode plan,用于限制写入的分析任务。它不是当前桌面模式菜单中的第四个选项。模式不能替代操作系统权限、工具可用性或其他安全限制。

''', figure("CF-01", "权限选择与操作确认", "展示任务的权限下拉菜单,以及一次文件写入或命令请求;标出工具名、路径、参数和允许或拒绝入口。")), section("requests", "处理操作确认和提问", '''

请求出现时,先看工具要做什么、作用于哪个文件或目录、命令是否符合当前目标,再决定允许或拒绝。来自子代理的请求会带来源信息,处理前确认是哪一个后台任务。

TUI 的确认选项支持允许本次、在当前会话内持续允许该工具和拒绝;Esc 可拒绝。不要把当前会话内的持续允许理解成永久修改系统安全设置。

智能体也可能提出需要你选择的业务问题。按问题给出的选项回答,或填写自己的说明;提问不是工具执行权限。默认模式下任务停在等待确认状态时,处理请求后才能继续。

'''), @@ -88,6 +88,8 @@ figure("CF-05", "个性化指令与保存反馈", "展示自定义指令编辑区和已保存状态,使用通用示例,不展示个人或公司私密信息。")), section("memory", "保存和查看记忆", '''

需要记住长期信息时,可以在任务中明确提出要求,例如“记住:我希望解释结果时先给结论,再给验证依据”。阅读执行结果,确认实际保存了什么,避免把一次聊天中出现的信息都当作已经持久化。

记忆分两层:全局记忆保存跨项目的个人偏好,位于 ~/.acecode/memory/;工作区记忆只属于当前工作区,位于 ~/.acecode/projects/<工作区标识>/memory/。每层都有 MEMORY.md 索引,条目分别保存为 Markdown 文件。未指定时,个人偏好与协作反馈写入全局,项目背景与外部资料写入工作区。

每个会话在第一次请求时读取一份记忆快照,之后保持不变;会话中途新写的记忆在下一个会话或本会话压缩上下文之后出现。记忆是历史记录,智能体依赖其中的路径或命令前会先核实,与你当前的要求冲突时以当前要求为准。

TUI 与桌面 / 网页对话都可以用 /memory:/memory list 列出两层记忆,/memory view 名称 查看,/memory forget 名称 删除,/memory off 与 /memory on 只对当前会话关闭或恢复记忆。

'''), + section("scopes", "不同入口与工作区的记忆", + '''

Desktop/Web、TUI 和无界面 CLI 共用这套记忆;同一工作区中的 ACECode worktree 共用原工作区记忆,没有工作区的任务只使用全局记忆。其他工作区的条目不会自动混入当前会话。

在设置 > 个性化 > 记忆切换全局与当前工作区,点击条目查看、编辑或删除,刷新按钮重新读取列表。重置作用域会清空该范围的条目、索引、待整合观察和归档,确认前检查所选范围;另一个作用域不受影响。/memory reload重新扫描磁盘,但不会强制替换已有会话的稳定上下文快照;直接读取条目可以取得最新内容。

'''), section("summary", "记忆摘要", '''

设置 > 个性化 > 记忆中可以开启记忆摘要(默认关闭)。开启后,会话闲置约 30 分钟,ACECode 用摘要模型把这段对话中值得长期保留的经验提炼成观察,攒够一批后整合为正式记忆;每次自动改动都记录来源会话。摘要模型默认是该会话最后使用的模型,也可以指定一个已保存的模型。开启会额外调用模型。

想立即整理当前会话时执行 /memory flush,完成后对话里会出现处理结果。永久删除一个会话时,只来源于它的自动记忆会一并撤回;你手动删除的记忆在 90 天内不会被自动重新生成。

'''), section("maintenance", "更新与删除过时信息", diff --git a/docs/help-source/group4_extensions.py b/docs/help-source/group4_extensions.py index 9763bc1a6..663c30c4b 100644 --- a/docs/help-source/group4_extensions.py +++ b/docs/help-source/group4_extensions.py @@ -17,7 +17,8 @@ section("install", "安装与使用技能", '''

桌面/Web 打开技能页面查看当前发现的技能、所属范围和启用状态;TUI 使用 /skills。关闭的技能不会作为普通可用技能参与使用。手动添加文件后刷新或重新加载技能,再检查清单。

  1. 从可信来源取得完整技能目录,确认目录里有 SKILL.md。
  2. 将整个目录放入全局或项目技能根目录,保留 scripts、references 等相对路径。
  3. 重新加载并确认名称、描述和启用状态。
  4. 在任务中明确要求使用该技能,检查执行过程及所需依赖。

如果当前安装提供技能安装相关的内置技能,也可以让 ACECode 帮你安装,并说明来源和安装范围。桌面技能列表不是一个保证包含所有第三方技能的在线商店。

''', code("/skills\n/skills reload", "TUI · 查看与重新加载"), - '''

发现后的技能可由模型按任务匹配,也可以通过技能对应的斜杠入口显式选择。选择只确定要使用的流程,不代表脚本、网络或文件修改已经获得授权。无界面 CLI 需要额外通过 --enable-skills 启用相应技能。

''', + '''

发现后的技能可由模型按任务匹配,也可以通过技能对应的斜杠入口显式选择。选择只确定要使用的流程,不代表脚本、网络或文件修改已经获得授权。无界面 CLI 需要额外通过 --enable-skills 技能名称 启用相应技能,可用 acecode -p --list-skills 查找准确名称。

''', + '''

新版程序启动时会检查内置资源版本,补装缺失的内置技能,并更新没有被用户修改过的受管技能。用户修改过的副本和同名自定义目录会保留。升级后仍看到旧帮助时,先刷新列表并核对实际加载路径、内置资源版本和本地修改,不要删除全部用户数据。

''', figure("CF-07", "技能列表与使用入口", "展示全局和项目技能分组、名称、描述、启用状态,以及在输入框选择一个技能的过程。")), section("scope", "全局技能与项目技能", table(["范围", "原生目录", "适合的内容"], [["当前用户", "~/.acecode/skills/、~/.agent/skills/", "跨项目复用的工作流程。"], ["项目目录", ".acecode/skills/、.agent/skills/", "只与当前项目有关的约定和操作。"]]), diff --git a/docs/help-source/group5.py b/docs/help-source/group5.py index 7bb2bc59c..a69c8fc9e 100644 --- a/docs/help-source/group5.py +++ b/docs/help-source/group5.py @@ -19,9 +19,9 @@ ["蜂群模式(星型)", "主任务派出子 Agent,子 Agent 只向主任务汇报最终结果,不再继续派生。", "几项互不相关、各自汇报即可的调查或检查。"], ["蜂群模式(网状)", "任意 Agent 都能继续派生下级(路径形如 /root/research/web),可以互相发消息、追加后续任务,并等待下级回报。", "需要分层拆解、中途协调或多轮往返的大任务。"], ]), - '''

蜂群模式是会话级设置:随下一条消息生效并一直保持,直到切换或关闭;TUI 与对话中都可以用 /swarm star、/swarm mesh、/swarm off 切换,/swarm 查看当前模式。开启状态本身不会立即启动任务,也不保证每一个请求都会产生相同数量的子任务。

适合并行的工作包括分别调查两个独立模块、检查不同平台的入口、准备测试与阅读接口。先说明每个子任务的范围、允许修改的文件和需要返回的结果,避免多个代理同时改同一处内容。

''', + '''

蜂群模式是会话级设置:随下一条消息生效并一直保持,直到切换或关闭;TUI 使用 /swarm star、/swarm mesh、/swarm off 切换,/swarm 查看当前模式;Desktop/Web 使用加号菜单,无界面 CLI 使用 --swarm star|mesh|off。开启状态本身不会立即启动任务,也不保证每一个请求都会产生相同数量的子任务。

适合并行的工作包括分别调查两个独立模块、检查不同平台的入口、准备测试与阅读接口。先说明每个子任务的范围、允许修改的文件和需要返回的结果,避免多个代理同时改同一处内容。

''', code("并行检查前端表单与后端校验:一位代理只阅读前端并列出边界情况,另一位只阅读后端并找出校验差异。由主任务汇总证据后提出修复方案,暂不修改文件。", "可独立并行的任务示例"), - '''

子代理拥有独立上下文,并继承父任务的工作目录与权限模式。主任务通常收到子代理最终答复,而非自动把所有中间工具输出复制进自身上下文。共享工作目录意味着文件变化会相互可见;独立上下文不等于独立 Git 工作树。

网状模式下,子 Agent 默认继承派生者的对话上下文(只保留用户消息与最终回答),也可以只继承最近几轮或完全不继承。下级完成或出错时,结果以「某某已完成」「某某执行出错」提示行送到上级,不会打断上级正在进行的工作,上级下一次回复时会看到它。同一棵协作树同时最多保留 4 个 Agent(含主任务,可在配置文件的 swarm.mesh.max_concurrent_agents 调整);满了会暂时卸载最久没有活动、已经结束的 Agent,再次给它发消息时自动恢复。仍有子 Agent 在运行时不能退出网状模式,先等待它们完成或停止它们。

''', + '''

子代理拥有独立上下文,并继承父任务的工作目录与权限模式。主任务通常收到子代理最终答复,而非自动把所有中间工具输出复制进自身上下文。共享工作目录意味着文件变化会相互可见;独立上下文不等于独立 Git 工作树。

网状模式下,子 Agent 默认继承派生者的对话上下文(只保留用户消息与最终回答),也可以只继承最近几轮或完全不继承。下级完成或出错时,结果以「某某已完成」「某某执行出错」提示行送到上级,不会打断上级正在进行的工作,上级下一次回复时会看到它。同一棵协作树默认同时驻留 4 个 Agent(含主任务,可在配置文件的 swarm.mesh.max_concurrent_agents 调整);这是同时加载的数量,不是历史任务总数上限;满了会暂时卸载最久没有活动的空闲 Agent,需要时恢复。仍有子 Agent 在运行时不能退出网状模式,先等待它们完成或停止它们。

''', figure("AD-03", "开启蜂群模式并提交分工", "展示添加能力菜单中的蜂群模式、开启后的标签,以及说明任务边界的输入内容。")), section("progress", "查看进度与处理操作确认", '''

产生子任务后,在主会话的后台任务面板查看运行中和已完成的任务,打开任务可阅读其会话与工具结果。子任务归属于父会话,不会作为普通任务充满主侧边栏和全局搜索结果。

来自子任务的权限请求与问题会在主界面出现,并标注来源。检查任务名称、工具参数与目标路径后处理;不要仅因为主任务尚有输出,就忽略另一个子任务正在等待回答。

可以在面板中停止运行中的子任务。停止父任务也会向其子任务传播中断;已经产生的文件和记录会保留,不自动回滚。

子任务始终跟随主会话:已结束的任务一直留在面板里,随时可以打开查看,不能单独归档或删除。只有把主会话归档后再永久删除,它的全部子任务记录才会随之删除。

''', @@ -41,11 +41,12 @@ section("manage", "查看记录、暂停与管理", '''

列表展示下一次执行与最近运行情况。打开运行记录查看等待执行、执行中、等待用户、已完成、失败或已错过等状态,并检查关联任务的输出。失败应结合原因处理,不能只看定时任务仍为启用状态。

停用用于暂停后续计划,重新启用后检查新的执行时间;需要停止正在运行的那一轮,应打开对应任务并停止。编辑时可调整提示、模型与时间。删除定时任务也会移除其运行记录,保留需要的信息后再删除。

daemon 必须在执行时间保持运行,模型和工作目录也要可用。计算机离线、休眠或后台停止期间错过的执行会记录为已错过,不应期待恢复后把每次历史执行逐一补跑。同一工作空间的时间冲突会在保存或启用时提示,运行时占用也可能导致错过。

远端后台按其时间配置调度。跨时区或系统时区变化后,重新核对下一次执行时间;不要只按浏览器所在设备的时钟推测。

''', figure("AD-06", "定时任务列表与运行记录", "展示下一次执行、启用或停用按钮和一条真实运行记录,标出状态、原因及查看任务入口。")) -], ["web/src/components/LoopPage.jsx", "web/src/lib/loops.js", "src/host/loop/loop_types.hpp", "src/host/loop/loop_scheduler.cpp", "src/host/loop/loop_store.cpp"]), +], ["web/src/components/LoopPage.jsx", "web/src/lib/loops.js", "src/host/loop/loop_types.hpp", "src/host/loop/loop_scheduler.cpp", "src/host/loop/loop_store.cpp", "src/host/loop/scheduled_task_tool.cpp", "assets/seed/skills/acecode/scheduled-task/SKILL.md"]), "agent-browser": page("在桌面端把需要处理的网页共享给智能体,让浏览、定位和操作发生在你能看到的页面中。", [ section("open", "打开浏览器面板", '''

从桌面右侧打开工具 > 浏览器新建浏览器页签,输入地址后导航。没有协议的主机名会按 HTTPS 处理;普通搜索词可发起搜索。当前原生 Agent 浏览器支持 Windows 和 macOS 14 及以上的相应桌面构建,Linux 与直接 Web 页面不具备同样的原生桥接能力。

这里的页面属于 ACECode 内置浏览器。它使用自己的持久化浏览器配置,页面间可共享该配置中的登录信息;不会直接继承你日常 Edge 或 Safari 的全部登录状态。

''', + '''

也可以从 HTML/HTM 文件预览中的浏览器图标打开本地页面:先处理未保存修改,再用 file:// 访问磁盘文件。该操作仍使用当前会话的原生浏览器;依赖后端接口、构建输出或开发服务器的应用,应按项目说明启动服务后访问对应地址。出现加载错误时源文件标签会保留。

''', figure("AD-07", "浏览器页签与地址栏", "展示打开工具菜单、浏览器页签、地址输入及加载状态,使用公开示例页面。")), section("share", "决定哪些页面交给智能体", '''

你手动创建的页面默认不共享。需要让智能体读取或操作时,在目标页签开启与智能体共享。智能体通过浏览器工具创建的页面默认共享;每个页面的状态独立。

未共享的页面不会因其正在前台就自动开放给工具。开始任务前明确目标页签与操作范围,例如“检查这个页面的表单校验,提交前先让我确认”。登录过程和敏感表单也应在正确页面中处理。

''', @@ -55,22 +56,22 @@ '''

元素选择可以把目标位置作为上下文加入输入区,按 Esc 退出选择。添加控制台信息时,引用的是当时的快照,不会自动发送消息,也不会持续同步未来所有日志。

提交前检查附件或上下文项是否指向正确页面,可以移除无关项。动态页面、跨来源 iframe 和不同操作系统的原生实现存在能力差异;选不到时描述页面和元素位置,并以实际返回信息为准。

让智能体完成操作后,检查网页结果与必要的应用数据。浏览器动作成功只证明交互执行,不代表业务提交一定成功。连接能力状态可以在设置 > 工具检查。

''') ], ["docs/agent-browser.md", "web/src/components/PreviewDetailsPanel.jsx", "web/src/components/SettingsPage.jsx"]), -"channels": page("在设置里直接连接 QQ 与 Telegram,或通过渠道插件、手动 Webhook 把 ACECode 会话接到其他消息平台。", [ +"channels": page("在设置里连接 QQ、微信、飞书、钉钉、Telegram、Discord 或 LINE,管理机主与授权;也可使用已有渠道插件和手动 Webhook。", [ section("im", "连接 QQ、微信、飞书、钉钉、Telegram、Discord 与 LINE", - '''

在 设置 > 集成 > 消息通道 中直接连接 QQ 官方机器人、微信、飞书、钉钉、Telegram、Discord 与 LINE,不需要安装插件或 Node.js;除 LINE 外都由本机主动连出,不需要公网地址,所有连接都跟随 ACECode 的代理设置。页面上每个平台一张卡片:点连接,还没配好的平台会弹出三步向导(创建机器人 → 连接 → 绑定机主),配好的直接连上;连上后按钮变成取消连接,点一下立即断开。卡片只显示简要状态和待批准请求,连接失败的原因、群隐私模式、收发计数等细节写在后台进程的日志里(数据目录下 logs/daemon-日期.log,带 [channels/…] 前缀)。

''', + '''

在 设置 > 集成 > 消息通道 中直接连接 QQ 官方机器人、微信、飞书、钉钉、Telegram、Discord 与 LINE,不需要安装插件或 Node.js;除 LINE 外都由本机主动连出,不需要公网地址,所有连接都跟随 ACECode 的代理设置。页面上每个平台一张卡片:点连接,还没配好的平台会弹出三步向导(创建机器人 → 连接 → 绑定机主),配好的直接连上;配置后的管理打开详细弹框,取消连接、更换凭据、机主与访问管理、错误提示和收发计数在这里查看。卡片保持简洁,待批准请求徽章位于连接按钮左侧。连接向导和管理弹框使用关闭按钮退出,点击外部不会关闭。更多诊断信息还可在后台进程的日志里查看(数据目录下 logs/daemon-日期.log,带 [channels/…] 前缀)。

''', table(["平台", "配置方式"], [["QQ", "点连接后向导直接显示二维码,用手机 QQ 扫码并确认,机器人会自动创建并配置,扫码人成为机主。也可以改为手动填写 AppID / AppSecret,保存前会先验证。未经个人认证的机器人只有管理员本人能使用,并且只能加入管理员担任群主的群。"], ["Telegram", "向导第一步说明如何在 @BotFather 创建机器人,粘贴 Token 后会先验证。连上后在“绑定机主”一步用手机相机扫码(Telegram 自带的扫码只能登录设备,扫不了这个),在 Telegram 里点开始即成为机主;电脑上登录了 Telegram 也可以直接点链接,或点复制链接。"], ["微信", "点连接后用微信扫码并在手机上确认,扫码的微信号自动成为机主,也是唯一能使用它的人。微信机器人只支持私聊;登录失效时卡片会提示,重新扫码即可。"], ["飞书", "在飞书开放平台创建企业自建应用、添加机器人能力并开通 im:message 等权限,填入 App ID 与 App Secret(可选飞书或 Lark)。连上之后回到开放平台,把订阅方式保存为使用长连接接收事件、添加接收消息 v2.0事件并发布版本(飞书要求长连接在线时才能保存)。"], ["钉钉", "在钉钉开放平台创建企业内部应用、添加机器人并选择 Stream 模式,开通机器人发送消息权限后发布,填入 Client ID 与 Client Secret。"], ["Discord", "在 Discord 开发者后台新建应用,在 Bot 页复制 Token 并打开 Message Content Intent,粘贴 Token 后用向导给出的邀请链接把机器人拉进服务器。私信与频道里 @机器人 都能用。"], ["LINE", "在 LINE Official Account Manager 建官方账号并启用 Messaging API,填入 Channel ID 与 Channel secret;在控制台打开 Use webhook、关闭自动回应。LINE 只能回调公网地址:公网地址留空时 ACECode 用 cloudflared 自动建立临时隧道(先用 winget install --id Cloudflare.cloudflared 安装),也可以填写自己的 HTTPS 地址。"]]), '''

默认拒绝所有人。陌生人私聊只会收到配对提示,平台卡片上出现待批准请求(Desktop 窗口不在前台时弹出系统通知),请求 10 分钟后失效。群要先批准,群里只处理 @机器人 的消息,群成员也要单独批准。飞书、钉钉、Discord、LINE 连上后,向导会给出 6 位绑定码,私聊机器人发送这串数字即成为机主(10 分钟内有效,只能用一次)。飞书和钉钉会把每条消息随机交给同一应用的某一个连接,同一个应用不要再同时接到别的工具上,否则会悄悄分走一部分消息。在卡片的管理里可以更换机器人或撤销授权;撤销会立即停止处理对方的消息,并中止其会话正在进行的回合。

''', table(["在聊天中发送", "作用"], [["/help", "列出可用命令。"], ["/status", "查看会话、位置、模型、是否忙碌和待处理事项。"], ["/stop", "停止当前回合。"], ["/new", "在当前会话所在的位置新建会话。"], ["/sessions、/resume 编号", "列出并切换会话;机主可以切到任意会话,其他人只能切换自己创建的会话。"], ["/model 名称", "从下一回合起切换模型。"], ["/approve 编号、/deny 编号、/aq", "处理权限请求与提问,与 Desktop 先答者生效。"]]), - '''

每个私聊(或群里的每位成员)绑定一个 ACECode 会话,第一条消息会自动新建无项目会话并使用默认权限。被绑定的会话在侧栏显示电脑图标;在 Desktop 里向它输入时,回复也会发到聊天。图片和文件会导入会话附件,QQ 语音使用平台识别出的文字。通道由后台进程托管:在“常规”中勾选“退出 ACECode 后继续运行后台进程”时,关闭 Desktop 后通道仍然在线。

''', + '''

每个私聊(或群里的每位成员)绑定一个 ACECode 会话,第一条消息会自动新建无项目会话并使用默认权限。被绑定的会话在侧栏显示对应消息平台的图标,同一个 ACECode 会话只能绑定一个 IM 会话;在 Desktop 里向它输入时,回复也会发到聊天。图片和文件会导入会话附件,QQ 语音使用平台识别出的文字。通道由后台进程托管:在“常规”中勾选“退出 ACECode 后继续运行后台进程”时,关闭 Desktop 后通道仍然在线。

''', note("关于 QQ 回复额度", "QQ 对每条消息的被动回复有次数与时间限制。超出后 ACECode 改发主动消息;仍被拒绝时先暂存,等对方下一条消息时补发。暂存只在内存里,后台进程重启会丢失,但会话记录完整。")), - section("configure", "准备并连接消息渠道", + section("configure", "通过插件连接其他渠道", '''

先按渠道插件的说明安装它的可执行程序、完成平台认证并取得 manifest 文件。ACECode 使用 remote_control.channels 保存插件配置,使用 remote_control.default_channel 指定默认渠道。只输入消息平台名称不会自动安装插件。

''', code('{\n "remote_control": {\n "default_channel": "my-channel",\n "channels": {\n "my-channel": {\n "manifest_path": "/absolute/path/to/channel-plugin.json",\n "timeout_ms": 10000,\n "settings": {}\n }\n }\n }\n}', "JSON · 合并到主配置,路径与 settings 按插件说明填写"), '''

在要绑定的会话中提交 /rc,它是 /remote-control 的别名,会激活默认渠道。确认返回已连接状态后,从消息平台发一条简单请求,检查是否进入目标会话并能收到回复。

''', figure("AD-09", "渠道绑定与远程消息", "展示 /rc 返回的已连接状态和会话绑定标记,以及一条测试消息的往返;必须遮挡 Token、Webhook 密钥与私人聊天。")), section("sessions", "在渠道中切换会话", - '''

daemon 托管的已连接渠道可使用以下会话导航命令。这些控制命令由后台处理,不会作为普通问题交给当前模型。

''', + '''

通过上一节插件方式连接、由 daemon 托管的渠道可使用以下会话导航命令;内置 IM 通道以第一节的命令表和聊天内 /help 为准。这些控制命令由后台处理,不会作为普通问题交给当前模型。

''', table(["在渠道发送", "结果"], [["/sessions", "列出最近十个普通、未归档会话。"], ["/sessions more 或 /sessions all", "查看完整目录。"], ["/sessions search 关键词", "搜索最多五个匹配结果。"], ["/sessions 2", "选择最近一次列表中的第 2 个会话。"]]), '''

/session 和 /resume 是同一组渠道导航的别名。列表包含有工作区与无工作区的普通任务,不包含已归档任务和子代理。切换成功后以确认信息中的会话名称为准,再发送后续工作。

目标会话无法恢复时,原连接会保留。运行中的控制请求还在处理时,不要连续发送大量列表和切换命令。桌面前端可以收到切换提示,但渠道本身的会话选择不依赖桌面窗口保持打开。

'''), section("manage", "查看状态、解绑与手动接入", diff --git a/docs/help-source/group6.py b/docs/help-source/group6.py index b014dca86..ece5980ce 100644 --- a/docs/help-source/group6.py +++ b/docs/help-source/group6.py @@ -45,10 +45,10 @@ section("overflow", "上下文超限", '''

检查所用模型真实支持的上下文窗口与最大输出限制。模型请求还包含项目规则、工具定义、历史消息、图片等内容,不能只按当前输入框字数估算总长度。

  1. 确认预设中的窗口与输出配置符合服务商限制。
  2. 减少大日志、重复附件和无关历史。
  3. 有可用模型连接时提交 /compact,再检查压缩是否完成。
  4. 仍无法继续时,新建任务并附上目标、已确认结论、未完成事项和必要路径。

单纯增大本地窗口数值不会扩展服务端限制。修改模型配置后,确认后续请求确实使用了更新后的预设。

'''), section("retry", "网络暂时不可用,等待重试", - '''

临时网络故障、超时或可恢复的服务端错误会进入自动重试。界面会显示重试状态和等待信息;间隔逐步增加,最长可能达到 20 分钟,次数本身没有固定上限。

在同一进程持续运行期间可以等待恢复,也可以使用停止操作取消。重试针对失败的模型采样,不会为了这次重试重新执行已经成功的工具。停止或进程退出后,不应期待这段等待自动在新进程中继续。

认证错误、确定的无权限、硬额度不足、非法参数和上下文超限不适合靠无限等待解决。先检查具体错误,修复后再发送一条小请求验证。

''', + '''

临时网络故障、超时、临时限流或可恢复的服务端错误会进入自动重试。暂时的 rate limit 与余额耗尽、硬额度不足不是同一问题;限流等待不会因为压缩上下文而解除。界面会显示重试状态和等待信息;间隔逐步增加,最长可能达到 20 分钟,次数本身没有固定上限。

在同一进程持续运行期间可以等待恢复,也可以使用停止操作取消。重试针对失败的模型采样,不会为了这次重试重新执行已经成功的工具。停止或进程退出后,不应期待这段等待自动在新进程中继续。

认证错误、确定的无权限、硬额度不足、非法参数和上下文超限不适合靠无限等待解决。先检查具体错误,修复后再发送一条小请求验证。

''', figure("TS-03", "自动重试与停止入口", "展示网络重试状态、可见等待信息和当前任务停止入口,用图注明确等待不表示新消息已经发送。")), section("partial", "有部分输出但没有完成", - '''

部分文字或部分工具成功不表示整项任务完成。检查最后状态是完成、失败还是中断,查看最后一个错误,并核对文件是否已经变化。继续时说明从哪一步接着做,避免重复已经完成的外部操作。

压缩失败时保留错误记录,不把进度提示当成成功标记。无界面 CLI 应同时检查退出码与 JSON 中的 is_error;API 客户端应检查终态 outcome,而不只依据收到 done 事件。

需要提交问题时,记录模型预设、最近成功步骤、失败时间和上下文状态,参见日志与问题反馈。

''') + '''

Responses 等流式请求必须收到正常终态才算完成;断流或不完整的工具参数会按失败处理,不执行半截工具调用。重试会隔离上一尝试的临时输出。

部分文字或部分工具成功不表示整项任务完成。检查最后状态是完成、失败还是中断,查看最后一个错误,并核对文件是否已经变化。继续时说明从哪一步接着做,避免重复已经完成的外部操作。

压缩失败时保留错误记录,不把进度提示当成成功标记。无界面 CLI 应同时检查退出码与 JSON 中的 is_error;API 客户端应检查终态 outcome,而不只依据收到 done 事件。

需要提交问题时,记录模型预设、最近成功步骤、失败时间和上下文状态,参见日志与问题反馈。

''') ], ["docs/user-manual.md", "docs/daemon-api.md", "src/apps/headless/headless_runner.cpp"]), "troubleshoot-tools": page("先判断是能力没有加载、运行条件不满足,还是调用后的业务结果失败,再处理对应环节。", [ diff --git a/docs/help-source/group6_reference.py b/docs/help-source/group6_reference.py index 5f1e2ec95..f1c8deb12 100644 --- a/docs/help-source/group6_reference.py +++ b/docs/help-source/group6_reference.py @@ -3,17 +3,28 @@ PAGES = { "reference": page("按使用入口查找常用快捷键、命令与数据位置。具体可用项以当前安装的菜单和 /help 为准。", [ section("shortcuts", "快捷键", - table(["入口", "按键", "作用"], [["桌面 / Web", "Ctrl+K(macOS ⌘K)", "打开或关闭全局搜索;输入关键词可同时查找任务、项目和设置项,选中设置项会直接打开设置并定位到该项。"], ["桌面 / Web 输入框", "Enter", "空闲时发送;运行时按当前状态排队。"], ["桌面 / Web 输入框", "Shift+Enter", "换行。"], ["桌面文件编辑器", "Ctrl+S", "保存当前可编辑文件。"], ["桌面终端停靠区", "Ctrl+`", "显示或隐藏底部终端。"], ["TUI", "Esc", "等待时中断、退出 Shell 模式或拒绝当前确认。"], ["TUI", "Ctrl+C", "第一次清空输入并提示,1 秒内再次按下退出。"], ["TUI", "Ctrl+O", "全局展开或折叠工具结果。"], ["TUI", "Ctrl+E", "聚焦工具时切换该结果展开;否则移动到输入末尾。"], ["TUI", "Ctrl+P", "空闲普通输入状态切换权限;菜单或历史状态按对应导航处理。"], ["@ 候选菜单", "↑ / ↓、Enter", "选择并引用文件或文件夹。"], ["@ 候选菜单", "Tab / →", "进入选中的文件夹。"]]), + '''

在产品的设置 > 快捷键搜索操作名或按键。下表以 Windows/Linux 为例,macOS 将 Ctrl/Alt 替换为 Cmd/Option;控制台保持 Ctrl+反引号。输入法组合输入、菜单、弹框和独立编辑器会按焦点保护自己的按键。

''', + table(["桌面 / Web 操作", "快捷键"], [ + ["当前工作区新建会话", "Ctrl+Alt+N"], + ["聚焦消息输入框并保留草稿", "Ctrl+Alt+I"], + ["展开或收起左侧栏 / 右侧面板", "Ctrl+Alt+B / Ctrl+Alt+E"], + ["打开设置 / 快捷键页", "Ctrl+, / Ctrl+/"], + ["停止当前会话", "Ctrl+Shift+."], + ["导航前进 / 后退", "Ctrl+- / Ctrl+Shift+-"], + ["增加 / 降低思维深度", "Ctrl+Alt+> / Ctrl+Alt+<(句点/逗号键,可带 Shift)"], + ["当前对话内查找", "Ctrl+F,F3 / Shift+F3 切换匹配"], + ]), + table(["入口", "按键", "作用"], [["桌面 / Web", "Ctrl+K(macOS ⌘K)", "打开或关闭全局搜索;输入关键词可同时查找任务、项目和设置项,选中设置项会直接打开设置并定位到该项。"], ["桌面 / Web 输入框", "Enter", "空闲时发送;运行时按当前状态排队。"], ["桌面 / Web 输入框", "Shift+Enter", "换行。"], ["桌面文件编辑器", "Ctrl+S", "保存当前可编辑文件。"], ["桌面终端停靠区", "Ctrl+`", "显示或隐藏底部终端。"], ["TUI", "Esc", "等待时中断、退出 Shell 模式或拒绝当前确认。"], ["TUI", "Ctrl+C", "第一次清空输入并提示,1 秒内再次按下退出。"], ["TUI", "Ctrl+O", "全局展开或折叠工具结果。"], ["TUI", "Ctrl+E", "聚焦工具时切换该结果展开;否则移动到输入末尾。"], ["TUI", "Shift+Tab", "空闲状态下循环切换权限;Ctrl+P 用于菜单或历史向上导航。"], ["@ 候选菜单", "↑ / ↓、Enter", "选择并引用文件或文件夹。"], ["@ 候选菜单", "Tab / →", "进入选中的文件夹。"]]), '''

按键取决于焦点和当前模式。浏览器、操作系统或终端软件可能拦截组合键;遇到冲突优先使用可见按钮或菜单。本文档站自己的 Ctrl+K 只搜索文档内容,与 ACECode 产品内的 Ctrl+K 全局搜索是两个独立功能。

'''), section("commands", "斜杠命令", - table(["命令", "用途与范围"], [["/help", "查看当前注册的可用命令。"], ["/model", "模型选择;带名称可切换预设,TUI 支持 --cwd、--default 范围。"], ["/mode", "查看或切换权限模式。"], ["/config", "打开设置;/config show 查看文本概要。"], ["/tokens", "查看会话 token 用量。"], ["/compact", "调用模型压缩当前上下文。"], ["/init", "分析项目并生成或改进项目规则。"], ["/resume", "TUI 恢复历史会话。"], ["/rewind、/checkpoint", "TUI 打开回退选择器;代码恢复取决于检查点可用性。"], ["/fork", "TUI 从用户回合选择分叉,按选择器确认范围。"], ["/archive", "归档当前会话并开始新的对话状态。"], ["/clear、/new", "清理当前对话状态,开始新一段工作。"], ["/side 问题、/btw 问题", "独立的一次旁支问答,不调用工具。"], ["/turn 补充说明", "中断当前轮并发送指导;与排队卡片的插话时机不同。"], ["/skills、/mcp", "查看或管理技能与 MCP;带参数执行相应子命令。"], ["/tools、/hooks、/connectors", "打开对应能力管理入口。"], ["/lsp", "查看语言服务器状态。"], ["/memory", "列出、查看、编辑、遗忘或重载全局与工作区记忆;flush 立即整理,off / on 只作用于当前会话。TUI 与网页输出一致。"], ["/tasks", "TUI 管理后台子任务。"], ["/proxy", "检查有效代理及临时覆盖状态。"], ["/rc、/remote-control", "激活已配置的默认渠道;show 查看,off 解绑。"], ["/exit", "退出 TUI。"]]), + table(["命令", "用途与范围"], [["/help", "查看当前注册的可用命令。"], ["/model", "模型选择;带名称可切换预设,TUI 支持 --cwd、--default 范围。"], ["/mode", "查看或切换权限模式。"], ["/config", "打开设置;/config show 查看文本概要。"], ["/tokens", "查看会话 token 用量。"], ["/compact", "调用模型压缩当前上下文。"], ["/init", "分析项目并生成或改进项目规则。"], ["/resume", "TUI 恢复历史会话。"], ["/rewind、/checkpoint", "TUI 打开回退选择器;代码恢复取决于检查点可用性。"], ["/fork", "TUI 从用户回合选择分叉,按选择器确认范围。"], ["/archive", "归档当前会话并开始新的对话状态。"], ["/clear、/new", "清理当前对话状态,开始新一段工作。"], ["/side 问题、/btw 问题", "Web/Desktop 打开多轮浮窗;TUI 为单次旁问。均可使用受限的文件读取、搜索和 LSP,不执行写入或 Shell。"], ["/turn 补充说明", "中断当前回合并立即提交指导;排队卡片的插话则在下一模型边界生效。两者均不撤销已完成的工具。"], ["/skills、/mcp", "查看或管理技能与 MCP;带参数执行相应子命令。"], ["/tools、/hooks、/connectors", "打开对应能力管理入口。"], ["/lsp", "查看语言服务器状态。"], ["/memory", "列出、查看、编辑、遗忘或重载全局与工作区记忆;flush 立即整理,off / on 只作用于当前会话。TUI 与网页输出一致。"], ["/tasks", "TUI 管理后台子任务。"], ["/swarm star|mesh|off", "TUI 选择星型、网状或关闭;Desktop/Web 使用加号菜单。"], ["/proxy", "检查有效代理及临时覆盖状态。"], ["/rc、/remote-control", "激活已配置的默认渠道;show 查看,off 解绑。"], ["/exit", "退出 TUI。"]]), '''

不同入口的管理命令可能打开界面或返回文本,不能把 TUI 选择器当作所有前端都有的窗口。桌面/Web 在命令菜单中选择后仍需提交。技能也可能注册自己的斜杠入口,以当前发现的名称为准。

'''), section("arguments", "命令行参数", - table(["命令或参数", "用途"], [["acecode", "在当前目录打开交互式 TUI。"], ["acecode configure", "初次配置或重新配置。"], ["acecode --version", "显示版本。"], ["acecode -r", "打开 TUI 历史会话选择。"], ["acecode --resume [ID]", "TUI 恢复最近会话或指定会话;print 模式必须带 ID。"], ["acecode -p \"提示\"", "执行无界面单轮任务。"], ["--output-format text|json|stream-json", "选择 print 模式输出格式。"], ["--model NAME", "选择已保存预设。"], ["--permission-mode MODE", "print 模式支持 default、accept-edits、plan、yolo。"], ["--max-turns N", "print 模式的智能体循环上限。"], ["--session-id ID", "指定新会话 ID。"], ["-c、--continue", "print 模式继续当前目录最近会话。"], ["--list-tools、--list-skills、--list-mcp", "只列出可发现能力。"], ["--enable-skills 名称、--enable-mcp 名称", "为 print 模式显式开启扩展。"], ["--disable-tools 名称", "为 print 模式禁用指定工具。"], ["acecode daemon [start|status|stop]", "独立后台管理。"], ["acecode daemon --foreground", "前台运行后台服务。"], ["acecode daemon --cwd=路径 --port=端口", "指定独立后台的起始工作目录与端口。"], ["acecode upgrade", "按已配置更新源执行自更新。"]]), + table(["命令或参数", "用途"], [["acecode", "在当前目录打开交互式 TUI。"], ["acecode configure", "初次配置或重新配置。"], ["acecode --version", "显示版本。"], ["acecode -r", "打开 TUI 历史会话选择。"], ["acecode --resume [ID]", "TUI 恢复最近会话或指定会话;print 模式必须带 ID。"], ["acecode -p \"提示\"", "执行无界面单轮任务。"], ["--output-format text|json|stream-json", "选择 print 模式输出格式。"], ["--model NAME", "选择已保存预设。"], ["--permission-mode MODE", "print 模式支持 default、accept-edits、plan、yolo。"], ["--max-turns N", "print 模式的智能体循环上限。"], ["--swarm star|mesh|off", "选择 print 模式会话的蜂群模式。"], ["--session-id ID", "指定新会话 ID。"], ["-c、--continue", "print 模式继续当前目录最近会话。"], ["--list-tools、--list-skills、--list-mcp", "只列出可发现能力。"], ["--enable-skills 名称、--enable-mcp 名称", "为 print 模式显式开启扩展。"], ["--disable-tools 名称", "为 print 模式禁用指定工具。"], ["acecode daemon [start|status|stop]", "独立后台管理。"], ["acecode daemon --foreground", "前台运行后台服务。"], ["acecode daemon --cwd=路径 --port=端口", "指定独立后台的起始工作目录与端口。"], ["acecode upgrade", "按已配置更新源执行自更新。"]]), '''

完整 print 参数运行 acecode -p --help。危险启动参数 --yolo / --dangerous 会绕过权限与路径检查,不作为排错默认步骤。查看脚本示例及退出码,参见 CLI。

'''), section("data", "本地配置和数据", '''

下面的路径相对于个人数据目录 ~/.acecode/;Windows 为 %USERPROFILE%/.acecode/。Windows 服务另用 %PROGRAMDATA%/acecode/,远端进程使用远端身份的目录。

''', table(["路径", "内容"], [["config.json", "全局配置、模型连接与扩展定义,可能包含凭据。"], ["config-backups/", "有效配置快照和损坏配置备份,也可能含凭据。"], ["projects/", "按项目范围保存的会话、元数据和输入历史等记录。"], ["skills/", "用户技能;还可读取其他已启用根目录。"], ["memory/", "全局记忆:MEMORY.md 索引、条目、inbox / archive 与记忆状态库 state.sqlite3;工作区记忆在 projects/<标识>/memory/。"], ["hooks.json", "用户级 Hooks 定义。"], ["logs/", "按运行方式与日期保存的日志。"], ["run/", "独立后台的 PID、端口、GUID、心跳和 Token。"], ["run/desktop-shared/", "桌面托管后台的独立运行身份。"]]), '''

项目规则和项目技能可能保存在仓库本身。TUI 的 acecode.log 位于启动工作目录,不在上述 logs 目录。Git 工作树路径以任务实际记录为准。

备份前先结束相关写入,并同时考虑会话数据与实际项目文件。不要只备份 Markdown 导出就假定能够完整恢复,也不要在运行时随意删除身份文件或数据库。卸载与保留数据见更新与卸载。

''') -], ["docs/user-manual.md", "src/apps/tui/commands/builtin_commands.cpp", "src/apps/headless/headless_options.cpp", "src/base/utils/paths.cpp", "docs/daemon-api.md", "src/domain/memory/memory_paths.cpp"]), +], ["docs/user-manual.md", "src/apps/tui/commands/builtin_commands.cpp", "src/apps/headless/headless_options.cpp", "src/base/utils/paths.cpp", "docs/daemon-api.md", "src/domain/memory/memory_paths.cpp", "web/src/lib/appShortcuts.js", "src/apps/tui/input/control_keys.cpp"]), } diff --git a/docs/help-source/image-plan.md b/docs/help-source/image-plan.md index 58699c8ee..7d81edd96 100644 --- a/docs/help-source/image-plan.md +++ b/docs/help-source/image-plan.md @@ -12,13 +12,13 @@ | GS-06 | [快速开始](../help/quick-start.html) | 已实拍 | 引用项目文件并描述验收要求 | 发送前的请求草稿:引用 src/welcome.js,说明空姓名与空格处理的预期结果,并要求补充测试。底部显示当前模型与工作区。 | | | GS-07 | [快速开始](../help/quick-start.html) | 已实拍 | 检查测试输出与代码差异 | 示例任务实际执行 npm test,完成欢迎消息修复和测试补充。展开工具记录可查看输出;右侧 Git 视图显示两个文件的增删行和 HEAD 比较基线。 | | | GS-08 | [更新与卸载](../help/update-uninstall.html) | 已实拍 | 关于页面中的应用版本 | 设置中的关于页面显示应用版本和 WebView2 运行时版本。截图时运行的是 v0.9.11,可用此入口核对本机版本。 | | -| UI-01 | [桌面端](../help/desktop.html) | 已实拍 | 桌面端导航与任务区域 | 新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。 | | -| UI-02 | [桌面端](../help/desktop.html) | 已实拍 | 文件预览、变更列表与底部控制台 | 桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。 | | +| UI-01 | [桌面端](../help/desktop.html) | 已配图,辅助画面待补 | 桌面端导航与任务区域 | 新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。 图中为早期导航示例,当前快捷键、办公室和更新入口以正文为准。 | 待补拍当前导航、虚拟办公室入口及侧边栏底部更新状态。 | +| UI-02 | [桌面端](../help/desktop.html) | 已配图,辅助画面待补 | 文件预览、变更列表与底部控制台 | 桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。 图中为早期文件面板,当前 HTML 浏览器按钮和路径导航以正文为准。 | 待补拍 HTML/HTM 浏览器按钮和路径面包屑菜单。 | | UI-03 | [TUI](../help/tui.html) | 占位 | TUI 对话与工具确认 | 使用正常宽度的终端,展示项目路径、模型状态、一次工具调用摘要和权限确认选项;不显示密钥或私有路径。 | 已通过 Computer Use 尝试开始菜单的 ACECode TUI 和当前构建的 acecode.exe,两次启动均未返回可操作的 TUI 窗口。没有使用渲染终端文本或拼接画面替代截图。 | | UI-04 | [Web](../help/web.html) | 已配图,辅助画面待补 | 浏览器中的 ACECode Web 界面 | 在普通浏览器中打开 Web 地址后的新任务页:左侧是任务与工作区列表,中间是输入区、模型和权限控件,与桌面端布局一致。地址栏中的主机名和端口来自截图环境,实际地址以启动输出为准;本地 HTTP 连接会被浏览器标为“不安全”,属于正常现象。 | 终端启动输出中的 Web 地址,以及浏览器内正在执行任务的页面尚未拍摄;补拍的 UI-04-2 因桌面端窗口遮住了浏览器内容,未采用。 | | UI-05 | [对话与上下文](../help/conversation.html) | 已配图,辅助画面待补 | 搜索文件与插入路径引用 | 输入 @ 后搜索项目文件,选中后在输入区形成路径引用。这里展示的是本地文件引用;图片粘贴产生的附件预览需按正文中的图片步骤操作。 | 剪贴板图片附件预览尚未拍摄。 | | UI-06 | [对话与上下文](../help/conversation.html) | 已实拍 | 任务运行中的排队消息 | 在示例任务仍执行时补充指令,消息出现在待发送卡片中。卡片提供编辑、插话和取消入口,主输入区保留中断按钮。 | | -| UI-07 | [对话与上下文](../help/conversation.html) | 已实拍 | 侧边聊天与保留的主输入草稿 | 侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。 | | +| UI-07 | [对话与上下文](../help/conversation.html) | 已配图,辅助画面待补 | 侧边聊天与保留的主输入草稿 | 侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。 图中为早期侧边聊天示例,当前多轮浮窗及只读工具以正文为准。 | 待补拍多轮浮窗、只读工具记录和最小化控件。 | | UI-08 | [工作区与任务](../help/workspaces.html) | 已实拍 | 工作区列表与项目右键菜单 | 侧边栏的工作区分组列出各项目及其任务。右键项目名打开菜单,提供切换到项目、折叠项目、新建会话、重命名项目、复制项目路径、打开文件夹和从项目列表移除;移除项以红色显示,只从列表移除,不删除磁盘上的项目文件。 | | | UI-09 | [工作区与任务](../help/workspaces.html) | 已配图,辅助画面待补 | 从消息分叉与 OpenCode 导入入口 | 第一张:右键任务中的某条消息,菜单提供复制消息、从这里分叉和全选。第二张:项目菜单中的从opencode导入会话,只在该项目目录识别到 OpenCode 历史时出现,其他项目的菜单没有这一项。 | OpenCode 会话导入的预览、勾选和导入结果画面尚未拍摄。 | | UI-10 | [文件修改与版本管理](../help/git.html) | 已实拍 | Git 变更与比较基线 | 差异面板显示本次修改的两个文件、增删行数和欢迎消息的代码变化。上方 HEAD 是当前比较基线,切换比较基线用于查看差异。 | | @@ -44,7 +44,7 @@ | CF-11 | [连接器](../help/connectors.html) | 已实拍 | 连接器列表与刷新入口 | 已配置连接器显示名称、用途、开关和刷新入口。截图中的两个连接器处于关闭状态。 | | | AD-01 | [专家与专家团](../help/experts.html) | 已配图,辅助画面待补 | 专家分类、能力介绍与派遣入口 | 专家列表支持分类和搜索,每张卡片提供能力介绍与派遣按钮。页面上方还可以进入专家团或新建专家。 | 输入区的已派遣标签尚未拍摄。 | | AD-02 | [专家与专家团](../help/experts.html) | 已实拍 | 高级模式与专家团成员设置 | 高级模式可填写专家定位与能力介绍,并设置 Skill、MCP 和本地工具范围。专家团草稿中可选择成员并指定主理人;这些表单在截图后均已取消。 | | -| AD-03 | [蜂群模式与子代理](../help/swarm.html) | 已实拍 | 添加蜂群模式与编写分工草稿 | 从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。 | | +| AD-03 | [蜂群模式与子代理](../help/swarm.html) | 已配图,辅助画面待补 | 添加蜂群模式与编写分工草稿 | 从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。 图中为旧版单一蜂群开关,当前星型/网状入口以正文为准。 | 待补拍星型、网状两种蜂群菜单和网状任务树。 | | AD-04 | [蜂群模式与子代理](../help/swarm.html) | 占位 | 后台任务与来自子任务的请求 | 展示运行中与已完成分组、查看会话和停止入口,以及带来源名称的权限确认。 | 已拍摄蜂群模式入口和草稿,没有为截图启动后台子任务,因此未取得运行分组及来自子任务的操作确认。 | | AD-05 | [定时任务](../help/schedules.html) | 已实拍 | 定时任务创建表单 | 添加定时任务时填写名称、工作空间、提示词、模型、执行频率和生效日期。示例为只读检查草稿,截图后已取消,没有创建新的定时任务。 | | | AD-06 | [定时任务](../help/schedules.html) | 已实拍 | 定时任务列表与真实运行记录 | 定时任务列表提供频率、模型和启用入口。展开已有记录可见“所选模型已不可用,定时任务已停用”以及 daemon 未运行产生的“已错过”原因;这些是本机实际记录。 | | diff --git a/docs/help-source/images.json b/docs/help-source/images.json index be88fbe58..114496106 100644 --- a/docs/help-source/images.json +++ b/docs/help-source/images.json @@ -229,7 +229,7 @@ "file": "desktop.html", "id": "UI-01", "title": "桌面端导航与任务区域", - "description": "新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。", + "description": "新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。 图中为早期导航示例,当前快捷键、办公室和更新入口以正文为准。", "status": "captured", "captures": [ { @@ -258,14 +258,15 @@ "unaltered": true, "sha256": "db07827cc5e191a1b778323361d0095624923d992557065d1d063fc1a64e6b26" } - ] + ], + "pending_details": "待补拍当前导航、虚拟办公室入口及侧边栏底部更新状态。" }, { "article": "桌面端", "file": "desktop.html", "id": "UI-02", "title": "文件预览、变更列表与底部控制台", - "description": "桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。", + "description": "桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。 图中为早期文件面板,当前 HTML 浏览器按钮和路径导航以正文为准。", "status": "captured", "captures": [ { @@ -281,7 +282,8 @@ "unaltered": true, "sha256": "d1442bc7e6513b892ebca3185a58e95683075ed7247239932595784b9e93d779" } - ] + ], + "pending_details": "待补拍 HTML/HTM 浏览器按钮和路径面包屑菜单。" }, { "article": "TUI", @@ -384,7 +386,7 @@ "file": "conversation.html", "id": "UI-07", "title": "侧边聊天与保留的主输入草稿", - "description": "侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。", + "description": "侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。 图中为早期侧边聊天示例,当前多轮浮窗及只读工具以正文为准。", "status": "captured", "captures": [ { @@ -400,7 +402,8 @@ "unaltered": true, "sha256": "9379574124a69e72d3d64d1316d23697b72f5d775889260b140055cd29275bd7" } - ] + ], + "pending_details": "待补拍多轮浮窗、只读工具记录和最小化控件。" }, { "article": "工作区与任务", @@ -1062,7 +1065,7 @@ "file": "swarm.html", "id": "AD-03", "title": "添加蜂群模式与编写分工草稿", - "description": "从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。", + "description": "从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。 图中为旧版单一蜂群开关,当前星型/网状入口以正文为准。", "status": "captured", "captures": [ { @@ -1091,7 +1094,8 @@ "unaltered": true, "sha256": "785273b2ccfe1993f6144d1caafb2c93bb03db71ed78b6e8c1859b118c410fd7" } - ] + ], + "pending_details": "待补拍星型、网状两种蜂群菜单和网状任务树。" }, { "article": "蜂群模式与子代理", diff --git a/docs/help-source/screenshot-map.json b/docs/help-source/screenshot-map.json index 6f38b834a..de0505117 100644 --- a/docs/help-source/screenshot-map.json +++ b/docs/help-source/screenshot-map.json @@ -37,12 +37,14 @@ "UI-01": { "images": ["desktop-new-task.jpg", "task-git-diff.jpg"], "title": "桌面端导航与任务区域", - "caption": "新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。" + "caption": "新任务、定时任务和搜索位于左侧上方,扩展入口位于左侧下方,设置位于窗口右上角。打开任务后,对话和输入区位于中间,文件与差异可在右侧查看。 图中为早期导航示例,当前快捷键、办公室和更新入口以正文为准。", + "pending_details": "待补拍当前导航、虚拟办公室入口及侧边栏底部更新状态。" }, "UI-02": { "images": ["desktop-file-console.jpg"], "title": "文件预览、变更列表与底部控制台", - "caption": "桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。" + "caption": "桌面端同时打开文本预览、Git 变更列表和底部控制台。隐藏面板用于收起整个区域,页签上的关闭按钮用于关闭单个内容。 图中为早期文件面板,当前 HTML 浏览器按钮和路径导航以正文为准。", + "pending_details": "待补拍 HTML/HTM 浏览器按钮和路径面包屑菜单。" }, "UI-05": { "images": ["composer-file-picker.jpg", "composer-first-request.jpg"], @@ -58,7 +60,8 @@ "UI-07": { "images": ["task-side-chat.jpg"], "title": "侧边聊天与保留的主输入草稿", - "caption": "侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。" + "caption": "侧边聊天回答了“为什么要先 trim() 再判断空姓名”,主输入区仍保留未发送的任务草稿。截图中的回答由本次示例问答实际生成。 图中为早期侧边聊天示例,当前多轮浮窗及只读工具以正文为准。", + "pending_details": "待补拍多轮浮窗、只读工具记录和最小化控件。" }, "UI-10": { "images": ["task-git-diff.jpg"], @@ -170,7 +173,8 @@ "AD-03": { "images": ["composer-capability-menu.jpg", "composer-swarm-draft.jpg"], "title": "添加蜂群模式与编写分工草稿", - "caption": "从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。" + "caption": "从添加能力菜单选择蜂群模式后,输入区显示模式标签。草稿中说明负责的文件与只读边界;截图时尚未提交此分工请求。 图中为旧版单一蜂群开关,当前星型/网状入口以正文为准。", + "pending_details": "待补拍星型、网状两种蜂群菜单和网状任务树。" }, "AD-05": { "images": ["schedule-create-form.jpg"], diff --git a/docs/help-source/shell.html b/docs/help-source/shell.html index 784dc7061..95298c049 100644 --- a/docs/help-source/shell.html +++ b/docs/help-source/shell.html @@ -32,7 +32,7 @@
本页内容
    {{TOC}}
{{BODY}} - + diff --git a/docs/help-source/sources.json b/docs/help-source/sources.json index 36ad79bdd..3b411db5f 100644 --- a/docs/help-source/sources.json +++ b/docs/help-source/sources.json @@ -6,7 +6,10 @@ "README_CN.md", "docs/user-manual.md", "src/apps/headless/headless_options.cpp", - "docs/agent-browser.md" + "docs/agent-browser.md", + "web/src/lib/appShortcuts.js", + "web/src/components/VirtualOfficeSettings.jsx", + "web/src/lib/slashCommands.js" ] }, { @@ -41,7 +44,10 @@ "npm/desktop/README.md", "docs/macos-release.md", "docs/linux-self-update.md", - "web/src/components/UpdateDialog.jsx" + "web/src/components/UpdateDialog.jsx", + "web/src/components/Sidebar.jsx", + "src/adapters/upgrade/upgrade.cpp", + "src/adapters/upgrade/apply.cpp" ] }, { @@ -52,6 +58,11 @@ "web/src/lib/sidebarNavigation.js", "web/src/components/PreviewDetailsPanel.jsx", "web/src/components/ConsoleDock.jsx", + "web/src/lib/appShortcuts.js", + "web/src/components/VirtualOfficeSettings.jsx", + "web/src/lib/desktopOfficeController.js", + "web/src/components/FileBreadcrumbs.jsx", + "web/src/lib/htmlPreview.js", "docs/user-manual.md" ] }, @@ -92,6 +103,8 @@ "web/src/lib/inputBarState.js", "web/src/components/SideChatWindow.jsx", "web/src/components/ChatView.jsx", + "src/engine/agent/side_question/side_chat_tools.cpp", + "web/src/components/ComposerSessionControls.jsx", "docs/daemon-api.md" ] }, @@ -156,6 +169,7 @@ "web/src/components/model-settings/ModelConnectionCard.jsx", "web/src/components/model-settings/ModelSettingsSection.jsx", "src/adapters/provider/openai_provider.cpp", + "src/adapters/provider/openai_responses_provider.cpp", "src/adapters/provider/anthropic_provider.cpp" ] }, @@ -334,7 +348,9 @@ "web/src/lib/loops.js", "src/host/loop/loop_types.hpp", "src/host/loop/loop_scheduler.cpp", - "src/host/loop/loop_store.cpp" + "src/host/loop/loop_store.cpp", + "src/host/loop/scheduled_task_tool.cpp", + "assets/seed/skills/acecode/scheduled-task/SKILL.md" ] }, { @@ -451,7 +467,9 @@ "src/apps/headless/headless_options.cpp", "src/base/utils/paths.cpp", "docs/daemon-api.md", - "src/domain/memory/memory_paths.cpp" + "src/domain/memory/memory_paths.cpp", + "web/src/lib/appShortcuts.js", + "src/apps/tui/input/control_keys.cpp" ] }, { diff --git a/docs/help-source/tree.json b/docs/help-source/tree.json index 7525b8c48..aa3679dde 100644 --- a/docs/help-source/tree.json +++ b/docs/help-source/tree.json @@ -1,12 +1,12 @@ [ {"title":"开始使用","pages":[ - {"slug":"index","title":"认识 ACECode","sections":["ACECode 能做什么","桌面端、终端与 Web 如何取舍"]}, + {"slug":"index","title":"认识 ACECode","sections":["ACECode 能做什么","桌面端、终端与 Web 如何取舍","10 月功能更新"]}, {"slug":"installation","title":"安装","sections":["Windows","macOS","Linux"]}, {"slug":"quick-start","title":"快速开始","sections":["配置第一个模型","打开项目与创建任务","完成第一次代码修改"]}, {"slug":"update-uninstall","title":"更新与卸载"} ]}, {"title":"使用 ACECode","pages":[ - {"slug":"desktop","title":"桌面端","sections":["界面与导航","文件预览、终端与面板"]}, + {"slug":"desktop","title":"桌面端","sections":["界面与导航","文件预览、终端与面板","虚拟办公室"]}, {"slug":"tui","title":"TUI"}, {"slug":"cli","title":"CLI"}, {"slug":"web","title":"Web"}, diff --git a/docs/help-source/updates-2026-10-09.md b/docs/help-source/updates-2026-10-09.md new file mode 100644 index 000000000..ee3680ac9 --- /dev/null +++ b/docs/help-source/updates-2026-10-09.md @@ -0,0 +1,75 @@ +# 2026-10-01 至 2026-10-09 帮助内容核对 + +## 范围与依据 + +- 时区:Asia/Taipei。使用 Git 提交时间范围 `[2026-10-01 00:00, 2026-10-10 00:00)`,同时核对 change 中的 spec、tasks 和当前实现;不按 change 目录创建日期推断功能何时交付。 +- 源码基线:master `24c1e333d6329fed7685d0a1dfc3769e9d309a99`(v1.0.1)。本次不把工作区另一个任务尚未提交的上下文恢复修改纳入已交付能力。 +- 范围内共有 27 个发生变更的 OpenSpec change,其中包含更早提案的本期实现、修订或验收记录。 +- 更新对象:两份内置 usage skill、`docs/help-source` 正文、生成的 `docs/help`、内置资源版本和内容哈希。没有修改应用行为,没有提交、发版或部署公网网站。 + +## Spec 与帮助章节对应 + +下表的“已实现”表示当前基线已有对应实现,不代表所有平台和真实账号均完成验收。未勾选项按原任务清单保留。 + +| Change | 本期变化与状态 | 帮助落点 | +| --- | --- | --- | +| [unify-memory-system](../../openspec/changes/unify-memory-system/specs/global-memory/spec.md) | 全局/工作区记忆统一到 TUI、Desktop/Web、headless;管理页、会话开关和可选摘要。40 项完成。 | [记忆](../help/memory.html)、Desktop/TUI skill;修正“Desktop 无持久记忆”。 | +| [add-floating-side-chat](../../openspec/changes/add-floating-side-chat/specs/floating-side-chat/spec.md) | 多轮浮窗在本期扩展受限只读工具;生命周期与主任务隔离。14 项完成。 | [对话](../help/conversation.html#side-chat)、速查、两份 skill;区分 TUI 单次旁问。 | +| [add-mesh-swarm-mode](../../openspec/changes/add-mesh-swarm-mode/specs/swarm-mode-selection/spec.md) | 星型/网状/关闭、嵌套协作和通信、驻留管理、子会话持久化。48 项完成。根未读数未做、AD-03 新截图待补。 | [蜂群](../help/swarm.html)、CLI/速查、两份 skill。 | +| [optimize-session-loading](../../openspec/changes/optimize-session-loading/specs/session-history-loading/spec.md) | 最近历史优先、向上按需加载、滚动位置保护、会话列表按需展开/收起与加载诊断。50 项完成。 | [上下文](../help/context-usage.html)、[工作区](../help/workspaces.html)、Desktop skill。 | +| [add-chat-scroll-to-bottom](../../openspec/changes/add-chat-scroll-to-bottom/specs/web-chat-scroll-to-bottom/spec.md) | 悬浮返回底部、恢复跟随、忙碌三点状态;缩放和小数滚动修正。12 项完成。 | 上下文、Desktop skill。 | +| [fix-composer-tag-selection](../../openspec/changes/fix-composer-tag-selection/specs/composer-tag-selection/spec.md) | 引用标签与文字混合选择、复制/剪切、删除/撤销,拖入后继续输入,命令转换可撤销。20 项完成。 | [对话引用](../help/conversation.html#references)、Desktop skill。 | +| [sync-saved-model-reasoning](../../openspec/changes/sync-saved-model-reasoning/specs/model-selection/spec.md) | 启动、保存、刷新、进入新会话时后台同步思维深度,保留用户覆盖并隔离过期响应。9 项完成。 | [模型能力](../help/model-capabilities.html#abilities)、Desktop skill。 | +| [add-openai-responses-protocol](../../openspec/changes/add-openai-responses-protocol/specs/openai-responses/spec.md) | 显式协议选择、流式文本/思考/工具、历史续接和中断/失败处理;旧预设默认 Chat Completions。8 项完成。 | [服务商](../help/providers.html#openai)、模型管理、请求排错、两份 skill。 | +| [stabilize-prompt-cache-prefix](../../openspec/changes/stabilize-prompt-cache-prefix/specs/prompt-cache-stability/spec.md) | 稳定请求上下文、摘要复用前缀、成功压缩后刷新快照;无效摘要不落盘。7 项完成。 | [上下文](../help/context-usage.html)、记忆及排错;不承诺固定缓存命中率。 | +| [replicate-current-codex-compaction](../../openspec/changes/replicate-current-codex-compaction/design.md) | 本期补充上下文压缩设计记录;检查点、预算、失败恢复边界沿用当前实现。17 项完成。 | 上下文及排错;不把当前工作区未提交修复写成已发布特性。 | +| [fix-reused-tool-call-ids](../../openspec/changes/fix-reused-tool-call-ids/specs/provider-tool-call-identity/spec.md) | 跨响应复用调用 ID 时,历史投影保留正确工具结果,不改原始记录。5 项完成。 | 工具/上下文排错背景;无需增加用户开关。 | +| [fix-tool-result-identity-collisions](../../openspec/changes/fix-tool-result-identity-collisions/specs/tool-result-storage/spec.md) | 独立执行不再覆盖输出;截断结果保留可恢复路径,恢复后维持替换决策。5 项完成。 | [工具](../help/tools.html)、工具排错;指导查看完整输出。 | +| [fix-cjk-markdown-emphasis](../../openspec/changes/fix-cjk-markdown-emphasis/specs/webui-rich-rendering/spec.md) | 中文相邻标点/文字的 Markdown 强调兼容。3 项完成。 | 对话阅读说明;没有新增操作入口。 | +| [improve-archived-session-browser](../../openspec/changes/improve-archived-session-browser/specs/session-archive/spec.md) | 搜索、工作区过滤、组内时间排序、顶部批量操作、局部失败重试;组顺序跟随侧栏。8 项完成。 | [工作区](../help/workspaces.html#organize)、Desktop skill。 | +| [add-desktop-im-channels](../../openspec/changes/add-desktop-im-channels/specs/im-channels/spec.md) | QQ、微信、飞书、钉钉、Telegram、Discord、LINE;绑定、授权、远程会话、媒体与确认。44 项完成,综合真实账号验收项仍未勾选。 | [消息通道](../help/channels.html)、Desktop skill。保留微信仅私聊、LINE 回调条件等差异。 | +| [add-keyboard-shortcuts-and-compact-channels](../../openspec/changes/add-keyboard-shortcuts-and-compact-channels/specs/keyboard-shortcuts/spec.md) | 可搜索快捷键设置;会话/面板/导航/思维深度操作;紧凑通道卡片、管理弹框和平台图标。7 项完成。 | [速查](../help/reference.html#shortcuts)、桌面、消息通道、Desktop skill。 | +| add-pixel-agent-office-demo(已移除;见[接替设计](../../openspec/changes/integrate-desktop-agent-office/design.md)) | 早期像素办公室原型及其 change 本期移除,由真实会话办公室接替;不再推荐旧 demo 入口。 | [虚拟办公室](../help/desktop.html#virtual-office)。 | +| [integrate-desktop-agent-office](../../openspec/changes/integrate-desktop-agent-office/specs/desktop-agent-office/spec.md) | 原生独立窗口连接真实会话、最近会话/跟随、工具与上下文状态、稳定外观。13 项完成。 | 虚拟办公室、Desktop skill。 | +| [enhance-desktop-agent-office-motion](../../openspec/changes/enhance-desktop-agent-office-motion/specs/desktop-agent-office/spec.md) | 可读活动气泡、成员入场/交接/离场、macOS 实现。7 项完成;macOS 构建与实机验收项仍未勾选。 | 虚拟办公室;不宣称所有平台实测完成。 | +| [hover-desktop-office-controls](../../openspec/changes/hover-desktop-office-controls/specs/desktop-office-window-controls/spec.md) | 悬停控件、延迟隐藏、键盘可达、原生置顶与单独关闭。5 项完成。 | 虚拟办公室、Desktop skill。 | +| [add-virtual-office-preferences](../../openspec/changes/add-virtual-office-preferences/specs/virtual-office-preferences/spec.md) | 默认关闭、一次邀请、设置与齿轮菜单、关闭/重开状态同步;修复引导启动死锁。6 项完成。 | 虚拟办公室、Desktop skill。 | +| [open-html-preview-in-browser](../../openspec/changes/open-html-preview-in-browser/specs/side-preview-rendering/spec.md) | HTML/HTM 浏览器按钮;保存/放弃/取消保护,编码本地 file URL,等待原生页面就绪。4 项完成。 | [文件面板](../help/desktop.html#panels)、[浏览器](../help/agent-browser.html)、Desktop skill。 | +| [make-updates-cancellable-with-progress](../../openspec/changes/make-updates-cancellable-with-progress/specs/self-upgrade/spec.md) | 下载不受固定 30 秒总时限限制,安全阶段可取消,侧栏底部显示进度。16 项完成。 | [更新](../help/update-uninstall.html#check-update)、Desktop skill。 | +| [publish-microsoft-store-msix](../../openspec/changes/publish-microsoft-store-msix/tasks.md) | MSIX 打包/更新隔离已实现;真实身份、安装验收、提交及审核仍有 4 项未完成。 | 更新页仅说明 MSIX 由商店管理更新,安装页不新增“已经上架”承诺。 | +| [integrate-recent-work-release-0-9-33](../../openspec/changes/integrate-recent-work-release-0-9-33/tasks.md) | 近期工作整合、生命周期和 `/tasks` 拆分;任务清单仍有 4 项未勾选,不据此宣称全部交付闸门通过。 | 维护记录,不新增用户功能入口。 | +| [integrate-recent-work-release-0-9-35](../../openspec/changes/integrate-recent-work-release-0-9-35/specs/local-test-runner/spec.md) | 通道/办公室集成与测试退出码、回调生命周期修正。6 项完成。 | 维护记录;平台/真实账号边界沿用各 change。 | +| [refactor20260927-restructure-src-layers](../../openspec/changes/refactor20260927-restructure-src-layers/tasks.md) | 本期更新多平台补验记录;九个旧 ref/worktree 保留待迁移。 | 开发者章节使用当前分层路径,不把内部重构当成新用户操作。 | + +## 同期提交补充 + +部分集成改动没有独立的新 spec,依据提交与源码补齐: + +- `70ae4871`:自然语言创建定时任务,`scheduled-task` 技能激活 `create_scheduled_task`;智能添加只预填草稿,创建时询问执行权限。依据 [skill](../../assets/seed/skills/acecode/scheduled-task/SKILL.md) 和 [工具](../../src/host/loop/scheduled_task_tool.cpp),对应[定时任务](../help/schedules.html)。 +- `94b78f58`、`eb5f1b1f`、`210e085d`:路径面包屑、默认主题预览配色、置顶悬停可见、命令标签反馈、通道图标与弹框关闭规则。对应桌面、对话、工作区、消息通道章节。 +- `45aa7f0c`:限流与硬额度错误分类、断流及压缩错误恢复。对应[请求排错](../help/troubleshoot-context.html)。 +- 内置技能按版本协调安装是已有机制;此次修正帮助中仍遗留的“只在首次安装”说法。依据 [default_skill_seeder.cpp](../../src/domain/skills/default_skill_seeder.cpp),同步提高 seed revision,确保更新内容可随下次打包分发。 +- 额外纠正了旧速查中的 TUI 权限快捷键:实际为 Shift+Tab,Ctrl+P 属于导航。依据 [control_keys.cpp](../../src/apps/tui/input/control_keys.cpp)。 +- 额外纠正 usage skill 的 `/turn` 说明:实际中断当前回合并立即提交指导;排队卡片的插话才在下一模型边界生效。依据 [cmd_turn](../../src/apps/tui/commands/builtin_commands.cpp) 和 [ChatView](../../web/src/components/ChatView.jsx)。 + +## 验证与未完成事项 + +- [x] 核对 27 个 change 的 spec/task 状态与受影响操作,记录同期无独立 spec 的补充项。 +- [x] 更新 Desktop/Web 和 TUI 两份帮助 skill,新增按需读取的 Desktop 功能参考。 +- [x] 更新帮助正文与目录,生成 HTML、搜索索引、source/image 清单。 +- [x] 保留原始截图字节;为过时导航、文件面板、侧边聊天、蜂群画面补充说明和待补记录。 +- [x] 完成技能、seed 清单、全站链接/锚点/图片和离线浏览器验证。 +- [x] 生成并验证独立 HTML ZIP 交付包。 + +验证结果: + +- `python docs/help-source/build_help.py`:49 篇、7 栏、210 条搜索索引、44 处已配图、10 处占位。 +- 两份 usage skill 通过 `skill-creator/scripts/quick_validate.py`;引用的参考文件存在。 +- 复用现有 Windows 单元测试二进制运行 `--gtest_filter=DefaultSkillSeedRegistryTest.* --gtest_brief=1`,13 项通过,覆盖资源清单、版本/哈希、隔离用户目录等;未重新编译应用。 +- 静态检查通过 5,951 个本地链接/资源引用,全部搜索目标与锚点有效。 +- 解压后的 HTML 包使用 Edge/Chromium 在断网、`file://` 条件下检查:49 页 × 4 宽度(1440/1024/768/375)× 2 主题,共 392 次布局/图片检查通过;禁用 JavaScript 后 49 页正文和导航可读。 +- 搜索“虚拟办公室”“Responses”“只读”“Ctrl+Alt”、主题切换、移动目录操作通过;无脚本错误或远程请求。已查看桌面与手机首页截图。 +- ZIP 按 tree/captures 白名单包含 101 个文件,逐文件字节校验通过;原始产品截图未修改。 +- `git diff --check` 通过。本次文档源码变动不涉及 Web 应用构建,未将其他并行任务的源码修改纳入本次验证。 + +本次没有补拍产品截图,既有 10 处占位及辅助画面待补保留;没有执行平台真实账号验收、原生 Desktop 打包或商店发布。本次文档验证不能替代这些验收。 diff --git a/docs/help/acemodel.html b/docs/help/acemodel.html index 0d8a091a0..4f7f3138c 100644 --- a/docs/help/acemodel.html +++ b/docs/help/acemodel.html @@ -22,8 +22,8 @@