# 变更提案: workspace-workbench-monitor ## 元信息 ```yaml 类型: 功能增强 方案类型: implementation 优先级: P1 状态: 实施中 状态说明: 已完成实现、构建验证通过,待归档 创建: 2026-03-25 ``` --- ## 1. 需求 ### 背景 当前 `/workspace` 主工作区把 `命令历史`、`文件管理`、`编辑器` 拆成多个独立 pane,占用了终端垂直空间;状态监控只展示瞬时上下行速率,没有展示系统自开机以来的累计流量。 ### 目标 - 仅改造 `/workspace` 主工作区布局。 - 采用方案 B:左侧 `Workbench` Tab 容器承载 `历史命令 / 文件 / 编辑器`,中央终端保持完整高度,右侧保留状态监控。 - 在右侧状态监控新增“开机累计上/下行流量”展示。 ### 约束条件 ```yaml 范围约束: 只改 /workspace 主工作区,不调整其它页面和弹层体系 架构约束: 延续现有 Vue 3 + Pinia + splitpanes 布局体系,不引入新布局库 后端约束: 仅基于现有 /proc/net/dev 采集链路扩展累计流量字段 部署约束: 当前只考虑 amd64,不涉及 Docker / GHCR 变更 ``` ### 验收标准 - [ ] `/workspace` 默认主布局变为“左侧 Workbench + 中央终端 + 右侧状态监控” - [ ] Workbench 内可切换 `命令历史 / 文件 / 编辑器` 三个标签页 - [ ] 右侧状态监控新增开机累计下载 / 上传流量显示 - [ ] 前后端构建通过,类型链闭合 --- ## 2. 方案 ### 技术方案 新增前端 `WorkspaceWorkbench.vue` 组件,作为新的布局 pane,在内部用 tab 容器组合 `CommandHistoryView`、`FileManager` 和 `FileEditorContainer`。布局层新增 `workbench` pane 类型,并把默认布局改成“三栏工作台”。为兼容已有保存布局,增加一次仅针对旧默认布局的轻量迁移逻辑。后端则在状态轮询时直接复用 `/proc/net/dev` 已解析的总字节数,新增 `netRxTotalBytes` / `netTxTotalBytes` 字段并透传到前端状态监控。 ### 影响范围 ```yaml 涉及模块: - frontend: /workspace 布局、状态监控、i18n、前端类型 - backend: 状态监控服务累计流量字段 预计变更文件: 10+ ``` ### 风险评估 | 风险 | 等级 | 应对 | |------|------|------| | 已保存的旧布局不自动切到新工作台 | 中 | 增加仅针对旧默认布局的迁移逻辑,避免误伤自定义布局 | | 文件管理器在 tab 切换后状态丢失 | 中 | Workbench 内使用 `v-show` 保持三个面板常驻 | | 累计流量字段前后端类型不一致 | 低 | 同步更新后端接口、本地类型与状态监控展示 | --- ## 3. 技术决策 ### workspace-workbench-monitor#D001: 采用方案 B 的三栏工作台 **日期**: 2026-03-25 **状态**: ✅采纳 **决策**: 左侧集中工作台、中央终端、右侧状态监控。 **理由**: 保住终端主区高度,同时让文件/命令/编辑入口集中到同一容器,符合用户确认的 xterminal 参考方向。 **影响**: 影响 `/workspace` 默认布局、布局配置器与状态监控展示逻辑。