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.
62 lines
6.1 KiB
62 lines
6.1 KiB
|
1 day ago
|
# HANDOFF — customer-demo-ref wayfinder 全图收官(2026-09-12)
|
||
|
|
|
||
|
|
> 写给接续 agent:地图已 **done**,无剩余开发工作。本文档只覆盖「状态快照 + 用户回来后的可能动作 + 复跑速查 + 本会话新踩的坑」。细节一律引用落盘工件,不重复。
|
||
|
|
|
||
|
|
## 1. 状态快照(一句话)
|
||
|
|
|
||
|
|
`e:\code\crm-backend-matt\.scratch\customer-demo-ref\` 的 15 票全部 resolved,map.md Status=done;票 14 冒烟第八跑 **40/0 ALL_PASS(176.4s)**;票 15 四标准自检与双仓清单已落盘;**唯一待办 = 用户审查双仓未提交变更并自行提交**(agent 纪律不碰 git)。
|
||
|
|
|
||
|
|
- 权威状态:`map.md`(Decisions 15 行 + Destination 验收对照块)
|
||
|
|
- 各票结论:`issues/01..15-*.md` 的 `## Answer` 节(全部已写)
|
||
|
|
- 验收自检:`assets/acceptance-selfcheck.md`(四标准逐条 ✓)
|
||
|
|
- 未提交清单:`assets/uncommitted-changes.md`
|
||
|
|
|
||
|
|
## 2. 本段会话(收尾段)完成了什么
|
||
|
|
|
||
|
|
1. **票 14 第七/八轮**:诊断脚本 `demo/_t14d7.py` 实锤三大根因(seed 联系人职务不在字典→batchEdit 被校验拦截;quickAdd 后 _contacts 旧快照;pool+ASSIGNED 视图与公海口径恒互斥)→ 第七轮 39/1;第八轮实锤 **demo onclick 陷阱**并修复 → 40/0 全绿。全程记录在 `issues/14-smoke-script.md` Answer。
|
||
|
|
2. **票 15**:`assets/acceptance-selfcheck.md` + `assets/uncommitted-changes.md` 落盘 + map 收口(Status=done、验收对照块、Not yet specified 清空、Decisions 补 09/10/11/14 四行)。
|
||
|
|
3. **环境**:重建 fat jar 并重启 8080(旧 jar 落后源码导致 project/page 404);构建通道与 jar 文件锁坑已沉淀到记忆「crm-backend-matt 构建与脚本执行通道」。
|
||
|
|
|
||
|
|
## 3. 用户回来后最可能的动作(按概率排序)
|
||
|
|
|
||
|
|
| 动作 | 做法 |
|
||
|
|
|------|------|
|
||
|
|
| 审查未提交变更 | 打开 `assets/uncommitted-changes.md`:backend 51 行全属 `.scratch/customer-demo-ref`(M10+??37,其中诊断脚本/日志标注可删);文档仓 `E:\code\crm-api-docs` 仅 2 个前序迁移遗留目录。**提交由用户执行** |
|
||
|
|
| 试跑 Demo | 直接浏览器打开 `demo/index.html?api=http://localhost:8080`(服务若已停,见 §4 起服);登录页 uid 填 `739564171091247104`(admin 罗伟健)debug 直登;验收指北同 `assets/acceptance-selfcheck.md` §4 |
|
||
|
|
| 复跑冒烟 | 见 §4 速查;脚本幂等(sweep→seed 自举),可重复执行 |
|
||
|
|
| 处置 8080 服务 | 本会话起的服务仍在后台运行(新 jar);若不需要可 taskkill,不影响任何落盘工件 |
|
||
|
|
|
||
|
|
## 4. 复跑速查(冒烟/起服)
|
||
|
|
|
||
|
|
- 解释器(唯一可用组合):`E:\code\crm-backend-matt\.scratch\customer-e2e\.venv10\Scripts\python.exe -X utf8 .scratch/customer-demo-ref/demo/smoke.py`(playwright+pymysql+openpyxl 齐备;长任务**必须前台跑**,后台进程树会被会话压缩杀死)。
|
||
|
|
- 起服:`SPRING_PROFILES_ACTIVE=verify` + MinIO env(AK/SK 凭据已内置 `crm-app/src/main/resources/application.yml` 默认值,无需明文传入)+ `java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar`(corretto-17)。
|
||
|
|
- DB=远程共享库(凭据同上内置);seed 幂等自举(sweep 先于 ensure_seeds,e2c-dr\* 用后硬删;2d 把查重模式归位 FUZZY(2));报告落 `demo/smoke-report.json`。
|
||
|
|
- **fat jar 重建**:先 taskkill 占 8080 的 java(文件锁→repackage rename 失败),删 target 旧 jar,再走 IDEA bundled mvn(沙箱需越权;通道详见记忆「crm-backend-matt 构建与脚本执行通道」)。
|
||
|
|
|
||
|
|
## 5. 本会话新踩/复用的坑(未沉淀进记忆的部分)
|
||
|
|
|
||
|
|
- **demo onclick 陷阱**:`dlgOpen` 把 `fn` 直接挂 `btn.onclick` → 浏览器把 PointerEvent 作为首参传入。任何 `async function doX(confirmSimilar)` 形态的按钮回调都会把事件对象序列化进表单(如 `confirmSimilar=[object PointerEvent]` → 后端 400)。修法=首参防御:`(cf === true || cf === 'true') ? true : undefined`(qs 会跳过 undefined)。doEdit/doCreate 已修;**给新对话框按钮回调加参数时必踩,先想这个**。
|
||
|
|
- **edit 的 L2 needConfirm 假成功**:后端 edit 相似命中时返回 code=0 + `needConfirm:true` 不落库——demo 侧必须显式处理(doEdit 已补 simbox 分支,同 doCreate 契约),否则「toast 成功但 DB 没变」。
|
||
|
|
- **pool 工作台视图互斥**:`fViewType` 默认 ASSIGNED 与公海 owner IS NULL 恒冲突(CustomerMapper L83)——demo pool 页签在默认视图下恒空,冒烟侧先呈现现象再清视图。
|
||
|
|
- **seed 自举顺序**:sweep 必须先于 ensure_seeds,否则上轮 seed 被 find 命中不重建、随即被 sweep 清掉,整轮查重基线缺失(冒烟步 9/27 假阴)。
|
||
|
|
- **中文 URL**:任何拼接中文查询参数必须 `urllib.parse.quote`(本 effort 已三次踩)。
|
||
|
|
- **诊断脚本临时文件**:`demo/_t14d7.py`(DB 职务+pool+edit 三合一取证)保留作证据,其余 `_quickcheck*/_q.py` 类可删。
|
||
|
|
|
||
|
|
## 6. Suggested skills(按场景)
|
||
|
|
|
||
|
|
| 场景 | skill |
|
||
|
|
|------|-------|
|
||
|
|
| 用户要求把本次成果同步成 Bruno 文档/新 .bru | `bruno-sync`(注意 config sourceRoots 需含目标模块目录) |
|
||
|
|
| 用户要继续下一张 wayfinder 地图/大块工作 | `wayfinder` |
|
||
|
|
| 用户报 demo/后端行为异常要求诊断 | `diagnosing-bugs`;浏览器层验证用 `webapp-testing` |
|
||
|
|
| 用户要求 review 本次全部改动 | `code-review`(review_scope=explicit_target,指定 `.scratch/customer-demo-ref`) |
|
||
|
|
| 需要看图/截图(非多模态会话) | `vision-mcp`(AGENTS.md 有调用规范) |
|
||
|
|
|
||
|
|
## 7. 关键文件索引
|
||
|
|
|
||
|
|
- 地图/票/资产:`e:\code\crm-backend-matt\.scratch\customer-demo-ref\`(map.md、issues/、assets/、demo/)
|
||
|
|
- 冒烟报告:`demo/smoke-report.json`(第八跑 40/0 + api_urls 91 路径 + http_fails 空)
|
||
|
|
- 取证脚本:`demo/_t14d7.py`、`demo/_run7.log`、`demo/_run8.log`、`demo/_jarbuild.log`
|
||
|
|
- 契约权威:`.scratch/customer-module/API-SUMMARY.md`(85 端点);原型树:`.scratch/api-docs-reorg/lanhu-tree-v29.md`
|
||
|
|
- 缺陷台账:`.scratch/customer-frontend-handover/gap-report.md` + `customer-defectfix/FIX-REPORT.md`
|