Files
pikasTech-HWLAB/reports/dev-gate/dev-m4-agent-loop.json
T
Lyon ae30b1a2ba test: refresh M4 DEV agent loop evidence
Refs HWLAB#37, HWLAB#64, HWLAB#78.

Reviewed by commander. This keeps M4 as blocked at DB live readiness, does not promote dry-run/source evidence to DEV-LIVE, and preserves the patch-panel boundary.
2026-05-22 18:09:06 +08:00

159 lines
6.0 KiB
JSON

{
"$schema": "https://hwlab.pikastech.local/schemas/dev-gate-report.schema.json",
"$id": "https://hwlab.pikastech.local/reports/dev-gate/dev-m4-agent-loop.json",
"reportVersion": "v1",
"issue": "pikasTech/HWLAB#37",
"taskId": "dev-m4-agent-loop",
"commitId": "8e89409",
"acceptanceLevel": "dev_m4_agent_loop",
"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 DEV M4 agent-loop preflight report; it does not substitute for M3 DEV-LIVE acceptance."
},
"sourceContract": {
"status": "pass",
"documents": [
"docs/dev-acceptance-matrix.md",
"docs/dev-m4-agent-loop.md"
],
"summary": "The DEV M4 report is anchored to the frozen acceptance matrix and the M4 loop doc."
},
"validationCommands": [
"node --check scripts/validate-dev-gate-report.mjs",
"node scripts/validate-dev-gate-report.mjs",
"node --check scripts/dev-m4-agent-loop-smoke.mjs",
"node scripts/dev-m4-agent-loop-smoke.mjs --dry-run",
"node scripts/dev-m4-agent-loop-smoke.mjs --live --confirm-dev --confirmed-non-production"
],
"localSmoke": {
"status": "pass",
"commands": [
"node scripts/m4-agent-loop-smoke.mjs"
],
"evidence": [
"Local runtime skeleton smoke confirms create/start/trace/finish/cleanup coverage.",
"Workspace isolation and explicit skills commit wiring are covered by fixture assertions."
],
"summary": "Local contract smoke passes on the repo fixture."
},
"dryRun": {
"status": "pass",
"commands": [
"node scripts/dev-m4-agent-loop-smoke.mjs --dry-run"
],
"evidence": [
"hwlab-agent-mgr:session=agt_m4_agent_loop_01:created=queued:final=cleanup",
"hwlab-agent-worker:session=wkr_agt_m4_agent_loop_01:status=cleanup",
"workspace:vol_agt_m4_agent_loop_01:cleaned=true:existsAfterCleanup=false",
"hwlab-agent-skills:commit=6509a35:version=v1",
"trace:trc_agt_m4_agent_loop_01:events=5",
"evidence:evi_agt_m4_agent_loop_01:kind=report",
"cleanup:cln_agt_m4_agent_loop_01:removed=true"
],
"summary": "Local dry-run covered agent manager, worker, workspace isolation, skills commit, trace, evidence, and cleanup without live DEV mutation."
},
"componentEvidence": {
"agentManagerWorker": {
"level": "DRY-RUN",
"status": "pass",
"services": [
"hwlab-agent-mgr",
"hwlab-agent-worker"
],
"summary": "Manager created a scoped local session and worker completed the bounded dry-run task."
},
"workspaceIsolation": {
"level": "DRY-RUN",
"status": "pass",
"evidence": [
"primary=prj_m4_agent_loop/agt_m4_agent_loop_01",
"isolation=prj_m4_agent_loop_alt/agt_m4_agent_loop_02"
],
"summary": "Workspace identity is per agent session and fixture isolation remains source/local evidence only."
},
"skillsCommit": {
"level": "DRY-RUN",
"status": "pass",
"serviceId": "hwlab-agent-skills",
"commitId": "6509a35",
"version": "v1",
"summary": "Agent skills are accepted only with explicit commitId and version wiring."
},
"traceEvidenceCleanup": {
"level": "DRY-RUN",
"status": "pass",
"summary": "Dry-run produced trace/evidence records and removed the temporary worker workspace."
},
"dbLive": {
"level": "BLOCKED",
"status": "blocked",
"summary": "Live scheduling is stopped at cloud-api DB readiness; DB health is classified separately from local dry-run evidence."
},
"m3HardwareLoopDependency": {
"level": "BLOCKED",
"status": "not_run",
"requiredPath": "DO1 -> hwlab-patch-panel -> DI1",
"summary": "M4 can only support M3 through cloud-api/hardware API and the patch-panel trusted path; no direct box/gateway path is used."
}
},
"dependencyState": {
"dbLive": {
"status": "blocked",
"summary": "cloud-api /health/live reports DB degraded; connected=false; ready=false."
},
"m3HardwareLoop": {
"status": "not_run",
"requiredEvidence": "Traceable DO1 -> hwlab-patch-panel -> DI1 operation with auditId and evidenceId.",
"summary": "M3 hardware loop was not reached while an earlier M4 precondition remained blocked."
},
"hardwareDispatchBoundary": {
"status": "pass",
"allowedPath": "cloud-api /rpc hardware.operation.request -> hwlab-patch-panel trusted route",
"forbiddenPaths": [
"direct hwlab-box-simu access",
"direct hwlab-gateway-simu access",
"agent-side fixture promotion to DEV-LIVE"
]
}
},
"devPreconditions": {
"status": "blocked",
"classification": "DB live",
"requirements": [
"DEV route remains frozen at http://74.48.78.17:16667",
"No secret reads, real deployment, or long-running agent task is attempted",
"Agent manager, worker, and skills are reachable only through the cloud API boundary",
"M4 hardware assistance must go through cloud-api/hardware API and patch-panel; direct box/gateway access is forbidden"
],
"summary": "Blocked at DB live readiness before scheduling a DEV agent task."
},
"blockers": [
{
"type": "runtime_blocker",
"scope": "db-live",
"status": "open",
"summary": "cloud-api /health/live reports DB degraded; connected=false; ready=false.",
"classification": "DB live"
}
],
"livePreflight": {
"status": "blocked",
"classification": "DB live",
"commands": [
"node scripts/dev-m4-agent-loop-smoke.mjs --live --confirm-dev --confirmed-non-production"
],
"evidence": [
"health:hwlab-edge-proxy:dev:ok",
"live:hwlab-cloud-api:degraded:db-blocked"
],
"summary": "Blocked at DB live readiness before scheduling a DEV agent task."
},
"notes": "DEV M4 agent loop report. SOURCE/LOCAL/DRY-RUN evidence is not DEV-LIVE, and no secret material is read."
}