修复完整会话历史与长气泡交互并更新 CentOS 7 发布包
提交当前工作区全部源码、回归脚本、任务记录及重新构建的 Bun baseline 发布包。发布单文件 MCP 初始化及前端资源一致性验证通过。
This commit is contained in:
112
.planning/2026-10-10-mermaid-png-download/browser-report.json
Normal file
112
.planning/2026-10-10-mermaid-png-download/browser-report.json
Normal file
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"evidenceDir": "/tmp/cc-web-mermaid-export-dirEq0",
|
||||
"cases": [
|
||||
{
|
||||
"name": "flowchart",
|
||||
"expected": {
|
||||
"viewBox": "-8 -8 289 56.600006103515625",
|
||||
"width": "100%",
|
||||
"height": null,
|
||||
"foreignObjects": 5,
|
||||
"labelBoxes": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 32,
|
||||
"height": 25.600006103515625,
|
||||
"text": "开始"
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 64,
|
||||
"height": 25.600006103515625,
|
||||
"text": "处理订单"
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 32,
|
||||
"height": 25.600006103515625,
|
||||
"text": "完成"
|
||||
}
|
||||
]
|
||||
},
|
||||
"size": {
|
||||
"width": 578,
|
||||
"height": 114
|
||||
},
|
||||
"filename": "mermaid-1.png",
|
||||
"mime": "image/png"
|
||||
},
|
||||
{
|
||||
"name": "sequence",
|
||||
"expected": {
|
||||
"viewBox": "-50 -10 450 287",
|
||||
"width": "100%",
|
||||
"height": null,
|
||||
"foreignObjects": 0,
|
||||
"labelBoxes": []
|
||||
},
|
||||
"size": {
|
||||
"width": 900,
|
||||
"height": 574
|
||||
},
|
||||
"filename": "mermaid-2.png",
|
||||
"mime": "image/png"
|
||||
},
|
||||
{
|
||||
"name": "html-label",
|
||||
"expected": {
|
||||
"viewBox": "-8 -8 95 172.8000030517578",
|
||||
"width": "100%",
|
||||
"height": null,
|
||||
"foreignObjects": 3,
|
||||
"labelBoxes": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 0,
|
||||
"height": 0,
|
||||
"text": ""
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 64,
|
||||
"height": 51.19999694824219,
|
||||
"text": "中文标签第二行"
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"width": 32,
|
||||
"height": 25.600006103515625,
|
||||
"text": "结束"
|
||||
}
|
||||
]
|
||||
},
|
||||
"size": {
|
||||
"width": 190,
|
||||
"height": 346
|
||||
},
|
||||
"filename": "mermaid-3.png",
|
||||
"mime": "image/png"
|
||||
}
|
||||
],
|
||||
"browser": "156.0"
|
||||
}
|
||||
15
.planning/2026-10-10-mermaid-png-download/findings.md
Normal file
15
.planning/2026-10-10-mermaid-png-download/findings.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 定位记录
|
||||
|
||||
- 用户要求 Mermaid 下载图片,默认 2 倍;使用 PNG 无损格式。
|
||||
- 项目使用 Node.js,前端主入口 public/app.js;Mermaid 相关文件还有 public/index.html、public/style.css。
|
||||
- codebase-memory-mcp 的 home-cc-web 索引状态为 ready。
|
||||
- 工作区已有多项其他任务改动,包括 public/app.js,需要局部修改。
|
||||
- 已定位 serializeMermaidSvg、getMermaidSvgText、svgTextToPngBlob 和 ccDownloadMermaidDiagram;已有复制 PNG 的转换能力,应复用。
|
||||
- codebase-memory 的 get_code_snippet/trace_path 连接关闭(Transport closed),后续使用已命中的文件范围进行本地阅读。
|
||||
- 本机有 Firefox 和 geckodriver,可使用隔离浏览器页面验证真实导出。
|
||||
- 导出改为 svgTextToPngBlob(svgText, 2),输出 .png;复制默认保持 1 倍。
|
||||
- 独立代码审查补充使用 UTF-8 Data URL 作为 SVG 图片来源,避开部分浏览器对 Blob + foreignObject 的 Canvas 安全限制;下载按钮 title 和 aria-label 明确 PNG、2 倍。
|
||||
- 第一轮成功验证(Firefox 156.0,使用倍率实现与 Blob 来源):流程图 578×114、时序图 900×574、中文换行图 190×346,MIME、PNG 文件头和 2 倍尺寸均通过,实际下载文件存在;目视检查中文与换行完整。
|
||||
- 因独立审查随后修改了图片来源,正在用最终 Data URL 实现重复必要的真实浏览器验证。
|
||||
- 最终 Data URL 实现复验通过,三类图表尺寸与上述结果一致;PNG 中中文与 HTML 换行可见。浏览器报告已保存为本目录 browser-report.json;原始图片保留于 /tmp/cc-web-mermaid-export-dirEq0/。
|
||||
- 页面入口通过 computeFrontendAssetVersion 按文件内容计算资源版本,修改前端后刷新页面即可加载最新代码,无需重启服务。
|
||||
13
.planning/2026-10-10-mermaid-png-download/progress.md
Normal file
13
.planning/2026-10-10-mermaid-png-download/progress.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 进度
|
||||
|
||||
- 2026-10-10:读取仓库规范、前端质量规范和规划技能;检查工作区与索引状态。
|
||||
- 已建立与 update_plan 同步的三阶段 CSV,后续先定位导出函数。
|
||||
- 定位完成:下载目前直接保存 SVG;svgTextToPngBlob 已用于复制图片,可以扩展倍率后复用。
|
||||
- 独立计划审查通过。进入实现阶段,父代理准备真实 Firefox 导出验证。
|
||||
- 已编写 /tmp/cc-web-mermaid-export-browser.cjs:使用项目真实 Mermaid 函数与 10.9.1 资源,在隔离 Firefox 页面点击按钮并校验导出文件头、宽高、中文和切换行为。
|
||||
- 实现完成:转换函数 scale 默认 1,下载显式 2;下载文件扩展名 .png;保留错误处理与按钮恢复。node --check public/app.js 通过。
|
||||
- 独立代码审查完成:转换改用 Data URL,按钮无障碍标签与提示明确格式和倍率。语法与 diff 空白检查通过。
|
||||
- 浏览器三类图表首轮全部通过,抽查 PNG 中中文与箭头完整;最终 Data URL 版本正在复验,证据保存于临时隔离目录。
|
||||
- 最终 Data URL 版本复验通过:3 类图表下载的 PNG MIME、文件头、固有尺寸 ×2、按钮恢复和源码切换均符合预期;真实下载文件存在,中文换行目视抽查通过。
|
||||
- 保存精简浏览器报告 browser-report.json;复核静态资源按内容计算版本,刷新即可生效,未重启服务。
|
||||
- 全部步骤完成,清理本任务 CSV,保留规划与验证记录。
|
||||
34
.planning/2026-10-10-mermaid-png-download/task_plan.md
Normal file
34
.planning/2026-10-10-mermaid-png-download/task_plan.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Mermaid 图片下载
|
||||
|
||||
目标:气泡中的 Mermaid 下载 PNG 图片,默认导出尺寸为图表固有尺寸的 2 倍。
|
||||
|
||||
## 阶段
|
||||
|
||||
1. [completed] 定位 Mermaid 下载入口并确认导出约束。
|
||||
2. [completed] 将下载改为默认 2 倍 PNG 图片。
|
||||
3. [completed] 验证图片格式、尺寸及页面行为。
|
||||
|
||||
## 约束
|
||||
|
||||
- 沿用现有下载按钮与渲染流程。
|
||||
- 保留中文标签、图表样式和完整边界,导出比例不受页面缩放或设备像素比影响。
|
||||
- 工作区已有其他任务改动,public/app.js 只修改 Mermaid 导出相关区域。
|
||||
- 不重启服务,除非确有必要且没有其他运行中的会话。
|
||||
- 完成后清理本任务临时 CSV。
|
||||
|
||||
## 错误记录
|
||||
|
||||
- Codebase Memory 读取源码和调用链时 Transport closed;已完成符号定位,降级为已知范围的本地源码阅读,不重复调用失败工具。
|
||||
- Mermaid CDN 测试资源直连 25 秒、代理 30 秒未下载完;已切换可续传的后台下载,浏览器验证将使用本地同版本资源。
|
||||
- CDN 不支持 Range,取消续传,改为延长总下载上限的异步下载。
|
||||
- 首个实现代理出现 upstream encrypted continuation context 验证失败,未完成修改;已重新派发完整且简明的实现上下文。
|
||||
- 首轮浏览器验证总计 60 秒超时(Firefox 启动较慢);增加浏览器验证总时限并增加阶段输出,仅对浏览器测试调整时限。
|
||||
- 第二轮 Firefox 成功启动但加载页面超出 25 秒;确认主机负载 31,限制隔离浏览器内容进程数并增加页面加载时限。
|
||||
|
||||
## 完成记录
|
||||
|
||||
- 最终实现真实 Firefox 156.0 测试通过:流程图、时序图和中文 HTML 换行标签均成功下载 PNG;尺寸分别为 578×114、900×574、190×346,均为固有宽高的 2 倍。
|
||||
- PNG 文件头、MIME、文件名和按钮恢复通过;图形/代码切换正常;抽查导出图片中文、换行与箭头可见且完整。
|
||||
- node --check public/app.js、git diff --check -- public/app.js 通过。
|
||||
- trellis-update-spec 复核:此次只调整已有前端导出辅助函数和下载入口,没有新增跨层协议;具体导出约定保存在任务 PRD、findings 与 browser-report.json,无需扩充通用规范。
|
||||
- 无依赖变更、无服务重启、无提交。
|
||||
Reference in New Issue
Block a user