openclaw/src/auto-reply
codexGW 6fb082e131
fix(typing): call markDispatchIdle in followup runner to prevent stuck indicator (#26881)
The followup runner (used for queued messages, inter-agent sends,
heartbeat followups, etc.) only called typing.markRunComplete() in
its finally block.  The typing controller requires BOTH markRunComplete
AND markDispatchIdle to trigger cleanup — but markDispatchIdle was
only wired through the buffered dispatcher path, which followup turns
bypass entirely.

This caused the typing indicator to persist indefinitely on channels
like Telegram when the agent replied with NO_REPLY or produced empty
payloads, because the keepalive loop was never stopped.

Adds markDispatchIdle() alongside markRunComplete() in the followup
runner's finally block, and four test cases covering NO_REPLY, empty
payloads, agent errors, and successful delivery.

Complements #26295 which addressed the channel-level callback layer.

Fixes #26595

Co-authored-by: Samantha <samantha@Samanthas-Mac-mini.local>
2026-02-26 00:53:38 +00:00
..
reply fix(typing): call markDispatchIdle in followup runner to prevent stuck indicator (#26881) 2026-02-26 00:53:38 +00:00
chunk.test.ts test: streamline auto-reply and tts suites 2026-02-21 21:44:01 +00:00
chunk.ts fix(security): harden account-key handling against prototype pollution 2026-02-24 01:09:31 +00:00
command-auth.ts fix(commands): restrict commands.allowFrom to sender principals 2026-02-24 02:01:01 +00:00
command-control.test.ts fix(commands): restrict commands.allowFrom to sender principals 2026-02-24 02:01:01 +00:00
command-detection.ts
commands-args.test.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
commands-args.ts refactor(auto-reply): share command action arg formatting 2026-02-18 17:23:44 +00:00
commands-registry.data.ts feat: thread-bound subagents on Discord (#21805) 2026-02-21 16:14:55 +01:00
commands-registry.test.ts fix(security): harden runtime command override gating 2026-02-21 12:49:57 +01:00
commands-registry.ts fix(security): harden runtime command override gating 2026-02-21 12:49:57 +01:00
commands-registry.types.ts
dispatch.test.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
dispatch.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
envelope.test.ts refactor(test): dedupe env setup in envelope and config tests 2026-02-21 19:13:47 +00:00
envelope.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
fallback-state.test.ts feat(auto-reply): add model fallback lifecycle visibility in status, verbose logs, and WebUI (#20704) 2026-02-19 14:33:02 -08:00
fallback-state.ts feat(auto-reply): add model fallback lifecycle visibility in status, verbose logs, and WebUI (#20704) 2026-02-19 14:33:02 -08:00
group-activation.ts
heartbeat-reply-payload.ts refactor(heartbeat): share reply payload picker 2026-02-15 04:37:52 +00:00
heartbeat.test.ts
heartbeat.ts
inbound-debounce.ts Telegram: coalesce forwarded text+media bursts into one inbound turn (#19476) 2026-02-22 21:41:09 +05:30
inbound.test.ts Telegram: coalesce forwarded text+media bursts into one inbound turn (#19476) 2026-02-22 21:41:09 +05:30
media-note.test.ts chore: Fix types in tests 42/N. 2026-02-17 15:50:07 +09:00
media-note.ts
media-understanding.test-fixtures.ts refactor(agent): dedupe harness and command workflows 2026-02-16 14:59:30 +00:00
model-runtime.ts feat(auto-reply): add model fallback lifecycle visibility in status, verbose logs, and WebUI (#20704) 2026-02-19 14:33:02 -08:00
model.test.ts fix(auto-reply): preserve OpenRouter @preset model directives (#23769) 2026-02-22 12:46:04 -05:00
model.ts fix(auto-reply): preserve OpenRouter @preset model directives (#23769) 2026-02-22 12:46:04 -05:00
reply.block-streaming.test.ts test(reply): replace heavy resets in media and runner helper specs 2026-02-22 08:15:28 +00:00
reply.directive.directive-behavior.applies-inline-reasoning-mixed-messages-acks-immediately.test.ts test: consolidate directive behavior suites for faster runs 2026-02-23 21:48:12 +00:00
reply.directive.directive-behavior.defaults-think-low-reasoning-capable-models-no.test.ts test: fix gate regressions 2026-02-24 04:39:53 +00:00
reply.directive.directive-behavior.e2e-harness.ts test(auto-reply): share elevated-off status assertion 2026-02-18 17:01:22 +00:00
reply.directive.directive-behavior.e2e-mocks.ts
reply.directive.directive-behavior.model-directive-test-utils.ts test: dedupe fixtures and test harness setup 2026-02-23 05:45:54 +00:00
reply.directive.directive-behavior.prefers-alias-matches-fuzzy-selection-is-ambiguous.test.ts test: consolidate directive behavior suites for faster runs 2026-02-23 21:48:12 +00:00
reply.directive.directive-behavior.shows-current-verbose-level-verbose-has-no.test.ts test: consolidate directive behavior suites for faster runs 2026-02-23 21:48:12 +00:00
reply.directive.parse.test.ts
reply.heartbeat-typing.test.ts refactor(test): centralize trigger and cron test helpers 2026-02-22 20:04:51 +00:00
reply.media-note.test.ts test(reply): replace heavy resets in media and runner helper specs 2026-02-22 08:15:28 +00:00
reply.raw-body.test.ts test(core): use lightweight clears in runtime and telegram setup 2026-02-22 08:09:14 +00:00
reply.test-harness.ts
reply.triggers.group-intro-prompts.cases.ts test: consolidate trigger handling suites 2026-02-23 19:41:47 +00:00
reply.triggers.trigger-handling.filters-usage-summary-current-model-provider.cases.ts test: prune redundant trigger handling integration coverage 2026-02-23 20:00:11 +00:00
reply.triggers.trigger-handling.stages-inbound-media-into-sandbox-workspace.test.ts test: consolidate trigger handling suites 2026-02-23 19:41:47 +00:00
reply.triggers.trigger-handling.targets-active-session-native-stop.test.ts test: prune redundant trigger handling integration coverage 2026-02-23 20:00:11 +00:00
reply.triggers.trigger-handling.test-harness.ts test: reduce trigger test redundancy and speed up model coverage 2026-02-23 13:41:47 +00:00
reply.ts
send-policy.ts
skill-commands.test.ts
skill-commands.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
stage-sandbox-media.test-harness.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
status.test.ts Providers: skip context1m beta for Anthropic OAuth tokens (#24620) 2026-02-23 12:29:09 -05:00
status.ts fix(tools): improve session_status cache-aware usage reporting 2026-02-23 19:19:45 +00:00
templating.ts fix(telegram): link forwarded messages with comments (#9720) 2026-02-22 21:23:56 +05:30
thinking.test.ts test: remove duplicate extra-high think-level case 2026-02-19 08:30:26 +00:00
thinking.ts refactor(auto-reply): dedupe on/off/full normalization 2026-02-15 14:07:28 +00:00
tokens.ts fix(telegram): split streaming preview per assistant block (#22613) 2026-02-21 18:05:23 +05:30
tool-meta.test.ts
tool-meta.ts
types.ts fix: suppress reasoning payloads from generic channel dispatch path 2026-02-24 04:34:49 +00:00