# 04 — 客户核心域实测 `Type:` task · `Status:` resolved · `Blocked by:` 03 ## Question 产出 `e2e-core.py` + `report-core.md`:核心域全流程 API 级实测(以票 01 spec-flows 核心簇为准),每流程三档结论(✅/⚠/❌)+ 缺陷 D-xx 编号登记;**真实请求/响应捕获进 specimens.json**(票 06 Bruno 注入素材——注意按端点归档、含请求头形态)。 预计覆盖(以票 01 为准): - **三 workspace**:列表分页/检索/排序(含 enter_pool_time)/卡片/看板三分组 + saved-view CRUD与应用(RECENT 不接口径) - **新增/编辑 + 三层查重**:停输防抖相似提示 / 信用代码硬拦 / 名称相似弹窗「仍要创建」(confirmSimilar)+ 编辑全量回传 - **联系人**:CRUD + 随客户内嵌明细 + 全局搜索(商机侧硬依赖)+ 电话软提示(D26 可关闭)+ 同客户内电话表单级校验 - **详情 8 页签**:头部 11 项 + 汇总卡 5 字段恒 null 显"--"契约(D28)/关联商机页签(跨模块 port)/联系人页签/跟进页签/团队成员/oplog(action 11 种值域 + 字段级旧→新叙事)/操作日志筛选 - **跟进**:append-only 写入 + last_valid_follow_time 刷新(D25 锚点) - **focus/star/unfocus/focus-batch**:一行两态语义(行存在=关注、starred=重点)+ 幂等口径 - **members 写端点**:批量添加两阶段校验(67016)/移除软删+复用键 - **归属动作**:领取/分配(67012)/抛公海(67007 阻断)/归档(67006)+ oplog 留痕 + D25 锚点后置 - **quick-create / search / contacts**(商机侧硬依赖三端点,跨模块回归) 纪律:❌ 判定前核对 Controller 源码实际路径;已知缺口(API-SUMMARY §5)预登记不算新缺陷;孤立 401 先重试。H2 已覆盖的深度逻辑(CAS/锚点算法)只复验关键路径。 ## Answer 20260903 执行完毕。**112 用例 = ✅110 / ⚠2 / ❌0(23.2s)**,12 流程全走通,0 阻断。 - 产出:`e2e-core.py`(幂等可重跑)+ `report-core.md` + `e2e-core-checks.json` + `specimens-core.json`(45 端点,票 06 素材) - 新缺陷 2 个(P2):**D-02** follow nextFollowTime 过去时间未拦截(spec 应 67009,append-only 下会造成永久超期提醒);**D-03** 编辑缺 version 报 67001(spec 约定 67005,错误码偏差)。D-01(P0)已票 02 修复,本票 F-01/F-07 复验通过。 - 已知缺口复现确认 3 项(quick-create 无 confirmSimilar / 汇总卡 5 字段 null / company-lookup stub),预登记不算新缺陷。 - 契约发现 12 条沉淀进 report-core.md §4(ISO T 分隔、Long→String 序列化、cnt 字段名、PUT 全量覆盖语义、assign→TRANSFER、delete_key=行 id、enter_pool_time 生命周期、archive-batch 整批拒、公海态校验先于权限、debug/token 需重试、saved-view 过滤叠加、名称相似算法数字尾巴敏感)——票 06 文档直接消费。 - 观察点:W-01 维持;BUDDY(无角色)领已领客户得 67004,完整 RBAC 矩阵留联调环境。 - 执行坑实录:首跑全 401 = debug/token 瞬时故障返回 None(已加重试+fail fast);首轮 BUDDY 意外 claim 成功的副作用(pool1 enter_pool_time 被清)已 DB 修复;PUT 全量覆盖会清空 full 样例部分字段(seed 重跑自愈)。