openclaw-agent-dashboard 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +55 -321
  2. package/frontend-dist/assets/index-B7XqKAxm.css +1 -0
  3. package/frontend-dist/assets/index-CxJaSYyo.js +24 -0
  4. package/{frontend → frontend-dist}/index.html +2 -1
  5. package/{plugin/openclaw.plugin.json → openclaw.plugin.json} +2 -2
  6. package/package.json +21 -13
  7. package/.github/workflows/release.yml +0 -56
  8. package/VERSION_DISPLAY_delivery.md +0 -242
  9. package/VERSION_DISPLAY_implementation_summary.md +0 -315
  10. package/design_manifest.md +0 -100
  11. package/docs/CHANGELOG_AGENT_MODIFICATIONS.md +0 -132
  12. package/docs/MAINTAINER_RELEASE_WORKFLOW.md +0 -211
  13. package/docs/Openclaw-Agent-Dashboard/345/217/221/345/270/203/344/270/216/346/233/264/346/226/260.md +0 -147
  14. package/docs/RELEASE-LATEST.md +0 -189
  15. package/docs/RELEASE-MODEL-CONFIG.md +0 -95
  16. package/docs/WINDOWS_INSTALL_TROUBLESHOOTING.md +0 -171
  17. package/docs/design/.gitkeep +0 -0
  18. package/docs/design/VERSION_DISPLAY_design.md +0 -1236
  19. package/docs/release-guide.md +0 -259
  20. package/docs/release-operations-manual.md +0 -167
  21. package/docs/reviews/.gitkeep +0 -0
  22. package/docs/reviews/approval_history.json +0 -14
  23. package/docs/reviews/cr_VERSION_DISPLAY.md +0 -397
  24. package/docs/reviews/traceability_manifest.json +0 -279
  25. package/docs/specs/VERSION_DISPLAY_spec.md +0 -371
  26. package/docs/specs/tr3-install-system.md +0 -580
  27. package/docs/windows-collaboration-model-paths-troubleshooting.md +0 -0
  28. package/frontend/package-lock.json +0 -1240
  29. package/frontend/package.json +0 -19
  30. package/frontend/src/App.vue +0 -355
  31. package/frontend/src/components/AgentCard.vue +0 -796
  32. package/frontend/src/components/AgentConfigPanel.vue +0 -539
  33. package/frontend/src/components/AgentDetailPanel.vue +0 -738
  34. package/frontend/src/components/ErrorAnalysisView.vue +0 -546
  35. package/frontend/src/components/ErrorCenterPanel.vue +0 -844
  36. package/frontend/src/components/PerformanceMonitor.vue +0 -515
  37. package/frontend/src/components/SettingsPanel.vue +0 -236
  38. package/frontend/src/components/TokenAnalysisPanel.vue +0 -683
  39. package/frontend/src/components/chain/ChainEdge.vue +0 -85
  40. package/frontend/src/components/chain/ChainNode.vue +0 -166
  41. package/frontend/src/components/chain/TaskChainView.vue +0 -425
  42. package/frontend/src/components/chain/index.ts +0 -3
  43. package/frontend/src/components/chain/types.ts +0 -70
  44. package/frontend/src/components/collaboration/CollaborationFlowSection.vue +0 -1032
  45. package/frontend/src/components/collaboration/CollaborationFlowWrapper.vue +0 -113
  46. package/frontend/src/components/common/VersionDisplay.vue +0 -187
  47. package/frontend/src/components/performance/PerformancePanel.vue +0 -119
  48. package/frontend/src/components/performance/PerformanceSection.vue +0 -1137
  49. package/frontend/src/components/tasks/TaskStatusSection.vue +0 -973
  50. package/frontend/src/components/timeline/TimelineConnector.vue +0 -31
  51. package/frontend/src/components/timeline/TimelineRound.vue +0 -135
  52. package/frontend/src/components/timeline/TimelineStep.vue +0 -691
  53. package/frontend/src/components/timeline/TimelineToolLink.vue +0 -109
  54. package/frontend/src/components/timeline/TimelineView.vue +0 -540
  55. package/frontend/src/components/timeline/index.ts +0 -5
  56. package/frontend/src/components/timeline/types.ts +0 -120
  57. package/frontend/src/composables/index.ts +0 -7
  58. package/frontend/src/composables/useDebounce.ts +0 -48
  59. package/frontend/src/composables/useRealtime.ts +0 -52
  60. package/frontend/src/composables/useState.ts +0 -52
  61. package/frontend/src/composables/useThrottle.ts +0 -46
  62. package/frontend/src/composables/useVirtualScroll.ts +0 -106
  63. package/frontend/src/main.ts +0 -4
  64. package/frontend/src/managers/EventDispatcher.ts +0 -127
  65. package/frontend/src/managers/RealtimeDataManager.ts +0 -302
  66. package/frontend/src/managers/StateManager.ts +0 -128
  67. package/frontend/src/managers/index.ts +0 -5
  68. package/frontend/src/types/collaboration.ts +0 -135
  69. package/frontend/src/types/index.ts +0 -20
  70. package/frontend/src/types/performance.ts +0 -105
  71. package/frontend/src/types/task.ts +0 -38
  72. package/frontend/vite.config.ts +0 -18
  73. package/legacy_code_anatomy.md +0 -518
  74. package/plugin/README.md +0 -99
  75. package/plugin/config.json.example +0 -1
  76. package/plugin/package.json +0 -26
  77. package/scripts/build-plugin.js +0 -81
  78. package/scripts/bundle.sh +0 -62
  79. package/scripts/install-plugin.sh +0 -162
  80. package/scripts/install-python-deps.sh +0 -226
  81. package/scripts/install.js +0 -684
  82. package/scripts/install.sh +0 -367
  83. package/scripts/lib/common.sh +0 -137
  84. package/scripts/release-pack.sh +0 -110
  85. package/scripts/start.js +0 -50
  86. package/scripts/test_available_models.py +0 -284
  87. package/scripts/test_version_display.sh +0 -128
  88. package/scripts/test_websocket_ping.py +0 -44
  89. package/session_registry.json +0 -58
  90. package/tests/.gitkeep +0 -0
  91. package/tests/qa_regression_report.md +0 -359
  92. package/tests/qa_version_display_report.md +0 -598
  93. /package/{src/backend → dashboard}/agents.py +0 -0
  94. /package/{src/backend → dashboard}/api/__init__.py +0 -0
  95. /package/{src/backend → dashboard}/api/agent_config_api.py +0 -0
  96. /package/{src/backend → dashboard}/api/agents.py +0 -0
  97. /package/{src/backend → dashboard}/api/agents_config.py +0 -0
  98. /package/{src/backend → dashboard}/api/chains.py +0 -0
  99. /package/{src/backend → dashboard}/api/collaboration.py +0 -0
  100. /package/{src/backend → dashboard}/api/debug_paths.py +0 -0
  101. /package/{src/backend → dashboard}/api/error_analysis.py +0 -0
  102. /package/{src/backend → dashboard}/api/errors.py +0 -0
  103. /package/{src/backend → dashboard}/api/performance.py +0 -0
  104. /package/{src/backend → dashboard}/api/subagents.py +0 -0
  105. /package/{src/backend → dashboard}/api/timeline.py +0 -0
  106. /package/{src/backend → dashboard}/api/version.py +0 -0
  107. /package/{src/backend → dashboard}/api/websocket.py +0 -0
  108. /package/{src/backend → dashboard}/collaboration.py +0 -0
  109. /package/{src/backend → dashboard}/data/__init__.py +0 -0
  110. /package/{src/backend → dashboard}/data/agent_config_manager.py +0 -0
  111. /package/{src/backend → dashboard}/data/chain_reader.py +0 -0
  112. /package/{src/backend → dashboard}/data/config_reader.py +0 -0
  113. /package/{src/backend → dashboard}/data/error_analyzer.py +0 -0
  114. /package/{src/backend → dashboard}/data/session_reader.py +0 -0
  115. /package/{src/backend → dashboard}/data/subagent_reader.py +0 -0
  116. /package/{src/backend → dashboard}/data/task_history.py +0 -0
  117. /package/{src/backend → dashboard}/data/timeline_reader.py +0 -0
  118. /package/{src/backend → dashboard}/data/version_info_reader.py +0 -0
  119. /package/{src/backend → dashboard}/errors.py +0 -0
  120. /package/{src/backend → dashboard}/main.py +0 -0
  121. /package/{src/backend → dashboard}/mechanism_reader.py +0 -0
  122. /package/{src/backend → dashboard}/mechanisms.py +0 -0
  123. /package/{src/backend → dashboard}/performance.py +0 -0
  124. /package/{src/backend → dashboard}/requirements.txt +0 -0
  125. /package/{src/backend → dashboard}/session_reader.py +0 -0
  126. /package/{src/backend → dashboard}/status/__init__.py +0 -0
  127. /package/{src/backend → dashboard}/status/change_tracker.py +0 -0
  128. /package/{src/backend → dashboard}/status/error_detector.py +0 -0
  129. /package/{src/backend → dashboard}/status/status_cache.py +0 -0
  130. /package/{src/backend → dashboard}/status/status_calculator.py +0 -0
  131. /package/{src/backend → dashboard}/status_calculator.py +0 -0
  132. /package/{src/backend → dashboard}/subagent_reader.py +0 -0
  133. /package/{src/backend → dashboard}/watchers/__init__.py +0 -0
  134. /package/{src/backend → dashboard}/watchers/file_watcher.py +0 -0
  135. /package/{plugin/index.js → index.js} +0 -0
