3.1.10 follow-ups: chat open animation, mascot polish, uniform reasoning picker, smooth provider-switch bar, gpt-5.6-sol in codex picker - #269
Conversation
β¦hat auto-open - ChatPopup: clawChatBurstIn spring/overshoot/glow entrance animation - Mascot: tap no longer teleports the crab; slides clear of a docked chat panel (rightInset) - page: floating chat popup only opens on mascot tap (ignore persisted ui_chat_open); mascot stays visible beside docked panel Pulled from the todor.local test box where it was verified live (uncommitted there). Part of folding UI polish into the existing v3.1.10.
β¦ cloud providers Every cloud provider now exposes the same Off/Low/Medium/High effort ladder (dropped provider-specific xhigh/max/adaptive/minimal for consistency). ClawBox AI / DeepSeek keep an 'off' default so they stay fast unless the user opts in; other providers default to medium. llama.cpp stays off-only (no reasoning).
β¦nly, no jank) Switching AI provider (codex<->clawbox) restarts the gateway; on the Jetson that pins the CPU. The reload overlay's progress bar was driven by a 200ms setInterval + a width transition (layout every frame), so it visibly stuttered under that load. Replace it with a transform:scaleX CSS keyframe (clawReloadFill) that runs on the compositor thread and stays smooth regardless of main-thread work; reloadProgress is now only the 0->100 completion signal.
β¦ntitled ChatGPT accounts
The codex catalog allowlist regex stripped everything except gpt-5.5/gpt-5.4/
gpt-5.4-mini, so gpt-5.6-sol (and terra/luna) never appeared even for ChatGPT
accounts whose plan includes them. Widen the allowlist to gpt-5.6-{sol,terra,
luna} and add stable labels. These are plan-gated upstream β the live catalog
only returns them for entitled (Plus/Pro/Max) accounts, so boxes on lesser
plans still never see them (no dead buttons).
π¦ ClawReviewClaws waving β here's what this change is about. This PR bundles several UI/UX polish items from the test-box: a spring-burst entrance animation ('clawChatBurstIn') when the chat popup opens, a fix for the mascot teleporting left on tap, a new slide-away behaviour when the chat is docked as a side panel, suppression of the floating chat auto-opening on load, a simplified uniform Off/Low/Medium/High reasoning picker across every cloud provider, a compositor-only CSS transform animation for the provider-switch progress bar (avoids layout thrash on the Jetson), and new GPT-5.6 Sol/Terra/Luna entries in the Codex model picker gated behind OpenAI's upstream catalog. At a glance
π Heads-up: this looks related to #268 β PR #268 is titled 'fix(mascot): stop crab teleporting to the left corner on tap' and targets the exact same root cause fixed here in Mascot.tsx (delaying physicsActive until a real drag is detected). Merging both would likely conflict. Good to know
β ClawReview π¦, scuttling off. General info only β see CodeRabbit for the detailed review. Conventions: docs. |
β¦erence Both suites were red on this PR, and neither failure came from the 3.1.11 changes β no commit here touches the desktop shell. They broke on beta when #269 made the floating chat popup stop restoring a persisted `ui_chat_open`: // The FLOATING chat popup must never auto-open on load: it should appear // only when the user taps the crab. // (We intentionally ignore a persisted `ui_chat_open` here.) Beta's last green e2e run was c7beb31, before that merge landed, so the two specs still seeding `ui_chat_open: 1` only started failing once a PR ran e2e against post-#269 beta. This is that PR. e2e/first-load-mascot-layout: drop `ui_chat_open` and open the popup through the fresh-install greeting instead (no saved wallpaper/desktop apps), which is the one load-time path that still opens it. Opening it at mount is what the assertions actually need: `frozen` pins the crab straight away. Opening it later with a click passes in isolation but races the mascot's autonomous walk (actions start ~3.5s after mount), which drifts the crab off the popup's `mascotX` anchor and made the run flaky under load. e2e-install/80-chat: hide the mascot and click the taskbar "Chat" button β the same launcher the passing chat-popup specs use β rather than relying on the popup being open already. Both assertions are unchanged; only the way the popup is opened moved. Verified locally: the mascot-layout spec passes standalone and in a full suite run (34 passed).
Folds the test-box UI/UX work + fixes into beta (NOT main β hold for tagging when polished, per Karchev).
clawChatBurstIn) + mascot no longer teleports on tap + mascot slides clear of a docked chat panel; floating chat no longer auto-opens on load. (Was uncommitted on the todor.local test box.)offdefault for speed.transform: scaleXCSS keyframe.Verified: typecheck 0 errors, chat-reasoning + provider-models unit tests green,
next buildsucceeds on the Jetson. Tested live on box .40 (UI/animation/switch-bar). sol picker pending a fresh ChatGPT session on .40 to verify end-to-end.π€ Generated with Claude Code