232 lines
8.7 KiB
Markdown
232 lines
8.7 KiB
Markdown
|
|
# Handoff · 工具栏 v1.9 落地 · 回家操作手册
|
|||
|
|
|
|||
|
|
> **生成时间**: 2026-08-05 23:53
|
|||
|
|
> **拍板**: 先恢复 git 仓库,再部署
|
|||
|
|
> **当前进度**: v1.9 落地版代码完整双备份 ✅ / git 仓库 object store 损坏 ⚠️ / 待恢复后部署
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📋 一、背景速览(执行前 30 秒读完)
|
|||
|
|
|
|||
|
|
今天完成了 v1.9 工具栏落地版的开发与测试:
|
|||
|
|
|
|||
|
|
- **功能**:圆润拱形工具栏(5 按钮:emoji / 文件 / 坐席 60px / 语音 / 群聊),三区无边框融合
|
|||
|
|
- **代码改动文件**:
|
|||
|
|
- `src/frontend-h5/src/components/chat/InputBar.vue`(540 行改动)
|
|||
|
|
- `src/frontend-h5/src/components/chat/InputBar.test.ts`(新增 25 个 v1.9 测试)
|
|||
|
|
- **测试**:vitest 91/91 通过,vite build 528 modules OK
|
|||
|
|
- **本地 commit**:87c574c7 (v1.9) + 之前的 66 个 commit
|
|||
|
|
- **本地 tag**:`pre-toolbar-v1.9` → 5a77a89a(origin/main HEAD,已固化)
|
|||
|
|
|
|||
|
|
**意外**:尝试合并 feature 到 main 时触发 git object store 损坏,**87c574c7 的 tree 物理丢失**。修复方案:基于 working tree + 备份重建 v1.9 commit(见下面"阶段 A")。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📂 二、备份位置(重要!)
|
|||
|
|
|
|||
|
|
| 备份内容 | 路径 |
|
|||
|
|
|----------|------|
|
|||
|
|
| **v1.9 InputBar.vue** | `D:\资料\00-WorkBuddy\2026-08-05-21-00-39\.workbuddy\v1.9-backup\InputBar.vue`(1523 行,完整 v1.9 内容) |
|
|||
|
|
| **v1.9 InputBar.test.ts** | `D:\资料\00-WorkBuddy\2026-08-05-21-00-39\.workbuddy\v1.9-backup\InputBar.test.ts`(完整 v1.9 内容) |
|
|||
|
|
| **working tree 原位置** | `D:\资料\03-项目开发\wecom_it_smart_desk\src\frontend-h5\src\components\chat\`(InputBar.vue + .test.ts) |
|
|||
|
|
|
|||
|
|
**双保险**:workspace 备份 + working tree 双份。如果 working tree 在恢复过程中被破坏,workspace 备份还有。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🏠 三、回家后操作手册(按顺序执行)
|
|||
|
|
|
|||
|
|
### 阶段 A:恢复 git 仓库(在 Tailscale 可用环境)
|
|||
|
|
|
|||
|
|
打开 PowerShell(不要用 Git Bash),执行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# A1. 切换到项目目录
|
|||
|
|
cd "D:\资料\03-项目开发\wecom_it_smart_desk"
|
|||
|
|
|
|||
|
|
# A2. 确认 Tailscale 上线(桌面右下角图标显示 active)
|
|||
|
|
# 如果 offline,登录 Tailscale
|
|||
|
|
|
|||
|
|
# A3. 从远程同步 object store(覆盖本地的损坏)
|
|||
|
|
git fetch origin --prune
|
|||
|
|
|
|||
|
|
# A4. 验证 origin/main 健康
|
|||
|
|
git rev-parse origin/main
|
|||
|
|
git cat-file -p origin/main | Select-String "tree" # 应能读到 tree hash
|
|||
|
|
|
|||
|
|
# A5. 切到 pre-toolbar-v1.9(健康锚点)
|
|||
|
|
git checkout pre-toolbar-v1.9
|
|||
|
|
|
|||
|
|
# A6. 验证切成功(应该 HEAD 在 5a77a89a)
|
|||
|
|
git log --oneline -3
|
|||
|
|
|
|||
|
|
# A7. 把 v1.9 备份文件复制回 working tree
|
|||
|
|
Copy-Item "D:\资料\00-WorkBuddy\2026-08-05-21-00-39\.workbuddy\v1.9-backup\InputBar.vue" `
|
|||
|
|
-Destination "src\frontend-h5\src\components\chat\InputBar.vue" -Force
|
|||
|
|
Copy-Item "D:\资料\00-WorkBuddy\2026-08-05-21-00-39\.workbuddy\v1.9-backup\InputBar.test.ts" `
|
|||
|
|
-Destination "src\frontend-h5\src\components\chat\InputBar.test.ts" -Force
|
|||
|
|
|
|||
|
|
# A8. 验证 v1.9 特征(应命中 9 次 gem-toolbar/M 18 18/x 84)
|
|||
|
|
git diff --stat HEAD
|
|||
|
|
git diff HEAD -- src/frontend-h5/src/components/chat/InputBar.vue | Measure-Object
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 阶段 B:创建新 v1.9 commit(hash 会变,但内容等价)
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# B1. 暂存改动
|
|||
|
|
git add src/frontend-h5/src/components/chat/InputBar.vue
|
|||
|
|
git add src/frontend-h5/src/components/chat/InputBar.test.ts
|
|||
|
|
|
|||
|
|
# B2. 创建 v1.9 commit(保留完整 commit message)
|
|||
|
|
git commit -m @'
|
|||
|
|
feat(chat): 工具栏统一设计 v1.9 落地 — 圆润拱形 + 5 按钮 + 三区无边框融合
|
|||
|
|
|
|||
|
|
[REQ-会话-001] 员工端会话窗口输入区工具栏视觉重构
|
|||
|
|
|
|||
|
|
改动概览:
|
|||
|
|
- 工具栏容器:.glass-toolbar(玻璃胶囊)→ .gem-toolbar(拱形轨道)
|
|||
|
|
- 按钮顺序:emoji / 文件 / 语音 / 坐席(4 按钮)
|
|||
|
|
→ emoji / 文件 / 坐席(居中 60px) / 语音 / 群聊(5 按钮)
|
|||
|
|
- 坐席按钮:44px → 60px(较 40px 工具图标大 50%),新增 .agent-btn.gem 修饰符
|
|||
|
|
- 三区融合:消息区 / 工具栏 / 输入区融为连续浅色表面(input-bar 容器透明)
|
|||
|
|
- 拱形轨道 SVG:viewBox 0 0 312 84,宽穹顶 x 84..216,顶点 (156, 4) 圆肩水平切线
|
|||
|
|
- 可访问性:aria-label / title / focus-visible 蓝环 / 装饰 SVG aria-hidden
|
|||
|
|
- 响应式 ≤480px fallback:隐藏拱形 SVG、改胶囊(坐席缩至 52px)
|
|||
|
|
- 深色模式骨架:prefers-color-scheme: dark 颜色变量预留
|
|||
|
|
|
|||
|
|
测试:
|
|||
|
|
- InputBar.test.ts 保留 v1.3 历史契约,新增 v1.9 专项测试套(共 91/91 通过)
|
|||
|
|
- 覆盖 5 按钮顺序 / 坐席 60px / SVG 路径关键控制点 / 三区融合 / 键盘可达性 / 响应式 fallback
|
|||
|
|
|
|||
|
|
验收:
|
|||
|
|
- vitest: 91/91 通过
|
|||
|
|
- vite build: 528 modules transformed, build OK
|
|||
|
|
- 6 态坐席入口契约不变(callAgent/cancelQueue/endConversation/reopenConversation)
|
|||
|
|
- 群聊按钮:toast 占位(store 暂无 groupChat action),后续接入时替换 handleGroupChat
|
|||
|
|
|
|||
|
|
ref: 原型-REQ-会话-001-工具栏统一设计v1.9-员工端落地版.html
|
|||
|
|
ref: 交付-REQ-会话-001-工具栏统一设计v1.9-开发交付清单.md
|
|||
|
|
'@
|
|||
|
|
|
|||
|
|
# B3. 验证 commit
|
|||
|
|
git log --oneline -2
|
|||
|
|
git show --stat HEAD
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 阶段 C:合并到 main(fast-forward,零冲突)
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# C1. 切到 main
|
|||
|
|
git checkout main
|
|||
|
|
|
|||
|
|
# C2. 拉取最新 main(fetch 时已同步,但保险再 fetch 一次)
|
|||
|
|
git pull --ff-only
|
|||
|
|
|
|||
|
|
# C3. fast-forward merge
|
|||
|
|
git merge --ff-only feature/message-reliability
|
|||
|
|
|
|||
|
|
# C4. 验证 main 已含 v1.9
|
|||
|
|
git log --oneline -5 main
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 阶段 D:推送远程 + 打 tag(可选但推荐)
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# D1. 推 main
|
|||
|
|
git push origin main
|
|||
|
|
|
|||
|
|
# D2. 推 feature 分支(保留历史)
|
|||
|
|
git push origin feature/message-reliability
|
|||
|
|
|
|||
|
|
# D3. 推 tag
|
|||
|
|
git push origin pre-toolbar-v1.9
|
|||
|
|
|
|||
|
|
# D4. 在 NAS Gitea web 上创建 PR(如需走 PR 流程)
|
|||
|
|
# 路径:http://ds923plus.tail58d872.ts.net:8418/simon/wecom_it_smart_desk
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 阶段 E:构建 dist
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# E1. 切回 main(如果之前切到 feature)
|
|||
|
|
cd "D:\资料\03-项目开发\wecom_it_smart_desk\src\frontend-h5"
|
|||
|
|
|
|||
|
|
# E2. 构建(用 --outDir 避开 safe-delete 拦截 dist/)
|
|||
|
|
npm run build -- --outDir dist-build-staging
|
|||
|
|
|
|||
|
|
# E3. 验证构建产物
|
|||
|
|
ls dist-build-staging/assets/*.js | Measure-Object
|
|||
|
|
# 应有约 528 modules transformed
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 阶段 F:部署到预生产服务器(需要预生产服务器信息)
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# F1. 加载 jumpserver-V2 skill
|
|||
|
|
# (skill 路径:C:\Users\simon\.workbuddy\skills\jumpserver-V2\)
|
|||
|
|
|
|||
|
|
# F2. 首次登录(仅此一步需要浏览器)
|
|||
|
|
C:\Users\simon\.workbuddy\binaries\python\versions\3.13.12\python.exe `
|
|||
|
|
C:\Users\simon\.workbuddy\skills\jumpserver-V2\scripts\v2_ops.py login
|
|||
|
|
|
|||
|
|
# F3. 验证 cache 有效
|
|||
|
|
C:\Users\simon\.workbuddy\binaries\python\versions\3.13.12\python.exe `
|
|||
|
|
C:\Users\simon\.workbuddy\skills\jumpserver-V2\scripts\v2_ops.py status
|
|||
|
|
|
|||
|
|
# F4. ⚠️ 预生产服务器信息需确认(jumpserver-V2 skill 当前只有生产服务器配置):
|
|||
|
|
# - 资产名:
|
|||
|
|
# - IP:
|
|||
|
|
# - 系统用户名(完整名,含"环境"二字):
|
|||
|
|
# 请先告知我具体信息,我帮你扩展 skill 配置(jumpserver-V2 的 v2_ops.py 已整合,加资产参数即可)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🚨 四、风险与回滚
|
|||
|
|
|
|||
|
|
### git 回滚(推荐)
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
# 一键回滚 v1.9(生成反向 commit,保留历史)
|
|||
|
|
git revert <v1.9_commit_hash>
|
|||
|
|
|
|||
|
|
# 或回到 tag(破坏性,但一步到位)
|
|||
|
|
git reset --hard pre-toolbar-v1.9
|
|||
|
|
git push --force-with-lease
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 服务器回滚
|
|||
|
|
|
|||
|
|
预生产服务器回滚策略在拿到服务器信息后补充。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📞 五、需要 duckula(Duckula = 我)配合的事
|
|||
|
|
|
|||
|
|
回到家后告诉我:
|
|||
|
|
1. ✅ Tailscale 已上线
|
|||
|
|
2. ✅ 阶段 A~D 已完成(git 恢复 + push)
|
|||
|
|
3. 预生产服务器的资产名 / IP / 系统用户名(让我扩展 jumpserver-V2 skill)
|
|||
|
|
|
|||
|
|
我会接着帮你:
|
|||
|
|
- 扩展 jumpserver-V2 skill 支持预生产服务器
|
|||
|
|
- 构建 + 上传 dist 到预生产
|
|||
|
|
- 健康检查 + 视觉验证(通过 agent-browser 自动化测试)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 📝 六、相关文档(已生成在 docs/)
|
|||
|
|
|
|||
|
|
| 文档 | 路径 |
|
|||
|
|
|------|------|
|
|||
|
|
| 设计交付清单 | `D:\资料\03-项目开发\wecom_it_smart_desk\docs\01-产品文档\02-会话管理\交付-REQ-会话-001-工具栏统一设计v1.9-开发交付清单.md` |
|
|||
|
|
| v1.9 落地版原型 | `D:\资料\03-项目开发\wecom_it_smart_desk\docs\01-产品文档\02-会话管理\原型-REQ-会话-001-工具栏统一设计v1.9-员工端落地版.html` |
|
|||
|
|
| v1.9 融合版原型(备用) | `D:\资料\03-项目开发\wecom_it_smart_desk\docs\01-产品文档\02-会话管理\原型-REQ-会话-001-工具栏统一设计v1.9-融合无边框圆润顶端.html` |
|
|||
|
|
| 历史版本 v1.4-v1.8 | `D:\资料\03-项目开发\wecom_it_smart_desk\docs\01-产品文档\02-会话管理\`(未跟踪,建议归档到 archives/) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**拍板人**: Simon
|
|||
|
|
**主理人**: Duckula(WorkBuddy · 团队助手)
|
|||
|
|
**日期**: 2026-08-05
|