mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-23 23:11:18 +00:00
* feat(ui): web delights — empty-state mascots, first-reply confetti, composer drag-catch Three mascot-powered moments in the Control UI: the plugins page and channels hub show a sleepy Clawd when truly empty and a curious one on a search miss; the very first successful assistant reply in a browser earns a single confetti burst in the mascot palette (localStorage once-flag, reduced-motion aware); and dragging files over the new- session composer makes the welcome mascot tease with an open mouth, then snap a catch on drop — upload behavior untouched. * fix(ui): satisfy strict types and knip for the confetti module Tuple index under noUncheckedIndexedAccess gets an anchored fallback, the once-flag helper stays module-internal (knip counts only production consumers), and its coverage moves to the public fireFirstReplyConfetti path in jsdom using the shared storage mock.