openclaw/ui
Peter Steinberger ae27ee98f0
feat(ui): expand the lobster pet's random universe (#112073)
* feat(ui): expand lobster pet randomization

Shiny rolls (1/512) with Lobsterdex tracking, cotton candy and lumen
palettes, crusher/pincer claw asymmetry, freckles, seeded eye glints,
elder and old-friend rare loads, balloon/bubble entrances, snail/duck/
jellyfish ledge traffic with per-kind crossing times, passer reactions,
a message-in-a-bottle event, National Lobster Day monocles, and a golden
ledge trim for a completed Lobsterdex.

* style: apply oxfmt formatting to lobster pet files

* refactor(ui): split lobster pet art and ledge traffic into modules

lobster-pet-sprites.ts owns the static SVG art, lobster-pet-traffic.ts
owns passer/bottle scheduling as a ReactiveController, and load identity
(elder, old friend, dex completion) moves into lobster-pet-plans.ts;
keeps lobster-pet.ts and lobster-pet-look.ts under the max-lines cap and
fixes the passerBaseStyle consistent-return lint.

* fix(ui): clear ledge traffic on disconnect, hide bottle from AT

Review findings: a host reconnect no longer shows a frozen passer or an
unebbing bottle, and the bottle joins the rest of the decorative ledge
sprites behind aria-hidden (fortunes stay on the native-tooltip channel
by design - no i18n surface).

* style: oxfmt formatting for lobster plans/sprites/pet

* refactor(ui): narrow lobster plan/traffic exports to production consumers

isLobsterElderLoad and planLobsterOldFriend become module-local (tests
prove them through resolveLobsterLoadIdentity), and the traffic
controller's hook/scene types stay local; fixes the knip production
unused-export gate.

* fix(ui): request host update when disconnect clears ledge traffic

Lit does not re-render on reattach by itself; the queued update makes
sure a detached-then-reattached pet never shows a stale passer/bottle.
2026-07-21 00:18:54 -07:00
..
config perf(ui): cut forced reflows in Control UI chat render path (#110472) 2026-07-18 08:04:03 +01:00
docs/design-system refactor(ui): unified settings design language across all Control UI settings surfaces (#106470) 2026-07-13 08:40:58 -07:00
node_modules/@openclaw
public feat(ui): add Apps & extensions page to the Control UI (#110563) 2026-07-18 09:52:34 +01:00
src feat(ui): expand the lobster pet's random universe (#112073) 2026-07-21 00:18:54 -07:00
.gitignore
AGENTS.md fix(ui): prevent generated locale rebase conflicts (#109393) 2026-07-16 18:48:20 -07:00
CLAUDE.md
index.html fix(ui): bound mount recovery probes (#108163) 2026-07-15 18:51:42 -07:00
package.json improve(ci): persist warm Vitest and Node caches (#109425) 2026-07-16 17:22:28 -07:00
vite.config.ts fix(ui): nudge stale tabs after gateway updates (#111619) 2026-07-20 01:51:22 -07:00
vitest.config.ts fix(ui): prevent cross-file mock leakage in Control UI tests (#111554) 2026-07-19 15:38:50 -07:00
vitest.node.config.ts