zcbot/web
caoqianming fafcb14d86 skill(proposal): mermaid 文件名 hash→caption + quality_check 加图相关 4 拦截 + SKILL.md 精简; web cache fix
用户报"图没渲染到 docx",诊断后修三件事(同一根因链):
- web/app.py /v1/files/download 加 Cache-Control: no-cache
  Starlette FileResponse 只发 ETag/Last-Modified, 浏览器走启发式缓存,
  workspace 文件改了 SPA 预览看不到新版
- quality_check 新 check_figures(): 4 条规则
  1) figures/ 有 png 但 sections 0 个 ![]() 引用
  2) fenced 代码块出现 box-drawing 字符 (┌─┐│└─┘ 等)
  3) mermaid 块必须有首行 %% caption: <题>
  4) 同 task 内 mermaid caption 不能撞名
- render_diagrams.py: hash → caption 命名
  pass-1 验证 caption 完整 + 全 task 唯一, 缺/撞 退 2
  pass-2 渲染落 fig_<sanitized>.png, 总是覆盖
- render_docx.py: mermaid 块按 caption 查 fig_<caption>.png
  无 caption / 清洗空 / png 缺 → ASCII fallback
- SKILL.md ~193 → ~160 行:
  插图段 49→22 行(压 matplotlib 细节 + 删类型选择展开)
  反模式合并 ASCII/占位/手写图编号/缺 caption/撞名
  删"为什么两段式"长说理段

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 10:19:09 +08:00
..
static ui(dev SPA): 文件点击弹框预览(image/pdf/text/md/docx/xlsx, 其它 fallback) 2026-05-19 08:25:20 +08:00
__init__.py core(§7 Phase G G1): Web UI 脚手架 + cli.py web 子命令 2026-05-14 13:37:54 +08:00
app.py skill(proposal): mermaid 文件名 hash→caption + quality_check 加图相关 4 拦截 + SKILL.md 精简; web cache fix 2026-05-19 10:19:09 +08:00
auth.py core(§7 D + D'): /v1 JSON API + PLATFORM_KEY→JWT auth + dev SPA 2026-05-15 16:14:25 +08:00
broker.py core(0004): 删 runs / usage_events 表 + cancel/SSE 改 task-level 2026-05-18 11:05:35 +08:00
sinks.py core(0004): 删 runs / usage_events 表 + cancel/SSE 改 task-level 2026-05-18 11:05:35 +08:00