chore: checkpoint web Blender migration source, tools and docs
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

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>
This commit is contained in:
mes123456
2026-11-10 11:18:01 +08:00
parent 122142c26c
commit f3e21c6b98
6887 changed files with 257154 additions and 12294 deletions

View File

@@ -15,7 +15,8 @@ const sha256 = (bytes) => crypto.createHash("sha256").update(bytes).digest("hex"
const relative = (file) => path.relative(root, file).replaceAll(path.sep, "/");
const active = plan.tasks.filter((task) => task.ready === true && task.status === "in_progress");
if (active.length !== 1) throw new Error(`V2 plan must have exactly one ready in_progress task; found ${active.length}`);
const terminal = active.length === 0 && plan.tasks.length > 0 && plan.tasks.every((task) => task.ready !== true && task.status === "done");
if (active.length > 1 || (active.length === 0 && !terminal)) throw new Error(`V2 plan must have exactly one ready in_progress task or a complete terminal plan; found ${active.length}`);
const lines = [];
const entries = {};
@@ -53,8 +54,8 @@ const index = {
source: { path: relative(planPath), sha256: sha256(planBytes) },
catalog: { path: relative(catalogPath), sha256: sha256(catalogBytes) },
taskCount: plan.tasks.length,
activeTask: active[0].id,
activeTask: active[0]?.id ?? null,
entries,
};
fs.writeFileSync(indexPath, `${JSON.stringify(index)}\n`);
process.stdout.write(`v2-task-index-generated tasks=${plan.tasks.length} active=${index.activeTask} output=${relative(indexPath)}\n`);
process.stdout.write(`v2-task-index-generated tasks=${plan.tasks.length} active=${index.activeTask ?? "NONE"} output=${relative(indexPath)}\n`);