macpal: plugin architecture + 3D animated pals + remote affirmations master
Unify the distributable star and the fuser fleet badge into one MacPal codebase with a PalPlugin architecture (PalCore + FuserPlugin + AffirmationsPlugin), selected by launch profile. - PalCore: shared avatar (poses, name wiggle, drag-corner, collapse, hover, Menu Band sing) + PalPlugin protocol + About; per-machine PalConfig. - FuserPlugin: git status / Asana / OVERTIME / terminal pane (neo/panda/ chicken/blueberry). - AffirmationsPlugin: Fia's star polls /api/macpal-status for a remote caption (+ macpal-status.mjs endpoint, admin-gated; affirm.mjs CLI). - Pal3D: SceneKit avatar (Meshy text-to-3d -> rig/animate -> usdc), looping skeletal idle, wave-on-hover / cheer-on-note one-shot clips, in-scene music notes with a sharp drop shadow, wallpaper-based ambient lighting, accent tint, 3D<->2D right-click toggle, and a viewport-containment fit constraint so the character never clips. - gen/anim 3D scripts are per-machine (--name); 3D assets live in the DO Spaces bin (system/public/assets/macpal, gitignored). - fuser deploy: install.sh/deploy.sh pack the 3D model at build time; macpal/fuser/* symlink the client-sensitive bits in the vault. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>