284 lines
14 KiB
JSON
284 lines
14 KiB
JSON
{
|
|
"$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": "runtime durable adapter; skills injection; 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 and runtime durability separated",
|
|
"Runtime durable adapter proves postgres schema, migration 0001_cloud_core_skeleton, and read-query readiness before M4/M5 can promote",
|
|
"Agent manager, skills service, and worker jobs expose explicit skill commit/version before M4/M5 can promote",
|
|
"M3 hardware loop proves box-simu-1 DO1 -> box-simu-2 DI1 via patch-panel",
|
|
"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=d881a50",
|
|
"http://74.48.78.17:16667/health/live -> HTTP 200 serviceId=hwlab-cloud-api status=degraded db.ready=true db.connected=true db.liveDbEvidence=true runtime.blocker=runtime_durable_adapter_query_blocked runtime.migration=0001_cloud_core_skeleton",
|
|
"dev-edge-health active report remains older DB-live evidence and is superseded for M4/M5 blocker naming by current d881a50 M4 preflight evidence",
|
|
"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=runtime_durable_adapter_query_blocked, summary=runtime durable adapter query/migration readiness is blocked; skills commit/version injection is incomplete"
|
|
],
|
|
"summary": "Public DEV route/frp is reachable on 16666/16667, but live MVP remains blocked by runtime_durable_adapter_query_blocked, skills commit/version injection, and the M3 hardware loop topology; no DB-live-only blocker is counted as current M4/M5 evidence."
|
|
},
|
|
"blockers": [
|
|
{
|
|
"type": "runtime_blocker",
|
|
"scope": "runtime-durable-adapter",
|
|
"status": "open",
|
|
"sourceIssue": "pikasTech/HWLAB#164",
|
|
"classification": "runtime_durable_adapter_query_blocked",
|
|
"summary": "cloud-api durable runtime adapter is blocked: runtime_durable_adapter_query_blocked; migration 0001_cloud_core_skeleton is missing or not checked."
|
|
},
|
|
{
|
|
"type": "agent_blocker",
|
|
"scope": "skills-commit-version-injection",
|
|
"status": "open",
|
|
"sourceIssue": "pikasTech/HWLAB#164",
|
|
"classification": "skills injection",
|
|
"summary": "DEV skills injection is incomplete: hwlab-agent-skills exposes HWLAB_SKILLS_COMMIT_ID=d881a50 but no HWLAB_SKILLS_VERSION; worker template only exposes session mode unless commit/version are injected."
|
|
},
|
|
{
|
|
"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: runtime_durable_adapter_query_blocked; migration 0001_cloud_core_skeleton missing/not checked; skills version injection missing"
|
|
],
|
|
"summary": "Local M4 remains green, but active DEV-LIVE M4 is blocked at runtime durable adapter readiness and skills commit/version injection before agent runtime scheduling.",
|
|
"blocker": "runtime_durable_adapter_query_blocked; skills injection"
|
|
},
|
|
{
|
|
"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 runtime durable adapter, skills injection, and M3 hardware loop active reports"
|
|
],
|
|
"summary": "The M5 orchestration is green in dry-run mode, but active DEV-LIVE acceptance is blocked by runtime durable adapter, skills injection, and hardware loop evidence.",
|
|
"blocker": "runtime durable adapter; skills injection; hardware loop"
|
|
}
|
|
],
|
|
"notes": "Active #64 DEV retest report updated for current d881a50 evidence. Public 16666/16667 route and DB live evidence are reachable; live MVP remains blocked. No PROD, secret read, runtime restart, long-running agent task, or UniDesk runtime substitution was used.",
|
|
"blockedClassification": [
|
|
{
|
|
"category": "runtime durable adapter",
|
|
"status": "blocked",
|
|
"evidence": "runtime_durable_adapter_query_blocked; migration 0001_cloud_core_skeleton missing/not checked; db.liveDbEvidence=true is not durability evidence"
|
|
},
|
|
{
|
|
"category": "skills injection",
|
|
"status": "blocked",
|
|
"evidence": "hwlab-agent-skills has HWLAB_SKILLS_COMMIT_ID=d881a50 but no HWLAB_SKILLS_VERSION; agent manager health misses skillCommitId/skillVersion"
|
|
},
|
|
{
|
|
"category": "agent runtime",
|
|
"status": "not_run",
|
|
"evidence": "M4 stopped before agent scheduling because runtime durability and skills injection are 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": "DB live",
|
|
"status": "pass",
|
|
"evidence": "Current d881a50 read-only M4 preflight evidence reports db.ready=true, db.connected=true, and liveDbEvidence=true; this does not clear runtime durability"
|
|
}
|
|
],
|
|
"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."
|
|
}
|
|
}
|