轻松聘AI开发
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

R01-A4 第四批请求上下文收束独立复验

复验日期:2026-09-17

分支:refactor/r01-structure-performance

基线 HEAD:35baa8416d31e71dd2c2556877f9d2e1c93b14a1

结论

R01-A4 独立代码复验通过,可以进入精确暂存、本地提交与推送检查点。

FAIL=0,SKIP=0。复验未修改生产代码,未暂存、未提交、未推送。

独立审查

逐文件审查以下 8 个 Controller:

  • CandidateFeedbackController
  • ApplicationMatchController
  • MatchConversationController
  • MatchRuleController
  • TalentDiscoveryController
  • CareerProgressController
  • MatchController
  • TalentInvitationController

结论:

  1. 身份统一由构造器注入的 CurrentUserAccessor.requireUserId() 获取;requestId 统一由构造器注入的 RequestIdAccessor.get(request) 获取。
  2. 8 个文件对 SecurityContextHolder、Authentication、anonymousUser、身份 Long.valueOf/parseLong、私有 requestId 方法、可选注入和手工创建 Accessor 的门禁扫描均为 0。
  3. 角色、资源归属、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 相同,本轮未触碰。
  • 历史未跟踪文件全部保留,未删除、移动或清理。