openclaw/src/auto-reply/reply
Joey Krug 42b1271c85 fix: parallelize deferred media calls and search full prompt outside file blocks
Parallelize deferred media understanding calls in resolveSummaryLines and
applyDeferredMediaToQueuedRuns using Promise.allSettled so media API calls
run concurrently while summary line order stays sequential.

Replace findFirstOccurrenceBeforeFileBlocks (which truncated at the first
<file> tag) with findLastOccurrenceOutsideFileBlocks that searches the full
prompt via lastIndexOf and skips matches inside <file>…</file> blocks. This
fixes body replacement when thread/history context has extracted file blocks
before the current queued message body.

Add regression test for body appearing after thread-history file blocks.
2026-03-15 18:09:44 -04:00
..
commands-acp feat(feishu): add ACP and subagent session binding (#46819) 2026-03-15 10:33:49 -05:00
commands-subagents Subagents: restrict follow-up messaging scope (#46801) 2026-03-15 09:44:51 -07:00
exec
export-html fix: address markdown image review feedback 2026-03-07 19:46:41 +05:30
queue fix: parallelize deferred media calls and search full prompt outside file blocks 2026-03-15 18:09:44 -04:00
test-fixtures Refactor: split ACP dispatch delivery and settings 2026-03-01 20:39:24 +01:00
abort-cutoff.ts refactor(reply): split abort cutoff and timeout policy modules 2026-02-26 14:00:35 +01:00
abort.test.ts fix(telegram): route native topic commands to the active session (#38871) 2026-03-07 19:01:16 +05:30
abort.ts fix: harden subagent control boundaries 2026-03-11 01:44:38 +00:00
acp-projector.test.ts refactor(tests): dedupe tool, projector, and delivery fixtures 2026-03-03 01:06:00 +00:00
acp-projector.ts ACP: rename stream char limits to output/sessionUpdate 2026-03-01 20:39:24 +01:00
acp-reset-target.ts ACP: add persistent Discord channel and Telegram topic bindings (#34873) 2026-03-05 09:38:12 +01:00
acp-stream-settings.test.ts ACP: rename stream char limits to output/sessionUpdate 2026-03-01 20:39:24 +01:00
acp-stream-settings.ts refactor(commands): unify repeated ACP and routing flows 2026-03-02 05:20:19 +00:00
agent-runner-execution.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
agent-runner-helpers.test.ts test(reply): replace heavy resets in media and runner helper specs 2026-02-22 08:15:28 +00:00
agent-runner-helpers.ts refactor(reply): share verbose gate helpers 2026-02-18 18:25:25 +00:00
agent-runner-memory.ts refactor: share embedded run and discord test helpers 2026-03-13 23:35:28 +00:00
agent-runner-payloads.test.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
agent-runner-payloads.ts fix(mattermost): prevent duplicate messages when block streaming + threading are active (#41362) 2026-03-12 03:15:17 -04:00
agent-runner-reminder-guard.ts refactor(auto-reply,telegram,config): extract guard and forum helpers 2026-03-02 23:48:11 +00:00
agent-runner-utils.test.ts Telegram: exec approvals for OpenCode/Codex (#37233) 2026-03-09 23:04:35 -04:00
agent-runner-utils.ts refactor: share embedded run and discord test helpers 2026-03-13 23:35:28 +00:00
agent-runner.media-paths.test.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
agent-runner.misc.runreplyagent.test.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
agent-runner.runreplyagent.e2e.test.ts Fix stale runtime model reuse on session reset (#41173) 2026-03-10 14:02:43 -07:00
agent-runner.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
audio-tags.ts
bash-command.ts refactor(security): unify command gating and blocked-key guards 2026-02-21 13:04:37 +01:00
block-reply-coalescer.ts
block-reply-pipeline.test.ts fix(mattermost): prevent duplicate messages when block streaming + threading are active (#41362) 2026-03-12 03:15:17 -04:00
block-reply-pipeline.ts fix(mattermost): prevent duplicate messages when block streaming + threading are active (#41362) 2026-03-12 03:15:17 -04:00
block-streaming.test.ts feat: ACP thread-bound agents (#23580) 2026-02-26 11:00:09 +01:00
block-streaming.ts refactor: share provider chunk context resolution 2026-03-13 23:35:27 +00:00
body.ts
btw-command.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
channel-context.ts feat(telegram/acp): Topic Binding, Pin Binding Message, Fix Spawn Param Parsing (#36683) 2026-03-06 02:17:50 +01:00
command-gates.ts Commands: require owner for /config and /debug (#44305) 2026-03-12 14:58:14 -04:00
commands-acp.test.ts ACP: require admin scope for mutating internal actions (#46789) 2026-03-15 09:28:44 -07:00
commands-acp.ts ACP: require admin scope for mutating internal actions (#46789) 2026-03-15 09:28:44 -07:00
commands-allowlist.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-approve.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-bash.ts refactor(security): unify command gating and blocked-key guards 2026-02-21 13:04:37 +01:00
commands-btw.test.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
commands-btw.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
commands-compact.ts fix: pass agentDir to /compact command for agent-specific auth (#24133) 2026-02-23 02:33:35 -05:00
commands-config.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
commands-context-report.test.ts Agent: unify bootstrap truncation warning handling (#32769) 2026-03-03 16:28:38 -05:00
commands-context-report.ts Agent: unify bootstrap truncation warning handling (#32769) 2026-03-03 16:28:38 -05:00
commands-context.ts Telegram: exec approvals for OpenCode/Codex (#37233) 2026-03-09 23:04:35 -04:00
commands-core.test.ts fix(hooks): use resolveAgentIdFromSessionKey in runBeforeReset (#39875) 2026-03-08 19:07:28 +03:00
commands-core.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
commands-export-session.ts refactor(session): centralize transcript path option resolution 2026-02-22 12:02:38 +01:00
commands-info.ts Channels: add thread-aware model overrides 2026-02-20 19:26:25 -06:00
commands-models.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-plugin.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
commands-session-abort.ts refactor: share abort target apply params 2026-03-13 23:35:27 +00:00
commands-session-lifecycle.test.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-session-store.ts refactor(reply): split abort cutoff and timeout policy modules 2026-02-26 14:00:35 +01:00
commands-session.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-setunset-standard.ts refactor(auto-reply): share standard set/unset slash parsing 2026-02-18 23:09:09 +00:00
commands-setunset.test.ts test(messaging): dedupe parser/proxy/followup test scaffolding 2026-02-19 07:24:02 +00:00
commands-setunset.ts refactor(auto-reply): share slash set/unset command parsing 2026-02-18 17:48:01 +00:00
commands-slash-parse.ts
commands-spawn.test-harness.ts test(auto-reply): dedupe command spawn test harness 2026-02-17 00:11:02 +00:00
commands-status.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
commands-subagents-focus.test.ts feat(telegram/acp): Topic Binding, Pin Binding Message, Fix Spawn Param Parsing (#36683) 2026-03-06 02:17:50 +01:00
commands-subagents-spawn.test.ts test: dedupe auto-reply web and signal flows 2026-02-22 17:11:54 +00:00
commands-subagents.test-mocks.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
commands-subagents.ts fix: harden subagent control boundaries 2026-03-11 01:44:38 +00:00
commands-system-prompt.ts feat: ACP thread-bound agents (#23580) 2026-02-26 11:00:09 +01:00
commands-tts.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
commands-types.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
commands.test-harness.ts test(commands): align slash-command config persistence coverage 2026-03-13 02:51:55 +00:00
commands.test.ts Subagents: restrict follow-up messaging scope (#46801) 2026-03-15 09:44:51 -07:00
commands.ts
config-commands.ts refactor(auto-reply): share standard set/unset slash parsing 2026-02-18 23:09:09 +00:00
config-value.ts
config-write-authorization.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
debug-commands.ts refactor(auto-reply): share standard set/unset slash parsing 2026-02-18 23:09:09 +00:00
directive-handling.auth.test.ts test: dedupe directive auth ref label setup 2026-03-13 23:35:27 +00:00
directive-handling.auth.ts refactor: share auth label suffix formatting 2026-03-13 23:35:27 +00:00
directive-handling.fast-lane.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
directive-handling.impl.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
directive-handling.levels.test.ts fix(agents): prioritize per-model thinking defaults (#30439) 2026-03-02 04:00:02 +00:00
directive-handling.levels.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
directive-handling.model-picker.ts Providers: add Opencode Go support (#42313) 2026-03-11 01:31:06 -04:00
directive-handling.model.test.ts test: dedupe model info reply setup 2026-03-13 23:35:27 +00:00
directive-handling.model.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
directive-handling.params.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
directive-handling.parse.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
directive-handling.persist.ts fix(reasoning): persist off override for discord directives 2026-02-23 00:50:13 +01:00
directive-handling.queue-validation.ts
directive-handling.shared.ts feat: ACP thread-bound agents (#23580) 2026-02-26 11:00:09 +01:00
directive-handling.ts
directive-parsing.ts
directives.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
discord-parent-channel.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
dispatch-acp-delivery.test.ts test(agents): dedupe agent and cron test scaffolds 2026-03-02 07:13:10 +00:00
dispatch-acp-delivery.ts ACP: start typing lifecycle at turn start and harden delivery 2026-03-01 20:39:24 +01:00
dispatch-acp.test.ts acp: harden follow-up reliability and attachments (#41464) 2026-03-09 23:03:50 +01:00
dispatch-acp.ts acp: harden follow-up reliability and attachments (#41464) 2026-03-09 23:03:50 +01:00
dispatch-from-config.test.ts fix(mattermost): carry thread context to non-inbound reply paths (#44283) 2026-03-14 12:23:23 +05:30
dispatch-from-config.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
dispatcher-registry.ts
elevated-allowlist-matcher.ts refactor(security): split elevated allowFrom matcher internals 2026-02-22 22:20:04 +01:00
elevated-unavailable.ts
exec.ts
followup-media.test.ts fix: parallelize deferred media calls and search full prompt outside file blocks 2026-03-15 18:09:44 -04:00
followup-media.ts fix: parallelize deferred media calls and search full prompt outside file blocks 2026-03-15 18:09:44 -04:00
followup-runner.test.ts fix: parallelize deferred media calls and search full prompt outside file blocks 2026-03-15 18:09:44 -04:00
followup-runner.ts Reply: preserve deferred queued media context 2026-03-14 21:55:58 -04:00
get-reply-directives-apply.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
get-reply-directives-utils.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
get-reply-directives.ts feat: add fast mode toggle for OpenAI models 2026-03-12 23:31:31 +00:00
get-reply-inline-actions.skip-when-config-empty.test.ts test: dedupe inline action skip assertions 2026-03-13 23:35:27 +00:00
get-reply-inline-actions.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
get-reply-run.media-only.test.ts Auto-reply: preserve deferred media understanding output 2026-03-14 18:04:05 -04:00
get-reply-run.ts Reply: preserve deferred queued media context 2026-03-14 21:55:58 -04:00
get-reply.message-hooks.test.ts refactor(core): extract shared dedup helpers 2026-03-07 10:41:05 +00:00
get-reply.reset-hooks-fallback.test.ts refactor(core): extract shared dedup helpers 2026-03-07 10:41:05 +00:00
get-reply.test-mocks.ts refactor(core): extract shared dedup helpers 2026-03-07 10:41:05 +00:00
get-reply.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
groups.ts Fix/Complete LINE `requireMention` gating behavior (#35847) 2026-03-07 14:06:07 -06:00
history.ts
inbound-context.ts fix(security): harden spoofed system marker handling 2026-03-02 06:19:16 +00:00
inbound-dedupe.test.ts fix(runtime): duplicate messages, share singleton state across bundled chunks (#43683) 2026-03-12 14:59:27 -04:00
inbound-dedupe.ts fix(runtime): duplicate messages, share singleton state across bundled chunks (#43683) 2026-03-12 14:59:27 -04:00
inbound-meta.test.ts fix(whatsapp): restore direct inbound metadata for relay agents (#31969) 2026-03-02 18:40:04 +00:00
inbound-meta.ts fix(whatsapp): restore direct inbound metadata for relay agents (#31969) 2026-03-02 18:40:04 +00:00
inbound-text.ts fix(security): harden spoofed system marker handling 2026-03-02 06:19:16 +00:00
line-directives.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
memory-flush.test.ts fix: protect bootstrap files during memory flush (#38574) 2026-03-10 12:44:33 +08:00
memory-flush.ts fix: protect bootstrap files during memory flush (#38574) 2026-03-10 12:44:33 +08:00
mentions.test.ts fix(slack): guard against undefined text in includes calls during mention handling 2026-03-02 19:00:08 +00:00
mentions.ts fix: harden mention pattern regex compilation 2026-03-15 08:44:12 -07:00
message-preprocess-hooks.test.ts refactor: unify message hook mapping and async dispatch 2026-03-02 22:51:28 +00:00
message-preprocess-hooks.ts refactor: unify message hook mapping and async dispatch 2026-03-02 22:51:28 +00:00
model-selection.test.ts refactor: dedupe agent and reply runtimes 2026-03-02 19:57:33 +00:00
model-selection.ts fix: avoid ineffective dynamic imports 2026-03-13 01:33:37 +00:00
normalize-reply.ts Slack: add opt-in interactive reply directives (#44607) 2026-03-13 14:08:04 -07:00
origin-routing.test.ts refactor: centralize followup origin routing helpers 2026-02-24 23:28:58 +00:00
origin-routing.ts refactor: centralize followup origin routing helpers 2026-02-24 23:28:58 +00:00
post-compaction-context.test.ts test: dedupe post compaction legacy fallback checks 2026-03-13 23:35:27 +00:00
post-compaction-context.ts fix(agents): rephrase session reset prompt to avoid Azure content filter (#43403) 2026-03-13 15:07:03 +05:30
provider-dispatcher.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
queue-policy.test.ts refactor: consolidate typing lifecycle and queue policy 2026-02-25 02:16:03 +00:00
queue-policy.ts refactor: consolidate typing lifecycle and queue policy 2026-02-25 02:16:03 +00:00
queue.ts fix: apply media understanding to followup-queued messages (#44682) 2026-03-14 13:40:52 -04:00
reply-delivery.ts fix(mattermost): prevent duplicate messages when block streaming + threading are active (#41362) 2026-03-12 03:15:17 -04:00
reply-directives.ts
reply-dispatcher.ts Slack: add opt-in interactive reply directives (#44607) 2026-03-13 14:08:04 -07:00
reply-elevated.test.ts test: dedupe elevated permission assertions 2026-03-13 23:35:27 +00:00
reply-elevated.ts refactor: share trimmed string entry normalization 2026-03-07 23:27:51 +00:00
reply-flow.test.ts Slack: add opt-in interactive reply directives (#44607) 2026-03-13 14:08:04 -07:00
reply-inline-whitespace.test.ts refactor: extract shared sandbox and gateway plumbing 2026-03-02 23:16:47 +00:00
reply-inline-whitespace.ts refactor: extract shared sandbox and gateway plumbing 2026-03-02 23:16:47 +00:00
reply-inline.test.ts fix(auto-reply): preserve newlines in stripInlineStatus and extractInlineSimpleCommand 2026-03-02 22:43:10 +00:00
reply-inline.ts refactor: extract shared sandbox and gateway plumbing 2026-03-02 23:16:47 +00:00
reply-media-paths.test.ts fix: normalize reply media paths 2026-03-07 10:52:16 +05:30
reply-media-paths.ts fix: normalize reply media paths 2026-03-07 10:52:16 +05:30
reply-payloads.test.ts fix(routing): unify session delivery invariants for duplicate suppression (#33786) 2026-03-03 21:40:38 -06:00
reply-payloads.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
reply-plumbing.test.ts fix(mattermost): pass payload.replyToId as root_id for threaded replies (#27744) 2026-03-08 14:13:13 +05:30
reply-reference.ts
reply-state.test.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
reply-tags.ts
reply-threading.ts style: align formatting with oxfmt 0.33 2026-02-18 01:34:35 +00:00
reply-utils.test.ts Slack: add opt-in interactive reply directives (#44607) 2026-03-13 14:08:04 -07:00
response-prefix-template.ts
route-reply.test.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
route-reply.ts Add /btw side questions (#45444) 2026-03-14 17:27:54 +02:00
session-delivery.test.ts fix(session): tighten direct-session webchat routing matching (#37867) 2026-03-06 08:53:16 -05:00
session-delivery.ts fix(session): tighten direct-session webchat routing matching (#37867) 2026-03-06 08:53:16 -05:00
session-fork.ts refactor: extract session init helpers 2026-03-03 02:37:23 +00:00
session-hooks-context.test.ts refactor: modularize plugin runtime and test hooks 2026-03-03 02:06:58 +00:00
session-hooks.ts refactor: extract session init helpers 2026-03-03 02:37:23 +00:00
session-reset-model.ts fix(telegram): allow fallback models in /model validation (#40105) 2026-03-12 13:55:51 +01:00
session-reset-prompt.test.ts fix(agents): rephrase session reset prompt to avoid Azure content filter (#43403) 2026-03-13 15:07:03 +05:30
session-reset-prompt.ts fix(agents): rephrase session reset prompt to avoid Azure content filter (#43403) 2026-03-13 15:07:03 +05:30
session-run-accounting.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
session-updates.ts fix: persist context-engine auto-compaction counts (#42629) 2026-03-14 16:22:10 -07:00
session-usage.ts fix(session): harden usage accounting and memory flush recovery 2026-03-02 00:07:29 +00:00
session.test.ts fix(gateway): invalidate bootstrap cache on session rollover (openclaw#38535) 2026-03-06 23:46:02 -06:00
session.ts refactor: share auto reply helper fixtures 2026-03-13 23:35:28 +00:00
slack-directives.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
stage-sandbox-media.ts fix(imessage): sanitize SCP remote path to prevent shell metacharacter injection 2026-03-14 00:38:14 +01:00
streaming-directives.ts fix(auto-reply): tighten silent token semantics and prefix streaming 2026-02-26 16:04:48 +05:30
strip-inbound-meta.test.ts fix(chat): preserve sender labels in dashboard history 2026-03-08 09:17:02 +05:30
strip-inbound-meta.ts fix(chat): preserve sender labels in dashboard history 2026-03-08 09:17:02 +05:30
subagents-utils.test.ts refactor(subagents): share run target resolution 2026-02-18 18:25:25 +00:00
subagents-utils.ts fix(subagents): announce delivery with descendant gating, frozen result refresh, and cron retry (#35080) 2026-03-05 19:20:24 -08:00
telegram-context.test.ts feat(telegram/acp): Topic Binding, Pin Binding Message, Fix Spawn Param Parsing (#36683) 2026-03-06 02:17:50 +01:00
telegram-context.ts refactor: remove channel shim directories, point all imports to extensions (#45967) 2026-03-14 03:43:07 -07:00
test-ctx.ts
test-helpers.ts fix(ui): stop dashboard chat history reload storm (#45541) 2026-03-13 19:19:53 -05:00
typing-mode.ts fix: harden typing lifecycle and cross-channel suppression 2026-02-26 17:01:09 +01:00
typing-persistence.test.ts fix(typing): stop keepalive restarts after run completion (land #27413, thanks @widingmarcus-cyber) 2026-02-26 11:42:38 +00:00
typing-policy.test.ts refactor: unify typing dispatch lifecycle and policy boundaries 2026-02-26 17:36:16 +01:00
typing-policy.ts refactor: unify typing dispatch lifecycle and policy boundaries 2026-02-26 17:36:16 +01:00
typing.ts refactor: unify typing dispatch lifecycle and policy boundaries 2026-02-26 17:36:16 +01:00
untrusted-context.ts