Files

5.0 KiB
Raw Permalink Blame History

代码 Review

  • 审查范围:c04184a6111da0cfad90d1a265dc3cd3a6d90a9c..95b8611bd9bbc282193591e472e2e19c617e5035
  • 审查方式:独立只读复审
  • 日期:2026-08-13

发现与处置

第一轮发现三进程生命周期依赖本地 env、未跟踪生成契约可绕过漂移检查、Vue 外部脚本可绕过边界、生产镜像允许可变 tag,以及 Docker 未验证镜像内 Scheduler/Worker 生命周期。上述问题已在 cb550e3 完成整改并通过针对性测试。

最终复审进一步发现早期外部脚本正则不能识别合法的无引号 src 属性。GitNexus 单符号影响分析为 LOW,只有 verifyProjectBoundaries 一个直接调用者和一条边界检查流程。95b8611 改用固定版本 @vue/compiler-sfc@3.5.41,直接拒绝普通脚本或 setup 脚本的外部 src,测试覆盖双引号、单引号、无引号和属性换序,边界用例 8/8 通过。

最终证据

  • pnpm verify 完整通过:静态检查、类型、全部测试、Web/Server 构建和 Playwright 4/4。
  • 契约漂移 3/3、工程边界 8/8、镜像引用 5/5、Web 8/8、Server 30/30。
  • Scheduler/Worker 的源码子进程生命周期使用公开 production fixture,可在干净 checkout 复现。
  • HTTP 契约保持 Server DTO → OpenAPI → Web 单向发布;RocketMQ 消息契约只在 Server 内部。
  • 未发现新的配置泄漏、安全、生命周期、错误处理或生产风险。
  • Docker 是已验证过的历史可选交付能力;按用户决定不再作为后续日常门禁,最终开发完成后再决定是否保留。

Critical、Important、Minor 均无未关闭问题。

最终结论:passed

仅源码部署调整复审

  • 审查范围:cfcd7f13d9a6a35173d01bd8ca1458911190e70f..47d0e0d248eb9b21cbd12f1625d3bd0e9c266dc9 及其后 Review 修复
  • 审查重点:发布门禁绕过、子进程与信号、Redis 失败语义、systemd/Nginx 真实命令、历史证据和测试缺口

发现与处置

  1. Important:systemd 模板目标名不可执行。 初版源码手册把 *.service.example 原样安装并以该名称重启,真实 systemd 单元名不正确。新增环境契约测试先 RED,随后改为分别安装成 a-share-api.service、a-share-scheduler.service、a-share-worker.service,并统一 verify/restart/status/journalctl 命令;环境 10/10 GREEN。
  2. Important:Docker 禁止清单可被新路径绕过。 初版只阻断已删除的固定旧路径,ops/Dockerfile 或新 Compose YAML 会被放行。新增未列举路径测试先 RED,随后用递归活动资产扫描阻断任意 Dockerfile、.dockerignore、docker-compose*.yml 和 compose/ YAML;部署测试 6/6 GREEN。

最终证据

  • pnpm verify:release 完整通过,包含静态检查、类型、全部测试、四类构建、Playwright 4/4 和源码发布校验。
  • Redis 不可达时只返回脱敏的固定本机服务提示;无安装、启动、停止或删除基础设施的分支。
  • API 子进程只接收公开禁用态测试夹具,SIGINT/SIGTERM 只转发给该子进程。
  • 源码门禁要求 Web 与三个 Server 入口、三份最小权限 systemd 单元和 Nginx Web/API 配置完整。
  • 当前跟踪文件没有 Dockerfile、Compose、.dockerignore 或 Docker 专用脚本;历史文档事实仍可追溯。

Critical、Important、Minor 均无未关闭问题。

最终结论:passed

v0.0.8 发布封存复核

  • 复核日期:2026-08-17
  • 本次变化只更新用户确认记录、功能状态、版本、发布说明与开发总结,没有修改运行时代码、数据库结构、消息契约或部署入口。
  • architecture-review.md 记录的确认范围与实际实现一致;仅源码部署决策继续取代早期 Docker 方案,没有删除或伪造历史验证证据。
  • 发布状态变化不会扩大生产权限,不读取生产配置或数据;回退继续采用新提交和更高补丁版本,禁止移动已推送标签。
  • 完整验证与源码发布门禁在最终发布树上重新执行,结果写入本次发布记录。

安全与残余风险

配置、Schema、Redis/MySQL 健康检查、OpenAPI 边界和源码部署均保持最小权限与脱敏策略;本次封存不访问生产数据库、不写入外部基础设施。残余风险集中在尚未实现的 RocketMQ Node 客户端、TDX 采集和市场业务,必须在对应功能中重新 Review,不能沿用脚手架结论直接放行。

性能与资源影响

本次封存只有文档和版本元数据变化,没有增加线上进程、请求、数据库查询、缓存写入或消息负载。既有 Web 与三进程构建、生命周期和 Playwright 证据覆盖脚手架边界;行情刷新与分析吞吐不属于 GOV-009,后续需建立业务性能指标。

GitNexus 与同步修改

发布封存不修改运行时符号。HTTP/OpenAPI、Web API、消息、数据库、Redis、API、Scheduler、Worker 和源码部署边界均无需代码同步;版本、manifest、CHANGELOG、开发总结、Review、发布说明和回退记录已同步更新。

最终结论:passed