瀏覽代碼

[Docs] 第四轮审计交付说明追记 §⑨:合并新 master 的冲突解决与复验证据

- §①状态改「已推送/已 merge/已过全量构建」;§⑧上游同步更新
- §⑨记录 3 处冲突(client.ts 删除、AiAssistantModal import、useChatScroll 同源修复)
  与 dataPicker import 适配、自动合并文件复核结论
- 复验证据:ESLint 0 error(prettier CRLF 为环境噪声,附对照组)、scoped tsc ventAI 0 error、
  vite build exit 0、产物标记核对(M1/M2/M3/R4-4/R4-5)
wangkeyi 2 周之前
父節點
當前提交
d3a0700378
共有 2 個文件被更改,包括 39 次插入 和 3 次删除
  1. 38 2
      docs/ai-changes/20260929-audit-r4.md
  2. 1 1
      docs/ai-changes/README.md

+ 38 - 2
docs/ai-changes/20260929-audit-r4.md

@@ -11,7 +11,7 @@
 - **基线**:`upstream/master` = `46df977e`(团队 AI 助手文件层面重构后的新结构)
 - **日期**:2026-09-29(Asia/Shanghai)
 - **交付版本**:以分支 `git log` 为准(**不写死自指 hash**)
-- **状态**:已交付(本地提交完成;**未推送、未部署**;静态检查通过,未跑构建/未浏览器实测——见 §⑤⑦)
+- **状态**:已交付,已推送,**已 merge 更新后的 master 并通过全量构建**(2026-09-30,见 §⑨);未部署,未浏览器实测。
 
 ## ② 提交清单
 
@@ -28,6 +28,7 @@
 | 7 | `[Fix R4-R4-7/8] …` | `markdownSafe` 注释旧路径更正;`useChatScroll` 卸载时 `cancelAnimationFrame` |
 | 8 | `[Docs] …` | 本说明 + `docs/ai-changes/README.md` |
 | 9 | `[Fix R4-R4-5] …(复核 FR-1 收口)` | 缓存失效源补 `props.messages.length`(删 AI 消息场景)+ 注释/文档同步 |
+| 10 | `[Merge] …` | 合并上游 `origin/master`(5 个新提交,见 §⑨):3 处冲突解决 + 复验 |
 
 ## ③ 改动面
 
@@ -149,6 +150,41 @@ less.render(index.less, modifyVars 打桩)  # 输出无 modal-close-x、保留 f
 
 - **分支**:`fix/audit-r4-20260929`(worktree `/root/VentAnaly60/.wt/mky-r4`),基线 `upstream/master = 46df977e`,无分叉冲突项。
 - **提交**:7 个功能提交 + 1 个 `[Docs]` 提交(清单见 §②,hash 以 `git log` 为准)。
-- **上游同步**:分支自 `upstream/master` 新起,已含团队最新结构;**未 merge 更新的必要**(派发时点 `46df977e` 即最新)。
+- **上游同步**:分支自 `upstream/master` 新起(`46df977e`);**2026-09-30 已 merge 更新后的 `origin/master`**(+5 提交,含 API 按域拆分重构、dxf 支持、文件预览修复、导航条缓存),冲突与复验见 §⑨。
 - **推送/部署**:未 push、未 deliver、未部署(任务书 §〇.2,由 Lead 收口)。
 - **对照页**:`http://39.97.59.228:8013/hrx/mky-vent-base/compare/master...fix/audit-r4-20260929`(推送后由 Lead 核验 HTTP 200)。
