{ "$schema": "https://hwlab.pikastech.local/schemas/dev-gate-report.schema.json", "$id": "https://hwlab.pikastech.local/reports/dev-gate/dev-mvp-gate-report.json", "reportVersion": "v1", "issue": "pikasTech/HWLAB#39", "taskId": "dev-mvp-gate-report", "commitId": "86d769525caf1db513b93cb67c2c8ee8863dd4b1", "acceptanceLevel": "dev_mvp_gate", "devOnly": true, "prodDisabled": true, "gateStatus": "blocked", "sourceContract": { "status": "pass", "documents": [ "docs/dev-gate-report.md", "docs/dev-acceptance-matrix.md", "docs/m0-contract-audit.md", "docs/m1-local-smoke.md", "docs/m2-dev-deploy-smoke.md", "docs/m3-hardware-loop.md", "docs/m4-agent-loop.md", "docs/m5-mvp-e2e.md", "docs/runtime-boundary-guard.md", "docs/topology-constraints.md", "docs/artifact-catalog.md", "docs/schema-drift-map.md", "protocol/README.md", "protocol/audit.md", "protocol/evidence-chain.md", "protocol/mvp-e2e-contract.md" ], "summary": "The DEV gate is anchored to the frozen matrix, gate contract, and M0-M5 milestone docs on origin/main." }, "validationCommands": [ "node --check scripts/validate-dev-gate-report.mjs", "node scripts/validate-dev-gate-report.mjs" ], "localSmoke": { "status": "pass", "commands": [ "node scripts/validate-contract.mjs", "node scripts/validate-m0-contract.mjs", "node scripts/validate-artifact-catalog.mjs", "node scripts/validate-runtime-boundary.mjs", "node scripts/validate-schema-drift-map.mjs", "node scripts/validate-evidence-chain.mjs", "node scripts/m1-contract-smoke.mjs", "node scripts/m2-dev-deploy-smoke.mjs --dry-run", "node scripts/m3-hardware-loop-smoke.mjs", "node scripts/m4-agent-loop-smoke.mjs" ], "evidence": [ "validated 15 JSON files and 13 service ids", "validated M0 contract examples: 7 JSON files, 13 service ids", "validated 13 DEV artifact catalog services at 24eb3bf", "validated HWLAB runtime boundary guard for 13 services; forbidden substitutes: unidesk-backend, provider-gateway, microservice-proxy", "validated schema drift map with 59 aligned fields and 12 gaps", "validated 2 evidence chain fixtures and 2 evidence records", "[m1-smoke] passed", "[m2-smoke] validated 11 service contracts", "[m2-smoke] mode=dry-run endpoint=http://74.48.78.17:16667", "[m2-smoke] no real DEV/PROD request was made", "M3 hardware loop smoke passed", "[m4-smoke] ok m4-agent-automation-loop-local-contract-smoke" ], "summary": "M0-M4 contract and smoke checks pass locally without contacting the live DEV ingress." }, "dryRun": { "status": "pass", "commands": [ "node tools/hwlab-cli/bin/hwlab-cli.mjs health", "node tools/hwlab-cli/bin/hwlab-cli.mjs test e2e --env dev --mvp --dry-run", "node scripts/m5-mvp-e2e-dry-run.mjs" ], "evidence": [ "hwlab-cli health -> status: ok, environment: dev, endpoint: http://74.48.78.17:16667, projects: 2", "hwlab-cli dry-run -> 9 steps, 13 artifacts, 14 health contracts, 2 hardware operations, 2 evidence records, 0 network calls", "M5 MVP E2E dry-run passed: 9 steps, 13 artifacts, 14 health contracts, 2 hardware operations, 2 evidence records, 0 network calls" ], "summary": "The M5 orchestration dry-run is green, but it remains fixture-only and does not establish a live DEV gate." }, "devPreconditions": { "status": "blocked", "classification": "DB live; hardware loop", "requirements": [ "http://74.48.78.17:16666/ returns the DEV browser entry", "http://74.48.78.17:16667/health returns HWLAB DEV edge JSON", "http://74.48.78.17:16667/health/live returns HWLAB cloud-api JSON with DB live readiness", "M3 hardware loop proves box-simu-1 DO1 -> box-simu-2 DI1 via patch-panel", "M4 agent runtime/evidence path is only attempted after DB live and M3 readiness are not blocked", "Keep the run DEV-only and avoid PROD, heavy e2e, secrets, restarts, or UniDesk substitution" ], "commands": [ "curl -fsS --max-time 8 http://74.48.78.17:16666/", "curl -fsS --max-time 8 http://74.48.78.17:16667/health/live", "curl -fsS --max-time 8 http://74.48.78.17:16667/health", "HWLAB_DEV_BOX_SIMU_1_URL=http://10.42.0.200:7201 HWLAB_DEV_BOX_SIMU_2_URL=http://10.42.0.208:7201 HWLAB_DEV_GATEWAY_SIMU_1_URL=http://10.42.0.209:7101 HWLAB_DEV_GATEWAY_SIMU_2_URL=http://10.42.0.204:7101 HWLAB_DEV_PATCH_PANEL_URL=http://10.42.0.205:7301 node scripts/dev-m3-hardware-loop-smoke.mjs --live --confirm-dev --confirmed-non-production", "node scripts/dev-m4-agent-loop-smoke.mjs --live --confirm-dev --confirmed-non-production" ], "evidence": [ "http://74.48.78.17:16666/ -> HTTP 200 text/html, title=HWLAB DEV MVP Gate", "http://74.48.78.17:16667/health -> HTTP 200 serviceId=hwlab-edge-proxy status=ok commit=cb35ada6860653b27269b0a57991184118cbf4b1", "http://74.48.78.17:16667/health/live -> HTTP 200 serviceId=hwlab-cloud-api status=degraded db.ready=false db.connected=false db.connectionChecked=false", "dev-edge-health active report -> blocked by DB live readiness, while public 16667 TCP/HTTP and frp control/tunnel health are reachable", "dev-m3-hardware-loop active report -> blocked, classification=hardware loop, summary=patch-panel active DO1 -> DI1 connection missing", "dev-m4-agent-loop active report -> blocked, classification=DB live, summary=cloud-api /health/live reports DB degraded; connected=false; ready=false" ], "summary": "Public DEV route/frp is reachable on 16666/16667, but live MVP remains blocked by DB live readiness and the M3 hardware loop topology; no historical 6667 failure is counted as active evidence." }, "blockers": [ { "type": "runtime_blocker", "scope": "db-live", "status": "open", "classification": "DB live", "summary": "cloud-api /health/live reports DB degraded; db.ready=false, db.connected=false, and live DB evidence is not established." }, { "type": "runtime_blocker", "scope": "m3-hardware-loop-runtime", "status": "open", "classification": "hardware loop", "summary": "Live M3 smoke reached DEV simulators, but patch-panel active DO1 -> DI1 connection is missing." } ], "milestones": [ { "id": "M0", "status": "pass", "commands": [ "node scripts/validate-contract.mjs", "node scripts/validate-m0-contract.mjs", "node scripts/validate-artifact-catalog.mjs", "node scripts/validate-runtime-boundary.mjs", "node scripts/validate-schema-drift-map.mjs", "node scripts/validate-evidence-chain.mjs" ], "evidence": [ "validated 15 JSON files and 13 service ids", "validated M0 contract examples: 7 JSON files, 13 service ids", "validated 13 DEV artifact catalog services at 24eb3bf", "validated HWLAB runtime boundary guard for 13 services; forbidden substitutes: unidesk-backend, provider-gateway, microservice-proxy", "validated schema drift map with 59 aligned fields and 12 gaps", "validated 2 evidence chain fixtures and 2 evidence records" ], "summary": "Frozen contract, artifact, boundary, drift, and evidence fixtures are parseable and aligned to the DEV boundary." }, { "id": "M1", "status": "pass", "commands": [ "node scripts/m1-contract-smoke.mjs" ], "evidence": [ "[m1-smoke] ok cloud-api health/live/rpc skeleton", "[m1-smoke] ok patch-panel/sim status and route skeleton", "[m1-smoke] ok CLI dry-run fixture parse", "[m1-smoke] passed" ], "summary": "The local M1 contract smoke passes." }, { "id": "M2", "status": "pass", "commands": [ "node scripts/m2-dev-deploy-smoke.mjs --dry-run" ], "evidence": [ "[m2-smoke] validated 11 service contracts", "[m2-smoke] mode=dry-run endpoint=http://74.48.78.17:16667", "[m2-smoke] no real DEV/PROD request was made" ], "summary": "The deploy smoke remains fixture-only and validates the frozen route phases and artifact metadata." }, { "id": "M3", "status": "blocked", "commands": [ "node scripts/m3-hardware-loop-smoke.mjs", "node scripts/dev-m3-hardware-loop-smoke.mjs --live --confirm-dev --confirmed-non-production" ], "evidence": [ "Local M3 hardware loop smoke passed", "Live DEV M3 smoke reached 16667 ingress and direct simulator/patch-panel Pod URLs", "Live DEV M3 blocked: patch-panel active DO1 -> DI1 connection missing" ], "summary": "Local M3 remains green, but active DEV-LIVE M3 is blocked by hardware loop topology.", "blocker": "hardware loop" }, { "id": "M4", "status": "blocked", "commands": [ "node scripts/m4-agent-loop-smoke.mjs", "node scripts/dev-m4-agent-loop-smoke.mjs --live --confirm-dev --confirmed-non-production" ], "evidence": [ "[m4-smoke] ok m4-agent-automation-loop-local-contract-smoke", "Live DEV M4 preflight blocked before agent scheduling: cloud-api /health/live DB degraded, ready=false, connected=false" ], "summary": "Local M4 remains green, but active DEV-LIVE M4 is blocked at DB live readiness before agent runtime scheduling.", "blocker": "DB live" }, { "id": "M5", "status": "blocked", "commands": [ "node tools/hwlab-cli/bin/hwlab-cli.mjs health", "node tools/hwlab-cli/bin/hwlab-cli.mjs test e2e --env dev --mvp --dry-run", "node scripts/m5-mvp-e2e-dry-run.mjs" ], "evidence": [ "hwlab-cli health -> status: ok, environment: dev, endpoint: http://74.48.78.17:16667, gateStatus: blocked", "hwlab-cli dry-run -> 9 steps, 13 artifacts, 14 health contracts, 2 hardware operations, 2 evidence records, 0 network calls", "M5 MVP E2E dry-run passed: 9 steps, 13 artifacts, 14 health contracts, 2 hardware operations, 2 evidence records, 0 network calls", "Live MVP remains blocked by DB live and M3 hardware loop active reports" ], "summary": "The M5 orchestration is green in dry-run mode, but active DEV-LIVE acceptance is blocked by DB live and hardware loop evidence.", "blocker": "DB live; hardware loop" } ], "notes": "Active #64 DEV retest report. Public 16666/16667 route is reachable; live MVP remains blocked. No PROD, secret read, runtime restart, long-running agent task, or UniDesk runtime substitution was used.", "blockedClassification": [ { "category": "DB live", "status": "blocked", "evidence": "16667/health/live serviceId=hwlab-cloud-api status=degraded db.ready=false db.connected=false" }, { "category": "agent runtime", "status": "not_run", "evidence": "M4 stopped before agent scheduling because DB live is blocked" }, { "category": "hardware loop", "status": "blocked", "evidence": "M3 stopped on missing patch-panel DO1 -> DI1 active connection" }, { "category": "evidence/audit", "status": "not_run", "evidence": "M3/M4 did not reach accepted hardware operations requiring audit/evidence closure" }, { "category": "CD apply", "status": "not_run", "evidence": "No deploy/apply command was run in this #64 retest" }, { "category": "frp", "status": "pass", "evidence": "16666 browser, 16667/health, 16667/health/live, frps 7000, and tunnel health 7402 are reachable" }, { "category": "other", "status": "not_observed", "evidence": "No additional blocker class observed in the short DEV-only retest" } ], "reportLifecycle": { "version": "v1", "state": "active", "activeEndpoint": "http://74.48.78.17:16667", "activeBrowserEndpoint": "http://74.48.78.17:16666", "deprecatedEndpoint": null, "summary": "Current MVP gate report; M3 DEV-LIVE remains blocked until the patch-panel trusted loop is proven." } }