facc04aa65
本提交为 .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-*/
02-技术文档/重构记录 — 目录索引与执行状态看板
创建:2026-07-17 目的:智能回复系统 v4.0 深度重构的全部记录。当前会话不可用时,新会话读本目录即可继续推进。 工作方式:敏捷批次交付 + DevOps(文档与代码同 PR)
一、新会话快速上手指引(3 步)
- 读方案:
00-v4.0重构总方案.md(分层架构、批次计划、验收清单) - 读问题:
01-问题验证清单.md(20 项问题 + 源码行号证据 + 已完成修复清单) - 看状态:本文 §三(执行状态看板),找到「待开始」的任务说明书,按
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 404,H5 200,无 ImportError) | 2026-07-18 |
待部署清单(堡垒机恢复后一次性部署)
后端 9 文件 + 前端 v17 已全部部署完成(2026-07-18 01:35):
- 后端:
docker compose restart backend无 ImportError;detect-intent 双端点 404 ✅;health 200 ✅ - 前端:v17(
index-BxOIE0ES.js),H5 HTTP 200,新 JS 已加载 ✅ - 部署通道记录:
jms_ops.py upload的 elFinder 通道 GBK bug(jumpserver_sftp_upload_v98.pyprint emoji 崩溃);>100KB 文件改用pack-upload(目录直传)绕过
四、关键上下文(新会话必读)
4.1 部署铁律(详 docs/04-运维文档/部署运维/DEPLOY-GUIDE.md §4.3)
- backend 必须
--workers 1(override 会覆盖主文件,务必docker compose config | grep workers验证) .env不会自动传入容器,新变量必须在 composeenvironment:显式声明- 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 全部任务书面化 |