375 lines
9.9 KiB
JSON
375 lines
9.9 KiB
JSON
{
|
||
"baseline": "e064f46",
|
||
"deployment_patch": "server sync/Dockerfile: use opennexus instead of reserved sync system user",
|
||
"overall": "NOT_PASSED",
|
||
"full_cases_passed": 0,
|
||
"full_cases_total": 30,
|
||
"checks": [
|
||
{
|
||
"name": "backend",
|
||
"command": [
|
||
"uv",
|
||
"run",
|
||
"--directory",
|
||
"backend",
|
||
"pytest",
|
||
"-q",
|
||
"--junitxml=G:\\OSProject\\NotesAgent-phase3\\.build\\acceptance\\e064f46\\backend.xml"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 295.9,
|
||
"finished_utc": "2026-09-08T04:38:12.067022+00:00"
|
||
},
|
||
{
|
||
"name": "packaged-core",
|
||
"command": [
|
||
"uv",
|
||
"run",
|
||
"--directory",
|
||
"backend",
|
||
"pytest",
|
||
"-q",
|
||
"tests/test_sidecar_auth.py",
|
||
"--junitxml=G:\\OSProject\\NotesAgent-phase3\\.build\\acceptance\\e064f46\\packaged-core.xml"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 7.264,
|
||
"finished_utc": "2026-09-08T04:38:19.340103+00:00"
|
||
},
|
||
{
|
||
"name": "frontend",
|
||
"command": [
|
||
"pnpm",
|
||
"--dir",
|
||
"frontend",
|
||
"exec",
|
||
"vitest",
|
||
"run",
|
||
"--reporter=default",
|
||
"--reporter=junit",
|
||
"--outputFile.junit=G:\\OSProject\\NotesAgent-phase3\\.build\\acceptance\\e064f46\\frontend.xml"
|
||
],
|
||
"exit_code": 1,
|
||
"seconds": 69.319,
|
||
"finished_utc": "2026-09-08T04:34:25.531377+00:00"
|
||
},
|
||
{
|
||
"name": "types",
|
||
"command": [
|
||
"pnpm",
|
||
"--dir",
|
||
"frontend",
|
||
"type-check"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 33.504,
|
||
"finished_utc": "2026-09-08T04:34:59.212101+00:00"
|
||
},
|
||
{
|
||
"name": "build",
|
||
"command": [
|
||
"pnpm",
|
||
"--dir",
|
||
"frontend",
|
||
"build"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 148.893,
|
||
"finished_utc": "2026-09-08T04:37:28.169120+00:00"
|
||
},
|
||
{
|
||
"name": "rust-fmt",
|
||
"command": [
|
||
"cargo",
|
||
"fmt",
|
||
"--manifest-path",
|
||
"frontend/src-tauri/Cargo.toml",
|
||
"--check"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 0.604,
|
||
"finished_utc": "2026-09-08T04:33:16.807564+00:00"
|
||
},
|
||
{
|
||
"name": "rust-tests",
|
||
"command": [
|
||
"cargo",
|
||
"test",
|
||
"--manifest-path",
|
||
"frontend/src-tauri/Cargo.toml",
|
||
"--features",
|
||
"desktop",
|
||
"--all-targets",
|
||
"--locked"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 346.627,
|
||
"finished_utc": "2026-09-08T04:39:03.456525+00:00"
|
||
},
|
||
{
|
||
"name": "rust-clippy",
|
||
"command": [
|
||
"cargo",
|
||
"clippy",
|
||
"--manifest-path",
|
||
"frontend/src-tauri/Cargo.toml",
|
||
"--features",
|
||
"desktop",
|
||
"--all-targets",
|
||
"--locked",
|
||
"--",
|
||
"-D",
|
||
"warnings"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 2.395,
|
||
"finished_utc": "2026-09-08T04:39:05.874012+00:00"
|
||
},
|
||
{
|
||
"name": "sync",
|
||
"command": [
|
||
"uv",
|
||
"run",
|
||
"--directory",
|
||
"server sync",
|
||
"pytest",
|
||
"-q",
|
||
"--junitxml=G:\\OSProject\\NotesAgent-phase3\\.build\\acceptance\\e064f46\\sync.xml"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 35.96,
|
||
"finished_utc": "2026-09-08T04:33:52.124616+00:00"
|
||
},
|
||
{
|
||
"name": "community",
|
||
"command": [
|
||
"uv",
|
||
"run",
|
||
"--directory",
|
||
"community-server",
|
||
"pytest",
|
||
"-q",
|
||
"--junitxml=G:\\OSProject\\NotesAgent-phase3\\.build\\acceptance\\e064f46\\community.xml"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 16.786,
|
||
"finished_utc": "2026-09-08T04:34:08.920635+00:00"
|
||
},
|
||
{
|
||
"name": "smoke",
|
||
"command": [
|
||
"G:\\OSProject\\NotesAgent-phase3\\backend\\.venv\\Scripts\\python.exe",
|
||
"scripts/phase3-isolated-smoke.py"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 10.452,
|
||
"finished_utc": "2026-09-08T04:34:19.377480+00:00"
|
||
},
|
||
{
|
||
"name": "docs",
|
||
"command": [
|
||
"python",
|
||
"scripts/check-doc-links.py"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 32.323,
|
||
"finished_utc": "2026-09-08T04:34:51.736262+00:00"
|
||
},
|
||
{
|
||
"name": "diff",
|
||
"command": [
|
||
"git",
|
||
"diff",
|
||
"--check",
|
||
"--",
|
||
".",
|
||
":(exclude)backend/data/vault"
|
||
],
|
||
"exit_code": 0,
|
||
"seconds": 0.721,
|
||
"finished_utc": "2026-09-08T04:34:52.492509+00:00"
|
||
}
|
||
],
|
||
"frontend_retry": {
|
||
"tests": 498,
|
||
"failed": 0,
|
||
"max_workers": 2,
|
||
"first_run_failure_retained": true
|
||
},
|
||
"cases": [
|
||
{
|
||
"id": "A-01",
|
||
"status": "partial",
|
||
"reason": "打包Core运行与完整性库测试通过;缺签名安装包、干净VM、20次冷启动和更新证据"
|
||
},
|
||
{
|
||
"id": "A-02",
|
||
"status": "partial",
|
||
"reason": "鉴权和真实Core测试通过;未完成全部路由各100次负向与秘密扫描矩阵"
|
||
},
|
||
{
|
||
"id": "A-03",
|
||
"status": "failed",
|
||
"reason": "专项复现普通桌面请求忽略已取消信号及自定义超时;缺提交确认"
|
||
},
|
||
{
|
||
"id": "A-04",
|
||
"status": "partial",
|
||
"reason": "进程关闭与代际隔离有证据;缺6次崩溃/子孙进程与更新中断矩阵"
|
||
},
|
||
{
|
||
"id": "B-01",
|
||
"status": "partial",
|
||
"reason": "域检查与真实管道凭据写入通过;缺完整四域/三秘密及泄漏扫描矩阵"
|
||
},
|
||
{
|
||
"id": "B-02",
|
||
"status": "partial",
|
||
"reason": "100条Fernet迁移和冲突测试通过;缺完整环境钥匙/坏token/空库/断点矩阵"
|
||
},
|
||
{
|
||
"id": "B-03",
|
||
"status": "not_implemented",
|
||
"reason": "手动锁定和改密有测试;OS锁屏联动与备份恢复未完成"
|
||
},
|
||
{
|
||
"id": "B-04",
|
||
"status": "failed",
|
||
"reason": "复现两个已解锁Broker先后写入导致先提交凭据丢失;缺完整迁移故障注入和清除链路"
|
||
},
|
||
{
|
||
"id": "C-01",
|
||
"status": "not_implemented",
|
||
"reason": "生产OS沙箱未实现,禁止启动不是正向隔离验收"
|
||
},
|
||
{
|
||
"id": "C-02",
|
||
"status": "not_implemented",
|
||
"reason": "生产OS沙箱未实现,禁止启动不是正向隔离验收"
|
||
},
|
||
{
|
||
"id": "C-03",
|
||
"status": "not_implemented",
|
||
"reason": "生产OS沙箱未实现,禁止启动不是正向隔离验收"
|
||
},
|
||
{
|
||
"id": "C-04",
|
||
"status": "not_implemented",
|
||
"reason": "生产OS沙箱未实现,禁止启动不是正向隔离验收"
|
||
},
|
||
{
|
||
"id": "D-01",
|
||
"status": "not_implemented",
|
||
"reason": "Rust扩展管理全生命周期未实现"
|
||
},
|
||
{
|
||
"id": "D-02",
|
||
"status": "not_implemented",
|
||
"reason": "Rust扩展管理全生命周期未实现"
|
||
},
|
||
{
|
||
"id": "D-03",
|
||
"status": "not_implemented",
|
||
"reason": "Rust扩展管理全生命周期未实现"
|
||
},
|
||
{
|
||
"id": "D-04",
|
||
"status": "not_implemented",
|
||
"reason": "Rust扩展管理全生命周期未实现"
|
||
},
|
||
{
|
||
"id": "E-01",
|
||
"status": "blocked",
|
||
"reason": "缺完整桌面链路、签名RC和双实机端到端证据"
|
||
},
|
||
{
|
||
"id": "E-02",
|
||
"status": "blocked",
|
||
"reason": "缺完整桌面链路、签名RC和双实机端到端证据"
|
||
},
|
||
{
|
||
"id": "E-03",
|
||
"status": "blocked",
|
||
"reason": "缺完整桌面链路、签名RC和双实机端到端证据"
|
||
},
|
||
{
|
||
"id": "E-04",
|
||
"status": "blocked",
|
||
"reason": "缺完整桌面链路、签名RC和双实机端到端证据"
|
||
},
|
||
{
|
||
"id": "E-05",
|
||
"status": "blocked",
|
||
"reason": "缺完整桌面链路、签名RC和双实机端到端证据"
|
||
},
|
||
{
|
||
"id": "S-01",
|
||
"status": "not_implemented",
|
||
"reason": "完整Rust同步客户端、冲突和分类链路未实现"
|
||
},
|
||
{
|
||
"id": "S-02",
|
||
"status": "not_implemented",
|
||
"reason": "完整Rust同步客户端、冲突和分类链路未实现"
|
||
},
|
||
{
|
||
"id": "S-03",
|
||
"status": "not_implemented",
|
||
"reason": "完整Rust同步客户端、冲突和分类链路未实现"
|
||
},
|
||
{
|
||
"id": "S-04",
|
||
"status": "partial",
|
||
"reason": "真实PostgreSQL/MinIO双worker:100竞争1成功99冲突、重复100次不增加revision;分页和全部故障矩阵未完成"
|
||
},
|
||
{
|
||
"id": "S-05",
|
||
"status": "partial",
|
||
"reason": "100MiB对象与重复complete100次通过;缺两worker offset/清理竞争各100轮矩阵"
|
||
},
|
||
{
|
||
"id": "S-06",
|
||
"status": "partial",
|
||
"reason": "真实服务未认证100次拒绝及撤销后下一请求拒绝通过;完整跨账号/过期/故障矩阵未完成"
|
||
},
|
||
{
|
||
"id": "S-07",
|
||
"status": "not_implemented",
|
||
"reason": "测试实例已部署;一致备份/全新实例恢复/RPO/RTO未实现或未验证"
|
||
},
|
||
{
|
||
"id": "S-08",
|
||
"status": "not_implemented",
|
||
"reason": "完整Rust同步客户端、冲突和分类链路未实现"
|
||
},
|
||
{
|
||
"id": "S-09",
|
||
"status": "not_run",
|
||
"reason": "未运行30分钟10客户端负载和4并发100MiB峰值测量;单次100MiB结果不可替代"
|
||
}
|
||
],
|
||
"test_service": {
|
||
"url": "http://yui.kronecker.cc:18080",
|
||
"purpose": "user-authorized HTTP test deployment",
|
||
"image": "opennexus-sync:e064f46-audit1",
|
||
"production_approved": false
|
||
},
|
||
"evidence_directory": ".build/acceptance/e064f46",
|
||
"contains_credentials": false,
|
||
"remote_checks": {
|
||
"100MiB_sha256_roundtrip": true,
|
||
"complete_retries": 100,
|
||
"CAS_attempts": 100,
|
||
"CAS_success": 1,
|
||
"CAS_conflicts": 99,
|
||
"revision_idempotent_retries": 100,
|
||
"unauthenticated_denials": 100,
|
||
"revoked_next_status": 401,
|
||
"observed_ready_failure_seconds": 3.005,
|
||
"observed_ready_recovery_seconds": 0.767,
|
||
"restart_ready_seconds": 6.339,
|
||
"100MiB_hash_after_restart": true,
|
||
"all_fault_matrix_passed": false
|
||
}
|
||
}
|