Commit Graph
32 Commits
Author SHA1 Message Date
WeiCHENandCursor b56ca45ad4 feat(web): wire project isolation and template cloning on project creation
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:41:05 +08:00
WeiCHENandCursor 061789e5d7 feat(web): add template status badges to deck drawer and tab bar
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:38:06 +08:00
WeiCHENandCursor a527f4dcd4 fix(engine): 修复 DOCX 公式因 undefined 虚根在 Word 中丢失的缺陷
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:37:28 +08:00
WeiCHENandCursor 29efa0d348 feat(engine): add project template cloning factory and unit tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:36:02 +08:00
WeiCHENandCursor a3daabf4d9 refactor(types): extend deliverable item with projectId and isTemplateOnly
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:35:04 +08:00
WeiCHENandCursor 3c6b4baa2a test(engine): 增加 cleanSvgForCanvas 净化与防污染单元测试
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:25:33 +08:00
WeiCHENandCursor 345cd54fb9 fix(engine): 修复 Mermaid 导出时的 Canvas Tainted 污染与 toBlob 异常
- 配置 Mermaid flowchart.htmlLabels 为 false,禁用 foreignObject 嵌入式 HTML 标签
- 实现 cleanSvgForCanvas 深度净化 SVG,剥离 @import 与将 foreignObject 转为原生 SVG <text>
- 替换异步 toBlob/FileReader 为同步 toDataURL + atob,并在 img.onload 中增加安全沙箱 try/catch 兜底

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:25:30 +08:00
WeiCHENandCursor c4f30eb26f test(engine): 增加 DOCX 行内 OMML 复合解析与公式转换单元测试
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:17:05 +08:00
WeiCHENandCursor dd67aacf49 feat(engine): 实现 DOCX 原生 OMML 数学公式、Mermaid 高清渲染与出版级公文排版
- 集成 mathml2omml 与 KaTeX,实现展示级公式 (<m:oMathPara>) 与行内公式 (<m:oMath>) 的微软原生矢量公式渲染
- 实现 svgToPngData 将 Mermaid 矢量图光栅化为 2.5x 视网膜清晰度的 PNG 图片嵌入 Word
- 重构公文抬头、4列受控签署栏、出版级三线表、keepNext 防孤行与带分割线的受控页眉页脚

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 20:17:01 +08:00
WeiCHENandCursor 776333e1ec feat(web): integrate interactive cards into chat stream and wire docgov actions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:58:21 +08:00
WeiCHENandCursor 649290bbba fix(web): add 60s grace period undo, executing banner and ttl safeguards to interactive card
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:45:10 +08:00
WeiCHENandCursor 1c62be6e49 feat(web): build interactive card component with lifecycle and idempotency
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:33:36 +08:00
WeiCHENandCursor 275b4ebd63 test(workbench): 增加 DOCX/XLSX 导出与会话隔离单元测试
- 验证 DOCX 二进制 Buffer 生成、TextRun 解析与 Blob 输出
- 验证 XLSX 多表提取、自适应列宽与工作簿 Sheet 命名规范
- 验证 sess-001 与 sess-002 对话隔离及动态追加互不串线

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:09:56 +08:00
WeiCHENandCursor 7e8f0cd4f7 feat(ui): 顶栏综合导出下拉选择器与 App 消息隔离及存储打通
- SlimTabBar: 增加导出格式气泡下拉菜单,支持一键导出 Word DOCX、Excel XLSX、Markdown MD
- App: MessageStream 严格根据 activeSessionId 过滤消息流,杜绝多项目会话串线
- App: 新建项目自动注入独立引导语,全流程与 storage 自动双向同步

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:09:51 +08:00
WeiCHENandCursor 9fc45ab3e3 feat(storage): 实现多项目会话隔离与 localStorage 全局刷新持久化
- 预设 sess-001 (4K内窥镜) 与 sess-002 (掌上超声) 独立初始消息流
- safeGetItem/safeSetItem 包装器防御性存取 sessions, activeSessionId, messages, deliverables
- 确保页面刷新后用户发送的所有内容、回复及即时生成的私密文档零丢失

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:09:47 +08:00
WeiCHENandCursor 58623605bc feat(engine): 实现 DOCX 与 XLSX 客户端原生渲染导出引擎
- 引入 docx 与 xlsx 依赖,纯前端无损编译 Block AST 交付物
- buildDocxModel: 自动生成两行四列受控签署栏、多级编号标题、Markdown富文本、医疗标准三线表、Cambria Math公式与动态页眉页脚
- buildXlsxWorkbook: 自动提取文档概览与全部数据表格,生成带自适应列宽的 Excel 工作簿并支持直接下载

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 18:09:43 +08:00
WeiCHENandCursor a7ee616afc feat(ui): 升级顶栏为极简级联面包屑架构,自适应 320px 极窄视窗
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 17:56:30 +08:00
WeiCHENandCursor 003a899785 fix(doc): 完善文档系统各层级标题、图表公式与有序列表自动编号引擎
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 17:41:59 +08:00
WeiCHENandCursor 5dc58322aa feat(intent): add interactive card payload and extended intent contracts
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 17:31:52 +08:00
WeiCHENandCursor dcc06502b4 test(doc): 完善三分类隐私隔离与流转单元测试并归档全量测试报告
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:50:17 +08:00
WeiCHENandCursor 8967f2b48b feat(ui): 实现三分类Tab分段切换、全景大盘分区与一键共享/取消共享闭环
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:50:11 +08:00
WeiCHENandCursor 3206304a57 fix(chore): 修正.gitignore根目录data规则并纳入前端mockDocuments
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:50:06 +08:00
WeiCHENandCursor a95b92da31 feat(types): 升级交付物数据契约支持工作流/共享/私密三分类与创作者属性
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:49:40 +08:00
WeiCHENandCursor 7bbfddccd4 fix(layout): 修复边栏拖拽位移累加并实现1:1光标捕获绝对跟随
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:49:36 +08:00
WeiCHENandCursor 59c3e83606 feat(ui): 修复模态背景穿透、公式/富文本Markdown解析并集成右键快捷菜单
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 16:49:30 +08:00
WeiCHENandCursor 916bddc04f feat(web): complete in-place block editing, reviewer comments, and role governance loop
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:50:48 +08:00
WeiCHENandCursor 267b8c89a5 feat(web): implement 36px slim tabs, deck drawer, and block views with medical styling
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:47:57 +08:00
WeiCHENandCursor 171b42510e feat(web): implement agent chat stream with thinking pulse indicator and case cards
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:46:08 +08:00
WeiCHENandCursor 1ed455ab73 feat(web): implement responsive three-column shell with resizable rails and theme switch
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:44:54 +08:00
WeiCHENandCursor 4d9dfbb027 feat(web): implement markdown block ast converters and auto-numbering engine
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:43:21 +08:00
WeiCHENandCursor 915b35232c feat(web): define block ast, workbench session, and docgov types
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:41:30 +08:00
WeiCHENandCursor 952c73e9a5 feat(web): initialize react 19 vite typescript scaffold and token design system
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-08 14:40:51 +08:00