Files
opendance-web/project.yaml
T
opendance 39bfd390e3 feat(models): 模型一律转 VRM(契约 0.5.0)+ 可用性门槛 + 管理端版本号展示
按《DSH 开发文档 v1.6》4.9 与第十一章实现,Web 端第一步:

1. 契约先行(先改 contracts/ 再同步三端):
   * model-formats.md -> 0.5.0:模型主力格式改为 VRM,所有上传模型一律转 VRM
     (.pmx/.fbx: assimp -> GLB -> VRM;glb/gltf: 包装为 VRM);
     新增 humanoid 硬门槛与"不达标回退 GLB + usable=false"的交付表;
   * data-models.md -> 0.5.0:Model 新增 usable / unusableReason,明确
     usable=false 不进入 catalog/export;format 说明改为主力 vrm;
   * VERSION 与 contract-versions.ts 同步(三端契约文件逐字节一致)。
2. 实现:
   * MODEL_CONVERT_FORMAT 默认改为 vrm(deploy/.env.example 同步);
   * 新增 isUsableModel()/unusableReason():usable 等价于"已产出 VRM",
     原因从 stats 里带出 humanoid 覆盖度;
   * catalog/export 与 catalog/version 指纹都只统计 format=vrm 的已发布模型,
     resolveDefaultModelId 同样只在可用模型中选;
   * 管理端:模型列表与审核面板显示「不可用」及原因;
   * 管理端左下角展示当前版本号(构建期从 web-server/package.json 注入
     __APP_VERSION__,与 GET /health 同源),并去掉写死的"契约 rest-api 0.1.0"。
3. 测试:新增 test/model-usability.spec.ts 5 项;规模 16 文件 / 225 项。
4. 版本 0.3.0。
2026-09-17 00:05:02 +08:00

73 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
project: opendance-web-server
version: 0.3.0
repository: opendance-web
default_branch: main
contracts_version: 0.4.0
# 契约变更流程(文档 7.2):
# 任何跨端契约变更必须先在本项目修改 contracts/ 并提升版本,
# 再在 opendance-windows / opendance-android 创建适配任务。
database:
# 使用现有实例,本项目不部署、不管理 MySQL
managed_by: external
engine: MySQL 兼容(含 MariaDB 10.5+)
name: opendance
charset: utf8mb4
migrations: TypeORM migration
synchronize: forbidden
tasks:
- id: T-WEB-001
file: tasks/001-scaffold.md
scope: NestJS 骨架 + 连接现有 MySQL
status: done
- id: T-WEB-002
file: tasks/002-db-migration.md
scope: TypeORM 迁移生成 opendance 表结构
status: done
- id: T-WEB-003
file: tasks/003-song-crud.md
scope: /api/songs CRUD
status: done
- id: T-WEB-004
file: tasks/004-motion-upload.md
scope: 动作数据上传(BVH / VMD / FBX / glTF / keypoints)+ 来源字段
status: done
- id: T-WEB-005
file: tasks/005-model-upload.md
scope: 模型上传(GLB/VRM 直接导入 + PMX/FBX 转换 + .zip 自动搜索)+ 自动分析/缩略图 + 上传即待审
status: done
- id: T-WEB-006
file: tasks/006-keypoint-preprocess.md
scope: BVH / VMD / FBX -> 关键点序列预处理
status: done
- id: T-WEB-007
file: tasks/007-upload-review.md
scope: 上传审核流程
status: done
- id: T-WEB-008
file: tasks/008-admin-ui-songs.md
scope: 歌曲管理界面
status: done
- id: T-WEB-009
file: tasks/009-admin-ui-models.md
scope: 模型管理界面 + 来源展示
status: done
- id: T-WEB-010
file: tasks/010-deploy.md
scope: 部署脚本(双端口:软件 API 3000 + 管理端 3001,不部署 MySQL)+ deploy/.env 初始化引导(init-env.sh,HOST 默认 0.0.0.0)
status: done
deliverable:
artifact: opendance-web-v0.3.0.tar.gz
packaging: Linux 业务服务(系统服务托管,双端口:软件 API + 管理端,不含 MySQL、不含反向代理、不使用 Docker)
includes:
- web-server/ # NestJS 源码 + 构建产物(含 BVH / VMD 内置解析、ZIP 读取与模型压缩包转换)
- admin/ # React 管理端构建产物
- deploy/ # install.sh / init-env.sh / systemd / openrc / initd / ctl.sh / .env.example(PORT、ADMIN_PORT、HOST)
- deploy/proxy/ # 反向代理说明(nginx / IIS,仅供参考不部署)
- contracts/ # 当前版本契约快照(0.4.0)
- THIRD_PARTY.md # 开源声明
- README.txt # 使用说明