openclaw/src/auto-reply
Omar Shahine 6f9da38401
feat(agents): rename model- and user-facing scheduler strings to automations (#114852)
* fix(agents): teach canonical automations tool in fallback guidance and reuse the identity source

Review follow-ups: the structured-list fallback still taught models the cron
tool; the cron-scope test echoed its own stub; MCP serve allowlist and voice
confirmation hardcoded the name instead of the canonical constant.

* fix(mcp): place automations identity import outside the header comment

* feat(agents): rename model- and user-facing scheduler strings to automations

Rewrites every string the model or user sees that names the feature:
tool label and terminal presentation, display-summary preset, subagents
catalog description, heartbeat guidance, subagent prompt, session labels
(Cron: -> Automation:), default job name, unattended-run preamble, delivery
awareness text, task-ledger progress summary, failure alerts, auto-disable
notification, model preflight diagnostics, validation errors, and the
shipped workspace AGENTS.md template. Adds a system-prompt backstop rule on
the automations tool line: the feature is called automations, never cron.

Cron stays only where it names the schedule syntax ({kind:"cron"}, cron
expressions), config keys (cron.triggers.enabled), RPC method names, and
session-key namespaces. Test fixtures with legacy labels are kept as
stored-data coverage. Part of RFC openclaw/rfcs#50 Phase 1 (PR B).

* docs(templates): keep workspace template on the live docs anchor until the docs PR renames it

* fix(cron): rename remaining failure-notification producers and stale test expectations

Codex review follow-ups: the per-run failure notification (server-cron-
notifications) and the doctor legacy-notify advisory still said Cron job;
failure-alert and incomplete-turn suites still asserted the old wording.

* chore(plugin-sdk): re-emit plugin-state test runtime dts

CI's extension-boundary runner holds stale tsgo incremental state whose
cached plugin-state-test-runtime.d.ts predates the keyed-store re-exports;
the freshness stamp validates it and reruns reuse the same sticky disk.
Touching the module forces incremental emit to regenerate the declaration.
Fresh builds of this head (local exact CI command and a forced Testbox
rebuild) both emit the exports correctly.

* fix(agents): rename residual model- and operator-facing cron prose

Found in combined dev-gateway E2E: fallback tool line still told models the
scheduler tool is cron; heartbeat scratch description, cron model preflight
rejection, doctor and Claw prose still said cron jobs.

* fix(agents): finish model-facing scheduler strings flagged in review

Loop work-order prompts, subagents tool description, cron-tool write errors,
and the headless exec denial label now say automations; loop builders covered
by prompt assertions; snapshots regenerated.

* chore(agents): refresh generated baselines and live docs anchor after rebase onto main

* fix(agents): rename new main-side cron tool error expectations to automations

* fix(gateway): rename main-side cron notification test expectations to automations

* chore(agents): apply review moves - automations commands in workspace template, drop unrelated sdk comment

---------

Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com>
2026-07-30 08:54:55 -07:00
..
reply feat(agents): rename model- and user-facing scheduler strings to automations (#114852) 2026-07-30 08:54:55 -07:00
test-helpers fix(core): make indexed access explicit across remaining src (NUIA phase 3b) (#104773) 2026-07-11 20:47:34 -07:00
usage-bar fix(usage-bar): clear dead watcher reference after transient error (#109462) 2026-07-18 17:02:20 -07:00
chunk.test.ts fix: trim trailing whitespace from final reply chunks (#114973) 2026-07-28 02:41:42 -04:00
chunk.ts refactor(channels): remove v2026.7.2-gated compat (flat streaming keys, group intro hint) (#113533) 2026-07-25 01:09:25 -07:00
command-auth.owner-default.test.ts fix(commands): require explicit owner authority 2026-07-14 17:49:20 +05:30
command-auth.ts fix(commands): require explicit owner authority 2026-07-14 17:49:20 +05:30
command-control.test.ts refactor(prompt): use plain inbound context labels and drop system-tag sanitizer (#112000) 2026-07-27 11:27:53 +10:00
command-detection.runtime-types.ts
command-detection.ts fix(channels): restore assistant context after restart (#112548) 2026-07-21 23:45:01 -07:00
command-status-builders.ts
command-turn-context.test.ts refactor(auto-reply): normalize inbound text once (#113179) 2026-07-23 17:39:01 -07:00
command-turn-context.ts refactor(auto-reply): normalize inbound text once (#113179) 2026-07-23 17:39:01 -07:00
command-turn-detection.ts refactor(auto-reply): normalize inbound text once (#113179) 2026-07-23 17:39:01 -07:00
commands-args.test.ts
commands-args.ts
commands-args.types.ts refactor: localize internal reply and plugin types (#101666) 2026-07-07 05:51:47 -07:00
commands-registry-list.ts
commands-registry-normalize.ts fix(core): make indexed access explicit across remaining src (NUIA phase 3b) (#104773) 2026-07-11 20:47:34 -07:00
commands-registry.data.ts
commands-registry.runtime-types.ts
commands-registry.runtime.ts
commands-registry.shared.ts feat(cron): default agent turns to the current conversation, add /loop, tighten cron tool surface (#114328) 2026-07-27 01:44:38 -04:00
commands-registry.test.ts feat(cron): default agent turns to the current conversation, add /loop, tighten cron tool surface (#114328) 2026-07-27 01:44:38 -04:00
commands-registry.ts fix(core): make indexed access explicit across remaining src (NUIA phase 3b) (#104773) 2026-07-11 20:47:34 -07:00
commands-registry.types.ts feat: support GPT-5.6 Ultra across OpenClaw and Codex runtimes (#98021) 2026-07-10 15:23:24 +01:00
commands-text-routing.ts
dispatch-dispatcher.ts fix(auto-reply): don't block reply completion on transcript mirror (#99549) 2026-07-03 18:19:58 -07:00
dispatch.freshness.test.ts fix(channels): preserve visible partial delivery 2026-07-23 20:34:39 -05:00
dispatch.test.ts fix: apply outbound hooks before webchat projection 2026-07-27 17:49:12 -05:00
dispatch.ts fix: Slack replies recover after gateway startup replay (#115991) 2026-07-29 12:25:45 -07:00
envelope.test.ts fix(messages): validate configured envelope timezone (#116103) 2026-07-30 07:18:13 +08:00
envelope.ts fix(messages): validate configured envelope timezone (#116103) 2026-07-30 07:18:13 +08:00
fallback-state.test.ts refactor(sessions): consolidate entry state (#115299) 2026-07-28 14:31:02 -04:00
fallback-state.ts refactor(sessions): consolidate entry state (#115299) 2026-07-28 14:31:02 -04:00
get-reply-options.types.ts fix(cli): avoid duplicate commentary delivery (#115596) 2026-07-29 01:40:55 -04:00
group-activation.ts
handoff-summarizer.ts refactor: localize internal reply and plugin types (#101666) 2026-07-07 05:51:47 -07:00
heartbeat-filter.browser-import.test.ts
heartbeat-filter.test.ts fix(heartbeat): filter acknowledged reasoning turns (#95796) (#115522) 2026-07-29 00:00:43 -04:00
heartbeat-filter.ts fix(heartbeat): filter acknowledged reasoning turns (#95796) (#115522) 2026-07-29 00:00:43 -04:00
heartbeat-reply-payload.test.ts fix(heartbeat): stop reporting success after tool failures (#107735) 2026-07-16 01:23:06 -07:00
heartbeat-reply-payload.ts docs(heartbeat): align retired config options with fixed runtime policies (#113455) 2026-07-25 06:52:27 -07:00
heartbeat-tool-response.test.ts feat(cron): database-backed heartbeat monitor scratch replaces HEARTBEAT.md (#112967) 2026-07-23 11:10:49 -07:00
heartbeat-tool-response.ts feat(cron): database-backed heartbeat monitor scratch replaces HEARTBEAT.md (#112967) 2026-07-23 11:10:49 -07:00
heartbeat-transcript-turns.ts feat(skills): scan session history for workshop ideas (#106766) 2026-07-13 16:15:50 -07:00
heartbeat.test.ts feat(cron): convert heartbeat tasks: entries into independent cron jobs (#113165) 2026-07-23 16:13:08 -07:00
heartbeat.ts feat(agents): rename model- and user-facing scheduler strings to automations (#114852) 2026-07-30 08:54:55 -07:00
inbound-debounce.ts fix: prevent sustained inbound messages from starving delivery (#115682) 2026-07-29 03:44:35 -04:00
inbound.test.ts fix: prevent sustained inbound messages from starving delivery (#115682) 2026-07-29 03:44:35 -04:00
media-note.test.ts refactor(media): delete internal MsgContext.Media* parallel fields for fact-only runtime (#113042) 2026-07-23 11:45:40 -07:00
media-note.ts refactor(media): read persisted media facts first across all consumers (#113496) 2026-07-24 23:02:53 -07:00
media-understanding.test-fixtures.ts
model-runtime.ts fix(status): route usage to session-selected model 2026-06-25 08:31:54 -07:00
model.test.ts
model.ts
reply-payload.test.ts refactor(auto-reply): trim internal export surface (#106409) 2026-07-13 06:17:20 -07:00
reply-payload.ts feat(gateway): manage audio and video attachments end to end (#115842) 2026-07-29 07:27:36 -04:00
reply.block-streaming.test.ts refactor(auto-reply): trim internal dead exports (#107678) 2026-07-14 10:06:14 -07:00
reply.directive.directive-behavior.e2e-harness.ts refactor(sessions): collapse legacy JSON store (#113075) 2026-07-23 09:36:48 -07:00
reply.directive.directive-behavior.e2e-mocks.ts refactor: own model discovery by runtime lifecycle (#111173) 2026-07-19 05:30:54 -07:00
reply.directive.directive-behavior.prefers-alias-matches-fuzzy-selection-is-ambiguous.test.ts
reply.directive.directive-behavior.shows-current-verbose-level-verbose-has-no.test.ts fix(ui): repair settings titles, scope form-unsafe banner, consolidate advanced settings (#113160) 2026-07-25 00:51:57 -07:00
reply.directive.parse.test.ts fix(auto-reply): stop level directives from eating the next message word (#97929) 2026-06-30 18:51:51 -07:00
reply.media-note.test.ts feat(media): thread ordered media facts through the prompt path (#112601) 2026-07-22 01:14:49 -07:00
reply.raw-body.test.ts refactor(prompt): use plain inbound context labels and drop system-tag sanitizer (#112000) 2026-07-27 11:27:53 +10:00
reply.runtime.ts
reply.stage-sandbox-media.scp-remote-path.test.ts refactor(media): delete internal MsgContext.Media* parallel fields for fact-only runtime (#113042) 2026-07-23 11:45:40 -07:00
reply.test-harness.ts refactor: own model discovery by runtime lifecycle (#111173) 2026-07-19 05:30:54 -07:00
reply.triggers.group-intro-prompts.cases.ts test(auto-reply): install channel metadata for group prompt cases (#108113) 2026-07-15 00:43:03 -07:00
reply.triggers.trigger-handling.e2e.test.ts refactor(sessions): remove file-era transcript runtime (#113233) 2026-07-27 22:33:24 -04:00
reply.triggers.trigger-handling.filters-usage-summary-current-model-provider.cases.ts refactor: flip sessions and transcripts to sqlite storage (#98236) 2026-07-11 14:50:37 -07:00
reply.triggers.trigger-handling.stages-inbound-media-into-sandbox-workspace.test.ts refactor(media): delete internal MsgContext.Media* parallel fields for fact-only runtime (#113042) 2026-07-23 11:45:40 -07:00
reply.ts refactor(deadcode): trim mid-size src exports (#105888) 2026-07-13 00:42:56 -07:00
send-policy.ts
sender-identity.ts
source-reply-delivery-mode.ts refactor(agents): centralize message-tool and direct-visibility predicates (#114720) 2026-07-27 16:51:20 -04:00
source-reply-delivery-mode.types.ts fix(agents): wake owning session after generated-media direct delivery (#108024) 2026-07-15 12:54:12 -07:00
stage-sandbox-media.test-harness.ts refactor(media): delete internal MsgContext.Media* parallel fields for fact-only runtime (#113042) 2026-07-23 11:45:40 -07:00
status.runtime.ts
status.test.ts refactor(sessions): consolidate entry state (#115299) 2026-07-28 14:31:02 -04:00
status.tools.test.ts
status.ts refactor(deadcode): trim mid-size src exports (#105888) 2026-07-13 00:42:56 -07:00
templating.ts refactor(prompt): use plain inbound context labels and drop system-tag sanitizer (#112000) 2026-07-27 11:27:53 +10:00
thinking.shared.ts refactor(deadcode): trim mid-size src exports (#105888) 2026-07-13 00:42:56 -07:00
thinking.test.ts fix(models): expose custom max and ultra reasoning tiers (#115690) 2026-07-29 03:33:30 -04:00
thinking.ts fix(models): expose custom max and ultra reasoning tiers (#115690) 2026-07-29 03:33:30 -04:00
tokens.test.ts fix(auto-reply): normalize newline-delimited silent tokens (#114500) 2026-07-27 11:18:20 -04:00
tokens.ts fix(auto-reply): normalize newline-delimited silent tokens (#114500) 2026-07-27 11:18:20 -04:00
tool-meta.test.ts chore(tooling): enforce formatting and refresh TypeScript checks (#104239) 2026-07-11 01:09:51 -07:00
tool-meta.ts fix(agents): compare shell tool names case-insensitively and stop re-parsing tool labels 2026-07-30 19:52:08 +09:00
types.ts refactor(deadcode): trim mid-size src exports (#105888) 2026-07-13 00:42:56 -07:00