Skip to content

feat: expose rigged animated records to CoS avatars - #6103

Merged
atomantic merged 3 commits into
mainfrom
claim/issue-5894
Sep 3, 2026
Merged

feat: expose rigged animated records to CoS avatars#6103
atomantic merged 3 commits into
mainfrom
claim/issue-5894

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Summary

  • Rigged + animated image-to-3D records are now selectable through the avatar variant namespace (rigged-<modelId>), reusing the existing strict variant traversal guard.
  • Records are listed with server-computed clip coverage and offered in the CoS avatar-style selector (ConfigTab).
  • CoS avatar playback plays back rigged records with a deterministic present-clip fallback when a requested animation state is uncovered.
  • Eidoverse player-model wiring is out of scope for this pass: no GLB player surface exists on main yet (human/CoS avatars are VRM-typed for the external host).

Closes #5894. Depends on #5753 and #5893, both already merged.

Test plan

  • cd server && npm test — full suite passes (one unrelated pre-existing timeout flake in services/sprites/atlas.test.js, confirmed unrelated to this branch's files and reproducible against main).
  • cd client && npm test — full suite passes; under this run's concurrent machine load a handful of unrelated tests (QuotaBurn, loadingSkeletons, TaskAddForm, PostDrillConfig) hit transient 5s timeouts, none touching files this branch changed.
  • Isolated rerun of this branch's own test files (ChiefOfStaff.test.jsx, useAvatarCapabilities.test.jsx, MiniCharacterCoSAvatar.test.jsx, ConfigTab.test.jsx) — 67/67 passing.

Rigged + animated image-to-3D records are selectable through the avatar
variant namespace (rigged-<modelId>, same traversal guard), listed with
server-computed clip coverage, offered in the CoS avatar-style selector,
and played back with a deterministic present-clip fallback for uncovered
states. Eidoverse player-model wiring stays open: no GLB player surface
exists on main (human/cos avatars are VRM-typed for the external host).
… landed

A recent main commit split the rating button's text into a label span
plus a visible hint span, which made the button's accessible name the
full label+hint string instead of just the label — breaking
SongBookViewer.test.jsx's 'Solid' button lookup and, with it, CI on
this branch. Pin the accessible name back to the label via aria-label.
@atomantic
atomantic merged commit e81e3a5 into main Sep 3, 2026
7 checks passed
@atomantic
atomantic deleted the claim/issue-5894 branch September 3, 2026 19:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose rigged animated records to CoS and Eidoverse avatars

1 participant