You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

5.0 KiB

跨机器交接包(2026-09-03 会话收尾;随 git 同步,权威版)

同源副本:本机 %TEMP%\handoff-crm-customer-2026-09-03.md(不随 git 走)。换机器以本文件为准。 交接基线:commit dc8aada(票 09-14 全交付)+ 本交接包提交。

0. 一句话状态

.scratch/customer-module/ 交接档第 6 节顺序全部完成:票 12(原型逐页对齐 + 不符②③④⑤修复 + 冒烟)、票 13(API-SUMMARY.md)、票 14(code-review 两轴 + 6 项修复 + 回归 521/0/0 + 提交 dc8aada)。无待办挂起,新机器 pull 后可自由接新任务或处理 §4 遗留。

1. 交付索引(不复制内容,只给路径)

交付 权威出处
票 12 十页对齐结论、不符②③④⑤实施细节、冒烟记录 HANDOFF-2026-09-03.md §3.7.2 / §3.7.6
票 13 接口文档(9 Controller 55 端点 + 错误码 67001-67016 + 已知缺口 5 项) .scratch/customer-module/API-SUMMARY.md
票 14 code-review 两轴结果 + 6 项修复 + 回归验证 HANDOFF-2026-09-03.md §3.9
票 09-14 全部代码/文档变更 git show dc8aada --stat(75 文件 +5590/-195,33 新文件)
踩坑 ①–㉕(历史累积) HANDOFF-2026-09-03.md §4 踩坑表

2. 新机器 bootstrap(按序)

  1. 代码git pull 到基线(dc8aada + 本交接包)。
  2. 先读AGENTS.md(JPA 孤立单大写字母规则、BOM 纪律、edit 工具降级阶梯)→ HANDOFF-2026-09-03.md §4 踩坑表。
  3. 工具链:JDK + Maven(repo 根带 settings.xml;Maven 本体自备);可选 docker 部署看 deploy/README.md
  4. 回归验证基线
    mvn test -pl crm-rule,crm-customer,crm-opportunity -o
    python .scratch/customer-module/tools/regress_check.py
    # 期望:BUILD SUCCESS;BOM-SCAN bom_hits=0;SUREFIRE Tests=521 Failures=0 Errors=0
    
  5. 本地起服务(冒烟需要):打 fat jar 或 IDE 跑 crm-app;⚠ 重打包前先停 8080 的 java 进程(jar 锁)。
  6. 冒烟(可选,验证票 12 端点):
    $env:CRM_TOKEN='<登录接口获取>'; $env:CRM_DB_HOST='<DB host>'; $env:CRM_DB_PASSWORD='<DB password>'
    python .scratch/customer-module/tools/smoke-t12m.py     # 全链:quick-create→focus/star/unstar/unfocus→占位/action
    python .scratch/customer-module/tools/smoke-t12m2.py    # star 逐拍断言(需 $env:CRM_SMOKE_CID)
    

    工具脚本凭据一律走环境变量(原 tmp/ 版含明文 DB 密码,未入库)。knife4j:http://localhost:8080/doc.html

3. 工具层经验(本会话高密度踩坑,动手前先看)

  1. 假失败真写入(本会话 8+ 次):Write/SearchReplace 报 save file failed, reason: unknown 但实际已落盘。纪律:报错先 Read/Grep 验证 → 已写入则跳过绝不重试(重试会双写)。
  2. @Schema description 内嵌引号(如 显 "--"):edit 工具 JSON 序列化层次不可控,用 python chr(92)/chr(34) 构造字节序列(.scratch/fix_quotes.py 范式)一次修 6 处;大块 CJK payload 一律「Write 到文件 + python 读取替换」。
  3. PowerShell 陷阱:无 tail/&&(用 ;);mvn 后台输出截断时用 tools/regress_check.py 聚合 surefire 拿全量数字。
  4. git porcelain 第一列语义M /A = staged, M/?? = 未暂存):验证特定目录未混入用 git diff --cached --name-only | Select-String logs 精确判定。
  5. pymysql 逐拍断言:默认 autocommit=False + REPEATABLE READ 冻结快照(坑㉕);tools/smoke-t12m2.py 范式 = 每步新连接 autocommit=True。
  6. 沙箱 Write 不能落工作区外:外部目录(如 %TEMP%)走「工作区源文件 + Copy-Item(required_permissions)」。

4. 遗留事项(非阻塞,均已在交接档/API-SUMMARY 记录)

  1. logs/ 未被 .gitignore 忽略crm-app.log 已 tracked——status 每会话有噪音。建议补 ignore + git rm --cached(用户未拍板,未动)。
  2. pageWorkspace 两分支 saved-view 片段重复(Shotgun Surgery)——票 10 存量,留票 10 范围内动(HANDOFF §3.9)。
  3. QuickCreateDTO 无 confirmSimilar 字段——快建命中相似客户无法「仍要创建」(票 02/03 范围;API-SUMMARY §5.1)。
  4. 详情汇总卡 5 字段恒 null / 页签 5·6 骨架——grill Q18 契约前端显 "--",进行中商机总额可经 port 扩展切真值。
  5. 范围外划出项(敏感三档脱敏/合并/导出/联系人子表导入)见 API-SUMMARY §5。

5. Suggested skills

  • /implement .scratch\customer-module — 继续该模块工作(第 6 节已空,需先与新任务对齐)
  • /code-review — 后续变更再评审(fixed point 用当前 HEAD)
  • /grill-me — 新开专项(如遗留项 1-3 择一立项)先拍板
  • /lanhu-bridge — 原型对齐类工作(蓝湖页面读取路径见 AGENTS.md)