#6546: Reply: avoid typing before text in message mode
Cluster:
Messaging Platform Improvements
## Summary
- skip typing indicator on tool start when typingMode=message until real text appears
- adjust typing-mode unit test to match new behavior
## Testing
- pnpm test src/auto-reply/reply/typing.test.ts (fails: vitest not installed; node_modules missing)
<!-- greptile_comment -->
<h2>Greptile Overview</h2>
<h3>Greptile Summary</h3>
This PR tweaks the typing indicator behavior for `typingMode="message"`: tool execution no longer triggers typing until the reply has produced the first renderable text, and the associated unit test was updated to assert the new behavior. The change is localized to the auto-reply typing signaler logic (`src/auto-reply/reply/typing-mode.ts`), which coordinates when `TypingController` starts/refreshes the typing loop based on run/message/text/tool events.
<h3>Confidence Score: 4/5</h3>
- This PR is low-risk and likely safe to merge, with one behavioral edge case worth double-checking.
- The change is small and covered by a targeted unit test, but it alters when typing is shown during tool execution and may leave cases where the typing indicator never appears if output is tool-only (no text deltas). That may be intended, but it’s a user-visible behavioral change that depends on runtime event ordering.
- src/auto-reply/reply/typing-mode.ts
<!-- greptile_other_comments_section -->
<sub>(4/5) You can add custom instructions or style guidelines for the agent [here](https://app.greptile.com/review/github)!</sub>
**Context used:**
- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=fd949e91-5c3a-4ab5-90a1-cbe184fd6ce8))
- Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=0d0c8278-ef8e-4d6c-ab21-f5527e322f13))
<!-- /greptile_comment -->
Most Similar PRs
#10746: feat: add 'deferred' typing mode to suppress typing indicator for N...
by r00k · 2026-02-06
81.7%
#19816: feat(slack): add typingReaction config for DM typing indicator fall...
by dalefrieswthat · 2026-02-18
76.6%
#11494: fix(bluebubbles): skip typing indicator for tapback messages
by mcaxtr · 2026-02-07
76.1%
#20406: fix(slack): respect replyToMode when computing statusThreadTs in DMs
by QuinnYates · 2026-02-18
74.8%
#2917: Slack: fix thread context + prevent reply spillover
by SocialNerd42069 · 2026-01-27
74.5%
#20622: feat: add configurable typingTtlSeconds to config schema
by chungjchris · 2026-02-19
74.5%
#9511: feat: add tool error fallback toggle
by bolismauro · 2026-02-05
73.9%
#16733: fix(ui): avoid injected newlines when tool output is hidden
by jp117 · 2026-02-15
73.9%
#5992: Fix: /status shows correct think level when used with /think (fixes...
by simran122 · 2026-02-01
73.7%
#23594: test(tui): fix mock typing in command handler tests
by Sashamine · 2026-02-22
73.7%