Files
wecom_it_smart_desk/docs/02-技术文档/重构记录/README.md
T
Simon facc04aa65 chore: docs 结构整改 + compose 双目录对齐(合并重建提交)
本提交为 .git 对象库损坏后的重建提交,内容等价于原先三个本地提交
(5e2fd4c2 / 57a53c98 / 5d7e1873)的累积结果,未做任何额外改动。

一、docs 结构整改(整改 #14)
根因:重构时新结构为 untracked 文件,执行 git stash(未带 -u)未纳入,
随后 git reset 拉回 HEAD 旧 tracked 树,导致旧树复活、新旧两棵目录
树并存于 docs/,共 791 文件、双分类体系冲突。

修复动作:
- b2 同名异主题文件改名迁移保全 9 个
- C 类 39 个孤立文件按主题正确归类
- A/B1 类 222 个重复文件删除(新结构已有内容副本)
- 9 个旧独有空目录删除
- 270 处内部引用按 verified 映射改写
- 整改记录 #14 登记于 04-运维文档/部署运维

结果:docs 791 → 569 文件,顶层仅规范 8 类 + 治理文件,单树恢复。
残留:约 20 处指向从未存在文件的陈旧死链,归入独立文档卫生任务。

二、compose 双目录对齐(消除踩坑 A)
- docker-compose.yml:nginx 前端挂载全部由根目录 frontend-*/dist
  改为 src/frontend-*/dist(h5 / agent / admin / terminal)
- docker-compose.dev.yml:dev 服务 build context 与卷同步改 src/
- 效果:本地 docker compose up 不再把根目录 stale dist 挂回,
  与线上一致,分叉隐患消除(已 docker compose config 校验通过)

防复发铁律:
- 重构须提交;仓库修复须 git stash -u 或先 commit
- 新结构须 git add 并提交,避免再次 untracked 复活
- H5 改动只动 src/frontend-h5/,禁改根目录遗留 frontend-*/
2026-08-07 22:31:32 +08:00

92 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 02-技术文档/重构记录 — 目录索引与执行状态看板
> **创建**2026-07-17
> **目的**:智能回复系统 v4.0 深度重构的全部记录。当前会话不可用时,新会话读本目录即可继续推进。
> **工作方式**:敏捷批次交付 + DevOps(文档与代码同 PR
---
## 一、新会话快速上手指引(3 步)
1. **读方案**`00-v4.0重构总方案.md`(分层架构、批次计划、验收清单)
2. **读问题**`01-问题验证清单.md`(20 项问题 + 源码行号证据 + 已完成修复清单)
3. **看状态**:本文 §三(执行状态看板),找到「待开始」的任务说明书,按 `docs/07-项目管理/任务说明书/` 执行
## 二、目录结构
```
docs/02-技术文档/重构记录/
├── README.md ← 本文件(索引 + 状态看板)
├── 00-v4.0重构总方案.md ← 目标架构、批次计划、验收清单、回滚策略
├── 01-问题验证清单.md ← 20 项问题源码证据(B1-B8/F1-F6/C1-C6
├── 02-批次1-P0执行记录.md ← 批次 1 完成后填写
├── 03-批次2-P1基础执行记录.md
├── 04-批次3-P1核心执行记录.md
└── 99-回顾报告.md ← 批次 3 观察 24h 后填写
```
**配套文档**
- 任务说明书:`docs/07-项目管理/任务说明书/任务说明书-78/79/84/85/86/87/88/89/90`
- 部署铁律:`docs/04-运维文档/部署运维/DEPLOY-GUIDE.md` §4.3
- Dify 主 prompt 线上版本:`docs/02-技术文档/实现配置/dify_main_chat_prompt_v1.1.md`v1.2
## 三、执行状态看板
> 更新规则:每完成一项即更新。新会话从这里接续。
| 批次 | 任务 | 任务说明书 | 状态 | 完成日期 |
|------|------|-----------|------|---------|
| — | v3.0 后端 ApprovalMatcher + 前端纯渲染 | — | ✅ 已完成 | 2026-07-17 |
| — | v3.1 Dify 无 action 降级 + message_content bug 修复 | — | ✅ 已完成 | 2026-07-17 |
| 批次 0 | 文档速修 4 项 + 本目录归档 | — | ✅ 已完成 | 2026-07-17 |
| 批次 1 | P0-1 workers=2→1 | #78 | ✅ 已完成(预防性,服务器已是1) | 2026-07-17 |
| 批次 1 | P0-2 DIFY_NATIVE_* 生产配置 | #79 | ✅ 已完成(变量已注入容器) | 2026-07-17 |
| 批次 1 | P0-3 快捷申请空白气泡修复 | #87 | ⚠️ 误报(InputBox 孤儿组件,端点保留备用) | 2026-07-17 |
| 批次 1 | P0-4 RecommendCard invokeApproval 修复 | #88 | ✅ 已完成(v16 | 2026-07-17 |
| 批次 1 | P0-5 WS new_message 全字段透传 | #89 | ✅ 已完成(v16 | 2026-07-17 |
| 批次 1 | P0-6 超时预算切分 | #90 | ✅ 已完成(native/proxy 各12s,变量已注入) | 2026-07-18 |
| 批次 2 | P1-1 AIService/AIHandler 真单例 | #84 | ✅ 已完成 | 2026-07-18 |
| 批次 2 | P1-2 统一 Dify 调用点(删 detect-intent 死链路) | #84 | ✅ 已部署(死端点 404 验证通过) | 2026-07-18 |
| 批次 2 | P1-4 Matcher 死分支+失败兜底全量卡片 | #84 | ✅ 已部署(含 18 模板字段补全,7 项测试通过) | 2026-07-18 |
| 批次 2 | P1-7(部分) 3 个潜伏 bug 修复 | #84 | ✅ 已部署(启动无 ImportError | 2026-07-18 |
| 批次 2 | P1-7(剩余) APP_ENV 传递+Redis 密码轮换 | #84 | ✅ 已部署(老密码 WRONGPASS 失效,新密码 PONG/读写正常) | 2026-07-18 |
| 批次 2 | P1-6 recommend 死逻辑清理 | #84 | ✅ 已部署(v18,含结单确认断链修复) | 2026-07-18 |
| 批次 3 | P1-3 编排层管线化(主函数312→76行)+ D1 止血(15s→8s | #85 | ✅ 已部署(端到端验证一致,进入 24h 观察期) | 2026-07-18 |
| 批次 3 | D1 正式合并(后端双模 + Prompt v1.3 | #85 | ✅ 已上线([D1] 路由意图(主Dify) 日志确认,45s→10s;联系人表空待配置) | 2026-07-18 |
| 批次 4 | 死代码大扫除(triage 三件套 + /approval/keywords + scheduler.py 孤儿 + 3 个 .bak + get_reply_stream ~96行) | #86 | ✅ 已部署(keywords 404H5 200,无 ImportError | 2026-07-18 |
### 待部署清单(堡垒机恢复后一次性部署)
~~后端 9 文件 + 前端 v17~~ **已全部部署完成(2026-07-18 01:35**
- 后端:`docker compose restart backend` 无 ImportErrordetect-intent 双端点 404 ✅;health 200 ✅
- 前端:v17`index-BxOIE0ES.js`),H5 HTTP 200,新 JS 已加载 ✅
- 部署通道记录:`jms_ops.py upload` 的 elFinder 通道 GBK bug`jumpserver_sftp_upload_v98.py` print emoji 崩溃);>100KB 文件改用 `pack-upload`(目录直传)绕过
## 四、关键上下文(新会话必读)
### 4.1 部署铁律(详 `docs/04-运维文档/部署运维/DEPLOY-GUIDE.md` §4.3
1. backend 必须 `--workers 1`(override 会覆盖主文件,务必 `docker compose config | grep workers` 验证)
2. `.env` 不会自动传入容器,新变量必须在 compose `environment:` 显式声明
3. Redis 密码特殊字符必须 URL 编码(@→%40 #→%23 !→%21
### 4.2 服务器部署通道
- 堡垒机:`sxn@10.212.189.210:2222`OTP),工具 `C:\Users\simon\.workbuddy\skills\jumpserver-V2\scripts\v2_ops.py`
- 服务器项目根:`/opt/wecom-it-desk/`backend 卷挂载 `./app:/app/app`,改 .py 后 `docker compose restart backend`
- 前端部署:tar 上传 → 解压到 `frontend-h5/dist``docker compose up -d nginx`(容器重建非 reload
### 4.3 回滚点
- git tag `pre-v4-refactor`(批次 1 上线前打)
- 前端备份:`frontend-h5/dist_bak_v13`
### 4.4 用户已确认的决策
- Redis 密码**立即轮换**(批次 2,低峰期,新旧双备)
- Triage 分诊链路**整体删除**(批次 4)
- D1 意图合并**激进方案**(批次 3 先 5 条真实消息验证 Dify intent 字段,不稳定退回 gather 并行)
## 五、变更记录
| 日期 | 变更 | 说明 |
|------|------|------|
| 2026-07-17 | 创建目录 + 批次 0 完成 | 4 项文档速修 + 本索引 |
| 2026-07-17 | 任务说明书 #78-86 创建 | 批次 1-4 全部任务书面化 |