Files
workinf_Blender_Wasm/my-tools/write_wbv2_local_report.py
mes123456 f3e21c6b98
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer,
web workflow engine and protocol, tooling, docs and task records.
Large generated evidence, user-testing archives, build snapshots and
imported test assets remain untracked.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-10 11:18:01 +08:00

60 lines
4.0 KiB
Python

#!/usr/bin/env python3
"""Write local performance evidence without printing source or process logs."""
import json
from wbv2_autopilot import ROOT, CONTROL, Autopilot, contained, now, read_json, sha, write_json
def main():
runner = Autopilot()
job = "SERVER-OPERATOR-HTTP-PROVIDER"
record = runner.state["jobs"][job]
if not runner.receipt_valid(record):
raise ValueError("local workflow receipt is not current")
receipt = read_json(contained(ROOT, record["receipt"]))
inventory = read_json(ROOT / "tests/golden/WBV2/dynamic-inventory.json")
steps = [{"id": check["id"], "seconds": check["durationSeconds"], "exitCode": check["exitCode"], "log": check["log"], "logSha256": check["logSha256"]} for check in receipt["checks"]]
regression_logs = [f"{CONTROL}/local-module-loading/{name}" for name in ("wbv2-module-loader-tests.log", "wbv2-module-loading-results.log", "wbv2-local-supervisor-tests.log")]
sources = ["my-tools/wbv2_autopilot.py", "my-tools/wbv2_validation.py", "my-tools/wbv2_autopilot_policy.json", "my-tools/prepare_wbv2_local_workflow.py", "my-tools/test_wbv2_local.py", "my-tools/test_wbv2_validation.py"]
report = {
"schemaVersion": 1,
"task": receipt["queueTask"],
"recordedAt": now(),
"status": "in_progress",
"workflow": receipt["workflow"],
"jobStatus": "verified",
"executionMode": "local_only",
"modelRequests": 0,
"sourceTransmissions": 0,
"steps": steps,
"validationSeconds": round(sum(step["seconds"] for step in steps), 6),
"receipt": {"path": record["receipt"], "sha256": sha(ROOT / record["receipt"])},
"artifacts": [{"path": path, "sha256": sha(ROOT / path)} for path in regression_logs + sources],
"regressions": {"supervisor": 60, "wasmLoaderUnit": 2, "chromiumModuleLoading": 1},
"sourceAccounting": {
"unitCount": inventory["summary"]["unitCount"],
"verifiedUnits": inventory["coverage"]["verifiedUnits"],
"unverifiedUnits": inventory["coverage"]["unverifiedUnits"],
"sourceTreeSha256": inventory["authority"]["sourceTreeSha256"],
"receiptBoundUnits": receipt["sourceUnits"],
"inventoryIncrement": 0,
},
"limits": [
"Recorded inventory coverage is historical; this report does not repair drift or advance the queue.",
"A successful incremental build is not a measured clean build.",
"Other module results lack executable behavioral contracts; they stay pending until a local contract is supplied.",
"No model is called to generate missing implementations or contracts.",
],
}
destination = ROOT / f"tests/golden/{receipt['queueTask']}/local-execution-efficiency-report.json"
write_json(destination, report)
lines = ["# Local Execution Efficiency", "", "Source, diagnostics and full logs remain on this machine. Model execution is disabled.", "", "Step | Seconds | Exit", "--- | ---: | ---:"]
lines.extend(f"{step['id']} | {step['seconds']:.3f} | {step['exitCode']}" for step in steps)
lines += ["", f"Independent validation: {report['validationSeconds']:.3f} seconds. Model requests: 0.", "", "The earlier 782.716-second model turn was rejected before independent validation; it is not a successful-run performance baseline.", "", f"Verified workflow receipt: {record['receipt']}", "", "Supervisor regressions: 60 passed. WASM loader unit tests: 2 passed. Chromium module loading: 1 passed.", "", "Only receipt-backed add/open/save units are bound. The unbound deletion unit was removed from the local contract claim.", "", "Inventory: " + json.dumps(report["sourceAccounting"], ensure_ascii=True), "", *report["limits"]]
destination.with_suffix(".md").write_text("\n".join(lines) + "\n", encoding="utf-8")
print(json.dumps({"report": str(destination.relative_to(ROOT)), "validationSeconds": report["validationSeconds"], "modelRequests": 0, "verifiedJob": job}))
if __name__ == "__main__":
main()