Hashavatar 0.10.0
hashavatar 0.10.0
0.10.0 introduces the visual layer model while keeping the existing
AvatarOptions rendering path stable.
Added
AvatarAccessorywithnone,glasses,hat,headphones,crown,
bowtie,eyepatch,scarf,halo, andhorns.AvatarColorwithdefault,neon-mint,pastel-pink,crimson,gold,
anddeep-sea-blue.AvatarExpressionwithdefault,happy,grumpy,surprised,sleepy,
winking,cool, andcrying.AvatarShapewithsquare,circle,squircle,hexagon, andoctagon.AvatarStyleOptionsfor explicit kind, background, accessory, color,
expression, and frame-shape selection.- Style-aware raster, SVG, and encode APIs:
render_avatar_style_for_idrender_avatar_svg_style_for_idencode_avatar_style_for_id- namespace and identity-options variants for each
- Automatic style APIs:
render_avatar_auto_for_idrender_avatar_svg_auto_for_idencode_avatar_auto_for_id- namespace and identity-options variants for each
- Public digest-byte constants for automatic style derivation.
- Family-aware face anchors for accessory and expression placement.
- README option catalog covering all public enum values and the difference
betweenAvatarOptionsandAvatarStyleOptions.
Compatibility
Existing AvatarOptions output is unchanged. Legacy options map to
accessory = none, color = default, expression = default, and
shape = square.
Automatic style rendering is opt-in. It derives kind, background, accessory,
color, expression, and shape from distinct identity digest bytes using each
enum's ALL list.
Accessories and expressions are deterministic no-ops for non-face avatar
families where the layer cannot be placed sensibly. For example, paws with an
eyepatch renders the baseline paws avatar rather than placing a patch at an
arbitrary canvas position.
Security And Testing
- README security guidance now includes explicit caller-side zeroization and
service-side render-concurrency examples for high-assurance deployments. - Fuzz coverage now exercises the style-aware render and encode APIs.
- Golden fingerprints cover representative layered avatars and automatic style
output. - Tests enforce parser/display round trips, enum
ALLdrift protection,
distinct automatic digest offsets, manual layer selection, and raster/SVG
support for all baseline layer variants. - Tests enforce deterministic no-op behavior for unsupported family/layer
combinations.