Explorar o código

docs(knowledge): 计划同步环境裁定——隔离 worktree 构建(他人 WIP 隔离)

Xiaogang Liao hai 6 días
pai
achega
096b3227fc
Modificáronse 1 ficheiros con 15 adicións e 11 borrados
  1. 15 11
      docs/superpowers/plans/2026-10-20-knowledge-unify.md

+ 15 - 11
docs/superpowers/plans/2026-10-20-knowledge-unify.md

@@ -26,6 +26,7 @@
 - langgraph 新镜像 **必须先构建好(不部署)**,DB INSERT 后才 force-recreate 替换容器(避免窗口期双重索引)
 - 保留 `created_at`/`updated_at` 原始值(INSERT 显式指定列,不依赖默认 CURRENT_TIMESTAMP)
 - 生产目录 `/app/pro/cfc` 改动前必须先备份 jar;验证失败必须回滚 + 复验
+- **远程工作树可能含他人 WIP**(2026-10-20 实施时发现另一会话正在编辑 Activity 模块):只允许 `git add <本任务文件>`,**禁止** `git add -A` / `git stash` / `git checkout .` / `git restore .` / `git clean`;构建在隔离 worktree 进行:`git worktree add --detach /tmp/ku-build HEAD` → 在其中 `mvn package`,确保生产 jar 不含 WIP;任务结束 `git worktree remove /tmp/ku-build --force`
 
 ## Review Focus
 
@@ -80,22 +81,28 @@ String excludeSourceType = (String) params.get("excludeSourceType");
 
 langgraph 改用 `/api/admin/knowledge-base/list` 后,`HealthKnowledgeBaseController.article/list` 无人调用。同文件删除该端点方法及 `HealthKnowledgeBaseService.pageArticles`(**保留** `/query` `/list` `/import` `/delete` 等其他端点——`health_butler_graph` 依赖 `/query`)。
 
-- [ ] **Step 4: 编译验证**
+- [ ] **Step 4: 提交本任务改动(只 add 这 4 个文件)**
 
 ```bash
-cd /app/cfc/cfc-backend && mvn compile -DskipTests -q
+cd /app/cfc && git add cfc-backend/src/main/java/com/etotem/cfc/service/DanKnowledgeBaseService.java cfc-backend/src/main/java/com/etotem/cfc/service/HealthKnowledgeBaseService.java cfc-backend/src/main/java/com/etotem/cfc/controller/admin/KnowledgeBaseController.java cfc-backend/src/main/java/com/etotem/cfc/controller/HealthKnowledgeBaseController.java
+git commit -m "feat(knowledge): list 接口支持 sourceType/excludeSourceType 过滤 + id 稳定分页,移除废弃 /article/list 端点"
+git rev-parse HEAD
 ```
-Expected: BUILD SUCCESS,无编译错误。
+⚠️ 禁止 `git add -A` / `git stash` / `git checkout .` / `git restore .`(工作树含他人 WIP)。
 
-- [ ] **Step 5: 打包 + 备份 + 部署 + 验证**
+- [ ] **Step 5: 隔离 worktree 编译打包 + 备份 + 部署 + 验证**
 
 ```bash
+cd /app/cfc && git worktree add --detach /tmp/ku-task1-build HEAD
+cd /tmp/ku-task1-build/cfc-backend && mvn compile -DskipTests -q && mvn package -DskipTests -q
 BACKUP=/app/pro/cfc/backend/cfc-backend-$(date +%Y%m%d_%H%M%S)_b6_knowledge_unify.jar
 cp /app/pro/cfc/backend/cfc-backend-1.0.0.jar $BACKUP
-mvn package -DskipTests
-cp target/cfc-backend-1.0.0.jar /app/pro/cfc/backend/
+cp /tmp/ku-task1-build/cfc-backend/target/cfc-backend-1.0.0.jar /app/pro/cfc/backend/
 systemctl restart cfc-backend
+sleep 20 && systemctl is-active cfc-backend
+cd /app/cfc && git worktree remove /tmp/ku-task1-build --force
 ```
+Expected: BUILD SUCCESS + jar 产出 + active=active。
 
 验证(全部通过后才能进 Task 2):
 
@@ -105,12 +112,9 @@ curl -s -X POST http://localhost:9082/api/admin/knowledge-base/list -H 'Content-
 ```
 Expected: 均 39(INSERT 前 article 为 0 条)。同时确认 `systemctl is-active cfc-backend` = active。
 
-- [ ] **Step 6: Commit**
+- [ ] **Step 6: 提交状态确认**
 
-```bash
-cd /app/cfc && git add cfc-backend/src/main/java/com/etotem/cfc/service/DanKnowledgeBaseService.java cfc-backend/src/main/java/com/etotem/cfc/service/HealthKnowledgeBaseService.java cfc-backend/src/main/java/com/etotem/cfc/controller/admin/KnowledgeBaseController.java cfc-backend/src/main/java/com/etotem/cfc/controller/HealthKnowledgeBaseController.java
-git commit -m "feat(knowledge): list 接口支持 sourceType/excludeSourceType 过滤 + id 稳定分页,移除废弃 /article/list 端点"
-```
+提交已在 Step 4 完成。确认 `cd /app/cfc && git log --oneline -1` 为本任务提交,且 `git status --short` 中本任务 4 个文件已不在未暂存列表(他人 WIP 文件仍在,属预期)。
 
 ---