✨ feat: WP-09 Live2D/3D——模型导入校验与非破坏命令历史
- 迁移 18:avatar_model(live2d/vrm/gltf、validated/rejected、校验报告、来源许可、当前命令指针)+ avatar_command(十类命令检查约束、(avatar,sequence) 唯一、undone 标记) - GLB/glTF 解析器(纯 Python):GLB magic/版本/chunk 结构校验、JSON 场景图引用一致性(scene→node→mesh→material 逐层索引越界检测)、VRM 0.x/1.0 扩展检测与 meta 提取 - 资源上限(恶意模型文件防线):文件 200MB、节点 10 万、网格 1 万、纹理 2 千、材质 5 千、动画 1 千——超限入库 rejected 并保留报告 - Cubism model3.json 校验:Version/FileReferences 必需、moc3 引用、纹理列表、表情/动作/HitArea 计数 - 上传 MIME 白名单扩展 model/ 与 application/json - 命令历史:十类命令(param_map/expression/physics/motion/material/texture/bone/attachment/lighting/camera)追加(sequence 单调)、撤销(标记 undone 非破坏)、rejected 模型不接受编辑(422 前置校验) - 测试 111 项全绿(+9):合法 GLB/VRM 检测/损坏文件/引用越界/超限/Cubism 正反例/命令历史与撤销幂等/rejected 拒编
This commit is contained in:
1 parent
9dafb8fe72
commit
7c57d27494
7 files changed
+839
No files matched your search
@@ -3,6 +3,7 @@
|
||||
from fastapi import FastAPI
|
||||
|
||||
from app.auth.routes import router as auth_router
|
||||
from app.avatars.routes import router as avatars_router
|
||||
from app.characters.routes import router as characters_router
|
||||
from app.community.routes import router as community_router
|
||||
from app.conversations.routes import message_router, run_router
|
||||
@@ -54,6 +55,7 @@ def create_app() -> FastAPI:
|
||||
app.include_router(inst_router)
|
||||
app.include_router(invoke_router)
|
||||
app.include_router(media_router)
|
||||
app.include_router(avatars_router)
|
||||
app.include_router(ops_router)
|
||||
app.include_router(admin_router)
|
||||
|
||||
|
||||
Reference in new issue
Block a user