+
+## ⑨ 合并新 master(2026-09-30)与复验
+
+审计分支交付后,上游 `origin/master` 又前进 5 个提交(`83eb0a1e` 来源卡片默认折叠、`e7e89214` 导航条逻辑+警告修复、
+`6de78411` API 按域拆分重构、`5f41a3be` dxf 支持、`64cfbb1a` 文件预览修复)。本次将 `origin/master` 合入分支,
+逐项核对「审计修改在新结构上是否仍然成立」。
+
+### 冲突解决(3 处)
+
+| 文件 | 冲突 | 解决 |
+|---|---|---|
+| `api/client.ts` | 上游删除(拆分成 `api/*.ts`)vs 本分支修改(M2 加 export + M3 `getMe`) | 接受删除。M2 的「加 export」在新结构中**天然满足**(`throwStreamHttpError`/`StreamError` 已是 `api/errors.ts` 的导出);M3 的 `MeInfo`/`getMe()` 迁到新建 `api/user.ts`(按 barrel 约定 `export * from './user'`) |
+| `components/AiAssistantModal.vue` | 双方改同一 import 行 | 取上游的 barrel 路径并补 `getMe`:`import { …, StreamError, getMe } from '.../api'` |
+| `hooks/useChatScroll.ts` | 双方各加了 `onBeforeUnmount` 取消 rAF(R4-8 与上游重构撞车) | R4-8 上游已有等价实现,**取上游版本**(`if (scrollRafId)` 与 `!== null` 等价,rAF id 非 0) |
+
+### 其他适配(非冲突但必须改)
+
+- `dataPicker/api.ts`、`dataPicker/useDataPicker.ts`:`throwStreamHttpError`/`StreamError` 的 import 由已删除的
+  `api/client` 改为 `api/errors`;注释中的旧路径一并更正(与 R4-7 同类)。
+- 自动合并文件复核结论:`ConversationNav.vue`(R4-5 的 `getWrappers` 缓存与上游 `toPlainTextCached` 共存,
+  失效源仍为「qaPairs.length + props.messages.length」FR-1 收口版)、`ChatInputArea.vue`/`TaskListPanel.vue`
+  (M3 的 `isAdmin` 过滤/隐藏完整)、`lib/markdown.ts`(R4-2 LRU 完整)。
+
+### 复验证据
+
+- **ESLint**:11 个审计改动文件,关闭 `prettier/prettier` 后 **0 error / 0 warning**。
+  (prettier 报的 3422 处 `Delete ␍` 是 Windows 检出 CRLF 环境噪声——对照组:本次未触碰的 `api/chat.ts` 同样报 161 处。)
+- **TypeScript**:`.tmp-tsconfig.json`(scoped:`ventAI/**` + `dataPicker/**` + `utils/markdownSafe.ts`)编译,
+  **ventAI 相关 0 error**;其余 61 处均为既有问题(`store/`、`router/`、`utils/http/` 等,与本次无关)。
+- **`vite build`**:exit 0(全量生产构建)。
+- **产物核对**:`/ventAI/api/me`(M3)、`X-Access-Token`(M1,`useDataPicker` chunk)、
+  `formatClickError` 的 429/413/404 分支文案(M2)、`ConversationNav` chunk(R4-5)均出现在 dist;
+  R4-4 在编译后 CSS 中 `.zxm-modal-close-x{…width:96px…}` **仅剩 1 处**(`antCss.less` 一份,组件层重复已消失)。
+- **未做(如实)**:浏览器实测与连后端联调(无 TfAgents 环境);M1 令牌头到达后端、M2 真实 429/413/404
+  文案、M3 管理员/非管理员入口显隐仍待浏览器验收。

+ 1 - 1
docs/ai-changes/README.md

@@ -40,4 +40,4 @@ docs/ai-changes/<YYYYMMDD>-<简短主题>.md
 
 | 日期 | 文件 | 分支 | 主题 |
 |---|---|---|---|
-| 2026-09-29 | `20260929-audit-r4.md` | `fix/audit-r4-20260929` | 第四轮审计整改:M1/M2/M3 重放 + R4-2/R4-4/R4-5 + R4-7/R4-8 顺手项 |
+| 2026-09-29 | `20260929-audit-r4.md` | `fix/audit-r4-20260929` | 第四轮审计整改:M1/M2/M3 重放 + R4-2/R4-4/R4-5 + R4-7/R4-8 顺手项(2026-09-30 追记 §⑨:合并新 master 的冲突解决与复验) |