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.

40 lines
3.8 KiB

15 hours ago
# Handoff:CustomerCatalogPort 实施票(已收官,待测试复验)
日期:2026-09-06 仓库:`e:\code\crm-backend-matt` 分支:工作区当前状态(未提交)
## 一句话状态
第三轮架构审查候选 #1「客户目录 port」已**全量落地并编译验证通过**,唯一遗留:测试执行(surefire 级)本机未跑,需用户在有 Maven 的终端复验。无半成品代码。
## 已完成工作(细节见工件,勿在此重复)
- **代码/测试/文档全量落地**:12 个源文件 + 2 个 CONTEXT.md 收词 + [ADR-0033](e:\code\crm-backend-matt\docs\adr\0033-customer-catalog-port-seam.md)。文件清单见 ADR 与记忆「CustomerCatalogPort相关文件」。
- **七项拍板全部兑现**:归档口径钉死有效(新关联/候选池拒归档、存量不动);3 方法 interface(search/contactsOf/requireLive);port 自有异常、商机侧翻译为 66001;`searchForOpportunity` 改名 `search` 留 ICustomerService(HTTP 契约零变化,mapper 层名不动);单票收官;ADR + 收词。
- **编译验证(javac 手动方案)**:main 侧两模块 239 文件 EXIT=0;test 侧 48 文件 EXIT=0;BOM 扫描干净;商机侧 main 源码 grep 零 `com.crm.customer.(service|domain).` 残留(契约面收窄达成)。
## 遗留事项(按优先级)
1. **测试执行复验**(唯一硬遗留):`mvn -pl crm-customer,crm-opportunity -am test`。涉及测试:`CustomerCatalogPortImplIntegrationTest`(新,H2 集成)、`OpportunitySubServiceImplTest`(改 mock port)、`CustomerContactServiceIntegrationTest`(改名同步)。
2. 变更未 git commit——用户未要求,勿主动提交。
3. `.scratch` 里 javac 验证资产(见下)可留可删,不影响仓库。
## 关键环境事实(新会话必读)
- **本机无 mvn**(曾全盘排查:PATH/注册表/`.lithe`/IDEA 目录均无)。编译验证降级方案 = javac(`C:\Users\Administrator\.jdks\corretto-17.0.13`)+ 全量显式 @argfile。classpath 资产已攒齐:`.scratch/javac-cp.txt`(7 模块 classes + 34 jar,正斜杠),生成脚本 `.scratch/javac-args-gen.ps1`(main)/ `javac-test-args-gen.ps1`(test),重跑前先跑 gen 再 `javac @args`
- **javac 陷阱**(已沉淀到记忆,勿再踩):sourcepath 隐式编译文件**不经过 lombok 注解处理轮**——必须全量显式列出源文件;processor 靠 classpath 自动发现,别写 `-proc:full`/`-processorpath`;`-J` 参数须在命令行不能进 argfile;argfile 内路径用正斜杠。
- **PowerShell 5.1 坑**:`&&` 不可用(用 `;`);`Set-Content -Encoding UTF8` 带 BOM(写 Java 用 `[IO.File]::WriteAllText` + `UTF8Encoding($false)`);收集 javac 输出用 `Start-Process -RedirectStandardError`
- **用户侧事实**:Windows 22H2;2026-09-06 走中转链路,超大单轮易断流——大文件分块读写。
## 记忆与工件索引
- 记忆:`实现CustomerCatalogPort端口`(任务总结+验证结论)、`CustomerCatalogPort相关文件`(文件清单)、`javac argfile 隐式编译文件不经过 lombok 注解处理`、`PowerShell写UTF-8文件会带BOM导致Java编译失败`
- 域文档:`crm-customer/CONTEXT.md`(「客户目录」词条)、`crm-opportunity/CONTEXT.md`(「关联客户」词条)
- 架构审查报告(候选来源):`%TEMP%/architecture-review-20260906-*.html`;候选 #2/#3 未启动
## Suggested skills
- 若用户报测试失败 → `/diagnosing-bugs`(先把 surefire 输出贴进会话)
- 若用户想继续架构审查候选 #2/#3`/improve-codebase-architecture`
- 若继续做跨模块收窄类改动 → 先读 ADR-0033 与 ADR-0031(对称先例),并对照 AGENTS.md「新模块接口接入 checklist」
- 收工/换票时 → `/handoff` 或更新 `.scratch` issue 票据(`docs/agents/issue-tracker.md`)