311 lines
10 KiB
JSON
311 lines
10 KiB
JSON
{
|
|
"$schema": "https://hwlab.pikastech.local/schemas/dev-gate-report.schema.json",
|
|
"$id": "https://hwlab.pikastech.local/reports/dev-gate/dev-cloud-workbench-live.json",
|
|
"reportVersion": "v1",
|
|
"status": "degraded",
|
|
"issue": "pikasTech/HWLAB#7",
|
|
"taskId": "dev-cloud-workbench-live",
|
|
"commitId": "unknown",
|
|
"acceptanceLevel": "dev_cloud_workbench_live",
|
|
"devOnly": true,
|
|
"prodDisabled": true,
|
|
"reportLifecycle": {
|
|
"version": "v1",
|
|
"state": "active",
|
|
"activeEndpoint": "http://74.48.78.17:16667",
|
|
"activeBrowserEndpoint": "http://74.48.78.17:16666",
|
|
"deprecatedEndpoint": null,
|
|
"summary": "Current deployed browser user journey report for the 16666 Cloud Workbench; deployed UI usable in degraded/read-only mode and does not substitute for M3/M4/M5 DEV-LIVE acceptance."
|
|
},
|
|
"task": "DC-DCSN-P0-2026-003",
|
|
"refs": [
|
|
"pikasTech/HWLAB#7",
|
|
"pikasTech/HWLAB#108",
|
|
"pikasTech/HWLAB#99",
|
|
"pikasTech/HWLAB#78",
|
|
"pikasTech/HWLAB#117",
|
|
"pikasTech/HWLAB#118",
|
|
"pikasTech/HWLAB#119",
|
|
"pikasTech/HWLAB#120",
|
|
"pikasTech/HWLAB#131",
|
|
"pikasTech/HWLAB#164"
|
|
],
|
|
"mode": "live",
|
|
"url": "http://74.48.78.17:16666/",
|
|
"generatedAt": "2026-05-22T18:11:35.955Z",
|
|
"evidenceLevel": "DEV-LIVE-BROWSER-DEGRADED",
|
|
"devLive": false,
|
|
"sourceIdentity": {
|
|
"status": "observed",
|
|
"source": "git-head",
|
|
"commitId": "ee9d60f00b1bc47c1d99b7edb8746623333fe544",
|
|
"shortCommitId": "ee9d60f00b1b",
|
|
"ref": "test/deployed-workbench-journey-evidence",
|
|
"worktreeState": "dirty",
|
|
"dirty": true,
|
|
"reportCommitId": "unknown",
|
|
"summary": "Source HEAD was observed, but the worktree was not cleanly attributable when the report was generated; top-level commitId is unknown rather than pretending to identify uncommitted source."
|
|
},
|
|
"runtimeIdentity": {
|
|
"status": "observed",
|
|
"source": "health-live",
|
|
"endpoint": "http://74.48.78.17:16667/health/live",
|
|
"serviceId": "hwlab-cloud-api",
|
|
"environment": "dev",
|
|
"healthStatus": "degraded",
|
|
"ready": false,
|
|
"commitId": "c7de474",
|
|
"commitSource": "runtime-env",
|
|
"imageTag": "c7de474",
|
|
"observedAt": "2026-05-22T18:11:24.844Z",
|
|
"runtime": {
|
|
"durable": false,
|
|
"ready": false,
|
|
"status": "degraded",
|
|
"blocker": "runtime_durable_adapter_query_blocked",
|
|
"connection": {
|
|
"queryAttempted": true,
|
|
"queryResult": "query_blocked"
|
|
}
|
|
},
|
|
"readiness": {
|
|
"ready": false,
|
|
"status": "degraded",
|
|
"durability": {
|
|
"ready": false,
|
|
"status": "blocked",
|
|
"blocker": "runtime_durable_adapter_query_blocked",
|
|
"blockedLayer": "durability_query",
|
|
"queryResult": "query_blocked"
|
|
}
|
|
},
|
|
"blockerCodes": [
|
|
"runtime_durable_adapter_query_blocked"
|
|
],
|
|
"summary": "Live runtime identity was observed through the existing read-only health endpoint and is not inferred from source git HEAD."
|
|
},
|
|
"sourceContract": {
|
|
"status": "pass",
|
|
"documents": [
|
|
"docs/cloud-web-workbench.md",
|
|
"docs/reference/cloud-workbench.md",
|
|
"docs/reference/code-agent-chat-readiness.md"
|
|
],
|
|
"summary": "The deployed browser journey is anchored to the Cloud Workbench and Code Agent readiness contracts."
|
|
},
|
|
"validationCommands": [
|
|
"node --check scripts/dev-cloud-workbench-smoke.mjs",
|
|
"node --check scripts/src/dev-cloud-workbench-smoke-lib.mjs",
|
|
"node scripts/dev-cloud-workbench-smoke.mjs --static",
|
|
"node scripts/dev-cloud-workbench-smoke.mjs --live --url http://74.48.78.17:16666/ --report reports/dev-gate/dev-cloud-workbench-live.json",
|
|
"node scripts/validate-dev-gate-report.mjs reports/dev-gate/dev-cloud-workbench-live.json",
|
|
"node scripts/validate-dev-gate-report.mjs"
|
|
],
|
|
"localSmoke": {
|
|
"status": "not_run",
|
|
"commands": [
|
|
"node scripts/dev-cloud-workbench-smoke.mjs --static"
|
|
],
|
|
"evidence": [
|
|
"Static mode verifies the source contract and same-origin Code Agent wiring only."
|
|
],
|
|
"summary": "Static workbench smoke is SOURCE-level evidence and does not prove the deployed browser journey."
|
|
},
|
|
"dryRun": {
|
|
"status": "not_applicable",
|
|
"commands": [
|
|
"node scripts/dev-cloud-workbench-smoke.mjs --static"
|
|
],
|
|
"evidence": [
|
|
"No dry-run substitute is accepted for the deployed browser journey."
|
|
],
|
|
"summary": "The journey evidence is collected from the real DEV browser endpoint, not a dry-run fixture."
|
|
},
|
|
"devPreconditions": {
|
|
"status": "degraded",
|
|
"requirements": [
|
|
"GET http://74.48.78.17:16666/ serves the Cloud Workbench HTML.",
|
|
"Browser DOM exposes the default workbench and core controls.",
|
|
"A controlled same-origin POST /v1/agent/chat returns completed UI-visible evidence or reports a blocker.",
|
|
"No hardware write API, service restart, PROD access, or secret read is performed."
|
|
],
|
|
"commands": [
|
|
"node scripts/dev-cloud-workbench-smoke.mjs --live --url http://74.48.78.17:16666/ --report reports/dev-gate/dev-cloud-workbench-live.json"
|
|
],
|
|
"summary": "Deployed UI usable in degraded/read-only mode; API health/runtime durability is degraded, so this is not full DEV-LIVE acceptance."
|
|
},
|
|
"endpoints": {
|
|
"frontend": "http://74.48.78.17:16666",
|
|
"api": "http://74.48.78.17:16667",
|
|
"edge": "http://74.48.78.17:16667"
|
|
},
|
|
"checks": [
|
|
{
|
|
"id": "live-http-html",
|
|
"status": "pass",
|
|
"summary": "Live URL serves the Cloud Workbench HTML.",
|
|
"evidence": [
|
|
"http://74.48.78.17:16666/",
|
|
"HTTP 200",
|
|
"text/html; charset=utf-8"
|
|
]
|
|
},
|
|
{
|
|
"id": "live-browser-dom",
|
|
"status": "pass",
|
|
"summary": "Browser DOM confirms the default workbench, core controls, and outer scroll lock.",
|
|
"evidence": [
|
|
"title=HWLAB 云工作台",
|
|
"bodyOverflow=hidden",
|
|
"htmlOverflow=hidden"
|
|
],
|
|
"observations": {
|
|
"title": "HWLAB 云工作台",
|
|
"bodyOverflow": "hidden",
|
|
"htmlOverflow": "hidden",
|
|
"workspaceHidden": false,
|
|
"gateHidden": true,
|
|
"helpHidden": true,
|
|
"outerScrollLocked": true,
|
|
"labelsPresent": true,
|
|
"coreControlsVisible": {
|
|
"commandInput": true,
|
|
"commandSend": true,
|
|
"agentChatStatus": true,
|
|
"conversationList": true,
|
|
"hardwareList": true,
|
|
"wiringTab": true,
|
|
"recordsTab": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "live-api-runtime-readiness",
|
|
"status": "degraded",
|
|
"summary": "Live API is reachable but degraded/read-only; runtime durability is not ready, so this cannot be full DEV-LIVE acceptance.",
|
|
"evidence": [
|
|
"api.status=degraded",
|
|
"ready=false",
|
|
"runtime.durable=false",
|
|
"runtime.ready=false",
|
|
"durability.ready=false",
|
|
"runtime_durable_adapter_query_blocked",
|
|
"blocker=runtime_durable_adapter_query_blocked"
|
|
],
|
|
"observations": {
|
|
"status": "degraded",
|
|
"healthStatus": "degraded",
|
|
"ready": false,
|
|
"runtimeDurable": false,
|
|
"runtimeReady": false,
|
|
"durabilityReady": false,
|
|
"durableBlocked": true,
|
|
"blockerCodes": [
|
|
"runtime_durable_adapter_query_blocked"
|
|
],
|
|
"evidence": [
|
|
"api.status=degraded",
|
|
"ready=false",
|
|
"runtime.durable=false",
|
|
"runtime.ready=false",
|
|
"durability.ready=false",
|
|
"runtime_durable_adapter_query_blocked",
|
|
"blocker=runtime_durable_adapter_query_blocked"
|
|
],
|
|
"summary": "Live API is reachable but degraded/read-only; runtime durability is not ready, so this cannot be full DEV-LIVE acceptance."
|
|
}
|
|
},
|
|
{
|
|
"id": "live-code-agent-browser-journey",
|
|
"status": "pass",
|
|
"summary": "Deployed browser journey opened the workbench, sent a Code Agent message, and observed a completed UI response.",
|
|
"evidence": [
|
|
"POST /v1/agent/chat HTTP 200",
|
|
"status=completed",
|
|
"provider=openai-responses",
|
|
"model=gpt-5.5",
|
|
"traceId=trc_cloud-web-workbench-1779473490624-11",
|
|
"uiStatus=已回复"
|
|
],
|
|
"observations": {
|
|
"controls": {
|
|
"appShell": true,
|
|
"workspace": true,
|
|
"commandInput": true,
|
|
"commandSend": true,
|
|
"agentChatStatus": true,
|
|
"conversationList": true,
|
|
"hardwareList": true,
|
|
"wiringTab": true,
|
|
"recordsTab": true
|
|
},
|
|
"request": {
|
|
"method": "POST",
|
|
"status": 200,
|
|
"urlPath": "/v1/agent/chat"
|
|
},
|
|
"response": {
|
|
"status": "completed",
|
|
"provider": "openai-responses",
|
|
"model": "gpt-5.5",
|
|
"backend": "hwlab-cloud-api/openai-responses",
|
|
"traceId": "trc_cloud-web-workbench-1779473490624-11",
|
|
"hasReply": true,
|
|
"error": null
|
|
},
|
|
"ui": {
|
|
"title": "HWLAB 云工作台",
|
|
"workspaceHidden": false,
|
|
"gateHidden": true,
|
|
"helpHidden": true,
|
|
"agentChatStatus": "已回复",
|
|
"inputCleared": true,
|
|
"completedMessageVisible": true,
|
|
"failedMessageVisible": false,
|
|
"messageCount": 4,
|
|
"completedMessageHasNonSensitiveMeta": true
|
|
},
|
|
"networkEvents": [
|
|
{
|
|
"method": "POST",
|
|
"status": 200,
|
|
"urlPath": "/v1/agent/chat",
|
|
"body": {
|
|
"status": "completed",
|
|
"provider": "openai-responses",
|
|
"model": "gpt-5.5",
|
|
"backend": "hwlab-cloud-api/openai-responses",
|
|
"traceId": "trc_cloud-web-workbench-1779473490624-11",
|
|
"hasReply": true,
|
|
"error": null
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"blockers": [],
|
|
"safety": {
|
|
"prodTouched": false,
|
|
"servicesRestarted": false,
|
|
"heavyE2E": false,
|
|
"hardwareWriteApis": false,
|
|
"sourceIsDevLive": false,
|
|
"liveMode": "browser-user-journey-with-code-agent-post",
|
|
"retainedApiFields": [
|
|
"status",
|
|
"provider",
|
|
"model",
|
|
"backend",
|
|
"traceId",
|
|
"hasReply",
|
|
"error.code",
|
|
"error.missingEnv"
|
|
],
|
|
"statement": "Live smoke records deployed UI usable in degraded/read-only mode only; API health/runtime durability is degraded, so this is not full DEV-LIVE acceptance and must not be used to infer M3/M4/M5 acceptance."
|
|
},
|
|
"artifacts": {
|
|
"reportPath": "/workspace/hwlab/.worktrees/deployed-workbench-journey-evidence/reports/dev-gate/dev-cloud-workbench-live.json"
|
|
}
|
|
}
|