gabriel / musehub public
feat BREAKING task/spectral-sigil-avatar #1 / 1
AI Agent gabriel · 49 days ago · Apr 30, 2026 · Diff

feat: add Spectral Sigil content-addressed SVG avatar system

- musehub/services/spectral_sigil.py — pure Python SVG generator (~180 lines) * 5-layer system: chromatic field, archetype core, orbital rings, domain dots, handle initial * derive_hue() extracts hue 0-359 from identity_id bytes 0-3 * human=bezier blob, agent=hex circuit, org=quorum polygon (archetype-distinct shapes) * orbital ellipses from bytes 8-15; domain dots colored by live activity * dormant state (no activity) uses grayscale dots at 40% opacity * fully deterministic: same inputs → identical SVG bytes - musehub/api/routes/musehub/ui_avatars.py — GET /avatars/{identity_id}.svg * validates 64-char hex identity_id → 400 for invalid * fetches identity from DB → 404 if not found * returns SVG with Cache-Control: public, max-age=31536000, immutable * registered early in main.py (before /{owner}/{repo_slug} wildcard) - musehub/api/routes/musehub/__init__.py — add ui_avatars to _DIRECT_REGISTERED - musehub/main.py — include avatar_router before wildcard UI routes - profile.html — Spectral Sigil <img> in hero (96×96, positioned absolute top-right) - _user-profile.scss — .prof-sigil-wrap/.prof-sigil styles with glow shadow - tests/test_spectral_sigil.py — 28 TDD tests (all GREEN) * generator unit tests: returns bytes, valid SVG, deterministic, archetype-distinct * derive_hue formula tests * domain dot color tests (dormant vs. active per domain) * HTTP route tests: 200, valid SVG, immutable cache, 404 unknown, 400 invalid id

sha256:2a055247b917e5145dfca9da0962db6b9447f72bd4c213ff983d21fbf994f61a sha
sha256:2c68985f1b9f5404035b3a09400ed157ff2dde8bbfea4a1f28627401473ce3a0 snapshot
← Older Oldest on task/spectral-sigil-avatar
All commits
Newer → Latest on task/spectral-sigil-avatar

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:2a055247b917e5145dfca9da0962db6b9447f72bd4c213ff983d21fbf994f61a --body "your comment"