@@ -1,371 +0,0 @@
1
- # 版本号显示需求规格说明书
2
-
3
- > **项目名称**: OpenClaw Agent Dashboard
4
- > **特性标识**: VERSION_DISPLAY
5
- > **版本**: 1.0.0
6
- > **编写日期**: 2026-03-19
7
- > **编写人员**: 业务分析师 (BA)
8
- > **项目模式**: 增量开发(Incremental Mode)
9
-
10
- ---
11
-
12
- ## 1. 需求背景与目标
13
-
14
- ### 1.1 背景
15
-
16
- OpenClaw Agent Dashboard 当前已经部署到生产环境,用户在使用过程中反馈以下问题:
17
-
18
- 1. **版本信息缺失**:用户无法直观地看到当前 Dashboard 插件的版本号,无法确认是否为最新版本
19
- 2. **问题排查困难**:当用户反馈问题时,无法快速提供准确的版本信息给技术支持团队
20
- 3. **升级验证不便**:用户升级后无法确认是否成功升级到目标版本
21
-
22
- 根据摸排报告(`legacy_code_anatomy.md`),Dashboard 项目已有以下基础:
23
- - **前端技术栈**:Vue 3 + TypeScript + Vite 5,组件化架构完善
24
- - **后端技术栈**:FastAPI + Python,已有 API 状态监控功能
25
- - **版本管理**:`package.json` 中已维护版本号(当前为 1.0.10)
26
- - **插件元数据**:`plugin/openclaw.plugin.json` 包含插件版本信息
27
-
28
- ### 1.2 目标
29
-
30
- 在 Dashboard 界面显示插件版本号,实现以下目标:
31
-
32
- 1. **用户体验提升**:用户可在界面上直观地看到当前版本号
33
- 2. **问题诊断优化**:用户反馈问题时可快速提供版本信息
34
- 3. **升级验证便利**:升级后可立即确认版本号变化
35
- 4. **一致性保证**:前端显示的版本号与实际安装版本保持一致
36
-
37
- ---
38
-
39
- ## 2. 功能需求列表
40
-
41
- ### 2.1 核心功能需求
42
-
43
- #### [REQ_VERSION_DISPLAY_001] 后端版本信息 API
44
-
45
- **需求描述**: 新增 API 端点,返回 Dashboard 插件的版本信息和元数据。
46
-
47
- **详细规格**:
48
-
49
- 1. **新增 API 端点**: `GET /api/version`
50
- - 读取 `plugin/openclaw.plugin.json` 和 `package.json` 中的版本信息
51
- - 返回包含版本号、名称、描述等信息的 JSON 响应
52
- - 支持在应用启动时缓存版本信息,避免每次请求都读取文件
53
-
54
- 2. **响应数据结构**:
55
- ```json
56
- {
57
- "version": "1.0.10",
58
- "name": "openclaw-agent-dashboard",
59
- "description": "多 Agent 可视化看板 - 状态、任务、API、工作流、协作流程",
60
- "buildDate": "2026-03-19T12:34:56Z", // 可选:构建时间
61
- "gitCommit": "abc123def456" // 可选:Git 提交哈希
62
- }
63
- ```
64
-
65
- 3. **错误处理**:
66
- - 如果读取文件失败,返回默认版本号(如 "unknown")
67
- - 记录错误日志,但不影响应用启动
68
-
69
- **技术实现建议**:
70
- - 在 `src/backend/api/` 下新增 `version.py` 模块
71
- - 在 `src/backend/main.py` 中注册路由
72
- - 使用 `pathlib.Path` 读取 JSON 文件
73
- - 可选:在应用启动时读取并缓存,避免每次请求都读取文件
74
-
75
- **验收条件**:
76
- | 编号 | 条件 | 优先级 |
77
- |-----|------|--------|
78
- | AC-001-1 | 访问 `GET /api/version` 返回 200 状态码 | P0 |
79
- | AC-001-2 | 响应中包含 `version` 字段,值与 `package.json` 中的版本一致 | P0 |
80
- | AC-001-3 | 响应中包含 `name` 字段,值为 "openclaw-agent-dashboard" | P1 |
81
- | AC-001-4 | 文件读取失败时返回默认版本号 "unknown" 而不是 500 错误 | P0 |
82
-
83
- ---
84
-
85
- #### [REQ_VERSION_DISPLAY_002] 前端版本信息组件
86
-
87
- **需求描述**: 新增 Vue 组件,在 Dashboard 界面显示版本号。
88
-
89
- **详细规格**:
90
-
91
- 1. **组件位置与显示**:
92
- - **位置**: 在主界面底部(Footer)或右上角工具栏显示
93
- - **样式**: 小字体(12px)、浅色文字、hover 时显示完整信息
94
- - **内容**: `v1.0.10` 或 `OpenClaw Dashboard v1.0.10`
95
-
96
- 2. **组件设计**:
97
- - 创建新组件 `frontend/src/components/common/VersionDisplay.vue`
98
- - 使用 Composition API(`<script setup lang="ts">`)
99
- - 在组件挂载时调用 `/api/version` 获取版本信息
100
- - 加载中状态:显示 "加载中..." 或骨架屏
101
- - 错误状态:显示 "版本信息获取失败"
102
-
103
- 3. **集成位置**:
104
- - 在 `frontend/src/App.vue` 中引入并使用该组件
105
- - 建议放在主布局的底部或右上角
106
-
107
- 4. **样式规范**:
108
- - 字体大小:12px
109
- - 颜色:使用现有的 CSS 变量(如 `--text-color-secondary`)
110
- - 对齐方式:右对齐或居中对齐(根据布局决定)
111
- - hover 效果:显示完整的版本信息和描述
112
-
113
- **验收条件**:
114
- | 编号 | 条件 | 优先级 |
115
- |-----|------|--------|
116
- | AC-002-1 | 组件成功渲染并显示版本号 | P0 |
117
- | AC-002-2 | 版本号与 `package.json` 中的版本一致 | P0 |
118
- | AC-002-3 | 加载中状态显示 "加载中..." 或骨架屏 | P1 |
119
- | AC-002-4 | API 调用失败时显示友好的错误提示 | P1 |
120
- | AC-002-5 | hover 时显示完整的版本信息(名称、描述) | P2 |
121
-
122
- ---
123
-
124
- #### [REQ_VERSION_DISPLAY_003] 实时数据管理器集成
125
-
126
- **需求描述**: 将版本信息 API 集成到现有的实时数据管理器中,支持 WebSocket 推送或定期刷新。
127
-
128
- **详细规格**:
129
-
130
- 1. **集成到 RealtimeDataManager**:
131
- - 在 `frontend/src/managers/RealtimeDataManager.ts` 中新增版本信息管理逻辑
132
- - 应用启动时调用一次 `/api/version`
133
- - 可选:支持 WebSocket 推送版本变更通知(如果实现了热更新机制)
134
-
135
- 2. **状态管理**:
136
- - 在 `frontend/src/managers/StateManager.ts` 中新增版本信息的状态缓存
137
- - 提供全局访问版本信息的接口
138
-
139
- 3. **错误处理与重试**:
140
- - 如果首次加载失败,支持重试机制(最多 3 次)
141
- - 使用指数退避策略进行重试
142
-
143
- **验收条件**:
144
- | 编号 | 条件 | 优先级 |
145
- |-----|------|--------|
146
- | AC-003-1 | 版本信息在应用启动时自动加载 | P0 |
147
- | AC-003-2 | 状态管理器提供全局访问版本信息的接口 | P1 |
148
- | AC-003-3 | 加载失败时支持重试机制 | P2 |
149
-
150
- ---
151
-
152
- ### 2.2 配置需求
153
-
154
- #### [REQ_VERSION_DISPLAY_004] 版本信息配置
155
-
156
- **需求描述**: 确保版本信息在构建和部署时正确注入到应用中。
157
-
158
- **详细规格**:
159
-
160
- 1. **构建脚本修改**:
161
- - 在 `scripts/build-plugin.js` 中,构建时将 `package.json` 的版本号写入到可访问的位置
162
- - 确保后端可以读取到正确的版本信息
163
-
164
- 2. **环境变量支持**(可选):
165
- - 支持通过环境变量 `DASHBOARD_VERSION` 覆盖版本号(用于开发环境)
166
- - 支持通过环境变量 `DASHBOARD_BUILD_DATE` 注入构建时间
167
-
168
- **新增配置项**:
169
-
170
- | 配置项 | 环境变量 | 类型 | 默认值 | 说明 |
171
- |-------|---------|------|--------|------|
172
- | 版本号 | `DASHBOARD_VERSION` | String | 从 package.json 读取 | 覆盖版本号(开发环境) |
173
- | 构建时间 | `DASHBOARD_BUILD_DATE` | String | 构建时自动生成 | 构建时间戳 |
174
- | Git 提交哈希 | `DASHBOARD_GIT_COMMIT` | String | 从 git 读取 | Git 提交哈希(可选) |
175
-
176
- **验收条件**:
177
- | 编号 | 条件 | 优先级 |
178
- |-----|------|--------|
179
- | AC-004-1 | 构建后的插件包中包含正确的版本信息 | P0 |
180
- | AC-004-2 | 后端 API 能正确读取到版本信息 | P0 |
181
- | AC-004-3 | 环境变量覆盖版本号功能正常工作(如果实现) | P2 |
182
-
183
- ---
184
-
185
- ## 3. 非功能需求
186
-
187
- ### 3.1 性能指标
188
-
189
- | 指标 | 目标值 | 测量方法 |
190
- |-----|--------|---------|
191
- | `/api/version` 响应时间 | < 50ms(缓存后) | 浏览器 Network 面板 |
192
- | 版本信息加载时间 | < 100ms(应用启动时) | 前端性能监控 |
193
- | 版本信息显示延迟 | < 200ms(从启动到显示) | 用户体验测试 |
194
-
195
- ### 3.2 可靠性指标
196
-
197
- | 指标 | 目标值 | 说明 |
198
- |-----|--------|------|
199
- | API 可用性 | 99.9% | 版本信息 API 不应影响整体应用可用性 |
200
- | 降级策略 | 必须实现 | API 失败时显示 "unknown" 或 "v?" 而不是崩溃 |
201
-
202
- ### 3.3 安全性需求
203
-
204
- | 需求 | 说明 |
205
- |-----|------|
206
- | 无敏感信息泄露 | 确保版本信息中不包含敏感信息(如密钥、内部路径) |
207
- | CORS 配置 | 版本信息 API 应遵循现有的 CORS 策略 |
208
-
209
- ---
210
-
211
- ## 4. 影响范围分析
212
-
213
- ### 4.1 新增模块
214
-
215
- | 模块路径 | 职责 | 说明 |
216
- |---------|------|------|
217
- | `src/backend/api/version.py` | 版本信息 API | 新增 API 路由模块 |
218
- | `frontend/src/components/common/VersionDisplay.vue` | 版本显示组件 | 新增 Vue 组件 |
219
- | `frontend/src/composables/useVersionInfo.ts` | 版本信息钩子 | 可选:组合式函数 |
220
-
221
- ### 4.2 修改模块
222
-
223
- | 模块路径 | 修改内容 | 影响程度 |
224
- |---------|---------|---------|
225
- | `src/backend/main.py` | 注册版本信息 API 路由 | 低(仅新增一行导入和注册) |
226
- | `frontend/src/App.vue` | 集成版本显示组件 | 低(仅新增组件标签) |
227
- | `frontend/src/managers/RealtimeDataManager.ts` | 新增版本信息管理逻辑 | 中(新增方法) |
228
- | `frontend/src/managers/StateManager.ts` | 新增版本信息状态缓存 | 低(新增字段) |
229
- | `scripts/build-plugin.js` | 确保版本信息正确注入 | 低(可能无需修改) |
230
-
231
- ### 4.3 API 变更
232
-
233
- | 变更类型 | API | 说明 |
234
- |---------|-----|------|
235
- | 新增 | `GET /api/version` | 返回插件版本信息 |
236
-
237
- ### 4.4 数据库变更
238
-
239
- 无数据库变更。
240
-
241
- ---
242
-
243
- ## 5. 兼容性分析
244
-
245
- ### 5.1 向后兼容
246
-
247
- - **完全兼容**:新增功能不影响现有功能和 API
248
- - **可选功能**:如果版本信息获取失败,不影响其他功能的正常使用
249
- - **降级显示**:API 失败时显示 "unknown" 而不是报错
250
-
251
- ### 5.2 版本依赖
252
-
253
- - **前端依赖**:无新增第三方依赖
254
- - **后端依赖**:无新增 Python 依赖(使用现有的 FastAPI、Pydantic)
255
- - **OpenClaw 依赖**:无额外依赖,兼容 OpenClaw 现有版本
256
-
257
- ### 5.3 升级路径
258
-
259
- - **升级影响**:升级后版本号自动更新为新版本号
260
- - **配置迁移**:无需配置迁移
261
- - **数据迁移**:无需数据迁移
262
-
263
- ---
264
-
265
- ## 6. 验收标准
266
-
267
- ### 6.1 功能验收
268
-
269
- | 编号 | 验收项 | 验收方法 | 责任方 |
270
- |-----|--------|---------|--------|
271
- | FAT-001 | 后端 API 正常返回版本信息 | 使用 curl 或 Postman 访问 `/api/version` | 后端开发 |
272
- | FAT-002 | 前端组件正常显示版本号 | 在浏览器中打开 Dashboard,检查版本号显示 | 前端开发 |
273
- | FAT-003 | 版本号与 package.json 一致 | 对比前端显示、API 返回、package.json 三者版本号 | QA |
274
- | FAT-004 | API 失败时降级显示 | 模拟 API 失败场景(如删除版本文件),检查前端显示 | QA |
275
- | FAT-005 | 加载状态正确显示 | 清除浏览器缓存,刷新页面,检查加载中状态 | QA |
276
-
277
- ### 6.2 性能验收
278
-
279
- | 编号 | 验收项 | 目标 | 验收方法 |
280
- |-----|--------|-----|---------|
281
- | PAT-001 | API 响应时间 | < 50ms | 浏览器 Network 面板测量 |
282
- | PAT-002 | 版本信息加载时间 | < 100ms | 前端性能监控工具 |
283
- | PAT-003 | 应用启动延迟 | < 200ms | 对比添加版本显示前后的启动时间 |
284
-
285
- ### 6.3 兼容性验收
286
-
287
- | 编号 | 验收项 | 验收方法 |
288
- |-----|--------|---------|
289
- | CAT-001 | Chrome 浏览器兼容 | 在 Chrome 最新版本中测试 |
290
- | CAT-002 | Firefox 浏览器兼容 | 在 Firefox 最新版本中测试 |
291
- | CAT-003 | Safari 浏览器兼容 | 在 Safari 最新版本中测试(如有 macOS 环境) |
292
- | CAT-004 | 移动端浏览器兼容 | 在移动端 Chrome/Safari 中测试响应式布局 |
293
-
294
- ---
295
-
296
- ## 7. 依赖关系
297
-
298
- ### 7.1 需求依赖图
299
-
300
- ```
301
- [REQ_VERSION_DISPLAY_001] 后端版本信息 API
302
-
303
- [REQ_VERSION_DISPLAY_002] 前端版本信息组件
304
-
305
- [REQ_VERSION_DISPLAY_003] 实时数据管理器集成
306
-
307
- [REQ_VERSION_DISPLAY_004] 版本信息配置(可并行)
308
- ```
309
-
310
- ### 7.2 实施优先级
311
-
312
- | 优先级 | 需求 ID | 说明 |
313
- |-------|---------|------|
314
- | P0 | [REQ_VERSION_DISPLAY_001] | 必须先实现后端 API |
315
- | P0 | [REQ_VERSION_DISPLAY_002] | 前端组件依赖后端 API |
316
- | P1 | [REQ_VERSION_DISPLAY_003] | 可后期优化,提升代码组织性 |
317
- | P2 | [REQ_VERSION_DISPLAY_004] | 可选优化,支持环境变量覆盖 |
318
-
319
- ---
320
-
321
- ## 8. 风险与缓解
322
-
323
- | 风险 | 概率 | 影响 | 缓解措施 |
324
- |------|------|------|----------|
325
- | 版本文件读取失败 | 低 | 中 | 实现降级策略,返回 "unknown" 版本号 |
326
- | 前端组件渲染错误 | 低 | 低 | 添加错误边界,确保不影响主应用 |
327
- | 版本信息不一致 | 低 | 中 | 在构建脚本中确保版本号来源唯一(package.json) |
328
- | 性能影响 | 极低 | 低 | 使用缓存机制,避免频繁读取文件 |
329
- | 浏览器兼容性问题 | 低 | 低 | 使用标准 Vue 3 和 TypeScript 特性,避免实验性 API |
330
-
331
- ---
332
-
333
- ## 9. 附录
334
-
335
- ### 9.1 技术选型说明
336
-
337
- 1. **后端技术选择**:
338
- - 使用 FastAPI 路由,符合现有架构
339
- - 使用 Pydantic 模型进行数据验证(可选,因为响应结构简单)
340
- - 使用 `pathlib.Path` 进行文件操作,符合 Python 3 最佳实践
341
-
342
- 2. **前端技术选择**:
343
- - 使用 Vue 3 Composition API,符合项目现有风格
344
- - 使用 TypeScript,确保类型安全
345
- - 不引入新的第三方依赖,使用现有的状态管理和数据管理机制
346
-
347
- ### 9.2 相关文件路径
348
-
349
- | 文件 | 路径 |
350
- |-----|------|
351
- | 摸排报告 | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/.staging/legacy_code_anatomy.md` |
352
- | package.json | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/package.json` |
353
- | 插件元数据 | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/plugin/openclaw.plugin.json` |
354
- | 后端主入口 | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/src/backend/main.py` |
355
- | 前端主应用 | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/frontend/src/App.vue` |
356
- | 实时数据管理器 | `/home/ubuntu/vrt-projects/projects/openclaw-agent-dashboard/frontend/src/managers/RealtimeDataManager.ts` |
357
-
358
- ### 9.3 参考文档
359
-
360
- - [OpenClaw Agent Dashboard 存量代码摸排报告](.staging/legacy_code_anatomy.md)
361
- - [TR3: 安装系统技术需求分析](docs/specs/tr3-install-system.md)
362
- - [Vue 3 官方文档 - Composition API](https://vuejs.org/guide/extras/composition-api-faq.html)
363
- - [FastAPI 官方文档](https://fastapi.tiangolo.com/)
364
-
365
- ---
366
-
367
- **文档版本**: 1.0.0
368
- **最后更新**: 2026-03-19
369
- **审核状态**: 待审核
370
-
371
- ---