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

@@ -42,13 +42,19 @@ test("M10-02 blocks non-allowlisted Main nodes without replacing the preserved g
const afterUnsupported = await client.snapshot();
const supportedError = await attempt(supported);
const afterSupported = await client.snapshot();
const saved = await client.saveBlend();
const reopened = await client.openBlend(saved);
const graphShape = (snapshot: typeof opened.snapshot) => snapshot.geometryNodeGraphs
?.find((graph) => graph.name === supported.name)?.nodes.map((node) => node.type).sort();
client.terminate();
return {
unsupportedTypes,
unsupportedErrorCode: unsupportedError?.code,
supportedErrorCode: supportedError?.code,
unsupportedPreserved: JSON.stringify(afterUnsupported.snapshot.geometryNodeGraphs) === baseline,
supportedPreserved: JSON.stringify(afterSupported.snapshot.geometryNodeGraphs) === baseline,
supportedNodes: graphShape(afterSupported.snapshot),
reopenedNodes: graphShape(reopened.snapshot),
expectedSupportedNodes: supported.nodes.map((node) => node.type).sort(),
revisions: [revision, afterUnsupported.snapshot.revision, afterSupported.snapshot.revision],
graphHashes: [unsupported.graphHash, afterUnsupported.snapshot.geometryNodeGraphs?.find((graph) => graph.name === expected.unsupportedGraph)?.graphHash],
};
@@ -57,10 +63,12 @@ test("M10-02 blocks non-allowlisted Main nodes without replacing the preserved g
expect(result).toEqual({
unsupportedTypes: expected.unsupportedNodeTypes,
unsupportedErrorCode: expected.unsupportedErrorCode,
supportedErrorCode: expected.evaluatorUnavailableErrorCode,
supportedErrorCode: undefined,
unsupportedPreserved: true,
supportedPreserved: true,
revisions: [result.revisions[0], result.revisions[0], result.revisions[0]],
supportedNodes: result.expectedSupportedNodes,
reopenedNodes: result.expectedSupportedNodes,
expectedSupportedNodes: result.expectedSupportedNodes,
revisions: [result.revisions[0], result.revisions[0], result.revisions[0] + 1],
graphHashes: [result.graphHashes[0], result.graphHashes[0]],
});
expect(result.graphHashes[0]).toMatch(/^[0-9a-f]{64}$/);