Skip to content

Commit cfdd436

Browse files
committed
docs: clarify typing indicator activity triggers
1 parent 392bfb3 commit cfdd436

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

docs/concepts/typing-indicators.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ When `agents.defaults.typingMode` is **unset**, OpenClaw keeps the legacy behavi
1515

1616
- **Direct chats**: typing starts immediately once the model loop begins.
1717
- **Group chats with a mention**: typing starts immediately.
18-
- **Group chats without a mention**: typing starts only when message text begins streaming.
18+
- **Group chats without a mention**: typing starts when the admitted run has
19+
user-visible activity, such as harness execution activity or message text.
1920
- **Heartbeat runs**: typing starts when the heartbeat run begins if the
2021
resolved heartbeat target is a typing-capable chat and typing is not disabled.
2122

@@ -26,13 +27,14 @@ Set `agents.defaults.typingMode` to one of:
2627
- `never` - no typing indicator, ever.
2728
- `instant` - start typing **as soon as the model loop begins**, even if the run
2829
later returns only the silent reply token.
29-
- `thinking` - start typing on the **first reasoning delta** (requires
30-
`reasoningLevel: "stream"` for the run).
31-
- `message` - start typing on the **first non-silent text delta** (ignores
32-
the `NO_REPLY` silent token).
30+
- `thinking` - start typing on the **first reasoning delta** or on active
31+
harness execution after the turn is accepted.
32+
- `message` - start typing on the **first user-visible reply activity**, such as
33+
active harness execution or a non-silent text delta. Silent reply tokens such
34+
as `NO_REPLY` do not count as text activity.
3335

3436
Order of "how early it fires":
35-
`never``message``thinking``instant`
37+
`never``message`/`thinking``instant`
3638

3739
## Configuration
3840

@@ -62,11 +64,10 @@ Override mode or cadence per session:
6264

6365
## Notes
6466

65-
- `message` mode won't show typing for silent-only replies when the whole
66-
payload is the exact silent token (for example `NO_REPLY` / `no_reply`,
67-
matched case-insensitively).
68-
- `thinking` only fires if the run streams reasoning (`reasoningLevel: "stream"`).
69-
If the model doesn't emit reasoning deltas, typing won't start.
67+
- `message` mode does not start from silent reply tokens, but active execution
68+
can still show typing before any assistant text is available.
69+
- `thinking` still reacts to streamed reasoning (`reasoningLevel: "stream"`),
70+
and it can also start from active execution before reasoning deltas arrive.
7071
- Heartbeat typing is a liveness signal for the resolved delivery target. It
7172
starts at heartbeat run start instead of following `message` or `thinking`
7273
stream timing. Set `typingMode: "never"` to disable it.

0 commit comments

Comments
 (0)