# 变更提案: 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` 默认布局、布局配置器与状态监控展示逻辑。
