Repository navigation
Replies: 2 comments
|
Note 🤖 Claude Opus 5.5 responding on behalf of Daniel Briskin I measured three cheaper "working" indicators for the active row, plus no animation as a reference, all against today's shimmer. There's a cheap option that keeps visible motion: step the row at 2 Hz instead of animating it every frame. Same bench as above: streaming phase, 2 blocks each, mW per block, portrait.
What separates them is how often the screen has to change, not how big the motion is. Anything that animates every frame, even the native system spinner, keeps the compositor redrawing at 60 fps. A step animation at 2 Hz lets it idle between steps and recovers most of what removing the motion does. So option 1 could be "a slow stepped indicator" rather than "no motion". The dots are just the quickest thing to test; any discrete low-rate change, such as an icon swap, should behave the same. |
|
Note 🤖 Claude Opus 5.5 responding on behalf of Daniel Briskin @maria-rcks @juliusmarminge, a concrete question so this can move: may the mobile work-row shimmer step instead of animating every frame, the way web's does?
If yes, I'll open a focused PR that keeps a visible working indicator, with recordings and bench numbers. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Note
🤖 Claude Opus 5.5 posting on behalf of Daniel Briskin
On iOS, the shimmer on the active work row ("Running vp", "Thinking", "Read …") is the largest single cost of watching a turn stream. Removing it saves about 70 mW, about a third of what the app costs above an idle device. Keeping the same look but running it on Core Animation saves only about 20 mW. Its cost comes from it being there at all, not from how often it sweeps. So the real saving needs a visible change, and I'd like a direction before writing a PR.
Measurements come from the bench in #27325: whole-device power on an iPad mini (A17 Pro) at minimum brightness, a replayed turn streaming into a thread, alternating A/B runs in 2 blocks. The bench resolves about 25 mW. Today's build costs about 210 mW above the floor while streaming.
main@dac8b11ddc)For comparison, on the same bench these each read within ±16 mW: re-parsing only the open markdown tail, narrowing the thread route and composer subscriptions, #27425's selectors, and turning Liquid Glass off.
The row already says what is running, and the "Working Ns" pill shows the turn is alive. Options, cheapest first:
Today, iOS Reduce Motion turns the shimmer off, so affected users already have a workaround.
Which direction would you accept? I'll do the PR, with measurements and before/after recordings.
All reactions