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>
This commit is contained in:
@@ -30,6 +30,8 @@ export interface LODCacheRecord extends LODManifest {
|
||||
profileHash: string;
|
||||
poseOrRestState: LODPoseState;
|
||||
generatedAt: string;
|
||||
sourceBlendSha256?: string;
|
||||
contentSha256?: string;
|
||||
byteLength?: number;
|
||||
lastAccessAt?: string;
|
||||
}
|
||||
@@ -81,6 +83,7 @@ export function parseLODCacheRecord(value: unknown): LODCacheRecord {
|
||||
throw new SimplifyValidationError("INVALID_LOD_MANIFEST", "LOD cache record must be an object");
|
||||
}
|
||||
const input = value as Record<string, unknown>;
|
||||
for (const key of ['sourceBlendSha256', 'contentSha256']) if (input[key] !== undefined && (typeof input[key] !== 'string' || !/^[a-f0-9]{64}$/.test(input[key]))) throw new SimplifyValidationError('INVALID_LOD_MANIFEST', `${key} must be a SHA-256 digest`);
|
||||
const fields = ["cacheKey", "objectId", "modifierStackHash", "profileHash", "generatedAt"];
|
||||
if (fields.some((field) => typeof input[field] !== "string" || !input[field])) {
|
||||
throw new SimplifyValidationError("INVALID_LOD_MANIFEST", "LOD cache record metadata is incomplete");
|
||||
@@ -96,6 +99,8 @@ export function parseLODCacheRecord(value: unknown): LODCacheRecord {
|
||||
profileHash: input.profileHash as string,
|
||||
poseOrRestState: input.poseOrRestState,
|
||||
generatedAt: input.generatedAt as string,
|
||||
...(input.sourceBlendSha256 === undefined ? {} : { sourceBlendSha256: input.sourceBlendSha256 as string }),
|
||||
...(input.contentSha256 === undefined ? {} : { contentSha256: input.contentSha256 as string }),
|
||||
};
|
||||
if (lodManifestCacheKey(record) !== record.cacheKey) {
|
||||
throw new SimplifyValidationError("INVALID_LOD_MANIFEST", "LOD cacheKey does not match its source inputs");
|
||||
|
||||
Reference in New Issue
Block a user