Files
workinf_Blender_Wasm/my-tools/refine_wbv2_local_checks.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

45 lines
2.2 KiB
Python

#!/usr/bin/env python3
"""Refine the current local provider contract without reading production source."""
import copy
import json
from wbv2_autopilot import ROOT, read_json, write_json
def main():
destination = ROOT / "tests/golden/WBV2/autopilot/local-plans/SERVER-OPERATOR-HTTP-PROVIDER.json"
contract = read_json(destination)
result = contract["result"]
original = next((check for check in result["checks"] if check["id"] == "chromium-provider"), None)
if original is None:
print(json.dumps({"state": "already_refined", "checks": len(result["checks"])}))
return
names = {"chromium-main": "server-operator-native.spec.ts", "chromium-polling": "server-operator-polling.spec.ts", "chromium-cross-abi": "server-blend-cross-abi.spec.ts"}
timeouts = {"wasm-source-build": 1200, "web-build": 300, "client-lint": 60, "provider-transport": 60, "deployment-static": 30, "chromium-main": 180, "chromium-polling": 90, "chromium-cross-abi": 180}
checks = [check for check in result["checks"] if check is not original]
for identifier, name in names.items():
check = copy.deepcopy(original)
check["id"] = identifier
check["argv"] = [arg for arg in check["argv"] if not arg.endswith(".spec.ts") or arg.endswith(name)]
check["dependsOn"] = ["wasm-source-build", "web-build"]
check["cacheInputs"] = [path for path in result["dependencies"] if "/tests/e2e/" not in path or path.endswith(name)]
if identifier != "chromium-main":
check["kinds"] = ["chromium", "negative"]
checks.append(check)
for check in checks:
check["timeoutSeconds"] = timeouts[check["id"]]
check["continueOnFailure"] = True
if check["id"] == "web-build":
check["dependsOn"] = ["wasm-source-build"]
for case in result["cases"]:
if case["checkId"] == "chromium-provider":
case["checkId"] = "chromium-main"
result["checks"] = checks
contract["executionPolicy"] = "per-business-group checkpoints; independent groups continue after failure"
write_json(destination, contract)
print(json.dumps({"checks": len(checks), "chromiumGroups": list(names), "modelRequests": 0}))
if __name__ == "__main__":
main()