chore: record DEV CD rollout for 48dfbf9

Records D601 DEV CD rollout evidence, published artifacts, live deploy reports, and residual Code Agent M3 blocker for target 48dfbf9.
This commit is contained in:
Lyon
2026-05-24 08:33:18 +08:00
committed by GitHub
7 changed files with 2121 additions and 1674 deletions
+110 -110
View File
@@ -5,13 +5,13 @@
"profile": "dev",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"commitId": "3df89fe",
"artifactState": "contract-skeleton",
"commitId": "48dfbf9",
"artifactState": "published",
"publish": {
"ciPublished": false,
"registryVerified": false,
"provenance": "not_available_until_publish",
"note": "Artifact identity was refreshed to this source commit, but no publish report proved registry digests."
"ciPublished": true,
"registryVerified": true,
"provenance": "reports/dev-gate/dev-artifacts.json",
"note": "Digest fields were copied from a successful DEV artifact publish report for this source commit."
},
"healthContract": {
"method": "GET",
@@ -66,11 +66,11 @@
"services": [
{
"serviceId": "hwlab-cloud-api",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:15a9dec43d0ad6b750ea4eda860c1c157c6502441732c1de20ef3b92696d0dfc",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -78,17 +78,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-cloud-web",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -96,17 +96,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-agent-mgr",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:bdb3dffd0a82e7cf1c48de3d130cbd6e733c242dd5667be4ba098a46888a13d6",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -114,17 +114,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-agent-worker",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:902590cd05c9af8dcf347b74c05e1fb9fb399eefa54d91ff105dd2fa276ae785",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -132,17 +132,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-gateway",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:015916d05ccbd8448e3f32d754335f7c221aaaadf5ae2b63007d7698f7583d04",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -150,17 +150,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-gateway-simu",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:74793df73dfeb27fc45b1085ac1c29839f6545ccfea79d033dfddc89d6f3a553",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -168,17 +168,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-box-simu",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:89d80def71130db7e0f4d9a0ec1dadfcb5d8963bd1f13b71c67eab0a301efb94",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -186,17 +186,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-patch-panel",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:160a47204b2263e750cbf412f0d266047eeb6baf8b2be839e5d1987fc6082fea",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -204,17 +204,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-router",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-router:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:0ab02340575ec7e910427f8ea06db2b8f8095922e207ae5e11a64c065fa26df7",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -222,17 +222,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-tunnel-client",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:75af6caa96ec03d3f4130e512052f666d75b1e5470fa67f8f66f355e1068e43f",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -240,17 +240,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-edge-proxy",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:f8b954ad76ab0162e3df0edc26c115f6c697f8f5c4e9d93e24112285b57b9b05",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -258,17 +258,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-cli",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:ae6564b6b0f8ceaf35ab5d2e7f7c04ca8f5e51aa7daedb01e4a6aa31e4bcc16b",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -276,17 +276,17 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
},
{
"serviceId": "hwlab-agent-skills",
"commitId": "3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:3df89fe",
"imageTag": "3df89fe",
"digest": "not_published",
"publishState": "skeleton-only",
"commitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:6fc9b4fda9bea32607774a24d72ecc7999007d910d17e11764abce2bdc35c03d",
"publishState": "published",
"profile": "dev",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
@@ -294,9 +294,9 @@
"publishEnabled": true,
"artifactRequired": true,
"artifactScope": "required",
"notPublishedReason": "publish_not_run",
"buildCreatedAt": null,
"buildSource": null
"notPublishedReason": null,
"buildCreatedAt": "2026-05-24T00:07:33.363Z",
"buildSource": "pikasTech/HWLAB@48dfbf9e7f85f2dd8e17505582e811bdacfd60d5"
}
],
"serviceInventory": {
+21 -21
View File
@@ -1,7 +1,7 @@
{
"manifestVersion": "v1",
"environment": "dev",
"commitId": "3df89fe",
"commitId": "48dfbf9",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"health": {
@@ -181,7 +181,7 @@
"services": [
{
"serviceId": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -189,9 +189,9 @@
"env": {
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_PUBLIC_ENDPOINT": "http://74.48.78.17:16667",
"HWLAB_COMMIT_ID": "3df89fe",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3df89fe",
"HWLAB_IMAGE_TAG": "3df89fe",
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9",
"HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN": "unidesk-backend,provider-gateway,microservice-proxy",
"HWLAB_CLOUD_DB_URL": "secretRef:hwlab-cloud-api-dev-db/database-url",
"HWLAB_CLOUD_DB_SSL_MODE": "disable",
@@ -220,7 +220,7 @@
},
{
"serviceId": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -229,14 +229,14 @@
"HWLAB_ENVIRONMENT": "dev",
"HWLAB_API_BASE_URL": "http://hwlab-cloud-api.hwlab-dev.svc.cluster.local:6667",
"HWLAB_CLOUD_WEB_PROXY_TIMEOUT_MS": "180000",
"HWLAB_COMMIT_ID": "3df89fe",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"HWLAB_IMAGE_TAG": "3df89fe"
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
}
},
{
"serviceId": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -248,7 +248,7 @@
},
{
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -260,7 +260,7 @@
},
{
"serviceId": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -272,7 +272,7 @@
},
{
"serviceId": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -292,7 +292,7 @@
},
{
"serviceId": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -311,7 +311,7 @@
},
{
"serviceId": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -332,7 +332,7 @@
},
{
"serviceId": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -344,7 +344,7 @@
},
{
"serviceId": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -358,7 +358,7 @@
},
{
"serviceId": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -371,7 +371,7 @@
},
{
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
@@ -382,13 +382,13 @@
},
{
"serviceId": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"namespace": "hwlab-dev",
"healthPath": "/health/live",
"profile": "dev",
"replicas": 1,
"env": {
"HWLAB_SKILLS_COMMIT_ID": "3df89fe"
"HWLAB_SKILLS_COMMIT_ID": "48dfbf9"
}
}
],
+20 -20
View File
@@ -31,7 +31,7 @@
"containers": [
{
"name": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"ports": [
{
"name": "http",
@@ -49,15 +49,15 @@
},
{
"name": "HWLAB_COMMIT_ID",
"value": "3df89fe"
"value": "48dfbf9"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:3df89fe"
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "3df89fe"
"value": "48dfbf9"
},
{
"name": "HWLAB_RUNTIME_SUBSTITUTE_FORBIDDEN",
@@ -235,7 +235,7 @@
"containers": [
{
"name": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"ports": [
{
"name": "http",
@@ -253,15 +253,15 @@
},
{
"name": "HWLAB_COMMIT_ID",
"value": "3df89fe"
"value": "48dfbf9"
},
{
"name": "HWLAB_IMAGE",
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe"
"value": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9"
},
{
"name": "HWLAB_IMAGE_TAG",
"value": "3df89fe"
"value": "48dfbf9"
}
],
"readinessProbe": {
@@ -311,7 +311,7 @@
"containers": [
{
"name": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"ports": [
{
"name": "http",
@@ -367,7 +367,7 @@
"containers": [
{
"name": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"env": [
{
"name": "HWLAB_AGENT_SESSION_MODE",
@@ -410,7 +410,7 @@
"containers": [
{
"name": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"ports": [
{
"name": "http",
@@ -471,7 +471,7 @@
"containers": [
{
"name": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"ports": [
{
"name": "http",
@@ -544,7 +544,7 @@
"containers": [
{
"name": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"ports": [
{
"name": "http",
@@ -612,7 +612,7 @@
"containers": [
{
"name": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"ports": [
{
"name": "http",
@@ -676,7 +676,7 @@
"containers": [
{
"name": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"ports": [
{
"name": "http",
@@ -736,7 +736,7 @@
"containers": [
{
"name": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"ports": [
{
"name": "http",
@@ -808,7 +808,7 @@
"containers": [
{
"name": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"ports": [
{
"name": "http",
@@ -873,7 +873,7 @@
"containers": [
{
"name": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"env": [
{
"name": "HWLAB_CLI_ENDPOINT",
@@ -915,7 +915,7 @@
"containers": [
{
"name": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:3df89fe",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"ports": [
{
"name": "http",
@@ -925,7 +925,7 @@
"env": [
{
"name": "HWLAB_SKILLS_COMMIT_ID",
"value": "3df89fe"
"value": "48dfbf9"
}
],
"readinessProbe": {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+181 -187
View File
@@ -16,7 +16,7 @@
"pikasTech/HWLAB#30"
],
"taskId": "dev-deploy-apply",
"commitId": "e6d4bd5",
"commitId": "48dfbf9",
"acceptanceLevel": "dev_deploy_apply",
"devOnly": true,
"prodDisabled": true,
@@ -29,7 +29,7 @@
"summary": "Current DEV deploy apply report; active public API/health endpoint is 16667 and browser endpoint is 16666."
},
"status": "pass",
"generatedAt": "2026-05-23T21:48:14.125Z",
"generatedAt": "2026-05-24T00:18:29.328Z",
"namespace": "hwlab-dev",
"endpoint": "http://74.48.78.17:16667",
"sourceContract": {
@@ -68,7 +68,7 @@
],
"evidence": [
"artifact services checked: 13",
"expected artifact commit: e6d4bd5",
"expected artifact commit: 48dfbf9",
"namespace: hwlab-dev",
"workloads planned: 13",
"kubectl executor: /usr/local/bin/kubectl",
@@ -76,7 +76,7 @@
"kubectl kubeconfig: /etc/rancher/k3s/k3s.yaml",
"live health: pass",
"code agent provider desired-state: pass",
"code agent provider live env before apply: blocked",
"code agent provider live env before apply: pass",
"template job replacements: 2",
"legacy simulator deployment cleanups: 0"
],
@@ -132,12 +132,12 @@
"prodDisabled": true
},
"artifactPlan": {
"expectedArtifactCommit": "e6d4bd5",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"sourceCommitId": "e6d4bd5",
"expectedArtifactCommit": "48dfbf9",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"sourceCommitId": "48dfbf9",
"serviceCommitIds": [
"e6d4bd5"
"48dfbf9"
],
"matchesSourceCommit": true,
"published": true,
@@ -160,7 +160,7 @@
{
"name": "hwlab-cloud-api",
"serviceId": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9"
}
]
},
@@ -176,7 +176,7 @@
{
"name": "hwlab-cloud-web",
"serviceId": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9"
}
]
},
@@ -192,7 +192,7 @@
{
"name": "hwlab-agent-mgr",
"serviceId": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9"
}
]
},
@@ -208,7 +208,7 @@
{
"name": "hwlab-agent-worker",
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9"
}
]
},
@@ -224,7 +224,7 @@
{
"name": "hwlab-gateway",
"serviceId": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9"
}
]
},
@@ -240,7 +240,7 @@
{
"name": "hwlab-gateway-simu",
"serviceId": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9"
}
]
},
@@ -256,7 +256,7 @@
{
"name": "hwlab-box-simu",
"serviceId": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9"
}
]
},
@@ -272,7 +272,7 @@
{
"name": "hwlab-patch-panel",
"serviceId": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9"
}
]
},
@@ -288,7 +288,7 @@
{
"name": "hwlab-router",
"serviceId": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9"
}
]
},
@@ -304,7 +304,7 @@
{
"name": "hwlab-tunnel-client",
"serviceId": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9"
}
]
},
@@ -320,7 +320,7 @@
{
"name": "hwlab-edge-proxy",
"serviceId": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9"
}
]
},
@@ -336,7 +336,7 @@
{
"name": "hwlab-cli",
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9"
}
]
},
@@ -352,7 +352,7 @@
{
"name": "hwlab-agent-skills",
"serviceId": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9"
}
]
}
@@ -608,20 +608,20 @@
"desiredSuspended": true,
"liveExists": true,
"liveSuspended": true,
"oldImage": "127.0.0.1:5000/hwlab/hwlab-agent-worker:b02ac5b",
"newImage": "127.0.0.1:5000/hwlab/hwlab-agent-worker:e6d4bd5",
"oldImage": "127.0.0.1:5000/hwlab/hwlab-agent-worker:3df89fe",
"newImage": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"oldImages": [
{
"name": "hwlab-agent-worker",
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:b02ac5b"
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:3df89fe"
}
],
"newImages": [
{
"name": "hwlab-agent-worker",
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9"
}
],
"replace": true,
@@ -638,20 +638,20 @@
"desiredSuspended": true,
"liveExists": true,
"liveSuspended": true,
"oldImage": "127.0.0.1:5000/hwlab/hwlab-cli:b02ac5b",
"newImage": "127.0.0.1:5000/hwlab/hwlab-cli:e6d4bd5",
"oldImage": "127.0.0.1:5000/hwlab/hwlab-cli:3df89fe",
"newImage": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"oldImages": [
{
"name": "hwlab-cli",
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:b02ac5b"
"image": "127.0.0.1:5000/hwlab/hwlab-cli:3df89fe"
}
],
"newImages": [
{
"name": "hwlab-cli",
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9"
}
],
"replace": true,
@@ -691,13 +691,13 @@
"desiredReplacementKind": "StatefulSet",
"liveExists": false,
"oldImage": null,
"newImage": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:e6d4bd5",
"newImage": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"oldImages": [],
"newImages": [
{
"name": "hwlab-gateway-simu",
"serviceId": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9"
}
],
"cleanup": false,
@@ -713,13 +713,13 @@
"desiredReplacementKind": "StatefulSet",
"liveExists": false,
"oldImage": null,
"newImage": "127.0.0.1:5000/hwlab/hwlab-box-simu:e6d4bd5",
"newImage": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"oldImages": [],
"newImages": [
{
"name": "hwlab-box-simu",
"serviceId": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:e6d4bd5"
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9"
}
],
"cleanup": false,
@@ -732,19 +732,19 @@
"namespace": "hwlab-dev",
"status": "observed",
"observationPhase": "after_apply",
"sourceCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"imageTag": "e6d4bd5",
"digest": "sha256:f43ac97da69212e3ff74cfed36a04d65f0cd9cc7b8cb48f0eaf6f1f19d7dd6da",
"sourceCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"repositoryDigest": null,
"publishState": "published",
"rolloutRevision": "41",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"rolloutRevision": "44",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageMatchesDesired": true,
"expectedRuntimeEnv": {
"HWLAB_COMMIT_ID": "e6d4bd5",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"HWLAB_IMAGE_TAG": "e6d4bd5"
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
},
"liveRuntimeEnv": {
"status": "match",
@@ -752,20 +752,20 @@
"fields": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
}
],
@@ -783,19 +783,19 @@
"namespace": "hwlab-dev",
"status": "observed",
"observationPhase": "before_apply",
"sourceCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"imageTag": "e6d4bd5",
"digest": "sha256:f43ac97da69212e3ff74cfed36a04d65f0cd9cc7b8cb48f0eaf6f1f19d7dd6da",
"sourceCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"repositoryDigest": null,
"publishState": "published",
"rolloutRevision": "40",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:b02ac5b",
"rolloutRevision": "43",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"imageMatchesDesired": false,
"expectedRuntimeEnv": {
"HWLAB_COMMIT_ID": "e6d4bd5",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"HWLAB_IMAGE_TAG": "e6d4bd5"
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
},
"liveRuntimeEnv": {
"status": "drift",
@@ -803,40 +803,40 @@
"fields": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:b02ac5b",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
}
],
"drift": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:b02ac5b",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
}
]
@@ -845,20 +845,20 @@
"runtimeEnvDrift": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:b02ac5b",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:3df89fe",
"status": "drift"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "b02ac5b",
"expected": "48dfbf9",
"actual": "3df89fe",
"status": "drift"
}
],
@@ -872,19 +872,19 @@
"namespace": "hwlab-dev",
"status": "observed",
"observationPhase": "after_apply",
"sourceCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"imageTag": "e6d4bd5",
"digest": "sha256:f43ac97da69212e3ff74cfed36a04d65f0cd9cc7b8cb48f0eaf6f1f19d7dd6da",
"sourceCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageTag": "48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"repositoryDigest": null,
"publishState": "published",
"rolloutRevision": "41",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"rolloutRevision": "44",
"liveImage": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"imageMatchesDesired": true,
"expectedRuntimeEnv": {
"HWLAB_COMMIT_ID": "e6d4bd5",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"HWLAB_IMAGE_TAG": "e6d4bd5"
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
},
"liveRuntimeEnv": {
"status": "match",
@@ -892,20 +892,20 @@
"fields": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
}
],
@@ -992,7 +992,7 @@
"phase": "before_apply",
"namespace": "hwlab-dev",
"serviceId": "hwlab-cloud-api",
"status": "blocked",
"status": "pass",
"readCommand": "KUBECONFIG=/etc/rancher/k3s/k3s.yaml kubectl -n hwlab-dev get deployment hwlab-cloud-api -o json",
"kubeconfig": "/etc/rancher/k3s/k3s.yaml",
"expectedSecretRef": "hwlab-code-agent-provider/openai-api-key",
@@ -1006,7 +1006,7 @@
"runtimeProvider": "openai-responses",
"backend": "hwlab-cloud-api/codex-mcp-stdio",
"model": "gpt-5.5",
"ready": false,
"ready": true,
"requiredEnv": [
{
"name": "HWLAB_CODE_AGENT_PROVIDER",
@@ -1034,13 +1034,7 @@
}
],
"missingEnv": [],
"mismatchedEnv": [
{
"name": "HWLAB_CODE_AGENT_PROVIDER",
"expected": "codex-stdio",
"redacted": false
}
],
"mismatchedEnv": [],
"secretRef": {
"env": "OPENAI_API_KEY",
"secretName": "hwlab-code-agent-provider",
@@ -1187,106 +1181,106 @@
"artifactEvidence": [
{
"serviceId": "hwlab-cloud-api",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:e6d4bd5",
"digest": "sha256:8a0677290ce3626d3589d1d22a943b49290e74451d75263cdbda3044a6ba105d",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"digest": "sha256:15a9dec43d0ad6b750ea4eda860c1c157c6502441732c1de20ef3b92696d0dfc",
"publishState": "published"
},
{
"serviceId": "hwlab-cloud-web",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"digest": "sha256:f43ac97da69212e3ff74cfed36a04d65f0cd9cc7b8cb48f0eaf6f1f19d7dd6da",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"digest": "sha256:fc1841a6e3e8d427d23b5a0187abbe9d73208e3ad2c638e31b9512aaf075699f",
"publishState": "published"
},
{
"serviceId": "hwlab-agent-mgr",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:e6d4bd5",
"digest": "sha256:f37e9b4dd6262ff4c30826fae1a0e01b184d0e57812c7876de73566263ff0c35",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"digest": "sha256:bdb3dffd0a82e7cf1c48de3d130cbd6e733c242dd5667be4ba098a46888a13d6",
"publishState": "published"
},
{
"serviceId": "hwlab-agent-worker",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:e6d4bd5",
"digest": "sha256:afdc241c799fe53561b60a37199c73cfb612ea0381ecfba82e66eb08566a8336",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"digest": "sha256:902590cd05c9af8dcf347b74c05e1fb9fb399eefa54d91ff105dd2fa276ae785",
"publishState": "published"
},
{
"serviceId": "hwlab-gateway",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:e6d4bd5",
"digest": "sha256:27303c093330bddf4c1eb8e3791dce6dbbe97aab28ff17c1faf761b05333cce0",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"digest": "sha256:015916d05ccbd8448e3f32d754335f7c221aaaadf5ae2b63007d7698f7583d04",
"publishState": "published"
},
{
"serviceId": "hwlab-gateway-simu",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:e6d4bd5",
"digest": "sha256:38c0372ec72e8f17b26f2fcf83d35718023a81c48529e459d83e36f8cc56ec3a",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"digest": "sha256:74793df73dfeb27fc45b1085ac1c29839f6545ccfea79d033dfddc89d6f3a553",
"publishState": "published"
},
{
"serviceId": "hwlab-box-simu",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:e6d4bd5",
"digest": "sha256:d551c22242fff6016f15672c4b8b06dbfc85da2c00ecfdd4e40486668b58a56f",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"digest": "sha256:89d80def71130db7e0f4d9a0ec1dadfcb5d8963bd1f13b71c67eab0a301efb94",
"publishState": "published"
},
{
"serviceId": "hwlab-patch-panel",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:e6d4bd5",
"digest": "sha256:6c7f3600a71131c11b994a625fd6ced65ac3bb7f109f3c7f941513cbd1d2def5",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"digest": "sha256:160a47204b2263e750cbf412f0d266047eeb6baf8b2be839e5d1987fc6082fea",
"publishState": "published"
},
{
"serviceId": "hwlab-router",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-router:e6d4bd5",
"digest": "sha256:8d9084f3d23e44d3ffe628e9d100ebbad260c857d06b1fbb5791ecd11bfc4d9f",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"digest": "sha256:0ab02340575ec7e910427f8ea06db2b8f8095922e207ae5e11a64c065fa26df7",
"publishState": "published"
},
{
"serviceId": "hwlab-tunnel-client",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:e6d4bd5",
"digest": "sha256:d6dff1383912ccfed1b1b91dc5ae8323e345f42f57145d7bda788e9941a4ca5a",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"digest": "sha256:75af6caa96ec03d3f4130e512052f666d75b1e5470fa67f8f66f355e1068e43f",
"publishState": "published"
},
{
"serviceId": "hwlab-edge-proxy",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:e6d4bd5",
"digest": "sha256:6ce280c0fd17218dd5719d1118b5e72fd0c4107dc33951e09b35c374f7affacd",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"digest": "sha256:f8b954ad76ab0162e3df0edc26c115f6c697f8f5c4e9d93e24112285b57b9b05",
"publishState": "published"
},
{
"serviceId": "hwlab-cli",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:e6d4bd5",
"digest": "sha256:09a015e727738cd188853af557ecd8ea4adfa8a2250692e7442549e9c80eae1f",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"digest": "sha256:ae6564b6b0f8ceaf35ab5d2e7f7c04ca8f5e51aa7daedb01e4a6aa31e4bcc16b",
"publishState": "published"
},
{
"serviceId": "hwlab-agent-skills",
"deployCommitId": "e6d4bd5",
"catalogCommitId": "e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:e6d4bd5",
"digest": "sha256:45602b9d09ef22095ab75bd95e2f310626bce61bc4e39a7205009fe9620c2d4f",
"deployCommitId": "48dfbf9",
"catalogCommitId": "48dfbf9",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"digest": "sha256:6fc9b4fda9bea32607774a24d72ecc7999007d910d17e11764abce2bdc35c03d",
"publishState": "published"
}
],
@@ -1443,79 +1437,79 @@
"images": [
{
"serviceId": "hwlab-cloud-api",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-api:48dfbf9",
"kind": "Deployment",
"name": "hwlab-cloud-api"
},
{
"serviceId": "hwlab-cloud-web",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"kind": "Deployment",
"name": "hwlab-cloud-web"
},
{
"serviceId": "hwlab-agent-mgr",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-mgr:48dfbf9",
"kind": "Deployment",
"name": "hwlab-agent-mgr"
},
{
"serviceId": "hwlab-agent-worker",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-worker:48dfbf9",
"kind": "Job",
"name": "hwlab-agent-worker-template"
},
{
"serviceId": "hwlab-gateway",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway:48dfbf9",
"kind": "Deployment",
"name": "hwlab-gateway"
},
{
"serviceId": "hwlab-gateway-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-gateway-simu:48dfbf9",
"kind": "StatefulSet",
"name": "hwlab-gateway-simu"
},
{
"serviceId": "hwlab-box-simu",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-box-simu:48dfbf9",
"kind": "StatefulSet",
"name": "hwlab-box-simu"
},
{
"serviceId": "hwlab-patch-panel",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-patch-panel:48dfbf9",
"kind": "Deployment",
"name": "hwlab-patch-panel"
},
{
"serviceId": "hwlab-router",
"image": "127.0.0.1:5000/hwlab/hwlab-router:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-router:48dfbf9",
"kind": "Deployment",
"name": "hwlab-router"
},
{
"serviceId": "hwlab-tunnel-client",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-tunnel-client:48dfbf9",
"kind": "Deployment",
"name": "hwlab-tunnel-client"
},
{
"serviceId": "hwlab-edge-proxy",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-edge-proxy:48dfbf9",
"kind": "Deployment",
"name": "hwlab-edge-proxy"
},
{
"serviceId": "hwlab-cli",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-cli:48dfbf9",
"kind": "Job",
"name": "hwlab-cli-template"
},
{
"serviceId": "hwlab-agent-skills",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:e6d4bd5",
"image": "127.0.0.1:5000/hwlab/hwlab-agent-skills:48dfbf9",
"kind": "Deployment",
"name": "hwlab-agent-skills"
}
@@ -1527,29 +1521,29 @@
"name": "hwlab-cloud-web",
"container": "hwlab-cloud-web",
"expected": {
"HWLAB_COMMIT_ID": "e6d4bd5",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"HWLAB_IMAGE_TAG": "e6d4bd5"
"HWLAB_COMMIT_ID": "48dfbf9",
"HWLAB_IMAGE": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"HWLAB_IMAGE_TAG": "48dfbf9"
},
"status": "match",
"matchesDesired": true,
"fields": [
{
"name": "HWLAB_COMMIT_ID",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:e6d4bd5",
"expected": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"actual": "127.0.0.1:5000/hwlab/hwlab-cloud-web:48dfbf9",
"status": "match"
},
{
"name": "HWLAB_IMAGE_TAG",
"expected": "e6d4bd5",
"actual": "e6d4bd5",
"expected": "48dfbf9",
"actual": "48dfbf9",
"status": "match"
}
],
@@ -1568,12 +1562,12 @@
"resources": [
{
"kind": "Pod",
"name": "hwlab-agent-mgr-99d44c747-mfqzj",
"name": "hwlab-agent-mgr-6f4cc98885-6bl9w",
"phase": "Running"
},
{
"kind": "Pod",
"name": "hwlab-agent-skills-7f99b49598-lqjdd",
"name": "hwlab-agent-skills-69485c4dc4-mpgdb",
"phase": "Running"
},
{
@@ -1588,17 +1582,17 @@
},
{
"kind": "Pod",
"name": "hwlab-cloud-api-57cfcfc587-kdvg9",
"name": "hwlab-cloud-api-54cdcb57dc-xw9gb",
"phase": "Running"
},
{
"kind": "Pod",
"name": "hwlab-cloud-web-67c684947b-lkvtj",
"name": "hwlab-cloud-web-5bd7bf9c6-d67jc",
"phase": "Running"
},
{
"kind": "Pod",
"name": "hwlab-edge-proxy-85db66bcc9-mv8pv",
"name": "hwlab-edge-proxy-58984dcc7c-8bvqj",
"phase": "Running"
},
{
@@ -1618,27 +1612,27 @@
},
{
"kind": "Pod",
"name": "hwlab-patch-panel-7cd9d9d597-kwnm6",
"name": "hwlab-patch-panel-55b9c584d7-7rzqb",
"phase": "Running"
},
{
"kind": "Pod",
"name": "hwlab-router-65dc5579fb-d2r8l",
"name": "hwlab-router-76fd584bdb-t26cs",
"phase": "Running"
},
{
"kind": "Pod",
"name": "hwlab-runtime-migrate-35e3d897-kfr4m",
"name": "hwlab-runtime-migrate-5332b2f8-mlg9p",
"phase": "Succeeded"
},
{
"kind": "Pod",
"name": "hwlab-runtime-provision-35e3d897-jk2rc",
"name": "hwlab-runtime-provision-5332b2f8-qdpq7",
"phase": "Succeeded"
},
{
"kind": "Pod",
"name": "hwlab-tunnel-client-54d968477d-mf2qk",
"name": "hwlab-tunnel-client-69d7d6d6d8-pv8b9",
"phase": "Running"
},
{
@@ -1785,11 +1779,11 @@
},
{
"kind": "Job",
"name": "hwlab-runtime-migrate-35e3d897"
"name": "hwlab-runtime-migrate-5332b2f8"
},
{
"kind": "Job",
"name": "hwlab-runtime-provision-35e3d897"
"name": "hwlab-runtime-provision-5332b2f8"
}
]
},
@@ -1797,7 +1791,7 @@
"status": "pass",
"url": "http://74.48.78.17:16667/health/live",
"httpStatus": 200,
"body": "{\"serviceId\":\"hwlab-cloud-api\",\"environment\":\"dev\",\"status\":\"degraded\",\"ready\":false,\"revision\":\"b02ac5becad13aeeab0d5cb7d8f01300bccb78c2\",\"readiness\":{\"contractVersion\":\"v3\",\"ready\":false,\"status\":\"degraded\",\"blockerCodes\":[\"stdio_protocol_not_wired\"],\"blockers\":[{\"code\":\"stdio_protocol_not_wired\",\"type\":\"agent_blocker\",\"scope\":\"code-agent-long-lived-session\",\"status\":\"open\",\"sourceIssue\":\"pikasTech/HWLAB#275\",\"summary\":\"普通聊天可走 OpenAI Responses fallbackpwd/skills 走受控只读 runnerM3 IO 走 Skill CLI"
"body": "{\"serviceId\":\"hwlab-cloud-api\",\"environment\":\"dev\",\"status\":\"ok\",\"ready\":true,\"revision\":\"3df89fe15100f3ef3c2e12e1a001b5370d54eff9\",\"readiness\":{\"contractVersion\":\"v3\",\"ready\":true,\"status\":\"ok\",\"blockerCodes\":[],\"blockers\":[],\"components\":{\"db\":\"ready\",\"codeAgent\":\"ready\",\"runtime\":\"ready\",\"provider\":\"ready\",\"dbDurable\":\"ready\",\"sessionRunner\":\"codex_stdio_ready\",\"codexStdio\":\"ready\"},\"provider\":{\"status\":\"ready\",\"ready\":true,\"configured\":true,\"provider\":\"codex-stdio\",\"model\":\"gpt-5.5\",\"backend"
}
},
"blockers": [],
@@ -0,0 +1,467 @@
{
"issue": "pikasTech/HWLAB#311",
"mode": "dev-live",
"generatedAt": "2026-05-24T00:18:29.459Z",
"target": {
"environment": "dev",
"namespace": "hwlab-dev",
"prodAllowed": false,
"apiHealthUrl": "http://74.48.78.17:16667/health/live",
"apiV1Url": "http://74.48.78.17:16667/v1",
"m3Target": "api"
},
"actions": {
"healthLiveReadAttempted": true,
"v1ReadAttempted": true,
"m3MutationAttempted": true,
"m3MutationAllowed": true
},
"apiHealth": {
"check": "GET /health/live",
"httpStatus": 200,
"reachable": true,
"serviceId": "hwlab-cloud-api",
"environment": "dev",
"status": "ok",
"ready": true,
"runtime": {
"adapter": "postgres",
"durable": true,
"durableRequested": true,
"ready": true,
"status": "ready",
"blocker": null,
"liveRuntimeEvidence": true,
"requiredEvidence": "runtime_adapter_schema_migration_read_query",
"blockedLayer": null,
"gates": {
"ssl": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"auth": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"schema": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"migration": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"durability": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
}
}
},
"runtimeDurableReadiness": {
"status": "ready",
"ready": true,
"classification": "runtime_durable_ready",
"reasonCode": "runtime_durable_ready",
"reason": "runtime durable ready; adapter=postgres; queryResult=durable_readiness_ready",
"impact": "M3 durable postflight may run because runtime persistence readiness is green.",
"safeNextAction": "Continue with repo-owned DEV CD postflight; do not read or print Secret values.",
"retryable": true,
"readonly": false,
"evidence": {
"adapter": "postgres",
"durable": true,
"runtimeReady": true,
"durabilityReady": true,
"liveRuntimeEvidence": true,
"blocker": null,
"blockedLayer": null,
"queryResult": "durable_readiness_ready",
"readyQueryResult": true,
"rawStatus": "ok",
"postgresRequired": true,
"gates": {
"ssl": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"auth": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"schema": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"migration": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"durability": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
}
},
"secretMaterialRead": false
}
},
"db": {
"ready": true,
"connected": true,
"liveDbEvidence": true,
"endpointSource": "secret-url-host",
"connectionResult": "connected",
"endpointRedacted": true,
"valueRedacted": true,
"runtimeReadiness": {
"ready": true,
"status": "ready",
"blocker": null,
"queryResult": "durable_readiness_ready",
"requiredEvidence": "runtime_adapter_schema_migration_read_query"
}
},
"readiness": {
"ready": true,
"status": "ok",
"durabilityReady": true,
"durabilityBlockedLayer": null
},
"blockerCodes": [],
"m3IoControl": null,
"error": null
},
"apiV1": {
"check": "GET /v1",
"httpStatus": 200,
"reachable": true,
"serviceId": "hwlab-cloud-api",
"environment": null,
"status": "ok",
"ready": true,
"runtime": {
"adapter": "postgres",
"durable": true,
"durableRequested": true,
"ready": true,
"status": "ready",
"blocker": null,
"liveRuntimeEvidence": true,
"requiredEvidence": "runtime_adapter_schema_migration_read_query",
"blockedLayer": null,
"gates": {
"ssl": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"auth": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"schema": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"migration": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"durability": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
}
}
},
"runtimeDurableReadiness": {
"status": "ready",
"ready": true,
"classification": "runtime_durable_ready",
"reasonCode": "runtime_durable_ready",
"reason": "runtime durable ready; adapter=postgres; queryResult=durable_readiness_ready",
"impact": "M3 durable postflight may run because runtime persistence readiness is green.",
"safeNextAction": "Continue with repo-owned DEV CD postflight; do not read or print Secret values.",
"retryable": true,
"readonly": false,
"evidence": {
"adapter": "postgres",
"durable": true,
"runtimeReady": true,
"durabilityReady": true,
"liveRuntimeEvidence": true,
"blocker": null,
"blockedLayer": null,
"queryResult": "durable_readiness_ready",
"readyQueryResult": true,
"rawStatus": "ok",
"postgresRequired": true,
"gates": {
"ssl": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"auth": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"schema": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"migration": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
},
"durability": {
"checked": true,
"ready": true,
"status": "ready",
"blocker": null
}
},
"secretMaterialRead": false
}
},
"db": {
"ready": true,
"connected": true,
"liveDbEvidence": true,
"endpointSource": "secret-url-host",
"connectionResult": "connected",
"endpointRedacted": true,
"valueRedacted": true,
"runtimeReadiness": {
"ready": true,
"status": "ready",
"blocker": null,
"queryResult": "durable_readiness_ready",
"requiredEvidence": "runtime_adapter_schema_migration_read_query"
}
},
"readiness": {
"ready": true,
"status": "ok",
"durabilityReady": true,
"durabilityBlockedLayer": null
},
"blockerCodes": [],
"m3IoControl": {
"route": "/v1/m3/io",
"status": "available",
"enabled": true,
"contractVersion": "m3-io-control-v1",
"directFrontendGatewayOrBoxAccess": false,
"genericHardwareRpcExposedToFrontend": false
},
"error": null
},
"m3": {
"mode": "dev-live",
"status": "blocked",
"classification": "source_contract_failed",
"trustedGreen": false,
"result": "SOURCE/static contract failed.",
"operationCount": 4,
"persisted": true,
"persistenceContract": {
"contractVersion": "m3-do1-true-false-persisted-v1",
"requiredRoute": "res_boxsimu_1:DO1 -> hwlab-patch-panel -> res_boxsimu_2:DI1",
"requiredValues": [
true,
true,
false,
false
],
"ready": true,
"sequence": [
{
"id": "write-do1-true",
"action": "do.write",
"expectedValue": true,
"observedValue": true,
"status": "succeeded",
"idsPresent": true,
"valueMatches": true,
"evidenceGreen": true,
"persisted": true
},
{
"id": "read-di1-true",
"action": "di.read",
"expectedValue": true,
"observedValue": true,
"status": "succeeded",
"idsPresent": true,
"valueMatches": true,
"evidenceGreen": true,
"persisted": true
},
{
"id": "write-do1-false",
"action": "do.write",
"expectedValue": false,
"observedValue": false,
"status": "succeeded",
"idsPresent": true,
"valueMatches": true,
"evidenceGreen": true,
"persisted": true
},
{
"id": "read-di1-false",
"action": "di.read",
"expectedValue": false,
"observedValue": false,
"status": "succeeded",
"idsPresent": true,
"valueMatches": true,
"evidenceGreen": true,
"persisted": true
}
]
},
"operations": [
{
"id": "write-do1-true",
"action": "do.write",
"status": "succeeded",
"operationId": "op_m3_do_write_63f8e5ee-3d78-4df2-b54f-d46b0308bd2a",
"traceId": "trc_m3_io_e2e_write_do1_true_9d47c939-0464-437a-a2a5-90cff6714434",
"auditId": "aud_m3_do_write_63f8e5ee-3d78-4df2-b54f-d46b0308bd2a_succeeded",
"evidenceId": "evd_m3_do_write_63f8e5ee-3d78-4df2-b54f-d46b0308bd2a_succeeded",
"resultValue": true,
"evidenceState": {
"status": "green",
"durable": true,
"sourceKind": "DEV-LIVE",
"writeStatus": "persisted"
},
"blocker": null
},
{
"id": "read-di1-true",
"action": "di.read",
"status": "succeeded",
"operationId": "op_m3_di_read_73166d40-4572-4f6d-a96e-8e20f07a10dd",
"traceId": "trc_m3_io_e2e_read_di1_true_a81f0788-33ab-42e1-a16e-16e2c171db1b",
"auditId": "aud_m3_di_read_73166d40-4572-4f6d-a96e-8e20f07a10dd_succeeded",
"evidenceId": "evd_m3_di_read_73166d40-4572-4f6d-a96e-8e20f07a10dd_succeeded",
"resultValue": true,
"evidenceState": {
"status": "green",
"durable": true,
"sourceKind": "DEV-LIVE",
"writeStatus": "persisted"
},
"blocker": null
},
{
"id": "write-do1-false",
"action": "do.write",
"status": "succeeded",
"operationId": "op_m3_do_write_0c0af96e-09e0-4e08-ba3f-b1fdf1d4668a",
"traceId": "trc_m3_io_e2e_write_do1_false_9925768c-ca34-4b17-a9fa-344e7103ec97",
"auditId": "aud_m3_do_write_0c0af96e-09e0-4e08-ba3f-b1fdf1d4668a_succeeded",
"evidenceId": "evd_m3_do_write_0c0af96e-09e0-4e08-ba3f-b1fdf1d4668a_succeeded",
"resultValue": false,
"evidenceState": {
"status": "green",
"durable": true,
"sourceKind": "DEV-LIVE",
"writeStatus": "persisted"
},
"blocker": null
},
{
"id": "read-di1-false",
"action": "di.read",
"status": "succeeded",
"operationId": "op_m3_di_read_f656bcc9-3a3f-4aed-b59b-2d5d2edafff8",
"traceId": "trc_m3_io_e2e_read_di1_false_83b6a1c9-cd8f-402b-bee4-d4c7f3973832",
"auditId": "aud_m3_di_read_f656bcc9-3a3f-4aed-b59b-2d5d2edafff8_succeeded",
"evidenceId": "evd_m3_di_read_f656bcc9-3a3f-4aed-b59b-2d5d2edafff8_succeeded",
"resultValue": false,
"evidenceState": {
"status": "green",
"durable": true,
"sourceKind": "DEV-LIVE",
"writeStatus": "persisted"
},
"blocker": null
}
]
},
"blockers": [
{
"type": "runtime_blocker",
"scope": "m3-durable-postflight",
"status": "open",
"reason": "M3 true/false durable postflight did not produce trusted green persisted evidence.",
"impact": "M3 durable readiness cannot be accepted because trusted evidence is not green.",
"safeNextAction": "Fix the M3 control path or trusted-record persistence and rerun DEV runtime postflight.",
"retryable": true,
"summary": "M3 true/false durable postflight did not produce trusted green persisted evidence. Impact: M3 durable readiness cannot be accepted because trusted evidence is not green. Safe next action: Fix the M3 control path or trusted-record persistence and rerun DEV runtime postflight.",
"sourceIssue": "pikasTech/HWLAB#311",
"evidence": {
"classification": "source_contract_failed",
"trustedGreen": false,
"operationCount": 4
}
}
],
"safety": {
"devOnly": true,
"environment": "dev",
"prodAllowed": false,
"liveHttpReads": true,
"liveM3Writes": true,
"liveM3WritesRequireDurableRuntimeReady": true,
"readsKubernetesSecrets": false,
"writesKubernetesSecrets": false,
"secretValuesPrinted": false,
"dbUrlValueRedacted": true,
"endpointRedacted": true
},
"safetyRefusal": false,
"conclusion": {
"status": "blocked",
"summary": "DEV runtime postflight is blocked; M3 is skipped unless durable runtime readiness is proven first.",
"blockerCount": 1
}
}