Skip to content

Chat: a bot's reply arrives whole, with a smooth entrance - #88

Merged
abhaypadmanabhan merged 6 commits into
OrgoAI:mainfrom
abhaypadmanabhan:dev/abhay-flowing-reply
Nov 1, 2026
Merged

abhaypadmanabhan merged 6 commits into
OrgoAI:mainfrom
abhaypadmanabhan:dev/abhay-flowing-reply

Conversation

@abhaypadmanabhan

@abhaypadmanabhan abhaypadmanabhan commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

A bot's reply lands as a block in one frame (a 6px rise), which reads as a jump, most of all for a teammate whose copy of the chat updates every few seconds.

A reply that comes in while its chat is open now arrives whole with a smooth entrance: up from 94% and a 4px blur, opaque by halfway, 320 ms on cubic-bezier(.23, 1, .32, 1) so it settles fast. These are the values of Grok Bot's message rows. The chat's own smooth scroll to the newest message carries the rest up. Only a bot's reply that arrived while the chat was open; your own messages, history and everything else as before; none with Reduce motion. Two lines of code (MessageRow's entrance) and one animation in app/globals.css.

(The branch first tried a word-by-word reveal; it's reverted in full in the fourth commit, so the net diff is only the entrance.)

Proof

  • Screen: a reply arriving in an open chat as a teammate sees it: it is the only animated row, the whole text at once, reply-in 0.32s cubic-bezier(0.23, 1, 0.32, 1); earlier messages don't move; it settles to opacity 1, no blur, no transform. With Reduce motion: no animation. On origin/main there is no reply-in, so the check fails there.
  • Script tests that render the chat: no more failures than origin/main.
  • Screens: a production build (next build, next start) of origin/main plus this and the other six PRs from the same review, with a local, uncommitted guard so the server never signs in or answers a call; a headless browser played a made-up copy of a shared workspace as a teammate with Write sees it.
  • npx tsc --noEmit -p . and eslint on the touched files: clean.

Review: Reviewed with sol-loop: 1 round with gpt-6.1-sol on high. Sol verdict: approved (on the net change, after the revert; the earlier word-by-word version had its own 3 rounds).

secscan: VERDICT: PASS. The npm audit's 1 critical and 8 high are already on main (package-lock.json unchanged).

One of seven small PRs from a review of Bops as BrandLord's staff would use it in a shared workspace; each stands alone.

🤖 Generated with Claude Code

abhaypadmanabhan and others added 3 commits October 31, 2026 16:17
A bot's reply landed whole in one frame. Now each word (a code span, bold run, link, heading, table or code block as one) fades in from a soft blur 200ms, a step after the one before: 50ms apart, closer for a long reply so it's all there in about a second; over 400 words it just appears. Only a reply that arrived while the chat was open, never history; none with Reduce motion. Modelled on Grok Bot's flowing replies. scripts/test-flowing-reply.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review: a paragraph moved the count on by its words, but Inline gives a code span, bold run or link and the
punctuation next to it steps of their own, so "Use `git`, `ls`, and `pwd`." took 8 steps where 5 were kept and
the heading after it started early. Both now count with one function on the same split Inline draws from;
across code blocks a reply keeps, line by line, at least the steps a block can take. Exact delays in the test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review: with steps counted for positions, the cutoff counted steps too, so a 401-word bold run (one step) still
flowed. The cutoff counts words, as it says; the pacing still counts steps, which is what keeps the reveal to
about a second.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
abhaypadmanabhan and others added 2 commits October 31, 2026 16:52
Abhay: Grok Bot's chat replies don't flow in word by word (that code is its voice transcript); they arrive
whole, with a smooth entrance. The next commit does that instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A reply that came in while the chat was open rose 6px and landed in one frame. It now comes in all at once, up
from 94% and a 4px blur, opaque by halfway and settling fast: 320ms on cubic-bezier(.23, 1, .32, 1), the values of
Grok Bot's message rows. The chat's own smooth scroll to the newest message carries the rest up. Only a bot's
reply that arrived while the chat was open; yours, history and everything else as before; none with Reduce motion.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@abhaypadmanabhan abhaypadmanabhan changed the title Chat: a reply that comes in while the chat is open flows in word by word Chat: a bot's reply arrives whole, with a smooth entrance Oct 31, 2026
@abhaypadmanabhan
abhaypadmanabhan merged commit a01a98c into OrgoAI:main Nov 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant