Land styled docx generation and in-chat deliverable cards (deliverable-docx-r1) #109

Merged
weichen merged 4 commits from feature/deliverable-docx-r1 into main 2026-10-01 02:52:54 +00:00
3 changed files with 41 additions and 2 deletions
+39
View File
@@ -0,0 +1,39 @@
# feature/deliverable-docx-r1 任务卡
任务主记录:https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/109;状态:已完成(随 PR #109 合入);owner:weichen
## 基线与授权
- 权威仓:ssh://git@git-ssh.u1680832.nyat.app:31411/weichen/Agent-System-Dev.git;目标分支:main;R0(initial_base_sha)= 388d01cc3afe0d426d0cb166168cfc34565cb5ce
- 工作区:/home/weichen/projects/Agent-System-Dev-wt-feature-deliverable-docx-r1(worktree);分支:feature/deliverable-docx-r1
- 授权与交付终点:用户反馈两项缺陷后授权修复——(1) 生成的 docx 必须带真实排版(标题层级/表格/样式),不得是纯文本;(2) 交付物(文档/图/PPT/pdf 等)必须在对话内直接以可打开预览的卡片给出(参照 ZCode 右栏预览与 Kimi 卡片形态,截图六张)。交付终点:模块 PR + Dev gitlink 合入。
## 目标与非目标
- 后端:新增 docgen(Markdown→带样式 OOXML,零三方依赖)+ write_docx 内置工具 + 提示词路由(write_artifact 不再承接 Word 文档);artifact_ref 部件从「过程件」改为「内容件」并钉在最终正文之后(Kimi 式回复完给卡)。
- 前端:artifact_ref 渲染升级为交付物卡片(整卡点击=右栏预览唯一落位 + 单下载按钮,令牌化样式 + mk-rise-in);live.ts 投影与落库序同构(交付物钉尾、流式期间即可见)。
- 非目标:xlsx/pptx/pdf 生成器、文档可检索索引(生成路径暂跳过二进制索引,见剩余项)、预览器改动(mammoth 已能还原 Heading1-4 样式)。
## 同步记录
| 节点 | sync_base_sha | tested_head_sha | checked_at |
|---|---|---|---|
| 启动 | 388d01cc3afe0d426d0cb166168cfc34565cb5ce | 388d01cc3afe0d426d0cb166168cfc34565cb5ce | 2026-10-01T02:25:45Z |
| 合入前 task-sync | 388d01cc3afe0d426d0cb166168cfc34565cb5ce(Dev 无前进;frontend 分支保护拦 head-behind 后实并入 origin/main 再合) | backend 8550bb0 + frontend b048d90 + ui 不变 | 2026-10-01T02:51:XXZ |
## 结果与验证(完成后填写)
- 结果:
- Backend PR #31(merge 8550bb0):internal/docgen(Title/Heading1-4、numbering.xml 真编号列表含任务项 ☐/☑、GFM 表格表头底纹、引用左线、代码底纹、粗斜/删除线/真超链接 rels;A4 中文页边距、等线/Calibri 字族);write_docx 工具(name 自动补 .docx,docx MIME 工件);ingest 回读测试(生成→parseDocx 块结构闭合);llm.go 交付物钉尾;mock #doc 改为真 docx 全链路演示;runmgr 二进制 mime 跳过字符串索引;提示词 tool.write_docx 新增、tool.write_artifact 分工改写、task.doc-minutes 输出契约要求 write_docx 交付。
- Frontend PR #25(merge b048d90):Conversation.tsx deliverable-card(图标+文件名+类型/大小 meta+预览示意+单下载;整卡点击=右栏预览,全屏仍从右栏标题进);live.ts artifact 投影钉尾同构;styles.css 令牌化卡片样式;测试更新。
- 验证:
- backend `go test ./...` 19 包 ok(含新 e2e:API 取回工件为合法 zip 且 document.xml 含 `<w:tbl>` 与标题文本);
- frontend `npx vitest run` 40/40、`tsc --noEmit` 干净;
- 组合 `make test`(core+backend+frontend+ui+agentcmd)全绿——ui 含 design-guard 8 项(无裸色/无私有 keyframes/无行内字号);
- 提交前 precheck verdict=READY(R0=388d01c)。
- 影响与剩余项:
- docx 生成路径未进全文索引(二进制 mime 跳过;上传路径 ingest 不受影响)——后续可用 ingest 块解析接通;
- xlsx/pptx 生成器未做(卡片与预览对它们已就绪);
- 超过 50 个列表序列的文档回落共享编号(编号延续,Word 容忍);
- mimosa 扫描钩子在本次 commit/push 时 scanner_no_output(兼容放行),未获得完整安全扫描结论,不据此宣称安全。
| 同步前验收 | 388d01cc3afe0d426d0cb166168cfc34565cb5ce | d53e8e7c427a87681a76e6fc572438a6d0942720 | 2026-10-01T02:51:50Z |