{ "smokeId": "m2-dev-deploy-smoke", "issue": "pikasTech/HWLAB#23", "environment": "dev", "endpoint": "http://74.48.78.17:16667", "frontendEndpoint": "http://74.48.78.17:16666", "legacyPublicEndpoint": { "endpoint": "http://74.48.78.17:6667", "status": "deprecated", "activeGreenEligible": false }, "defaultMode": "dry-run", "safetyGates": { "dryRunOnly": true, "realRequestsRequire": [ "explicit --live flag", "confirmed DEV endpoint", "confirmed non-production workspace", "no forbidden actions" ], "forbiddenActions": [ "real-dev-deploy", "prod-deploy", "heavyweight-e2e", "secret-read", "force-push", "unidesk-runtime-substitution" ] }, "serviceContracts": [ { "routePhase": 1, "phase": "master-edge-proxy", "serviceId": "hwlab-edge-proxy", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-edge-proxy", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:40b2218b7a1ede3d215eaf99c56caf85cd61318da4e4348122e4e2da4c072cd8", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "ok", "route": "public-dev-ingress", "forwardTarget": "frp", "artifactIdentity": "master edge proxy" }, "failureClassification": "network_blocker" }, { "routePhase": 2, "phase": "frp-tunnel", "serviceId": "hwlab-tunnel-client", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-tunnel-client", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:53bdcb1f16d8a761d836e09e9bb0fe37d3f726b85769be8658d1e2702ff3d448", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "connected", "route": "master-edge-proxy", "forwardTarget": "D601 hwlab-dev/hwlab-router", "artifactIdentity": "frp tunnel" }, "failureClassification": "network_blocker" }, { "routePhase": 3, "phase": "d601-router", "serviceId": "hwlab-router", "namespace": "hwlab-dev", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-router", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:be7e87979bbe78fc040d52d64b264bb8494f873c14b455dbf14681e2b4fd3dfb", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "live", "route": "hwlab-dev/hwlab-router", "forwardTarget": "cloud-api/web", "artifactIdentity": "D601 router" }, "failureClassification": "runtime_blocker" }, { "routePhase": 4, "phase": "cloud-surface", "serviceId": "hwlab-cloud-api", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-cloud-api", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:a147c7dbb6df1d30b0ac5e747f2f1fc42d455a55410b82578573b9b3ae2d6074", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "ok", "live": true, "route": "cloud-api/web", "db": { "fixtureOnly": true, "liveDbEvidence": false, "requiredEnv": [ { "name": "HWLAB_CLOUD_DB_URL", "present": false, "redacted": true }, { "name": "HWLAB_CLOUD_DB_SSL_MODE", "present": false, "redacted": false } ], "missingEnv": [ "HWLAB_CLOUD_DB_URL", "HWLAB_CLOUD_DB_SSL_MODE" ], "summary": "Fixture records the DB env contract shape only; it is not live DB evidence." }, "artifacts": [ { "serviceId": "hwlab-cloud-api", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-cloud-api", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:a147c7dbb6df1d30b0ac5e747f2f1fc42d455a55410b82578573b9b3ae2d6074" , "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z" }, { "serviceId": "hwlab-cloud-web", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-cloud-web", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:4a546582e6318b77530b9141dfd764c36b974442d6c7916a1294c54d0b02a14e", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z" } ] }, "failureClassification": "runtime_blocker" }, { "routePhase": 5, "phase": "agent-runtime", "serviceId": "hwlab-agent-mgr", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-agent-mgr", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:cf2dab7d0aa49ef6e77dd8e1bacebd588bf2dbd65e86a4b8c2dc23cd248c026b", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "live", "trace": "session-scoped", "cleanup": "no worker leak" }, "failureClassification": "agent_blocker" }, { "routePhase": 6, "phase": "agent-runtime", "serviceId": "hwlab-agent-worker", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-agent-worker", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:be2941f18376e8e39e0aa27857bb2db4300e861f2c759a7bc447e96e1f0e8bf1", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "scoped", "projectId": "proj_mvp-l6", "trace": "session-scoped", "cleanup": "worker session closed" }, "failureClassification": "agent_blocker" }, { "routePhase": 7, "phase": "agent-runtime", "serviceId": "hwlab-agent-skills", "commitId": "5583e4b", "image": "skills/hwlab-agent-runtime", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "not_applicable", "digestReason": "local dry-run fixture for repo-local skills bundle", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "traceable", "bundle": "repo-local skills artifact", "cleanup": "explicit commitId required" }, "failureClassification": "agent_blocker" }, { "routePhase": 8, "phase": "sim-and-patch-panel", "serviceId": "hwlab-gateway", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-gateway", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:dcf57c4a0fab873ab571c1f6314d352d38853ff2cf125356a05a06ae5cfdb444", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "live", "route": "hardware boundary", "artifactIdentity": "gateway boundary" }, "failureClassification": "runtime_blocker" }, { "routePhase": 9, "phase": "sim-and-patch-panel", "serviceId": "hwlab-gateway-simu", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-gateway-simu", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:0bc140f52733255c937d08cea4d51639c83a71df8ac7a78bb107f60401bc392e", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "live", "route": "simulator", "artifactIdentity": "gateway simulator", "observedAt": "2026-05-21T00:00:00.000Z" }, "failureClassification": "runtime_blocker" }, { "routePhase": 10, "phase": "sim-and-patch-panel", "serviceId": "hwlab-box-simu", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-box-simu", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:0506757987fb7955ec0089fd9c0d895c33eb714a940fc7b8d58153368f96e8c8", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "live", "route": "patch-panel-owned", "artifactIdentity": "box simulator" }, "failureClassification": "runtime_blocker" }, { "routePhase": 11, "phase": "sim-and-patch-panel", "serviceId": "hwlab-patch-panel", "commitId": "5583e4b", "image": "ghcr.io/pikastech/hwlab-patch-panel", "tag": "m2-dev-deploy-smoke-5583e4b", "digest": "sha256:bd3045c3235353e2437fbb11308ffe6f1ea3e52ca1e481dc80d4317a4b1600d1", "buildSource": "git+https://github.com/pikasTech/HWLAB.git#origin/main:scripts/m2-dev-deploy-smoke.mjs", "deployEnv": "dev", "healthTimestamp": "2026-05-21T00:00:00.000Z", "health": { "status": "active", "route": "patch-panel-owned", "artifactIdentity": "patch panel", "observedAt": "2026-05-21T00:00:00.000Z" }, "failureClassification": "runtime_blocker" } ], "observations": { "serviceIds": [ "hwlab-edge-proxy", "hwlab-tunnel-client", "hwlab-router", "hwlab-cloud-api", "hwlab-cloud-web", "hwlab-agent-mgr", "hwlab-agent-worker", "hwlab-agent-skills", "hwlab-gateway", "hwlab-gateway-simu", "hwlab-box-simu", "hwlab-patch-panel" ], "routePhases": [ "master-edge-proxy", "frp-tunnel", "d601-router", "cloud-surface", "agent-runtime", "sim-and-patch-panel" ], "healthTimestamp": "2026-05-21T00:00:00.000Z" } }