-
released this
2026-09-17 05:59:59 +08:00 | 5 commits to main since this release⚠️ 本版已被 v0.2.5 取代(建议直接用 v0.2.5):
v0.2.5 把config从「每 2 秒无条件广播」改为变更驱动(契约 §3.3 的语义是
「运行中调整时下发」),并新增契约「可选/兜底」语义的定向验收
(v0.1.0 风格对端只发帧不发 ping 也必须保住、缺deviceId不做去重、不发hello不崩)。OpenDance Studio -- Windows 客户端 v0.2.4
两个缺陷修复:编码取整与契约参考实现对齐;发布包不再夹带测试夹具。
建议所有用户改用本版。契约快照不变:
rest-api 0.5.0/websocket-keypoints 0.2.0/data-models 0.7.0/
skeleton-topology 0.2.0/model-formats 0.5.0/database 0.4.0
(与 opendance-web / opendance-android 逐字节一致)。一、编码取整与契约参考实现不一致
KeypointFrame.encode()用的是 GDScript 的roundi(半数远离零),
而契约参考实现(opendance-web 的keypoint-codec.ts)与生产发送方 Android
(KotlinMath.round)都是「半数朝 +∞」:-2.52.5-0.5JS / Kotlin Math.round(参考 + 生产发送方)-2 3 0 GDScript roundi(本端旧实现)-3 3 -1 跨实现向量实测:12 个用例里有 1 例 33 字节不同。
影响:本端是接收方,
encode()只用于自测与协议回归,对产品无影响;
但它让「跨实现一致性」只能停留在宽松口径("差异仅限取整边界"),
而宽松口径会退化成永远没人看的"已知差异"。修复:_round_like_js(v) = floor(v + 0.5),
用于 4 处取整;验收口径收紧为「编码差异必须为 0」。二、发布包内夹带了开发/验收工具
export_filter="all_resources"且exclude_filter里没有build/*,于是每次新增
构建/验收脚本都被编译进产物 —— 包括故意不合规的坏服务端夹具
(probe-ws-bad.gd)与向量文件:res://build/probe-release.gdc res://build/integration/probe-integration.gdc res://build/integration/probe-ws.gdc res://build/integration/probe-ws-bad.gdc ← 故意违反协议的夹具 res://build/integration/probe-frame-vectors.gdc res://build/integration/frame-vectors.json体积:
OpenDance.pck315,464 B → 145,400 B(54% 的 pck 是测试夹具)。
已发布的 v0.2.3 同样带着这些残留。修复:exclude_filter增加build/*;
并新增产物级防线build/integration/list-pck.gd(遍历包内条目、标出
res://build/、res://tests/、res://_scratch/、res://dist-release/、*.md残留),
接进accept-release.sh断言「无开发残留」—— 否则下次加个新工具目录又会重演。三、附件与解压(重要)
资产 说明 opendance-windows-v0.2.4.zip单个完整包,不分卷: OpenDance.exe+OpenDance.pck(必须同目录)+THIRD_PARTY.md+README.txt+README.md+contracts/SHA256SUMS裸文件名,下载目录内直接 sha256sum -c SHA256SUMS解压需要 7-Zip / WinRAR / PeaZip:本包用 LZMA 压缩(26,632,886 B)以绕过本站
前置 IIS 的maxAllowedContentLength = 30,000,000字节上限
(同内容 deflate 包约 38 MB,会 HTTP 413)。Windows 10 资源管理器不支持
LZMA(method 14) 的 zip,双击会报错。四、发布前自检(本版实测)
$ bash build/accept-release.sh dist-release/opendance-windows-v0.2.4.zip ✓ PE 版本资源一致:FileVersion 0.2.4.0 / 资源字符串 0.2.4 ✓ 包内 pck 启动 180 帧无错误(退出码 0) ✓ pck 共 58 项,无开发残留(build/ tests/ _scratch/ *.md) ✓ 包内 version=0.2.4 / AboutScreen.app_version()=0.2.4 / 15 项关键资源可加载 ✓ pck 内契约表与包内 contracts/VERSION 快照一致 $ bash build/accept-ws.sh <zip> == 结果:30 通过 / 0 失败 ==(客户端)+ 服务端侧 16 项事实 $ bash build/accept-frame-vectors.sh <zip> ✓ 解码用例 12/12,逐点比对 396 个,解码差异 0 项 ✓ 编码器字节与参考实现完全一致(0 项差异) $ bash build/verify.sh == 结果:785 通过 / 0 失败,6 跳过 ==五、未在本环境验证(诚实声明)
- 本仓库在 Linux 上导出 Windows 产物,没有 Windows 机器与真机 30 分钟联调:
运行行为仍以「无头 785 项断言 + 包内 pck 启动 + 三条产物级验收」为证据; - 跨端集成验收(
accept-integration.sh)需要一个已部署的 Web 服务端。
Downloads
- 本仓库在 Linux 上导出 Windows 产物,没有 Windows 机器与真机 30 分钟联调: