Repository navigation
fix(app): turn off question dock animation by default - #59389
Conversation
There was a problem hiding this comment.
This looks sound to me. I read through the knob-off paths: still() in the dock, and instant in ComposerMorph/Grow, which only applies to question faces, so the other docks and the queue panel keep their motion. I also checked the CSS scoping under data-animated and the reduced-motion handling, and nothing there would block a merge. tsc -b in packages/app is clean. I couldn't run the component tests or the app here because the sandbox's Chromium is missing system libraries, so the frame-level behaviour still rests on your test run. Before/after screen captures of switching and minimizing with the knob off would help reviewers.
Public API is unchanged. The only addition is the question.motion Knobs tuning toggle, which isn't config.
The question dock no longer animates. Switching questions, minimizing, restoring and submitting now change on the same frame.
The new dock, keyboard answering, number keys, the "N of M" title, the dashes and the Back/Next/Submit footer all stay. The old motion is still available behind one Knobs toggle, Timeline → Question → Question dock motion, which is off by default.
❌ Before
✅ After
📊 Proof
The new test, "switches questions, folds and submits on the same frame with the dock's motion off", fails on
devand passes here. The existing motion tests now turn the knob on first and still pass, as do the keyboard tests from #58494 and #59333.Knob off: switching with the keys and a click, minimize, restore, then submit.
question-still-dev.mp4
Visual
👀 Read:
session-question-dock.tsx, the newstill()path: with the knob off,wake()snaps every spring, drops the outgoing copy and paints once instead of starting a frame loop, and the boxes keep their natural heights.spring-height.tsxgains aninstantoption so the composer swap and the dock's grow skip their morph for the question dock only. The CSS only scopes the existing transitions underdata-animated="true". The rest is routine.🔍 Asked for in team chat · the motion stays available behind the Question dock motion knob
Checks run
bun run test:components -- component-tests/session-question-dock.spec.ts(packages/app): 25 passeddev's source: failsbun run test:e2e -- e2e/regression/session-request-docks.spec.ts(packages/app): 5 passedbun typecheckin packages/app and packages/session-ui: no errorsoxlintandprettier --checkon the changed files: clean