5.5 KiB
5.5 KiB
Round 5V 验收记录 — 部分通过,迁移待授权
日期:2026-10-14;分支 fix/iot-safety-hardening;基线
47bc6604e53b841e9070b890e65e0a75df1c1e1c。本文件描述本轮实际结果,
不继承此前 Agent 的通过声明。最终本地提交号见 Git HEAD。
真实 Kingbase 结果
- JDBC 实际连接仅限
192.168.139.218:4321/railwaysystem_fusion_qa_20261013。 账号fusion_qa_app,KingbaseES V009R003C018,current_schema=public。 只读 repeatable-read 事务结束 rollback;未执行 DDL、业务 INSERT/UPDATE/DELETE、 全量初始化、GRANT、账号修改或共享库访问。 - 迁移前
iotlocks.lock_auth10条,lock_command15条;最终只读复查不变。 005的新增列/索引缺失,迁移未执行,MIGRATION_WAITING_APPROVAL。 - 角色非 superuser/createdb/createrole,public/iotlocks 均无 CREATE,表属 kingbase。 但3张 public 表具有额外 TRUNCATE/TRIGGER/REFERENCES,见迁移计划,待管理员审查。
- 两张受影响表的 WebRowSet 私有快照10/15行,SHA256及XML解析通过:
.qa-runtime/snapshot-baf7eb8fede1。不是原生全库备份,未做数据库恢复演练。 - 八类生命周期/并发/跨事务 Kingbase 测试均未执行。只读事务成功不是它们的证明。 当前历史数据未被改写;新增默认 LEGACY/QUARANTINED 的实际迁移效果尚未验证。
证据:scripts/qa/QaDatabaseProbe.java、.qa-runtime/final-database-inspection.log、
.qa-runtime/snapshot-report.log、迁移/回退计划。
构建与自动化结果
- Java 21.0.2 / Maven 3.9.x 打包成功;所有模块 release21,抽查 class major65。 当前85项选定JUnit测试,失败0、错误0:原81项加4项住宿异常/事务声明测试。 它们主要为H2/替身,不是Kingbase生命周期验收。
- 修复入住/直接新增在住/调宿吞掉IoT持久化异常;checkIn增加事务边界。
Round5vAccommodationAtomicityTest覆盖入住/调宿/退宿异常传播及事务声明。 新增修复的真实Kingbase回滚语义待验证,未夸称原子性已通过。 - 11项Python QA工具测试通过:目标库白名单、URL凭据拒绝、配置权限、无Shell 执行、过滤继承覆盖、迁移缺失不启动、强制安全参数和PID复用拒绝。
- JDBC已从授权本机文件校验后安装为私有Maven依赖9.0.0,正常打入Boot JAR, 不再依赖systemPath;未提交供应商二进制。安装/预检脚本从旧8.6.0同步至9.0.0。
- 前端Node22.23.2/npm10.9.8,
npm ci --ignore-scripts --no-audit --no-fund实际安装1753依赖,生产构建通过。核心版本对齐实验工程,新增受跟踪lockfile。 初次构建暴露Quill2语法转译缺失,补回实验已有transpileDependencies后通过。 旧Vue2/CLI4废弃依赖、node-ipc engine/ESLint peer警告未在本轮整体迁移。 - 登录表单残留固定测试账号/密码预填已清空,未重置任何数据库账号。
证据:RuoYi-Vue/ruoyi-*/target/surefire-reports/、
.qa-runtime/backend-build.log、.qa-runtime/frontend-build.log、
.qa-runtime/qa-tools-tests.log;准确复现命令见根目录DEMO_RUNBOOK.md。
实际 Chrome 与运行结果
- Playwright使用已安装的
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome, UA Chrome155。实际打开生产dist(loopback18088),可见原SYFJGYD品牌登录页。 截图output/playwright/round5v-login-backend-blocked.png,已目视检查。 - 新后端未启动:
qa.py start执行真实目标库预检后以MIGRATION_REQUIRED拒绝, 未启动Redis或Spring Boot。前端的captchaImage如实返回502,没有替身API或旧后端。 因此管理员登录、动态路由、首页图表、培训/IoT API、九页功能、住宿E2E均未验收。 九个IoT页面源码被生产构建编译不代表页面运行无404。 - 独立端口方案18096/18088/16389,实际只为登录页检查启动了前端服务; 交付前关闭本任务前端和本任务Chrome会话。既有Java PID51901/53305未被停止。
配置与工程边界
- 所有安全默认保持关闭真实MQTT/设备写入、空白名单、关闭人脸HTTP、OpenAPI、 QA危险接口、Druid控制台、补偿任务和Quartz自动启动;旧DMS关闭。 运行器不清端口、不杀既有进程、不修改共享Redis或Mac网络;JWT/Redis密钥在 私有0600外部运行配置中生成并仅经环境注入,数据库/身份密钥从受保护文件读取。
- DEMO_RUNBOOK已移除不存在脚本/错误路径/固定登录口令/100%真实执行等声明, 提供实际存在的inspect/snapshot/start/frontend/stop入口和未通过项。
- CI YAML静态解析通过:Java21、私有JDBC预检、npm ci,显式web+变量门禁, 无部署job、无push自动流水线。本轮未Push、Merge、触发远程CI或部署;Runner未验证。
- 变更范围私钥/常见Token模式扫描无发现,未将快照/日志/浏览器缓存/驱动加入Git。 原工程无tracked diff;历史实验工程clean,未改写两者源码或历史。
仍需完成
- 明确仅针对目标QA库的005授权、合规原生备份及回退演练,协调该库写入窗口。
- 授权后执行并核验增量迁移、历史LEGACY隔离和实际Kingbase八类事务测试。
- 启动新隔离后端,以真实Chrome完成管理员/菜单/首页/九页/API/住宿Mock闭环。
- 管理员审查3张表额外权限;老师协议/单台现场测试批准仍独立待办。
READY_FOR_SUPERVISED_HARDWARE_TEST = false。Mock/H2成功不等于真实门锁联调成功。