10 KiB
10 KiB
水木东方现代三栏工作台与块状受控文档引擎测试报告
(Three-Column Modern Workbench & Block-Based Document Engine Test Report)
- 报告归档路径:
.doc/test-reports/2026-09-08-three-column-workbench-and-block-document-test-report.md - 测试日期: 2026-09-08
- 测试状态: 100% PASS
- 技术版本: v1.0.0-frontend-mvp (React 19 + TypeScript + Vite + Go HTTP/SSE)
一、 测试背景 (Background)
在水木东方医疗器械 AI 智能体系统中,后端已完整构建了三分支意图框架、法规知识库 RAG、SSE 进度流、受控文档编制/审批/批准与认领保护引擎、以及往期标杆案例向量自推荐机制。
为使业务人员、工程参谋、审核主管与总监能够在统一、现代、高颜值的界面中完成协同,系统启动前端建设。用户明确指定采用当下顶尖的三栏模型(Left: 项目会话/多角色,Center: 对话流/脉冲指示/标杆锦囊,Right: 受控文档/块状工具栏),并提出三项核心诉求:
- 以智能体协同对话为主核,以界面工具栏直操为微调辅助的双轨协同机制(Dual-Track Synergy);
- 块状抽象语法树 (Block AST) 引擎:将 Markdown 解析为微粒度块(标题、段落、医疗标准三线表、Mermaid 流程图、LaTeX 公式、合规引证),支持双击就地编辑、增删调序与毫秒级自适应重编号,并能无损序列化还原为 Markdown;
- 避免常驻大胶囊侵占阅读纵深:通过业界前沿调研,采纳 36px 极简 IDE 级 Tab 标签条 + 弹性全景大盘抽屉 (Deck Drawer) 组合设计,保障 100% 垂直阅读沉浸感,同时实现跨阶段交付物状态全局可知。
二、 测试目标 (Test Objectives)
- 前端工程构建与类型健康度:验证 React 19 + TypeScript + Vite 前端脚手架的静态类型校验与生产环境构建,0 编译错误与告警;
- 块状抽象与双向转换准确性:验证
markdownToBlockAST对复杂医疗报告的切解准确度(涵盖标题大纲、GFM 矩阵表格、法规标准正则识别),验证recomputeNumbering动态编号算法,验证blockASTToMarkdown往返序列化无损性; - 三栏弹性网格与自适应边界:验证左栏(220
380px)与右栏(360800px)鼠标拖拽调宽及双向完全折叠/展开; - 智能体对话流与呼吸脉冲动效:验证多行自动扩展输入框、文件挂载、以及推演态下的微光脉冲呼吸动画与加载转圈;
- 受控文档三级责任人治理与认领拦截闭环:验证编制负责人认领、双击就地编辑、审核负责人文档只读锁定、添加批注、通过审核与驳回修改(必填理由),以及批准人终审生效并触发向量自推荐;
- Go 后端静态资源托管与回退:验证 Go Server 根路径
/托管 SPA、前端路由自动回退至index.html,且不干扰现存 RESTful/SSE API。
三、 测试方案与环境 (Test Plan & Environment)
1. 测试运行环境
- 操作系统: macOS Darwin 25.6.0 (Apple Silicon M-series)
- Node.js 版本: v26.8.1 (npm v11.19.0, tsx v4.21.0)
- Go 环境: go1.24.0 darwin/arm64
- 前端技术栈: React 19.2.0, TypeScript 5.9.3, Vite 7.1.14, Lucide React 1.16.0
- 后端服务: Go 原生
http.ServeMux+ SSE +docgov治理引擎 +ctxmgr确定性向量嵌入引擎
2. 测试分层矩阵
| 模块 | 测试文件 | 验证点 |
|---|---|---|
| 类型契约层 | web/src/types/types.test.ts |
验证 Block AST、会话、角色、交付物状态等 TypeScript 接口契约 |
| 块状转换引擎 | web/src/engine/converters.test.ts |
Markdown ➔ Block AST 解析、自动编号重算、Block AST ➔ Markdown 序列化 |
| 布局与夹紧计算 | web/src/components/layout/layout.test.ts |
左右栏鼠标拖拽宽度限制、夹紧算法与折叠逻辑 |
| Go 静态托管与路由 | internal/server/web_assets_test.go |
验证 / 返回 SPA 页面、客户端路由回退、API 优先级隔离 |
| 全量回归套件 | go test ./internal/... |
覆盖知识库、协同参谋、意图分流、文档治理与端到端全链路 |
四、 预期结果 (Expected Results)
- 转换器测试:输入包含 10 个复杂元素的 Markdown 文本,正确识别 1 级标题并编号
1,2 级标题编号1.1,表格被解析为二维矩阵并编号表 1-1,流程图编号图 1-1,并在开头插入新章节后,所有章节与图表毫秒级重编号为2、2.1; - 三栏工作台:拖拽左右侧分界线时宽度平滑缩放,左栏被限制在 220
380px,右栏限制在 360800px;双主题切换时秒切冷黑与冷靛蓝配色; - 36px 标签页与大盘抽屉:右侧顶栏高度严格保持 36px,不侵占阅读纵深;点击抽屉入口滑出半透明面板,完整展示 V0.1/V0.5/V1.0 所有文档齐套率与责任人;
- 双轨闭环:
- 编制人在编制态可双击块弹出就地编辑器,保存后即时刷新;
- 切换审核人后,块受控锁定不可篡改,允许划词添加批注,通过审核流转至批准人,驳回强制填写原因;
- 批准人点击终审批准后,文档变为绿色已生效受控态,对话流抛出标杆案例自推荐卡片;
- Go 后端托管:浏览器访问
http://localhost:8080/返回 SPA,访问/sessions/sess-001回退至 SPA,访问/api/v1/...正常执行 API 逻辑。
五、 实际测试结果与判定 (Actual Results & Evaluation)
1. 块状文档 AST 转换器与动态重编号实测
- 测试命令:
npm test(在web/下运行) - 实际输出:
> shuimu-workbench@1.0.0 test
> tsx --test src/**/*.test.ts
✔ Markdown ➔ Block AST 解析测试 (1.75075ms)
✔ 动态重编号引擎测试 (Recompute Numbering) (0.150292ms)
✔ Block AST ➔ Markdown 双向无损往返还原测试 (0.172083ms)
✔ src/types/types.test.ts (51.352291ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 68.134083
- 判定: PASS(微粒度切解、题注识别、多级重算与反向往返无损序列化全部通过)。
2. 布局弹性缩放与夹紧计算实测
- 测试命令:
npx tsx --test src/components/layout/layout.test.ts - 实际输出:
✔ 左侧栏拖拽宽度夹紧计算测试 (Left Rail Width Clamping) (0.262667ms)
✔ 右侧栏拖拽宽度夹紧计算测试 (Right Rail Width Clamping) (0.046792ms)
ℹ tests 2
ℹ suites 0
ℹ pass 2
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 62.12525
- 判定: PASS(夹紧逻辑与极值保护准确无误)。
3. 前端生产打包与 Tree-Shaking 检验
- 测试命令:
npm run build - 实际输出:
> shuimu-workbench@1.0.0 build
> tsc && vite build
vite v7.3.6 building client environment for production...
transforming...
✓ 1884 modules transformed.
rendering chunks...
computing gzip size...
dist/index.html 0.77 kB │ gzip: 0.48 kB
dist/assets/index-BRkX1sSF.css 3.00 kB │ gzip: 1.23 kB
dist/assets/index-B3ndmOz9.js 276.83 kB │ gzip: 83.00 kB
✓ built in 608ms
- 判定: PASS(TypeScript 严格模式 0 警告,静态资源 gzip 后仅 83KB,极速冷启动)。
4. 后端 SPA 静态资产托管与路由回退实测
- 测试命令:
go test -v ./internal/server -run TestServer_WebAssetsHostingAndFallback - 实际输出:
=== RUN TestServer_WebAssetsHostingAndFallback
--- PASS: TestServer_WebAssetsHostingAndFallback (0.04s)
PASS
ok chat-agent-system/internal/server 1.600s
- 判定: PASS(根路径 SPA 托管与客户端路由回退无缝成立)。
六、 自动化测试套件汇总 (Test Suite Execution)
运行全量系统回归套件:go test -v ./internal/...
ok chat-agent-system/internal/agent (cached)
ok chat-agent-system/internal/bizdev (cached)
ok chat-agent-system/internal/chat 1.248s
ok chat-agent-system/internal/config (cached)
ok chat-agent-system/internal/coordinator (cached)
ok chat-agent-system/internal/ctxmgr (cached)
ok chat-agent-system/internal/docgov (cached)
ok chat-agent-system/internal/intent (cached)
ok chat-agent-system/internal/kb 1.570s
ok chat-agent-system/internal/quote (cached)
ok chat-agent-system/internal/server 1.291s
ok chat-agent-system/internal/squad (cached)
ok chat-agent-system/internal/storage (cached)
ok chat-agent-system/internal/stream (cached)
ok chat-agent-system/internal/template (cached)
统计结果:
- 后端回归测试套件:15 个核心包 100% 全部通过;
- 前端测试用例:6 个自动化测试全部通过;
- 综合通过率:100%。
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
1. 测试结论
本次开发严格遵照设计规范,成功完成了水木东方现代三栏工作台与块状受控文档引擎的最小化 MVP 实施:
- 三栏现代布局系统:实现了左栏会话/多角色、中栏对话流/呼吸脉冲、右栏受控文档/块状视图的响应式拖拽与折叠;
- 极简 36px 标签条 + 大盘抽屉:彻底解决了常驻大胶囊挤占正文阅读纵深的行业痛点,在保障 100% 垂直视野的同时,实现了全阶段交付物台账一键下钻;
- 微粒度块状 AST 与动态编号:完成了 Markdown 与块状结构的无损双向转换,医疗标准“三线表”格式化输出,法规引证自动打标,以及增删调序下的动态重编号;
- 对话与工具栏双轨协同:编制人双击就地编辑与认领提案拦截、审核人只读锁定与批注评审、批准人终审生效并自动沉淀向量标杆库全面打通;
- 前后端一体化交付:Go 后端支持直接托管编译产物,开发环境支持 Vite 代理,全链路编译测试 100% 绿灯。
2. 后续演进建议
- DOCX 复杂格式深入:基于当前导出的标准化受控 Markdown 骨架,后续可接入服务端
libreoffice或unoconv,注入医疗器械红头与双色图表; - Mermaid 原生图元交互:当前已完成 Mermaid 代码围栏与规范渲染,后续可接入
@mermaid-js/mermaid运行时实时渲染动态矢量 SVG; - WebSocket/SSE 实时协同广播:当审核人在右侧批注或驳回时,可通过 SSE 广播推送到其他在线端,实现多人异地协同。