3.4 KiB
3.4 KiB
N-023 Asset、Library 与 IO
状态:BLOCKED(asset catalog、来源/许可证元数据、真实 Main library inventory、库依赖与
IO 安全门已落地;Append/Link/Override Main、非 GLB 本地导入和跨桌面重导入未实现)
已验证切片
- N-023-A:版本化 manifest 覆盖 catalog、asset kind/tag、preview、author、license、 source path/SHA-256、library source/dependency/read-only metadata;重复 ID、缺 catalog、 缺许可证和哈希不匹配会拒绝。
- N-023-A/B(部分):catalog 与 library dependency 图做确定性拓扑检查并返回 load order;
content-addressed index 报告
LOCAL_BOUNDED,OPFS 只在运行时 API 存在时报告PROBE_REQUIRED。 - N-023-C(门):现有 GLB 导出与 USD semantic analysis 可放行;GLTF/OBJ/PLY/STL、
USD/Alembic 实际导入保持
IO_FORMAT_UNSUPPORTED,库 mutation 需要真实 Main。 - N-023-A/B(部分):预览字节先验 SHA-256 和 byte length,再校验 PNG signature/尺寸; WebP 仅在 RIFF/WEBP 容器签名正确时进入后续解码门,不从元数据伪造预览内容。
- N-023-E:项目路径、外部 URI、archive entry 数量/单项/总量、压缩展开比率均有边界。
- N-023-B(部分):Blender 5.2 Main reader 输出 linked Library stable ID、项目相对路径、
packed/external 状态、只读标志和 archive-parent dependency;1024 library/每库 1024 dependency、
重复 ID、缺依赖、依赖环与项目外路径由 SceneIR 再校验。缺外部库字节时返回
LINKED_LIBRARY_RESOURCE_REQUIRED,不从路径伪造 SHA-256 或声称已加载。 - N-023-E(archive 结构门):除 traversal 与展开比预算外,重复规范路径、文件/目录前缀冲突、
累计压缩/解压字节和声明源长度不一致均拒绝;
planIOArchiveRanges按路径生成确定性、安全整数 compressed offset 计划。它为后续流式解包提供边界,不代表已有 ZIP decoder。 - N-023-E(NanoVDB range 基础件):
.nvdbmanifest 要求连续、32-byte 对齐、逐块 hash; HTTP source 只接受与 manifest 精确一致的206 Content-Range,并按块校验后消费;临时错误重试、 稳定 ETag/If-Range、response-body 偏移续传、错位/短响应拒绝均已完成。OPFS 原子 staging/commit、source/bundle binding、Worker 重开、tamper/rollback/quota recovery 和 bundle LRU 已完成;大 bundle 性能仍未实现。 - VDB 独立资源库包含 generated/official/source/derived/report/manifest/license,14 条记录逐项绑定 byte length 与 SHA-256;官方 sphere 使用 CC-BY-4.0 和 Git LFS 权威 hash,未放入仓库工作树。
仍然阻断
- N-023-B:Append/Link/Library Override、reload/relocate 和真实 Main transaction;只读 library inventory 已完成。
- N-023-C/D:GLTF/OBJ/PLY/STL、USD/Alembic import/export/save/reopen/desktop reimport。
- N-023-E:真实 zip decoder/fuzz、OPFS quota/recovery、license/source offer 发布审计和大文件 流式性能;archive 路径冲突、双向字节预算与确定性 range plan 已完成。
- N-023-E(VDB):GPU page resident LRU 已完成;64 MiB–1 GiB bundle 中断/内存性能门仍阻断。
验收
WEB_TEST_PORT=5323 npm --prefix web run test:e2e -- --grep "N-023 asset"
npm --prefix web run test:library-main-reader
npm --prefix web run test:vdb
npm --prefix web run test:vdb-native