Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationarea:ui-uxInteraction and visual experience; may accompany a code-layer areaInteraction and visual experience; may accompany a code-layer areafeature:avatarPersonaBot avatar media and activity framePersonaBot avatar media and activity frameready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
Part of #1209.
What to build
A Human shares their drawn decorations. An exported PersonaBot carries its embedded Custom Parts, and whoever imports it as a new Bot sees the same appearance. Those parts are also added to the importer's Part Library, marked by origin. A single part exports as a PNG that previews anywhere and imports back losslessly, animating like a built-in part. The whole library exports and imports as a zip.
Acceptance criteria
- Bot export and import (the existing zip flow) carry embedded Custom Parts. The imported Bot renders and animates identically.
- Importing a Bot adds its parts to the Part Library with origin "imported Bot". Identical content merges into one entry that records each origin.
- The Part Library UI shows each part's origin (drawn here, imported Bot, imported file) and filters by it.
- A single part exports as a PNG with its part data embedded. Importing that PNG restores color references, tones, slot, layers and metadata exactly, and the part then follows anchors and turns like a built-in part.
- The library exports as a zip of such PNGs and imports back with deduplication.
- Name and author are kept as plain metadata. Content hash identity cannot be spoofed: the hash is recomputed on import.
- Imports are bounded by size, slot canvas and color count. Malformed or oversized files are refused with a clear message and never execute code.
- Tests cover Bot export→import with parts, PNG round-trip, zip round-trip, deduplication and refusal of malformed input.
Blocked by
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationarea:ui-uxInteraction and visual experience; may accompany a code-layer areaInteraction and visual experience; may accompany a code-layer areafeature:avatarPersonaBot avatar media and activity framePersonaBot avatar media and activity frameready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Activity
Share drawn parts as PNG files and carry them with exported Bots
Polish part import message, document part files and add #1215 evidence
DoodleBears commentedon Oct 8, 2026
Claimed by the cloud agent session
claude/cloud/session_01MozvQ2eMvqX1MzSqm9G2o8. The implementation is in #1244:Evidence is in
docs/assets/pr/1215-part-files/.Generated by Claude Code
Export worn parts outside the library and harden part file import
feat(avatar): share drawn parts as PNG files and carry them with expo…
DoodleBears commentedon Oct 8, 2026
Outcome: implemented in #1244 (merged as 31c41ae).
imported-bot.docs/assets/pr/1215-part-files/.The claim is released.
Generated by Claude Code