forked from baskbuddy/zhangshun
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.
3.2 KiB
3.2 KiB
R01-A4 第四批请求上下文收束独立复验
复验日期:2026-09-17
分支:refactor/r01-structure-performance
基线 HEAD:35baa8416d31e71dd2c2556877f9d2e1c93b14a1
结论
R01-A4 独立代码复验通过,可以进入精确暂存、本地提交与推送检查点。
FAIL=0,SKIP=0。复验未修改生产代码,未暂存、未提交、未推送。
独立审查
逐文件审查以下 8 个 Controller:
CandidateFeedbackControllerApplicationMatchControllerMatchConversationControllerMatchRuleControllerTalentDiscoveryControllerCareerProgressControllerMatchControllerTalentInvitationController
结论:
- 身份统一由构造器注入的
CurrentUserAccessor.requireUserId()获取;requestId 统一由构造器注入的RequestIdAccessor.get(request)获取。 - 8 个文件对
SecurityContextHolder、Authentication、anonymousUser、身份Long.valueOf/parseLong、私有 requestId 方法、可选注入和手工创建 Accessor 的门禁扫描均为 0。 - 角色、资源归属、Service 入参与响应结构未被改写;V1-V45、ErrorCode、OpenAPI 文档均无差异。
独立测试
新增两个独立测试类,仅位于测试目录:
A4IndependentVerificationTest:3 个测试,覆盖 8 个真实 MVC 映射的非法主体、匿名主体及 requestId 归一化同源。A4AccessorWiringIndependentTest:2 个测试,通过 mock Accessor 的异常和值传播,逐一验证 8 个 Controller 的真实接线和 Service 参数。
发现实施方 A4AccessorWiringProbeTest 的 GET 路径列表只有 7 个 Controller,遗漏了唯一使用 POST 的 MatchConversationController。独立测试已使用真实方法 POST /applications/{id}/conversation 补齐;该路径通过,没有发现生产缺陷。
定向命令结果:48/48,Failures=0,Errors=0,Skipped=0。
关联回归结果:163/163,Failures=0,Errors=0,Skipped=0。
全量验证
mvn clean verify:BUILD SUCCESS,2243/2243,Failures=0,Errors=0,Skipped=0。python docs/verify_openapi.py:All checks passed,176 paths / 214 operations。git diff --check:无空白错误,仅既有 LF/CRLF 提示。- 暂存区:空。
- 迁移差异:空。
docs/openapi-rc.json差异:空。
全量数由实施前的 2238 增至 2243,增量恰好是本轮新增的 5 个独立测试。
全仓剩余统计纠正
按完整模式逐文件分类:
- 身份解析:12 个文件,其中基础设施 3、业务 Controller 9;与实施报告一致。
- requestId 入口:19 个文件,其中基础设施/非业务入口 6、业务 Controller 13。
实施报告中的“完整模式 18 个文件”少计 1 个基础设施/非业务入口;业务 Controller 剩余数 13 正确。该统计偏差不影响 A4 的 8 个目标文件全部完成迁移。
Git 与边界
- HEAD 未改变;未暂存、未提交、未推送。
- 本次独立复验只新增上述 2 个测试文件和本报告,未修改生产代码。
GlobalExceptionHandler.java仍是 Windows stat 缓存造成的工作区标记,内容 blob 与 HEAD 相同,本轮未触碰。- 历史未跟踪文件全部保留,未删除、移动或清理。