docs: 三库文档规范化(去混淆字符 + 占位符)+ Web README 初次部署清单

- 三库所有 .md/.txt 与配置样例中的 — – … § → 一律换成 ASCII(Gitea 的
  「模棱两可的 Unicode 字符」告警即由这几个字符触发;中文全角标点不受影响,
  实测 README.txt 修正后告警消失)
- contracts/* 在三库保持逐字节一致(已校验 md5)
- 残留真实值清理:README.txt 建库 SQL 的 dpendance -> opendance/opendance_app,
  Android HostDiscovery.kt 注释示例 192.168.1.23 -> 192.0.2.23
- Web README.txt 新增「初次部署(从零跑起来)」8 步清单与「常见问题(初次部署)」
  7 条;去掉纯文本 README 里的 markdown 粗体标记;统一 '以 root 直接执行' 写法
- 重新打包 v0.2.0

验证:168 项单测通过;契约 6 项与 30 条路由一致。
This commit is contained in:
2026-09-15 21:28:12 +08:00
parent ebd871018f
commit 8c2f2afaea
6 changed files with 29 additions and 29 deletions
+11 -11
View File
@@ -262,7 +262,7 @@ paths:
parameters: [{ $ref: '#/components/parameters/Id' }]
post:
tags: [motions]
summary: 触发 BVH/FBX → MediaPipe33 关键点序列预处理(同步执行)
summary: 触发 BVH/FBX -> MediaPipe33 关键点序列预处理(同步执行)
description: |
同步执行并返回最终状态:成功时 preprocessState=done;
失败时返回 422,且 Motion.preprocessError 记录可读原因。
@@ -285,7 +285,7 @@ paths:
'200':
description: |
application/x-ndjson,每行一个帧对象:
{"frame":0,"timeMs":0,"points":[[x,y,z,conf], …33],"angles":[9 个余弦]}
{"frame":0,"timeMs":0,"points":[[x,y,z,conf], ...33],"angles":[9 个余弦]}
content:
application/x-ndjson:
schema: { type: string }
@@ -323,11 +323,11 @@ paths:
- `.glb` / `.vrm` / `.gltf`:**直接导入**,不重编码
- `.pmx` / `.fbx`:服务端转换,**优先 GLB、其次 VRM**
- `.zip`:**自动搜索包内可用模型** —— `.vrm` → `.glb` → `.gltf`(直接导入)
优先,其次 `.pmx` → `.fbx`(转换)。压缩包原件作为 `model-archive` 资产留存。
- `.zip`:**自动搜索包内可用模型** -- `.vrm` -> `.glb` -> `.gltf`(直接导入)
优先,其次 `.pmx` -> `.fbx`(转换)。压缩包原件作为 `model-archive` 资产留存。
转换链路(`model-convert.ts`):`assimp export → .glb` →(失败)`→ .gltf` 后
由服务端自行打包成 GLB →(`MODEL_CONVERT_FORMAT=vrm` 时)在 GLB 之上补
转换链路(`model-convert.ts`):`assimp export -> .glb` ->(失败)`-> .gltf` 后
由服务端自行打包成 GLB ->(`MODEL_CONVERT_FORMAT=vrm` 时)在 GLB 之上补
`VRMC_vrm` 扩展产出 VRM 1.0。每一步都 `assimp info` **回读校验**,
并把过程写进 `conversionNote`;贴图会内嵌进 GLB,保证单文件可用。
@@ -488,7 +488,7 @@ paths:
- $ref: '#/components/parameters/Id'
post:
tags: [reviews]
summary: 审核通过 → published
summary: 审核通过 -> published
requestBody:
content:
application/json:
@@ -510,7 +510,7 @@ paths:
- $ref: '#/components/parameters/Id'
post:
tags: [reviews]
summary: 撤回审核 → draft
summary: 撤回审核 -> draft
requestBody:
content:
application/json:
@@ -552,7 +552,7 @@ paths:
- $ref: '#/components/parameters/Id'
post:
tags: [reviews]
summary: 审核驳回 → rejected
summary: 审核驳回 -> rejected
requestBody:
required: true
content:
@@ -795,13 +795,13 @@ components:
fileSha256:
type: string
nullable: true
description: 模型文件(转换产物)的 sha256 —— 每次转换都会变(Assimp 导出非字节级确定),仅作记录
description: 模型文件(转换产物)的 sha256 -- 每次转换都会变(Assimp 导出非字节级确定),仅作记录
stats:
type: object
nullable: true
description: >-
模型分析结果(面数 / 顶点数 / 贴图 / 骨骼树 / humanoid 覆盖 / 可驱动性),
审核界面据此判断"能不能驱动与评分"。结构见 contracts/model-formats.md §1.1
审核界面据此判断"能不能驱动与评分"。结构见 contracts/model-formats.md 1.1
sourceSha256:
type: string
nullable: true