{ "$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#143", "pikasTech/HWLAB#164", "pikasTech/HWLAB#224" ], "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 --source", "node scripts/dev-cloud-workbench-smoke.mjs --local-agent-fixture", "node scripts/dev-cloud-workbench-smoke.mjs --live --confirm-dev-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 --source", "node scripts/dev-cloud-workbench-smoke.mjs --local-agent-fixture" ], "evidence": [ "Source mode verifies the source contract and same-origin Code Agent wiring only.", "Local fixture browser mode verifies both Code Agent prompts past the old 4500ms window at SOURCE level." ], "summary": "Source and local fixture workbench smokes are SOURCE-level evidence and do not prove the deployed browser journey." }, "dryRun": { "status": "not_applicable", "commands": [ "node scripts/dev-cloud-workbench-smoke.mjs --source" ], "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.", "Two controlled same-origin POST /v1/agent/chat prompts return completed UI-visible evidence or clear backend timeout/provider/browser blockers after the configured longer bound.", "The frontend must not mark the heavy Code Agent request as a permanent failure around 4500ms.", "No hardware write API, service restart, PROD access, or secret read is performed." ], "commands": [ "node scripts/dev-cloud-workbench-smoke.mjs --live --confirm-dev-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" } }