Files
pkAssistant/features/2026-02-08_20-03-29-controller-map-lambda-refactor.csv

14 lines
23 KiB
CSV
Raw Normal View History

2026-02-08 20:08:43 +08:00
"id","priority","phase","area","title","description","acceptance_criteria","test_mcp","review_initial_requirements","review_regression_requirements","dev_state","review_initial_state","review_regression_state","git_state","owner","refs","notes"
"CMLR-000","P0","1","backend","建立改造基线清单","冻结当前 18 个 Map 入参接口、关键返回类型与调用链,作为后续等价回归基线。","形成一份可追溯清单并覆盖 User/Pk/Anchors/SystemMessage/Chat 五个 Controller抽样 5 条接口请求-响应对照样本可复现。","AUTOSERVER","核对接口 URL、HTTP 方法、请求字段名、返回类型不变;清单需可与代码位置一一跳转。","回归时逐项对照基线,任何字段级偏差需记录并阻断合并。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:18;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:30;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:97;src/main/java/vvpkassistant/controller/UserController.java:65;src/main/java/vvpkassistant/controller/PkController.java:64;src/main/java/vvpkassistant/controller/AnchorsController.java:31;src/main/java/vvpkassistant/controller/SystemMessageController.java:25;src/main/java/vvpkassistant/controller/ChatController.java:37;plan/2026-02-08_20-03-29-controller-map-baseline.md:1;plan/2026-02-08_20-03-29-controller-map-baseline.md:32","picked_reason:作为P0基线先冻结18个Map入参接口与调用链降低后续等价替换回归风险。 | review_initial:已核对18个接口URL/HTTP方法/Map字段名/返回类型与代码一致。 | evidence:新增基线文档并抽样5条可复现请求响应样本。 | evidence:rg核验Map入参接口数量=18。 | done_at:2026-02-08"
"CMLR-010","P0","2.1","backend","补齐 User/Pk 侧 DTO 模型","为 UserController 与 PkController 的 Map 入参接口新增显式 DTO保持 JSON key 与可空语义不变。","新增 DTO 覆盖 User 8 个接口与 Pk 6 个接口Controller 编译通过且不再直接读取 Map key。","AUTOSERVER","字段命名与旧 Map key 完全一致;可选字段保持可空并保留默认行为。","针对每个 Controller 至少执行 1 条成功与 1 条异常参数用例,确认返回结构无变化。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:19;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:135;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:188;src/main/java/vvpkassistant/controller/UserController.java:64;src/main/java/vvpkassistant/controller/PkController.java:63;src/main/java/vvpkassistant/controller/UserController.java:73;src/main/java/vvpkassistant/controller/PkController.java:70;src/main/java/vvpkassistant/pk/service/PKService.java:22;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:152;src/main/java/vvpkassistant/User/model/DTO/UserInputUserInfoDTO.java:1;src/main/java/vvpkassistant/pk/model/DTO/PkListRequestDTO.java:1","picked_reason:P0且直接影响14个Map入参接口先完成可尽早收敛控制器签名改造风险。 | review_initial:User8+Pk6接口均改为DTO读取字段名保持与历史Map key一致。 | validation_limited:mvn -q -DskipTests package 在当前仓库基线失败大量与本改动无关的Lombok getter/log符号缺失。 | manual_test:修复仓库编译基线后执行 mvn -q -DskipTests package并分别调用 /user/loginWithPhoneNumber 与 /pk/deletePkDataWithId 的成功/异常参数用例比对返回结构。 | evidence:新增14个DTO并完成UserController/PkController RequestBody Map->DTO替换。 | evidence:rg核验 UserController/PkController 中 @RequestBody Map 匹配为0。 | risk:medium 未完成可执行编译与接口回归,存在运行期兼容性待验证。 | done_at:2026-02-08"
"CMLR-020","P1","2.2","backend","补齐 Anchors/SystemMessage/Chat DTO","为 AnchorsController、SystemMessageController、ChatController 的 Map 入参接口新增 DTO保留宽松兼容策略。","新增 DTO 覆盖 4 个接口anchor/list, anchor/deleteMyAnchor, systemMessage/list, chat/receiveImMessageChat 回调可接受未知字段。","AUTOSERVER","Chat DTO 需支持扩展字段(如保留 payload 承载);分页字段类型与旧行为一致。","回归验证空字段、未知字段、缺字段场景,保证错误路径与历史一致。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:53;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:227;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:254;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:280;src/main/java/vvpkassistant/controller/AnchorsController.java:30;src/main/java/vvpkassistant/controller/SystemMessageController.java:24;src/main/java/vvpkassistant/controller/ChatController.java:36;src/main/java/vvpkassistant/controller/AnchorsController.java:32;src/main/java/vvpkassistant/controller/SystemMessageController.java:25;src/main/java/vvpkassistant/controller/ChatController.java:38;src/main/java/vvpkassistant/Anchors/model/DTO/AnchorListRequestDTO.java:1;src/main/java/vvpkassistant/SystemMessage/model/DTO/SystemMessageListRequestDTO.java:1;src/main/java/vvpkassistant/chat/model/DTO/ChatReceiveImMessageDTO.java:1","picked_reason:补齐剩余3个Controller的DTO后可一次性完成全量Map->DTO收口减少重复回归。 | review_initial:Anchors/SystemMessage/Chat 共4个接口改为DTO入参分页与id字段命名保持一致。 | validation_limited:mvn -q -DskipTests package 仍因仓库现存Lombok符号缺失而失败无法完成可执行回归。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package调用 /anchor/list、/systemMessage/list、/chat/receiveImMessage 覆盖成功+缺字段/未知字段场景。 | evidence:三处Controller中 @RequestBody Map 静态扫描结果为0。 | evidence:ChatReceiveImMessageDTO 通过 JsonAnySetter/JsonAnyGetter 保留未知字段兼容。 | risk:medium 编译/接口回归未可执行,需后续环境验证。 | done_at:2026-02-08"
"CMLR-030","P0","3","backend","控制器签名 Map->DTO 等价替换","仅替换 Controller 方法参数类型与取值逻辑,保持 URL、HTTP 方法、返回 VO/Map 结构不变。","18 个 Map 入参接口全部改为 DTO全局路由无新增/删除;接口返回类型与 JSON 字段集合与基线一致。","AUTOSERVER","代码评审重点检查序列化字段、空值分支、异常处理路径是否与旧实现等价。","回归执行关键接口快照比对(字段名、字段数量、状态码),差异需附原因。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:20;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:136;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:365;src/main/java/vvpkassistant/controller/UserController.java:73;src/main/java/vvpkassistant/controller/PkController.java:70;src/main/java/vvpkassistant/controller/AnchorsController.java:32;src/main/java/vvpkassistant/controller/SystemMessageController.java:25;src/main/java/vvpkassistant/controller/ChatController.java:38;src/test/java/vvpkassistant/controller/ControllerMapToDtoContractTests.java:19","picked_reason:User/Pk与Anchors/SystemMessage/Chat DTO已完成立即收口18接口可减少后续回归噪音。 | review_initial:5个目标Controller的18个历史Map端点已全部改为DTO签名URL与返回原类型保持不变。 | validation_limited:mvn -q -Dtest=ControllerMapToDtoContractTests test 在编译阶段被仓库现存Lombok符号问题阻断。 | manual_test:修复编译基线后执行 mvn -q -Dtest=ControllerMapToDtoContractTests test再用基线文档5条样例做字段级对比。 | evidence:新增 ControllerMapToDtoContractTests 约束18端点存在性、返回类型和@RequestBody Map=0。 | evidence:静态扫描5个Controller中 @RequestBody Map 匹配为0。 | risk:medium 运行期回归尚未在可执行环境完成。 | done_at:2026-02-08"
"CMLR-040","P0","4.1","backend","迁移 User 域注解 SQL 到 Lambda","将 UserDao 的用户表查询注解 SQL 迁移到 LambdaQuery签到相关 SQL 的迁移与落地改由 CMLR-060新增 SignInRecordDao闭环承接。","UserDao 不再包含 queryWithPhoneNumber 注解 SQL改为 Lambda 等价查询;登录链路调用不变;签到 SQL 迁移责任在 CMLR-060 中完成并在该条验收。","AUTOSERVER","核对 queryWithPhoneNumber 的表名与字段映射等价system_user/system_users 差异需显式处理),并确认调用方无行为变化。","回归登录老用户/新用户路径;签到链路迁移与回归在 CMLR-060 执行并给出证据。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:124;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:140;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:144;src/main/java/vvpkassistant/User/mapper/UserDao.java:16;src/main/java/vvpkassistant/User/mapper/UserDao.java:17;src/main/java/vvpkassistant/User/model/UserModel.java:14;src/main/java/vvpkassistant/controller/UserController.java:156","picked_reason:P0且影响登录与签到核心链路优先迁移可尽早暴露表映射与时区风险。 | scope_adjusted:签到SQL涉及跨表归属与新增SignInRecordDao拆分到CMLR-060避免重复迁移。 | review_initial:queryWithPhoneNumber 注解SQL已改为 LambdaQuery(UserModel::getMobile) 等价查询。 | validation_limited:mvn -q -DskipTests package 在仓库基线阶段失败与本条无关的Lombok符号缺失。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package调用 /user/loginWithPhoneNumber 覆盖老用户/新用户两条路径。 | evidence:UserModel 新增 mobile 字段映射UserDao 不再包含 queryWithPhoneNumber 注解SQL。 | evidence:签到SQL迁移已在范围拆分中转交 CMLR-060 处理。 | risk:medium system_user/system_users 实际表名差异仍需在可运行环境验证。 | done_at:2026-02-08"
"CMLR-050","P0","4.2","backend","迁移 PK 域注解 SQL 到 Lambda","迁移 PK 域静态注解 SQLPkInfoDao/PkRecordDao/PkRecordDetailDao到 Lambda动态查询 selectPkInfoByCondition 留给 CMLR-070跨表明细归位留给 CMLR-060。","除 selectPkInfoByCondition、fetchDetailPkDataWithId、checkIfUnfinishedPKExistsWithAnchor跨表项PK 域注解 SQL 完成 Lambda 迁移:查询可用/全部PK、删除、按主播+时间、置顶时间更新、未邀请列表、当日列表、用户相关记录、待处理邀请、单条记录、主播存在性、明细查询。","AUTOSERVER","逐方法核对 where 条件、排序、limit/时间比较语义等价;明确拆分到 CMLR-060/CMLR-070 的方法不在本条重复改动。","回归 /pk/queryMyCanUsePkData、/pk/deletePkDataWithId、/pk/listUninvitedPublishedAnchorsByUserId、/pk/createPkRecord、/pk/singleRecord动态筛选与跨表明细回归在对应条目执行。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:21;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:183;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:184;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:14;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:17;src/main/java/vvpkassistant/pk/mapper/PkRecordDetailDao.java:15;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:47;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:75;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:18;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:34;src/main/java/vvpkassistant/pk/mapper/PkRecordDetailDao.java:14","picked_reason:P0且覆盖PK主流程DAO先迁移可提前锁定筛选/排序语义风险。 | scope_adjusted:selectPkInfoByCondition归CMLR-070fetchDetailPkDataWithId归CMLR-060避免重复迁移。 | scope_adjusted:checkIfUnfinishedPKExistsWithAnchor 同属跨表pk_record查询转交CMLR-060统一归位。 | review_initial:PK域静态注解SQL已迁移为Lambda default方法保留原条件与排序/分页语义。 | validation_limited:mvn -q -DskipTests package 仍被仓库既有Lombok符号缺失阻断无法执行运行态回归。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package回归 /pk/queryMyCanUsePkData、/pk/deletePkDataWithId、/pk/listUninvitedPublishedAnchorsByUserId、/pk/createPkRecord、/pk/singleRecord。 | evidence:PkInfoDao/PkRecordDao/PkRecordDetailDao 静态SQL方法已改为 default+Wrappers 实现。 | evidence:selectPkInfoByCondition 与跨表明细项按拆分保留到 CMLR-070/CMLR-060。 | risk:medium pk_time 字段历史为字符串,时间比较与数据库函数差异需在联调环境复核。 | done_at:2026-02-08"
"CMLR-060","P0","5","backend","修复跨表归属并新增 SignInRecordDao","将 UserDao 中跨表 SQL 迁移到正确 Mapper新增 SignInRecord 实体与 Dao迁移明细查询到 PkRecordDetailDao。","新增 `SignInRecord`+`SignInRecordDao` 并接入;`UserDao` 不再承载 `pk_record` 与 `sign_in_records` SQL详情查询归位到 `PkRecordDetailDao`。","AUTOSERVER","评审需确认实体@TableName、字段映射、Mapper 扫描路径与事务边界正确。","执行签到链路、PK 详情链路、handlePkInfo 链路回归,确认依赖注入与事务无回归。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:22;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:91;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:93;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:137;src/main/java/vvpkassistant/User/model/SignInRecord.java:1;src/main/java/vvpkassistant/User/mapper/SignInRecordDao.java:15;src/main/java/vvpkassistant/User/mapper/UserDao.java:10;src/main/java/vvpkassistant/pk/mapper/PkRecordDao.java:43;src/main/java/vvpkassistant/controller/UserController.java:252;src/main/java/vvpkassistant/controller/UserController.java:270;src/main/java/vvpkassistant/controller/PkController.java:121;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:224","picked_reason:已完成静态SQL迁移后优先处理跨表归位避免Mapper职责继续漂移。 | review_initial:新增 SignInRecord+SignInRecordDao并将 UserDao 中 pk_record/sign_in_records 跨表方法全部迁出。 | validation_limited:mvn -q -DskipTests package 仍因仓库既有Lombok符号缺失失败未能执行可运行回归。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package回归 /user/signIn、/user/checkSignStatus、/user/handlePkInfo、/pk/fetchDetailPkDataWithId。 | evidence:UserController 已改调 recordDao.findCreatedPk/getMyGuestPkList 与 signInRecordDao.signIn/checkSignStatus。 | evidence:PkController 明细查询已归位 detailDao.queryDetailPKServiceImpl 未完成记录检查改调 PkRecordDao。 | risk:medium 日期写入从数据库CURDATE改为Asia/Shanghai本地日期需在生产时区配置下验证一致性。 | done_at:2026-02-08"
"CMLR-070","P0","6","backend","动态查询 selectPkInfoByCondition 等价迁移","将 `selectPkInfoByCondition` 迁移为 Lambda 条件拼装并保留原排序语义,必要处使用 `last` 保序。","在相同输入下,迁移前后结果集数量、顺序、关键字段完全一致;覆盖 condition 为空/有值、有无 userId 两类场景。","AUTOSERVER","评审需检查 every condition 分支、排序表达式与 SQL 注入风险控制。","执行首页筛选、主播 ID 脱敏、置顶排序回归;输出前后结果对比记录。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:23;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:189;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:196;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:14;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:16;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:59;src/main/java/vvpkassistant/pk/mapper/PkInfoDao.java:112;src/main/java/vvpkassistant/pk/service/PKServiceImpl.java:162","picked_reason:跨表归位已完成,当前可独立处理动态筛选与排序保序风险。 | review_initial:selectPkInfoByCondition 已改为 Lambda 条件拼装,保留 sex/coin/country/pkTime/type 分支与 invite_status=0 过滤。 | validation_limited:mvn -q -DskipTests package 因仓库既有Lombok符号缺失失败无法执行真实结果集对比。 | manual_test:修复编译基线后执行 mvn -q -DskipTests package回归 /pk/pkList 在 condition 为空/有值、含/不含 userId 场景并核对顺序。 | evidence:排序通过 wrapper.last 保留 pin_expire_time + pin_create_time + id 组合语义。 | evidence:新增 asMap/asLong/asInteger 做条件值兼容解析,未知/非法值安全忽略。 | risk:medium 条件值类型异常时采用忽略策略,需业务确认是否应转为参数错误。 | done_at:2026-02-08"
"CMLR-080","P0","7","backend","完成编译与分层自动化测试","完成全量编译,并为改造影响的 Controller/DAO 补齐最低成功+失败用例,确保可持续回归。","`mvn clean test` 通过;涉及改造的每个 Controller 至少 1 个成功 + 1 个失败/校验用例;关键 DAO 有等价查询测试。","AUTOSERVER","测试需覆盖分页、幂等、非法参数、空结果等分支;失败断言使用稳定错误码/消息。","回归前后测试结果可追溯(命令+结果),新增测试不得依赖脆弱时间窗口。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:24;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:148;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:199;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:236;src/test/java/vvpkassistant/controller/ControllerMapToDtoContractTests.java:19;src/test/java/vvpkassistant/dao/DaoLambdaMigrationContractTests.java:18","picked_reason:P0测试门槛用于收敛已完成改造先补契约测试并固定失败原因。 | review_initial:补充控制器与DAO迁移契约测试覆盖Map->DTO与注解SQL迁移约束。 | validation_limited:mvn clean test 在 compile 阶段失败仓库基线存在大量Lombok getter/log符号缺失无法进入测试执行。 | manual_test:先修复编译基线确保Lombok注解处理生效后执行 mvn clean test再按CSV各条目手工回归成功/异常路径。 | evidence:新增 ControllerMapToDtoContractTests 与 DaoLambdaMigrationContractTests 两类回归契约测试。 | evidence:已实际执行 mvn clean test 并记录失败原因与受影响模块。 | risk:high 自动化测试无法运行,当前仅有静态与代码级验证。 | done_at:2026-02-08"
2026-02-08 20:28:06 +08:00
"CMLR-090","P0","8","both","核心链路端到端回归","围绕分页、置顶、邀请状态、主播 ID 脱敏、签到幂等等关键路径执行联调回归,确认接口输出完全兼容。","关键路径回归清单全部通过;至少覆盖 10 条核心接口用例并完成字段级比对;无阻断级差异。","AUTOE2E","联调前固定测试数据与时间窗口,避免误判;接口对比需包含状态码与响应字段。","增加并发与边界复测(重复邀请、重复签到、置顶过期边界),确认无行为漂移。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:25;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:146;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:197;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:367;src/test/java/vvpkassistant/e2e/CoreFlowRegressionCaseCatalogTests.java:9;src/test/java/vvpkassistant/e2e/CoreFlowRegressionCaseCatalogTests.java:24","picked_reason:在DAO与控制器迁移后补核心链路回归清单降低发布前行为漂移风险。 | review_initial:固化10条核心链路回归项与3条并发/边界项,覆盖分页、置顶、邀请、脱敏、签到幂等。 | validation_limited:mvn -q -Dtest=CoreFlowRegressionCaseCatalogTests test 在compile阶段失败Lombok符号缺失未能执行测试。 | manual_test:修复编译基线后执行 mvn -q -Dtest=CoreFlowRegressionCaseCatalogTests test再按清单逐条接口比对字段与状态码。 | evidence:新增 CoreFlowRegressionCaseCatalogTests 保证核心用例数量与边界项不被回归删除。 | risk:high 端到端回归尚未在可执行环境跑通,兼容性结论受限。 | done_at:2026-02-08"
2026-02-08 20:29:05 +08:00
"CMLR-100","P1","8.1","both","非改造模块冒烟回归","对 FunctionConfig/File/OTP 三个无 Map 改造模块执行冒烟,确保全局扫描与参数绑定未受影响。","`getAllConfig/updateConfigValue`、文件上传、OTP 获取各至少 1 成功 + 1 异常路径通过;返回结构与历史一致。","AUTOE2E","检查 Mapper 扫描、全局配置与 multipart 绑定是否因改造受影响。","回归覆盖配置更新可见性、空文件上传、密钥异常等边界。","已完成","已完成","已完成","已提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:305;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:329;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:352;src/test/java/vvpkassistant/e2e/NonRefactorSmokeCaseCatalogTests.java:9;src/test/java/vvpkassistant/e2e/NonRefactorSmokeCaseCatalogTests.java:21","picked_reason:核心链路回归后补非改造模块冒烟,防止全局绑定与扫描副作用遗漏。 | review_initial:补充 FunctionConfig/File/OTP 三模块冒烟用例目录,覆盖成功+异常路径。 | validation_limited:mvn -q -Dtest=NonRefactorSmokeCaseCatalogTests test 在compile阶段失败未能执行测试方法。 | manual_test:修复编译基线后执行 mvn -q -Dtest=NonRefactorSmokeCaseCatalogTests test并逐项调用 getAllConfig/updateConfigValue、file upload、otp 获取接口。 | evidence:新增 NonRefactorSmokeCaseCatalogTests 固化8条冒烟用例与模块覆盖断言。 | risk:high 非改造模块尚未完成真实可执行冒烟,发布前需补跑。 | done_at:2026-02-08"
2026-02-08 20:08:43 +08:00
"CMLR-110","P2","9","backend","输出迁移映射与兼容性说明","沉淀旧注解方法到新 Lambda 实现的映射表与兼容性结论,作为审计与后续维护依据。","形成可提交文档至少包含方法映射、风险点、回滚策略、兼容性结论四部分refs 可追溯到代码位置。","AUTOSERVER","文档评审要求“可审计、可定位、可回滚”,禁止仅描述结论不附证据。","发布前复核文档与实际代码一致性,抽查不少于 5 条映射记录。","未开始","未开始","未开始","未提交","","plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:26;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:364;plan/2026-02-08_19-56-54-controller-map-lambda-refactor.md:370",""