{
  "date": "2026-10-28",
  "milestone": "M5",
  "status": "local_engineering_and_automated_acceptance_complete",
  "schemaVersion": 26,
  "sourceCommits": {
    "fago": "e0bc02b4e4dd918ff51ae956e48457b8d75ddae2",
    "fago-vben5": "885dc9e2ba2969c4d4f45f428f6679408917b046",
    "fago-cli": "0ff4b60b7de44102363394d756f3ebac694beeff"
  },
  "requirements": [
    {
      "requirement": "R2.1 数据范围",
      "result": "verified",
      "proof": "m5-scope-verification.json",
      "coverage": "子部门/自选部门、同权限并集、读写/审计、移动/删除/授权竞争"
    },
    {
      "requirement": "R2.1 字典参数",
      "result": "verified",
      "proof": "m5-infra-verification.json",
      "coverage": "显式模板复制、租户版本与审计、敏感参数出口"
    },
    {
      "requirement": "R2.2 文件",
      "result": "verified",
      "proof": "m5-files-verification.json",
      "coverage": "授权上传下载、5MiB/类型、状态机与清理、通用S3显式endpoint；本轮真实RustFS组合恢复"
    },
    {
      "requirement": "R2.3 可靠消息/任务",
      "result": "verified",
      "proof": [
        "m5-messaging-progress.json",
        "m5-notifications-progress.json",
        "m5-jobs-progress.json",
        "m5-operations-progress.json",
        "m5-retention-recovery.json"
      ],
      "coverage": "outbox/inbox、Event/Redis、幂等/租约/fencing/死信重放、通知/任务管理与积压、停写组合恢复"
    },
    {
      "requirement": "R2.4 生成",
      "result": "verified",
      "proof": [
        "m5-codegen-executable-progress.json",
        "m5-codegen-matrix-progress.json",
        "m5-codegen-browser-progress.json"
      ],
      "coverage": "同ZIP导入配置预览下载、双库生成CRUD/合同与前端编译；真实浏览器CRUD为v19历史证据，本轮v26宿主重跑同ZIP HTTP/race与前端"
    },
    {
      "requirement": "R2 多用户/多终端",
      "result": "verified",
      "proof": [
        "m5-identity-clients-progress.json",
        "m5-member-identity-progress.json",
        "m5-member-closure-progress.json",
        "m5-service-identity-progress.json"
      ],
      "coverage": "realm/client当前守卫、设备/全端撤销、独立会员与注销墓碑、机器凭据与scope"
    },
    {
      "requirement": "R2 OIDC/认证模式",
      "result": "verified",
      "proof": [
        "m5-sso-registry-progress.json",
        "m5-sso-session-progress.json",
        "m5-sso-rp-progress.json",
        "m5-authentication-modes-progress.json"
      ],
      "coverage": "部署信任与精确绑定、S256/一次性state、当前来源、RP/签名退出与材料清理、最后方式/恢复管理员"
    },
    {
      "requirement": "R2 实际Web/原生与双应用SSO",
      "result": "verified",
      "proof": [
        "m5-native-sso-progress.json",
        "m5-browser-sso-progress.json"
      ],
      "coverage": "macOS有限原生三协议；两个Web应用真实IdP登录/恢复/故障补偿/签名统一退出"
    }
  ],
  "currentRootRegression": {
    "mysql": {
      "app": {
        "topLevelPassed": 152,
        "integrationPassed": 152,
        "skipped": [
          "TestIntegrationMessageRedis",
          "TestRecoveryChild",
          "TestIntegrationReleaseCapacity"
        ],
        "race": true,
        "source": "final root checkout"
      },
      "migration": {
        "topLevelPassed": 22,
        "integrationPassed": 20,
        "skipped": [],
        "race": true,
        "source": "final root checkout"
      },
      "recovery": {
        "driver": "mysql",
        "schemaVersion": 26,
        "transport": "redis",
        "scope": "isolated local coordinated stopped-write snapshot; plain test HTTP",
        "objectBackup": {
          "objects": 3,
          "bytes": 10485782,
          "manifestSha256": "ab4107e80881fd9d90ac6496c92e9cc883114f1d70bfc5dcef1710d0cf57c64e"
        },
        "sqlFullFingerprintRestored": true,
        "redisAOFAndPELRestored": true,
        "sourceProcessesStoppedBeforeBackup": true,
        "independentObjectServerRestored": true,
        "pendingJobRecovered": true,
        "pendingPELNoticeRecovered": true,
        "completedReceiptNotDuplicated": true,
        "actualDuplicateConsumedWithoutNewReceipt": true,
        "restoredReadyFileBytesMatch": true,
        "pendingCleanupRecovered": true,
        "crossTenantFileRejected": true,
        "receiptsByTenant": [
          1,
          2
        ],
        "currentJobsEachSingleAttempt": true,
        "sigtermExitCode": 0,
        "cleanup": "owned databases/containers/anonymous volumes removed; private snapshots deleted",
        "tables": 69
      },
      "sourceVulnerabilities": {
        "reachable": 0,
        "importedPackages": 0,
        "requiredModuleUncalled": {
          "server": 3,
          "cli": 1
        }
      }
    },
    "postgres": {
      "app": {
        "topLevelPassed": 152,
        "integrationPassed": 152,
        "skipped": [
          "TestIntegrationMessageRedis",
          "TestRecoveryChild",
          "TestIntegrationReleaseCapacity"
        ],
        "race": true,
        "source": "final root checkout"
      },
      "migration": {
        "topLevelPassed": 22,
        "integrationPassed": 20,
        "skipped": [],
        "race": true,
        "source": "final root checkout"
      },
      "recovery": {
        "driver": "postgres",
        "schemaVersion": 26,
        "transport": "redis",
        "scope": "isolated local coordinated stopped-write snapshot; plain test HTTP",
        "objectBackup": {
          "objects": 3,
          "bytes": 10485782,
          "manifestSha256": "a76fd67ec565c603acecaa4881a75f5e8dcb41fa03555c2f7838b447578f1f47"
        },
        "sqlFullFingerprintRestored": true,
        "redisAOFAndPELRestored": true,
        "sourceProcessesStoppedBeforeBackup": true,
        "independentObjectServerRestored": true,
        "pendingJobRecovered": true,
        "pendingPELNoticeRecovered": true,
        "completedReceiptNotDuplicated": true,
        "actualDuplicateConsumedWithoutNewReceipt": true,
        "restoredReadyFileBytesMatch": true,
        "pendingCleanupRecovered": true,
        "crossTenantFileRejected": true,
        "receiptsByTenant": [
          1,
          2
        ],
        "currentJobsEachSingleAttempt": true,
        "sigtermExitCode": 0,
        "cleanup": "owned databases/containers/anonymous volumes removed; private snapshots deleted",
        "tables": 69
      },
      "sourceVulnerabilities": {
        "reachable": 0,
        "importedPackages": 0,
        "requiredModuleUncalled": {
          "server": 3,
          "cli": 1
        }
      }
    }
  },
  "workspaceRaceVetModules": 23,
  "freshIndependentModules": 23,
  "moduleBoundaries": 24,
  "frontend": {
    "appTests": 161,
    "files": 17,
    "typecheck": "passed",
    "productionBuild": "passed"
  },
  "contracts": {
    "static": 1569,
    "authenticationModesActual": 120,
    "authenticationModesEncrypted": 80,
    "authenticationModesPlain": 40,
    "sameZIPGeneratedActual": 144,
    "generatedEncrypted": 96,
    "generatedPlain": 48
  },
  "sameZIP": {
    "sha256": "f853ad192bad4909449c4b20557331c66b2aab0fe7f4eecc89623d929861254a",
    "currentHostSchema": 26,
    "generatedHTTPAndBuild": "passed both databases",
    "generatedFrontendTypecheckBuild": "passed",
    "currentBrowserCRUDRerun": false
  },
  "historicalSQLUnchanged": 75,
  "documentation": {
    "pages": 59,
    "finalSyncCheckBuild": "passed",
    "browser": "首页/四分册/新手册/25节锚点/证据图及构建后最终状态通过；路线图26节锚点按实际heading id修正",
    "productionDeployment": false
  },
  "cleanup": {
    "dockerBaselineOnly": [
      "dm8",
      "fago-m0-mysql-1",
      "fago-m0-postgres-1"
    ],
    "ownedTestResourcesRemoved": true
  },
  "dependencyAuthorization": "仅通用S3库，显式endpoint；未增加厂商专属服务",
  "limitations": [
    "无生产环境，未部署；本地停写恢复不等于生产RPO/RTO或容量认证",
    "真实IdP双应用为MySQL开发HTTP+机密Web，成功使用测试装配根；发布API/worker另作双库启用SSO启动与拒绝验证",
    "有限原生命令仅macOS真实系统浏览器验证；不是长期凭据缓存SDK，Linux/Windows桌面未认证",
    "DM v26与其余目标业务库、RabbitMQ/Kafka/RocketMQ及通用工作流继续后续阶段",
    "具体商业小程序渠道、恶意文件扫描供应商、公开注册/邀请未实现；不计为已支持",
    "整个Vben上游广域测试曾有两个未修改form-ui测试失败；当前通过的是web-antd应用161项",
    "依赖扫描可达与导入包为0；server3/CLI1个required-module未调用发现仍保留"
  ],
  "logSHA256": {
    "final-root-mysql-app.log": "7902263e6997b78f37f37467289665a1072a8a440b54d820295f3458e8f8aba7",
    "final-root-mysql-migration.log": "6a588d82310ffa19885de35eb3c44ace23b83661f142f08d4eb99ce332c22d94",
    "security/mysql-server.log": "a7e30932ffd938da5c72674cb4ddd967c2a8e331697800f89b7732b73d54818c",
    "security/mysql-cli.log": "b5ae54ddcfa4cb39e85f84ad2d9e43556bd817c480eaab2a71bab63bfc29353b",
    "final-root-postgres-app.log": "8c9579a42f202f48346531c1df0c42e94b90560c619d1fc9279bc1e9c258cc95",
    "final-root-postgres-migration.log": "7cb6c67bf4948fb4e9e236f40284b3a1d8232ae49d0418a1f53c2649fbe8a1b0",
    "security/postgres-server.log": "a7e30932ffd938da5c72674cb4ddd967c2a8e331697800f89b7732b73d54818c",
    "security/postgres-cli.log": "b5ae54ddcfa4cb39e85f84ad2d9e43556bd817c480eaab2a71bab63bfc29353b",
    "root-workspace-race-vet.log": "d91dfb63e22bc9cc5026fdd0ef41ffdb6e42b6e2e52aa664aa7042359906b158",
    "root-independent.log": "46c356317e71b599dd7530d33f89227f2e121cb8aa166c5f22aea664886ff0e8",
    "root-web-final-tests.log": "4d0d0c636003b716c39a6c5356b88ae8c7cd2d5924fc3eee3a44a1a8156a234f",
    "root-web-final-typecheck.log": "229cafb55da34c69e6822313d887b9e5a9985f9994af30bb51ee09ec32378a7d",
    "root-web-final-build.log": "6b5073e59bc1d6dda3c9487a5045bd61528e7f31d2e0eda1cf8b4712accc87a3",
    "final-generated-integration.json": "14b9af3cf7730cb2bc48eeffa835d84ff2e3097adbb1b76da572176386bf7bc0",
    "final-generated-web.json": "450ac3b4ed2e9159da14957f09c6ce6e51cea73fe94a91a27ee4aa68c4f17849",
    "final-combined-mysql.json": "94f50be134e4862c9b6ceb44700d1568c14f0980bd9128d4a406552717718b32",
    "final-combined-postgres.json": "58fa2c144609fe94c9c804bf572283506c5f952de300b1c9f48b14fb552b3001"
  }
}
