Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if(CMAKE_HOST_WIN32 AND DEFINED CMAKE_TOOLCHAIN_FILE AND CMAKE_TOOLCHAIN_FILE MA
set(VCPKG_TARGET_TRIPLET "x64-windows-static" CACHE STRING "Vcpkg target triplet" FORCE)
endif()

project(acecode VERSION 0.9.32 LANGUAGES C CXX)
project(acecode VERSION 0.9.33 LANGUAGES C CXX)

include(${CMAKE_SOURCE_DIR}/cmake/acecode_source_guards.cmake)

Expand Down
7 changes: 7 additions & 0 deletions docs/daemon-api.md
Original file line number Diff line number Diff line change
Expand Up @@ -4201,6 +4201,13 @@ Check and job responses include `log_path` when a log was created, and
not change the upgrade outcome. Failure text includes the underlying error and
available log path so existing clients can display actionable diagnostics.

Check and job responses are always valid UTF-8 JSON. Operating-system and
transport error text (which Windows reports in the ANSI code page, for example
GBK on Chinese systems) is converted to UTF-8 where it is produced, and local
paths are reported in UTF-8. Any byte that still is not valid UTF-8 is replaced
with U+FFFD instead of failing the request, so a failed job with such text in
`error` keeps polling successfully.

### `POST /api/update/start`

Checks for an update and starts one daemon-managed background update job. The
Expand Down
11 changes: 11 additions & 0 deletions docs/releases/v0.9.33.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# ACECode 0.9.33

- 新增网状蜂群协作:子代理可继续分工并互相传递消息,后台任务可打开对应子会话;子会话与主会话一同保存和删除。
- 新对话也可查看和选择思考深度,后台补齐模型声明;选择会带入新建会话。
- 修复蜂群通知穿插时重复显示「已处理」总耗时,保留各条通知和完整活动详情。
- 改善中文 Markdown 的粗体、斜体及中英文混排显示,保留原始消息文本。
- 修复 Windows 中文路径及系统错误导致升级接口返回异常的问题;升级失败信息可正常显示,诊断说明不再重复追加。
- 统一 TUI、桌面、网页与无界面运行的全局/工作区记忆,支持查看、编辑和可选的空闲摘要;长会话压缩保留最近摘要和用户关键指令。
- 加快长会话打开和侧栏刷新,修复重复工具调用 ID 导致的历史丢失、结果串用和旧输出覆盖,改善侧边对话及文件附件体验。

提供 Windows、macOS、Linux 和 UOS / Deepin 的完整平台下载包。安装新版后请重启 ACECode;macOS 同时提供 Intel 与 Apple Silicon 安装器及自动更新包。
8 changes: 8 additions & 0 deletions openspec/changes/add-mesh-swarm-mode/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,14 @@ Payload:
- **未做**:未读邮件计数(Codex 无)、面板按深度缩进、来源标签改用完整路径、采样中途因新邮件抢占输出、`<subagents>` 名册注入、`agent_interrupt` 后的 `<turn_aborted>` 标记。
- **Web 芯片**:芯片 = 服务端模式(messages 快照 / `session_updated{swarm_mode}`)+ 未提交的本地选择,只有二者不同才随消息提交 `swarm_mode`,避免普通消息把 `/swarm` 刚切的模式改回去;信封在 transcript 摄入时转成系统提示行。

## 2026-10-03:跨 agent 通知不拆分已处理摘要

`presentInterAgentMessage` 已将信封转换成系统提示行,但完成回合的投影把每条系统行都当作分段边界;通知间的工具和 assistant 活动分别生成「已处理」,并重复使用同一条 `turn_timing` 总耗时。

完成回合的活动收集改为:识别结构化 `metadata.inter_agent` 的系统通知,保留其顶层位置及展开正文,同时让通知两侧的活动归入同一摘要。摘要锚定第一条被折叠活动的位置,内部活动顺序不变,通知彼此的顺序不变;通知不重复收进摘要。真实用户消息、提问卡片、图片及其它系统提示仍保持原来的分段边界。实时活动、关闭自动折叠、原始会话记录及后端投递行为保持原有契约。

定向回归覆盖 MESSAGE / FINAL_ANSWER / NEW_TASK、持久总耗时、普通完成与 task_complete 两条路径,以及实时事件、历史加载、transcript_replace 的一致性。

## Open Questions

- 移植的角色提示词具体措辞(在实现时对照 Codex 源文本逐段改写,不影响规格与任务拆分)。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,17 @@ root 会话的后台任务面板 SHALL 列出该树的全部子 agent(任意
- **THEN** 信封行以相同的独立样式回放
- **AND** 该会话的摘要仍为其最后一条真实用户消息

#### Scenario: 同一回合的多条通知不重复生成已处理摘要
- **WHEN** 一个已完成回合的工具与 assistant 活动之间穿插多条跨 agent 通知,且没有其它必须独立分段的项目
- **THEN** Web/Desktop SHALL 仅生成一条「已处理」活动摘要,总耗时只显示一次
- **AND** 各通知 SHALL 仍按原顺序独立展示并可展开正文,摘要详情保留全部被折叠活动
- **AND** 实时事件完成、历史加载及 transcript_replace SHALL 得到相同结果

#### Scenario: 其它可见边界不被跨 agent 通知合并
- **WHEN** 通知附近存在提问卡片、图片、普通系统提示或下一条真实用户消息
- **THEN** 系统 SHALL 保持这些项目原有的分段与展示行为
- **AND** 关闭自动折叠时 SHALL 继续按原顺序显示活动与通知

### Requirement: 任意层级的权限请求与提问冒泡到 root 界面
任意深度子 agent 的权限请求与 AskUserQuestion SHALL 出现在 root 会话所在的界面(Web/Desktop 全局弹窗、TUI 确认/提问浮层),来源标签 SHALL 为该 agent 的任务名(会话标题);用户的回答 SHALL 路由回发起请求的 agent。

Expand Down
8 changes: 8 additions & 0 deletions openspec/changes/add-mesh-swarm-mode/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,11 @@
- [x] 9.2 单元测试中文注释;`acecode_unit_tests` fast profile 全绿,`pnpm test` / `pnpm build` 通过
- [x] 9.3 `openspec validate add-mesh-swarm-mode --strict` 通过;变更文档随分支强制加入版本库(`openspec/` 被 ignore)
- [ ] 9.4 帮助页截图 AD-03 仍是旧菜单(只有一个「蜂群模式」),需补拍

## 10. 蜂群通知穿插时的已处理摘要修复(2026-10-03)

- [x] 10.1 复现通知拆分已处理摘要的问题,修正完成回合投影,保留通知正文、活动详情与原有非通知边界
- [x] 10.2 增加持久耗时、实时事件、历史加载及 transcript_replace 回归,覆盖 task_complete 与关闭自动折叠
- [x] 10.3 运行定向测试、Web 全量测试、构建、OpenSpec 严格验证与差异检查,记录结果

验证记录:修复前定向用例复现同一回合 4 条已处理摘要(期望 1 条);修复后 `transcriptProjection.test.js`、`sessionTranscript.test.js` 通过。`pnpm test` 通过(2981 项),`pnpm build` 及正则兼容检查通过,`openspec validate add-mesh-swarm-mode --strict`、`git diff --check` 通过。Headless Edge 使用实际 TranscriptItems / Message / ActivityLine 组件验证 1280px 浅色折叠态与 720px 深色展开态:1 条已处理、3 条独立通知、全部通知正文和 4 条活动详情可展开,无横向溢出及脚本异常。未重新编译或替换已安装 Desktop。
2 changes: 2 additions & 0 deletions openspec/changes/fix-cjk-markdown-emphasis/.openspec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-10-03
26 changes: 26 additions & 0 deletions openspec/changes/fix-cjk-markdown-emphasis/design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Context

问题与范围见 proposal.md。`web/src/lib/markdown.js` 维护单个 markdown-it 实例,完整、行内和分块渲染共用该实例。当前 Node 为 22,前端使用 ESM;插件 3.0.0 要求 Node >=18,提供默认导出,与现有调用方式兼容。

## Goals / Non-Goals

- 目标:直接解析现有回复中的中日韩强调,不预处理或改写原文。
- 非目标:修改 TUI、独立可视化编辑器或模型提示词;本次不发布或替换运行中的 Desktop 二进制。

## Decisions

- 固定 `markdown-it-cjk-friendly` 为 3.0.0,通过 `md.use` 接入共享实例,保留任务列表、代码高亮、HTML 转义及链接处理。
- 不全局移除 Unicode 标点判断。实测该方案会让 `提示:**(可选)**` 和 `中文,__重点__。` 由正常加粗退化为字面文本。
- 不用正则替换原文。该做法容易误改代码、转义和流式中间状态,也会让显示与复制内容不一致。
- 通过独立的渲染回归测试覆盖全角标点、中英混排、日文/韩文、删除线和流式状态;纳入现有 `runTests.js`。
- 按上游 [使用说明](https://github.com/tats-u/markdown-cjk-friendly/tree/main/packages/markdown-it-cjk-friendly) 接入,实际兼容性以本仓库测试及构建结果为准。

## Risks / Trade-offs

- 新增插件调整中日韩边界,包括删除线 → 同时覆盖已有正常写法与字面代码,执行全量 Web 测试。
- 新依赖影响浏览器打包 → 执行 `pnpm build` 及现有旧版 WebKit 正则检查,并用浏览器验证生成的 HTML。
- Web 构建成功不代表已安装 Desktop 生效 → 明确记录验收范围,实际桌面发布仍需后续嵌入资产并重建。

## Migration Plan

更新依赖、渲染器与测试,完成 Windows 本机 Web 验证。现有会话数据无需迁移。回退时撤销插件注册和对应依赖即可恢复原有解析行为。
25 changes: 25 additions & 0 deletions openspec/changes/fix-cjk-markdown-emphasis/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Why

中文回复中的 `**建议:**共享` 等写法在现有 CommonMark 标点边界规则下直接显示星号。用户希望 ACECode 正常显示这类中文加粗,同时保留已有 Markdown 写法的解析结果。

## What Changes

- 在 WebUI 共享 Markdown 渲染器接入 `markdown-it-cjk-friendly`,兼容中日韩文字与标点相邻的强调标记。
- 覆盖完整、行内和流式分块渲染,并验证转义、代码与已有强调边界不受破坏。
- 更新依赖锁文件及 Web 文档,记录 Windows 本机验证结果。

## Capabilities

### New Capabilities

无。

### Modified Capabilities

- `webui-rich-rendering`:补充中日韩文字中的强调兼容规则和共享渲染入口一致性。

## Impact

- 涉及 `web/src/lib/markdown.js`、相关测试、`web/package.json`、`web/pnpm-lock.yaml` 和 `web/README.md`。
- 新增 `markdown-it-cjk-friendly` 依赖;沿用现有 `markdown-it`。
- 作用于使用该共享渲染器的 Web/Desktop 内容,不修改会话原文、协议、TUI 解析器或独立的可视化编辑器。
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## ADDED Requirements

### Requirement: 中日韩文字相邻的强调兼容

WebUI 的共享 Markdown 展示 SHALL 识别中日韩文字及标点相邻的星号加粗、星号斜体和删除线,无需用户在这些标记外额外插入空格。完整内容、行内内容与流式分块展示 MUST 使用一致的强调规则,保留已有可正确解析的标点边界及下划线强调。代码、显式转义的星号和原始会话内容 MUST 保持原有语义,HTML 转义与链接限制 MUST 继续生效。

#### Scenario: 全角冒号后紧接中文
- **WHEN** 内容为 `**建议:**共享` 或列表项 `- **同会话消息排序:**异步处理`
- **THEN** 标签连同全角冒号显示为加粗,后续文字正常显示,强调星号不显示

#### Scenario: 保留已有混合标点写法
- **WHEN** 内容为 `提示:**(可选)**`、`结果:**"通过"**` 或 `中文,__重点__。`
- **THEN** 原有加粗范围保持正确,不因中文兼容规则而退化为星号或下划线

#### Scenario: 中日韩强调与删除线
- **WHEN** 内容为 `*注意:*继续`、`前文**(重点)**后文`、`**注意。**続き`、`**주의。**다음` 或 `~~旧值:~~新值`
- **THEN** 对应范围分别显示为斜体、加粗或删除线

#### Scenario: 原文与字面语义保持
- **WHEN** 相同文字出现在行内代码、围栏代码、显式转义文本或含原始 HTML 的内容中
- **THEN** 代码和转义星号保持字面显示,原始 HTML 仍转义,持久化与复制的源文本不变

#### Scenario: 流式补齐强调标记
- **WHEN** 流式消息从未闭合强调逐步追加到 `**建议:**共享`
- **THEN** 已闭合强调正确显示,分块 HTML 拼接与完整渲染相同,先前完成段落不变
18 changes: 18 additions & 0 deletions openspec/changes/fix-cjk-markdown-emphasis/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## 1. 接入与回归

- [x] 1.1 接入固定版本的插件、更新锁文件及 Web 文档,用共享渲染器确认 `**建议:**共享` 正常加粗。
- [x] 1.2 增加中日韩强调、已有标点边界、字面代码、转义与流式回归用例,纳入测试入口并通过定向测试。

## 2. 综合验证

- [x] 2.1 完成全量 `pnpm test`、`pnpm build`、浏览器渲染验证、OpenSpec 严格验证及 `git diff --check`,在本文件记录范围与结果。

## 验证记录

- Windows 本机,2026-10-03;Node 22.22.0、pnpm 10.32.1。
- 定向执行 `node src/lib/markdownCjkEmphasis.test.js` 与 `node src/lib/markdownBlocks.test.js`:19 项新增回归和 7 项既有分块测试通过。
- `web/` 中执行 `pnpm test`:退出码 0,输出 2,977 条 `[pass]`。
- `web/` 中执行 `pnpm build`:通过;产物扫描 4,498 个正则字面量,未发现旧版 WebKit 不兼容的后行断言。
- Headless Edge 使用真实共享渲染器打包与构建 CSS,渲染用户提供会话的原始片段:11 项检查通过,包括六个列表标签与“建议:”加粗、无残留星号、代码/标题保留、分块一致性及中日韩兼容;截图已目视核对。
- 仓库根目录执行 `openspec validate fix-cjk-markdown-emphasis --strict` 与 `git diff --check`:通过。
- 本次是共享 Web 渲染器的隔离浏览器验证;未重建或替换运行中的 Desktop/daemon,也未执行 TUI 或跨端实机验收。
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
schema: spec-driven
created: 2026-10-04
25 changes: 25 additions & 0 deletions openspec/changes/integrate-recent-work-release-0-9-33/design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Context

45 个注册 worktree 的状态、最近提交、文件时间及当前 master 覆盖情况已盘点。两个近期脏 worktree 分别为 cranky-jemison-14c349 与 ecstatic-dirac-7e2088;它们的 HEAD 已在 master,未提交差异只有部分已被此前复制整合。近期 reflog 中 preview-mesh-sync 暂存快照主要由 329faf92 和蜂群提交覆盖,需逐项核对避免重复应用。

## Goals / Non-Goals

目标:完整整合有效改动,保留原有行为,修复发布阻断,并从唯一最终 master 提交生成完整发布。非目标:清理旧 worktree、重写历史、改变未涉及的功能、把尚未完成的 Claude 工作当成完成。

## Decisions

1. 对比 worktree HEAD、当前 master 与脏文件做三方合并;源文件哈希核对后才写当前工作区。已有 UTF-8 修复不重复提交,冲突处保留公共安全 JSON 序列化与所有独立回归用例。
2. `/tasks` 按现有独立命令模块模式拆出注册函数,保留原来的注册位置;不抬高 2060 行基线,不删除行为绕过检查。
3. 使用新的 0.9.33 标签,不覆盖失败的旧版本标签。受保护 master 通过既有 PR 流程交付,最终同一提交的测试通过后才创建标签并发布。
4. 六种更新 ZIP、双架构 macOS 签名公证 PKG 及完整 18 项下载产物均须存在并校验。更新 manifest 保留 Linux 能力版本目标,PKG 不混入自动更新项。
5. 发布完成后读取 Claude 的运行/任务记录核实终态;只有明确结束且无在途工作才执行用户授权的关机。

## Risks / Trade-offs

- 多处补丁已部分合入:三方合并及逐文件比较防止丢失较新行为。
- 本地构建目录的可执行文件仍被桌面占用:优先构建独立测试目标,构建发布可执行文件前核对进程任务状态,仅停止明确需要释放的实例。
- macOS 凭据或跨平台 CI 仍可能失败:保留标签/资产,修复具体原因,不把部分发布报告为完整。

## Migration Plan

无配置结构迁移。本轮未新增种子资源,仍需比较最近正式版到最终提交的 seed 内容和协调逻辑,并按实际差异执行升级检查。
23 changes: 23 additions & 0 deletions openspec/changes/integrate-recent-work-release-0-9-33/proposal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Why

用户要求整合 2026-10-03 00:38:52 至发布开始时近 24 小时内的主工作区及 worktree 改动,发布正式版,并在发布完成且 Claude 工作结束后关机。盘点发现升级 UTF-8 错误处理和诊断去重仍有未合入部分;当前 master 的 TUI 内置命令文件超过尺寸棘轮,阻断原生 CI。

## What Changes

- 保留已集成的代码,仅三方合入两处 worktree 的升级修复及回归测试,连同主工作区的新对话思考深度、中文 Markdown 强调、蜂群耗时摘要修复一起交付。
- 将 `/tasks` 命令实现移到同层独立模块,保留注册顺序及行为,恢复严格分层与尺寸检查。
- 升级版本至 0.9.33,完成本机、CI、签名、公证、完整产物及更新服务验证。

## Capabilities

### New Capabilities

- `recent-work-release-integrity`: 最近改动整合和完整正式发布的可追溯验证。

### Modified Capabilities

无。

## Impact

涉及升级组件、升级 HTTP 接口和测试、TUI 命令组织、既有前端修复以及发布版本和记录。保持旧分支/worktree 不变,不删除旧引用;不覆盖并发编辑。
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## ADDED Requirements

### Requirement: 最近工作完整整合
系统 SHALL 将用户指定时间窗口内有效且未整合的代码合入最终 master,同时保留其后的主线行为及全部相关回归测试。

#### Scenario: 同一修复已部分合入
- **WHEN** worktree 中部分修改已在 master,另有后续补充
- **THEN** 仅集成缺失修改,合并重叠测试,并记录来源与校验结果

### Requirement: 命令拆分保持行为
TUI SHALL 在同一注册顺序下提供既有 `/tasks` 列出和中止行为,并通过严格尺寸和所有权检查。

#### Scenario: 内置命令文件超过基线
- **WHEN** `/tasks` 被拆入独立命令模块
- **THEN** 用户可见命令及行为不变,文件低于既有基线且无需新增豁免

### Requirement: 完整发布之后关机
正式版 SHALL 从验证过的最终 master 生成并完整镜像到更新服务;关机 MUST 等待发布完成且 Claude 任务确认结束。

#### Scenario: 产物或任务尚未完成
- **WHEN** 任一必需产物缺失、验证失败或 Claude 仍在工作
- **THEN** 不报告完整发布成功,不执行关机
16 changes: 16 additions & 0 deletions openspec/changes/integrate-recent-work-release-0-9-33/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
## 1. 整合

- [x] 1.1 盘点近 24 小时 master、worktree、远端和 reflog,定位 CI 阻断。
- [x] 1.2 整合升级 UTF-8、诊断去重及主工作区修复,核对来源覆盖及冲突。
- [x] 1.3 拆出 TUI tasks 命令并恢复严格检查,完成对应本机测试。

## 2. 发布

- [x] 2.1 审核 seed 差异、执行必要升级兼容验证,完成前端及本机测试。
- [ ] 2.2 更新版本及说明,提交全部有效改动并通过 PR 合入受保护 master。
- [ ] 2.3 确认最终提交 CI 通过,发布 0.9.33,校验完整 18 项下载与六种更新 ZIP、两个 PKG 的镜像及公网哈希。

## 3. 收尾

- [ ] 3.1 核对 master 同步、近期 worktree 覆盖及发布证据。
- [ ] 3.2 检查 Claude 工作状态,完成后执行用户授权的关机。
Loading
Loading