Grow the companion, fix idle fallback, add update banner

Companion: bump the corner mascot ~12% (128→144) and make animation
resolution robust — fall back to the idle clip when a mood has no clip of
its own, and pin the always-asleep cat to one pose so its Lottie never
reloads. This stops a bare emoji from replacing the cute companion on idle.

Update notifications: serve a build id at /api/version (a hash of the
embedded dist/index.html, which changes on every frontend deploy). The
client records its load-time id, polls every 90s (and on tab focus), and
floats a Mandarin-first "new version available" banner offering a refresh
when the id changes.

Claude-Session: https://claude.ai/code/session_016Yr6jELuRc7hyzYLccQKZd
This commit is contained in:
prosolis
2026-06-25 22:45:23 -07:00
parent a634994d25
commit 95123e8c49
7 changed files with 180 additions and 7 deletions

View File

@@ -239,6 +239,15 @@ button, a, input {
100% { opacity: 0; transform: translateY(-14px) scale(1.1); }
}
/* "New version available" banner — drifts down from the top like a petal. */
.petal-update {
animation: petal-drop 360ms cubic-bezier(0.2, 0.8, 0.3, 1.2) both;
}
@keyframes petal-drop {
from { opacity: 0; transform: translateY(-14px) scale(0.96); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
/* Blinking caret in the Ask Petal bubble while awaiting the first token. */
.petal-chat-caret {
animation: petal-breathe 1s ease-in-out infinite;