TraceStudio-dev/docs/web/ACCEPTANCE_CHECKLIST.md
2026-01-09 21:37:02 +08:00

7.3 KiB
Raw Blame History

TraceStudio 前端 v0.3.0 验收清单

发布日期: 2024-01
开发阶段: 完成
代码审查: 待执行
测试验证: 待执行


📋 功能完成度

🎯 Phase 1: Param 绑定模式系统

  • ParamBindingMode 类型定义static/context/exposed
  • ParamBinding 数据结构mode + value/contextRef
  • Inspector UI 三种模式按钮(📝 静态值 | 🔗 Context | 暴露端口)
  • 静态值输入控件input[number] / input[text]
  • Context 下拉列表与变量聚合
  • 数据持久化到 node.bindings
  • 暴露端口按钮联动 node.exposedPorts.params
  • 完成度: 100%

🎯 Phase 2: 连线 EdgeType 标记与视觉差异

  • isArrayType() 类型检测函数
  • onConnect 中 edgeType 推断逻辑
  • strokeWidth 4px数组/ 3px标量映射
  • edge.data.edgeType 数据持久化
  • 执行动画时保留 edgeType 对应的宽度
  • 连线颜色与类型映射(蓝/橙/紫/灰)
  • 完成度: 100%

🎯 Phase 3: 暴露端口显示Param + Context

  • allInputs 合并原始和暴露 Param 端口
  • allOutputs 合并原始和暴露 Context 端口
  • 暴露 Param 端口样式(粉红色 #ec4899、14x14
  • 暴露 Context 端口样式(绿色 #22c55e、14x14
  • 端口 Tooltip" Exposed Param: name" / "📋 Context: name"
  • 暴露端口指示区(紫红色背景、列表显示)
  • Handle 位置计算(均匀分布)
  • 完成度: 100%

🎯 Phase 4: 数据结构与规范化

  • useStore.NodeSchema 扩展bindings + exposedPorts
  • API getPlugins 类型扩展inputs/outputs/param_schema/context_vars
  • normalizeParamSchema 函数Object → Array 转换)
  • NodePalette 应用规范化
  • UniversalNode 参数提取兼容两种格式
  • 完成度: 100%

🎯 Phase 5: 文档与测试工具

  • IMPLEMENTATION_SUMMARY.md技术文档
  • FEATURES_TEST.md功能验证清单
  • USER_GUIDE_v0.3.0.md用户使用指南
  • TEST_INTEGRATION.js浏览器测试脚本
  • 完成度: 100%

📊 代码质量指标

类型安全

项目 状态 备注
ParamBindingMode 类型 完整 字面类型定义
ParamBinding 接口 完整 三字段结构
NodeSchema 扩展 完整 两个新字段
API 类型覆盖 完整 四大属性
Inspector 类型检查 ⚠️ 部分 多个 any 用途明确
Workspace 类型检查 ⚠️ 部分 兼容 React Flow 类型

代码复用性

  • normalizeParamSchema 可复用于其他地方
  • isArrayType 可复用于其他类型检测
  • availableContextVars 逻辑独立,可扩展

性能考虑

  • availableContextVars 使用 useMemo 避免重复计算
  • Handle 渲染使用 map 高效生成
  • edge.data 使用引用而非深拷贝

📁 文件清单

修改的核心文件 (6)

文件 行数变化 关键改动
web/src/stores/useStore.ts +20 ParamBindingMode、ParamBinding、bindings、exposedPorts
web/src/utils/api.ts +4 getPlugins 返回类型扩展
web/src/components/Inspector.tsx +130 Param 绑定 UI、availableContextVars、三种模式
web/src/components/Workspace.tsx +15 isArrayType、edgeType 推断、strokeWidth 映射
web/src/components/nodes/UniversalNode.tsx +80 allInputs/allOutputs、暴露端口指示、端口样式差异
web/src/components/NodePalette.tsx +10 normalizeParamSchema、应用规范化

新增文档文件 (4)

文件 大小 内容
IMPLEMENTATION_SUMMARY.md ~6KB 技术实现细节、改动清单、集成说明
FEATURES_TEST.md ~5KB 测试场景、已知问题、变更日志
USER_GUIDE_v0.3.0.md ~8KB 使用指南、工作流示例、常见问题
TEST_INTEGRATION.js ~7KB 浏览器控制台测试脚本

总计: 6 个修改文件 + 4 个新增文档 = 10 个文件变更


🧪 测试覆盖

单元测试需求

  • ParamBindingMode 类型常量测试
  • normalizeParamSchema 函数测试
  • isArrayType 函数测试
  • availableContextVars 计算逻辑测试

集成测试需求

  • 参数绑定三种模式的 UI 交互
  • Context 变量列表的准确性
  • 节点暴露端口的位置和样式
  • 连线粗细与类型的映射
  • 工作流保存和加载时的数据完整性

端到端测试需求

  • 创建包含各种参数绑定的工作流
  • 执行并验证参数值传递
  • 验证暴露端口的连线行为
  • 多节点联合工作流的完整性

手动测试清单(浏览器)

# 1. 加载测试脚本
F12 打开开发者工具 → 粘贴以下代码:
const script = document.createElement('script')
script.src = '/TEST_INTEGRATION.js'
document.head.appendChild(script)

# 2. 运行测试
testCompleteWorkflow()

# 3. 逐项验证
testParamBinding()      # Param 绑定按钮
testEdgeType()         # 连线粗细
testExposedPorts()     # 暴露端口
testNodeDataStructure() # 数据结构
testAPIResponse()       # API 响应
inspectFirstNode()      # 节点细节
inspectStore()          # Store 状态

🔗 依赖关系

内部依赖

Inspector.tsx
    ↓
useStore.ts (ParamBinding, ParamBindingMode)
    ↓
UniversalNode.tsx (exposedPorts 显示)
    ↓
Workspace.tsx (edge 数据)

外部依赖

  • React >= 16.8 (hooks)
  • React Flow >= 11 (Handle, Position)
  • Zustand (state management)
  • TypeScript >= 4.0 (literal types)

🚀 后续计划

v0.3.1 (Bug 修复)

  • Context 删除时自动清空 contextRef
  • 参数名称变更时同步 bindings 和 exposedPorts
  • 暴露端口名称冲突检测

v0.4.0 (后端集成)

  • /api/graph/execute 解析 bindings
  • Context 变量运行时替换
  • 工作流导入/导出完整支持
  • 暴露端口的值传递逻辑

v0.5.0 (增强功能)

  • Dimension Mode 支持EXPAND/COLLAPSE/BROADCAST
  • 连线右键菜单修改 dimensionMode
  • 参数搜索和过滤
  • 参数绑定撤销/重做

验收标准

功能性验收

  • Param 三种绑定模式完整实现
  • Context 变量自动聚合显示
  • 暴露端口正确显示和交互
  • EdgeType 自动推断与视觉编码
  • 数据结构完整且类型安全
  • 文档齐全且示例清晰

质量验收

  • 代码遵循项目风格指南
  • TypeScript 类型检查通过(忽略必要的 any
  • 组件间耦合度低
  • 无明显性能问题

可维护性验收

  • 代码注释充分
  • 函数职责单一
  • 重复代码已提取
  • 文档与代码同步

📞 联系与支持

问题反馈

  • GitHub Issues: /issues 报告 bug
  • 讨论区: /discussions 功能建议

文档位置


📝 签名

角色 日期 签名
开发者 2024-01-XX 完成
代码审查 - 待执行
QA 测试 - 待执行
产品确认 - 待执行

版本: v0.3.0 | 状态: 开发完成 | 构建: 就绪