Darren2030
b8f365a82b
fix(tasks): skip discarded registry sort ( #102202 )
...
Preserve the cloned task snapshot and deterministic activity ordering while avoiding the createdAt sort that tasks.list immediately replaces.
Closes #101716
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 03:12:35 +01:00
Peter Lee
cab8040b14
fix(cron): preserve cron context in session entry for async completion wakes ( #101078 )
...
* fix(cron): preserve cron context in session entry for async completion wakes (#99919 )
Persist bootstrapContextRunKind on the session entry after cron agent
runs, and restore provider/model/thinking/runKind from the session
entry into directAgentParams when an async completion wake (e.g. media
generation) resumes a cron session.
Before this fix, async completion wakes lost the original cron run
context and fell back to account defaults, causing multi-step cron tasks
to silently dead-end after the first async media generation call.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* fix(cron): authorize model override on trusted in-process dispatch for cron context restoration
* fix(cron): persist bootstrapContextRunKind on base session entry for async completion wakes
* fix(cron): route async completion wake to base cron session key instead of ephemeral run key
When the cron run-key fallback fires, record the base cron key as
effectiveSessionKey so deliverDirectSubagentAnnounce can route the
agent call to the persisted session row with its transcript and task
context instead of starting a fresh turn (#99919 ).
* fix(cron): add bootstrapContextRunKind to session entry slot keys and declare loadRequesterSessionEntry return type
* fix(cron): rebase onto upstream main, restore upstream agent-command behavior while keeping bootstrapContextRunKind persistence
* fix(cron): persist bootstrapContextRunKind from a pre-mutation snapshot to produce a real delta
* fix(cron): move pre-mutation snapshot inside guard so initialEntry is non-optional
* fix(cron): preserve async media continuation context
Co-authored-by: Peter Lee <li.xialong@xydigit.com >
* fix(cron): retain continuation after base cleanup
* test(gateway): complete agent scope mock
* test(gateway): preserve agent scope exports
* test(cron): persist mocked session mutations
* test(cron): model persisted session fixtures
* fix(agents): snapshot cron continuation retries
* fix(cron): harden async continuation settlement
* test(cron): control continuation recovery clock
* fix(gateway): narrow continuation model row
* chore(changelog): defer cron continuation note
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 03:07:30 +01:00
wm0018
7de325d060
fix: keep task title truncation UTF-16 safe in restart/diagnostic output ( #101934 )
...
* fix: keep task title truncation UTF-16 safe in restart/diagnostic output
Three private copies of formatTaskBlocker share the same pattern —
task.title.slice(0, 80) — which can split surrogate pairs in task
titles, producing broken U+FFFD in restart blocker diagnostics,
gateway reload logs, and CLI run-loop output.
Replace raw slice with truncateUtf16Safe in all three locations.
Relevant files:
- gateway/server-reload-handlers.ts:270
- infra/restart-coordinator.ts:73
- cli/gateway-cli/run-loop.ts:569
* refactor(tasks): centralize restart blocker formatting
* fix(tasks): keep restart formatter side-effect free
* refactor(tasks): tighten restart blocker ownership
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 07:10:25 +01:00
Vincent Koc
f565138ddc
refactor(deadcode): localize core helpers ( #101869 )
2026-07-07 13:16:57 -07:00
Vincent Koc
b88f80940a
refactor: localize internal implementation symbols ( #101831 )
2026-07-07 10:23:36 -07:00
Peter Steinberger
a9582a1bb6
fix: keep bounded text truncation UTF-16 safe ( #101654 )
...
* fix: keep bounded text UTF-16 safe
Co-authored-by: wm0018 <wu.min5@xydigit.com >
Co-authored-by: 廖石荣 0668000909 <liao.shirong@xydigit.com >
Co-authored-by: 0668000787 <ma.weibin@xydigit.com >
* chore: keep UTF-16 release note in PR body
---------
Co-authored-by: wm0018 <wu.min5@xydigit.com >
Co-authored-by: 廖石荣 0668000909 <liao.shirong@xydigit.com >
Co-authored-by: 0668000787 <ma.weibin@xydigit.com >
2026-07-07 13:44:32 +01:00
Peter Steinberger
f53346944d
feat: correlate native search outcomes in audit history ( #98704 )
...
* feat: correlate native search outcomes in audit history
Metadata-only audit ledger for agent runs and tool actions in the shared
state DB: stable event identity, closed action/status/error vocabularies,
one-way-hashed tool-call ids, never-inferred terminal outcomes for native
web-search (explicit completed/failed only; otherwise unknown), bounded
retention, audit.list gateway RPC and openclaw audit CLI. Squashed from
the 82-commit audit stack for replay onto current main.
* feat(audit): add audit.enabled config gate (default on)
The metadata-only audit ledger records by default: an audit trail enabled
only after an incident cannot explain the incident, and the rows are
strictly less sensitive than the transcripts every install already
stores. audit.enabled=false stops new writes at the gateway subscription
seam; audit.list and openclaw audit keep serving existing records until
they expire. Documented in the configuration reference, protocol page,
and CLI reference.
* fix: repair full-matrix CI findings after rebase
- break the dynamic-tools/dynamic-tool-execution import cycle by
extracting resolveCodexToolAbortTerminalReason into a leaf module
- restore main's session-worktree protocol exports lost in the
index.ts auto-merge
- register the audit event writer worker as a knip entry point
- docs table formatting; subagent wait-cancellation test scoped to its
audit intent (outcome + timing) and advanced past main's new
lifecycle-timeout retry grace
2026-07-06 12:30:12 +01:00
Vincent Koc
17777b3a9f
refactor: remove proven dead code across runtime surfaces ( #100823 )
...
* refactor: remove unused internal helpers
* refactor(ui): remove unused compatibility helpers
* refactor(android): remove unused talk cleanup shim
* refactor(android): remove orphaned legacy UI
* refactor: remove unused private exports
* refactor(docs-i18n): remove dead matcher and satisfy lint
2026-07-06 03:31:19 -07:00
Masato Hoshino
153ee2abba
fix(subagents): killed subagent runs stay running in the task list ( #99806 )
...
* fix(subagents): reconcile killed task outcomes
Co-authored-by: masatohoshino <g515hoshino@gmail.com >
* fix(subagents): retain reconciliation marker narrowing
* fix(subagents): honor generations in latest-run views
* test(subagents): align reconciliation fixtures
* fix(subagents): keep steer recovery best effort
* style(tasks): use type-only runtime contract import
* refactor(subagents): keep generation ordering leaf-only
* fix(subagents): sanitize persisted task owner ids
* fix(subagents): preserve failed replay lifecycle reason
* fix(agents): clear killed lifecycle timeout grace
* fix(tasks): preserve canonical subagent outcomes
* fix(agents): continue requester-wide cancellation
* fix(agents): fence yield revival races
* test(agents): mock detached task lookup
* fix: fence subagent cleanup deletion
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-05 02:17:10 -07:00
Dallin Romney
dc3b5df684
refactor(types): remove redundant local aliases ( #100061 )
...
* refactor(models): remove redundant generation model ref alias
* refactor(types): remove redundant local aliases
* refactor(types): preserve shipped model ref type
2026-07-04 16:34:47 -07:00
Dallin Romney
b98c11a46e
refactor(shared): consolidate gateway and stateful runtime lazy loaders ( #99296 )
2026-07-02 18:43:14 -07:00
Ayaan Zaidi
bc7f9a36ec
fix(cron): detach session-targeted cron runs ( #98755 )
...
* fix(cron): detach session-targeted runs
* fix(tasks): cancel stale childless cron rows
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us >
2026-07-01 14:04:25 -07:00
Andi Liao
be94853de0
fix(tasks): recover terminal lost cron rows ( #86088 )
...
* fix(tasks): recover terminal lost cron rows
* fix(tasks): require backing-session lost recovery signal
* fix(tasks): satisfy has-own lint rule
---------
Co-authored-by: Altay <altay@hey.com >
2026-06-29 15:32:47 +03:00
aliahnaf2013-max
f527def0a9
fix(tasks): harden ACP task cancellation ( #97352 )
...
* fix(tasks): harden acp task cancellation
* test(gateway): cover acp task cancellation handler
2026-06-28 12:27:49 -07:00
Vincent Koc
273eed4c51
fix(harness): recover Copilot native subagent tasks
2026-06-23 22:13:59 +08:00
Vincent Koc
0529281430
refactor(sqlite): share numeric column decoding
2026-06-23 03:38:18 +08:00
Vincent Koc
d9a38130b1
chore(deadcode): remove test-only task mutation wrappers
2026-06-22 16:24:57 +08:00
Vincent Koc
1711d0123c
chore(deadcode): remove task registry test-only queries
2026-06-22 15:56:48 +08:00
Vincent Koc
5c0b99ae2b
chore(deadcode): remove unused task flow retry path
2026-06-21 01:00:42 +08:00
Vincent Koc
d29c3a5d6f
refactor(cron): drop duplicate active-job reset alias
2026-06-19 21:15:22 +08:00
Vincent Koc
29e44f5eba
refactor(tasks): drop duplicate maintenance stop alias
2026-06-19 20:56:56 +08:00
Vincent Koc
ccdec2e294
test(tasks): pass temp root into registry helper
2026-06-19 08:55:56 +02:00
JC
5697ab810e
fix(tasks): deliver ACP completions to bound Discord threads ( #89279 )
...
Summary:
- The branch adds a bounded task-registry predicate and tests so successful delegated ACP parent-review comple ... with a Discord channel target and threadId send the parent-review terminal message directly to that thread.
- PR surface: Source +24, Tests +142. Total +166 across 2 files.
- Reproducibility: yes. at source level. Current main queues successful ACP parent-review completions through ... annel/group owner keys, and the linked canonical issue includes matching Discord thread-bound ACP evidence.
Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.
Validation:
- ClawSweeper review passed for head 04ad66b23d .
- Required merge gates passed before the squash merge.
Prepared head SHA: 04ad66b23d
Review: https://github.com/openclaw/openclaw/pull/89279#issuecomment-4597994374
Co-authored-by: anyech <anyech@gmail.com >
2026-06-19 06:31:42 +00:00
Vincent Koc
2e27a37791
refactor(runtime): remove unused helper exports
2026-06-17 20:31:20 +08:00
Vincent Koc
0842cb71eb
refactor(runtime): hide default constants
2026-06-17 18:20:05 +08:00
Vincent Koc
71645bb8a3
refactor(tasks): trim registry helper exports
2026-06-17 16:37:22 +08:00
Vincent Koc
745b011632
refactor(tasks): hide flow audit internals
2026-06-17 16:34:14 +08:00
liuhao1024
e567986355
perf(tasks): memoize reconcileInspectableTasks for same-tick calls ( fixes #73531 ) ( #93607 )
...
Merged via squash.
Prepared head SHA: f010d09db9
Co-authored-by: liuhao1024 <11816344+liuhao1024@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-16 20:31:51 +08:00
Peter Steinberger
1fef20c96b
fix(tasks): preserve requester agent attribution
2026-06-15 07:09:01 -07:00
Alix-007
77d6ad6f65
fix(tasks): honor explicit agentId in gateway tasks.list and repair test helper signature
...
Two code-review findings. (1) gateway taskMatchesAgent fell through to a requester/owner/child session-key scan even when the task had an explicit agentId, so a worker subagent task owned by agent:main:main also matched agentId:main; make explicit task.agentId authoritative and keep the session-key fallback only for legacy records without an agentId, with a gateway tasks.list regression. (2) the cross-agent attribution test passed async (root) to the zero-arg withTaskRegistryTempDir helper (TS2345/TS7006); drop the unused parameter and redundant env assignment.
2026-06-15 07:09:01 -07:00
Alix-007
206ac169e6
fix: attribute spawned task runs to child agent
2026-06-15 07:09:01 -07:00
ghitafilali
b2c5e790b4
fix: restart gateway after isolated cron setup timeout
...
Restart the gateway after isolated cron setup timeouts and harden stale cron-task finalization around restart/reload boundaries.
Verification: focused cron/tasks/CLI regression suites, gateway filesystem/session regression suite, test typecheck, core lint shards, git diff --check, autoreview, Blacksmith Testbox changed gate tbx_01kv2srgbex71w9ce5rwv2wtr4, and clean GitHub PR checks on 13d06b5d6f .
2026-06-14 18:26:27 +08:00
Shakker
9082233a43
fix: unblock timed cron cancellation
2026-06-09 01:22:29 +01:00
Shakker
93313c95a5
fix: preserve cron timeout terminal state
2026-06-09 01:22:29 +01:00
Shakker
372f85d368
fix: avoid cron cancel runtime cycle
2026-06-09 01:22:29 +01:00
ai-hpc
c3cdd4971b
fix(cron): cancel active cron task runs
2026-06-09 01:22:29 +01:00
Shakker
cb17c84410
test: let flow registry helper own state env
2026-06-05 01:51:27 +01:00
Shakker
f57adba400
test: snapshot task executor env
2026-06-05 01:51:27 +01:00
Shakker
9f6ed16a6d
test: snapshot task flow maintenance env
2026-06-05 01:51:27 +01:00
Shakker
99a838fac4
test: snapshot task registry store env
2026-06-05 01:51:27 +01:00
Shakker
064182aff8
test: snapshot task flow audit env
2026-06-05 01:51:26 +01:00
Shakker
0f9bb59b73
test: snapshot task owner state env
2026-06-05 01:51:26 +01:00
Vincent Koc
563dac5989
test(core): remove stale unused test bindings
2026-06-04 17:03:40 -07:00
Shakker
840eaf9c19
test: centralize task flow state env
2026-06-04 23:06:33 +01:00
Shakker
4a6dc1b830
test: scope task registry env setup
2026-06-04 21:06:04 +01:00
Peter Steinberger
bff849b874
docs: document tool and model helpers
2026-06-04 03:45:53 -04:00
Peter Steinberger
606e3d7866
docs: document task execution helpers
2026-06-04 03:44:45 -04:00
Peter Steinberger
cca24cc78b
docs: document task registry helpers
2026-06-04 03:43:46 -04:00
Peter Steinberger
4930766711
docs: document infra flow helpers
2026-06-04 03:42:18 -04:00
Peter Steinberger
0b8aabe864
docs: document auth profile failure policy contract ( #89613 )
...
* docs: document markdown marker renderer
* docs: document rendered markdown chunking
* docs: document markdown text chunking
* docs: document shared text chunking
* docs: document plugin text chunking exports
* docs: document avatar policy constants
* docs: document node match candidates
* docs: document scoped expiring id cache
* docs: document runtime import normalization
* docs: document string sample summaries
* docs: document session usage timeseries types
* docs: document session usage response types
* docs: document manifest frontmatter shapes
* docs: document channel route input metadata
* docs: document pair loop guard settings
* docs: document migration config patch helpers
* docs: document api provider registry
* docs: document tool call repair payloads
* docs: document plugin tool payload helpers
* docs: document lazy promise loader
* docs: document store writer queue state
* docs: document thread binding lifecycle
* docs: document concurrency helper contract
* docs: document gateway client info contract
* docs: document delivery context contracts
* docs: document secret ref defaults contract
* docs: document command gating contract
* docs: document avatar policy contract
* docs: document node match policy
* docs: document message channel normalization
* docs: document boolean parsing contract
* docs: document zod parse helpers
* docs: document direct dm guard policy
* docs: document fixed window limiter contract
* docs: document node presence event contract
* docs: document secret normalization contract
* docs: document progress draft line removal
* docs: document usage formatting contracts
* docs: document agent run status contract
* docs: document runtime import helpers
* docs: document provider utility ownership
* docs: document invalid config helpers
* docs: document json compat parser
* docs: document channel config metadata ownership
* docs: document channel logging helpers
* docs: document sender identity validation ownership
* docs: document string sampling helper
* docs: document global singleton helpers
* docs: document transcript tool helpers
* docs: document exec safe-bin normalization
* docs: document reaction level resolver
* docs: document account snapshot redaction boundary
* docs: document messaging target helpers
* docs: document thread binding messages
* docs: document conversation binding context
* docs: document conversation resolution helper
* docs: document owner display secret retention
* docs: document provider request config types
* docs: document skills config types
* docs: document memory config types
* docs: document imessage config types
* docs: document crestodian config types
* docs: document tools config policies
* docs: document shared config base types
* docs: document channel config contracts
* docs: document openclaw config state types
* docs: document model config contracts
* docs: document shared agent config types
* docs: document agent defaults config types
* docs: document secret input contracts
* docs: document auth config contracts
* docs: document gateway config contracts
* docs: document tool call stream repair contracts
* docs: document memory host facades
* docs: document llm core contracts
* docs: document markdown core contracts
* docs: document gateway connect error contracts
* docs: document gateway protocol primitives
* docs: document gateway frame schemas
* docs: document gateway device schemas
* docs: document gateway environment schemas
* docs: document gateway push schemas
* docs: document gateway plugin schemas
* docs: document gateway artifact schemas
* docs: document gateway command schemas
* docs: document gateway task schemas
* docs: document gateway exec approval schemas
* docs: document gateway secret schemas
* docs: document gateway config schemas
* docs: document gateway snapshot schemas
* docs: document gateway chat schemas
* docs: document gateway wizard schemas
* docs: document gateway node schemas
* docs: document gateway plugin approval schemas
* docs: document gateway talk schemas
* docs: document gateway agent schemas
* docs: document gateway session schemas
* docs: document gateway cron schemas
* docs: document gateway agent model skill schemas
* docs: document gateway skill proposal tool schemas
* docs: document gateway protocol registry
* docs: document gateway channel status schemas
* docs: document gateway schema regression tests
* docs: document gateway schema barrel
* docs: document gateway validator tests
* docs: document gateway primitive push tests
* docs: document gateway contract tests
* docs: document native protocol guard
* docs: document channel schema tests
* docs: document gateway protocol smoke tests
* docs: document gateway protocol entrypoint
* docs: document gateway protocol type exports
* docs: document gateway error codes
* docs: document protocol schema registry
* docs: document talk audio codec
* docs: document talk activation names
* docs: document talk consult questions
* docs: document talk consult tool
* docs: document talk run control contracts
* docs: document talk run control adapter
* docs: document talkback consult queue
* docs: document talk consult transcript guard
* docs: document talk fast context runtime
* docs: document forced talk consult coordinator
* docs: document talk output activity tracker
* docs: document talk event metrics
* docs: document talk diagnostics
* docs: document talk observability hook
* docs: document talk provider resolver
* docs: document talk provider registry
* docs: document talk runtime primitives
* docs: document talk consult controller logs
* docs: document channel identity helpers
* docs: document channel account allowlist helpers
* docs: document channel metadata draft controls
* docs: document channel ingress policy
* docs: document channel sender access gates
* docs: document channel catalog message contracts
* docs: document channel account plugin helpers
* docs: document configured binding helpers
* docs: document channel acp approval config helpers
* docs: document channel bundled config write helpers
* docs: document channel plugin utility contracts
* docs: document channel config access helpers
* docs: document channel message action helpers
* docs: document channel outbound runtime helpers
* docs: document channel pairing promotion helpers
* docs: document channel registry helpers
* docs: document channel setup wizard helpers
* docs: document channel lifecycle status helpers
* docs: document channel target thread helpers
* docs: document channel session binding helpers
* docs: document channel package module probes
* docs: document channel setup wizard contracts
* docs: document channel plugin API barrels
* docs: document channel contract test helpers
* docs: document channel core helpers
* docs: document small core facades
* docs: document provider runtime helpers
* docs: document persistence and realtime helpers
* docs: document mcp and state helpers
* docs: document tool planner contracts
* docs: document music generation runtime
* docs: document crestodian command flow
* docs: document utility helpers
* docs: document node host helpers
* docs: document transcript contracts
* docs: document trajectory export contracts
* docs: document image generation contracts
* docs: document routing helper contracts
* docs: document session helper contracts
* docs: document video generation contracts
* docs: document model catalog contracts
* docs: document proxy capture contracts
* docs: document status rendering contracts
* docs: document test helper contracts
* docs: document wizard setup contracts
* docs: document process contracts
* docs: document memory host sdk contracts
* docs: document tts contracts
* docs: document secrets runtime contracts
* docs: document shared helper contracts
* docs: document hook runtime contracts
* docs: document security audit contracts
* docs: document flow contracts
* docs: document media understanding contracts
* docs: document tui contracts
* docs: document logging contracts
* docs: document llm contracts
* docs: document cron contracts
* docs: document daemon contracts
* docs: document task contracts
* docs: document acp contracts
* docs: document test utility contracts
* docs: document skill contracts
* docs: document config contracts
* docs: document outbound infra contracts
* docs: document command analysis contracts
* docs: document provider usage infra contracts
* docs: document file safety infra contracts
* docs: document exec approval infra contracts
* docs: document gateway runtime infra contracts
* docs: document infra utility contracts
* docs: document infra queue storage contracts
* docs: document heartbeat infra contracts
* docs: document remaining infra contracts
* docs: document gateway auth contracts
* docs: document gateway display helpers
* docs: document gateway http helpers
* docs: document gateway node helpers
* docs: document gateway mcp helpers
* docs: document gateway support helpers
* docs: document gateway server runtime helpers
* docs: document gateway runtime bootstrap helpers
* docs: document gateway session events
* docs: document gateway utility helpers
* docs: document gateway talk helpers
* docs: document gateway helper contracts
* docs: document gateway server method helpers
* docs: document gateway server auth helpers
* docs: document gateway server tests
* docs: document gateway test helpers
* docs: document gateway node tests
* docs: document gateway channel tests
* docs: document gateway session tests
* docs: document gateway server startup tests
* docs: document gateway tool test helpers
* docs: document gateway server test helpers
* docs: document gateway server method tests
* docs: document remaining gateway tests
* docs: document plugin sdk public subpaths
* docs: document plugin sdk runtime helpers
* docs: document plugin sdk memory provider helpers
* docs: document plugin sdk runtime facades
* docs: document plugin sdk command approval helpers
* docs: document plugin sdk runtime types
* docs: document plugin sdk browser account helpers
* docs: document plugin sdk media memory helpers
* docs: document plugin sdk core tests
* docs: document plugin sdk contract helpers
* docs: document plugin sdk test helpers
* docs: document remaining plugin sdk tests
* docs: document cli utility helpers
* docs: document cli runtime helpers
* docs: document cli command registration helpers
* docs: document node cli helpers
* docs: document cli program registration
* docs: document message cli registration
* docs: document daemon cli helpers
* docs: document cli route parsers
2026-06-03 15:20:39 -07:00