Skip to content

feat: show who is typing in a chat - #588

Merged
iamnbutler merged 4 commits into
mainfrom
fix-typing
Oct 22, 2026
Merged

iamnbutler merged 4 commits into
mainfrom
fix-typing

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Shows who is typing in a chat, just above the composer (ChatStatus with TypingDots, previously unused). Closes part of #35.

  • The channel gets a typing request and a live typing event. A watch opts in with typing: true, so older clients never see the event. Nothing is stored: the worker sends the event to that chat's other watchers and drops it.
  • It rides the existing channel request and watch path, so the gateway stamps the author, and teammates watching through a peer get it through the same relay. It needs no directory or lobby. packages/channel stays runtime-neutral.
  • The app sends a signal at most every 3 s while the composer has unsent text and the chat is ready. Viewers drop a typist 5 s after their last signal, or as soon as that person's message lands, and never show themselves.
  • Demo mode gets a type step, documented in docs/demo.md.

Smoke-tested from this lane on a loopback ace serve --demo host:

  • A demo teammate's typing showed ace-demo-rivera is typing. It cleared the instant their message landed, and went stale 5.2 s after a lone signal.
  • Typing in the app produced typing events from iamnbutler@gmail.com at 0, 3 and 7 s on a raw gateway watch.

Not smoked: a teammate on another host through a peer relay. It uses the same channel request path as say.

Built in Ace

No: Claude Code (the ace2-90 fix-train session) wrote and smoke-tested this through a headless demo host, Playwright and a gateway watch. See #5.

@iamnbutler
iamnbutler merged commit e234c30 into main Oct 22, 2026
1 check passed
@iamnbutler
iamnbutler deleted the fix-typing branch October 22, 2026 15:30
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