You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,7 @@ Docs: https://docs.openclaw.ai
24
24
25
25
### Fixes
26
26
27
+
- Active Memory: use the configured recall timeout as the blocking prompt-build hook budget by default and move cold-start setup grace behind explicit `setupGraceTimeoutMs` config, so the plugin no longer silently extends 15000 ms configs to 45000 ms on the main lane. Fixes #75843. Thanks @vishutdhar.
27
28
- Agents/sandbox: preserve existing workspace file modes when sandbox edits atomically replace files, so 0644 files do not collapse to 0600 after Write/Edit/apply_patch. Fixes #44077. Thanks @patosullivan.
28
29
- Agents/models: keep legacy CLI runtime model refs such as `claude-cli/*` in the configured allowlist after canonical runtime migration, so cron `payload.model` overrides keep working. Fixes #75753. Thanks @RyanSandoval.
29
30
- Gateway/watch: keep colored subsystem log prefixes in the managed tmux pane even when the parent shell exports `NO_COLOR`, while preserving explicit `FORCE_COLOR=0` opt-out. Thanks @vincentkoc.
|`config.agents`|`string[]`| Agent ids that may use active memory |
565
-
|`config.model`|`string`| Optional blocking memory sub-agent model ref; when unset, active memory uses the current session model |
566
-
|`config.allowedChatTypes`|`("direct" \| "group" \| "channel")[]`| Session types that may run Active Memory; defaults to direct-message style sessions |
|`config.deniedChatIds`|`string[]`| Optional per-conversation denylist that overrides allowed session types and allowed ids |
569
-
|`config.queryMode`|`"message" \| "recent" \| "full"`| Controls how much conversation the blocking memory sub-agent sees |
570
-
|`config.promptStyle`|`"balanced" \| "strict" \| "contextual" \| "recall-heavy" \| "precision-heavy" \| "preference-only"`| Controls how eager or strict the blocking memory sub-agent is when deciding whether to return memory |
571
-
|`config.thinking`|`"off" \| "minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "adaptive" \| "max"`| Advanced thinking override for the blocking memory sub-agent; default `off` for speed |
572
-
|`config.promptOverride`|`string`| Advanced full prompt replacement; not recommended for normal use |
573
-
|`config.promptAppend`|`string`| Advanced extra instructions appended to the default or overridden prompt |
574
-
|`config.timeoutMs`|`number`| Hard timeout for the blocking memory sub-agent, capped at 120000 ms |
575
-
|`config.maxSummaryChars`|`number`| Maximum total characters allowed in the active-memory summary |
576
-
|`config.logging`|`boolean`| Emits active memory logs while tuning |
577
-
|`config.persistTranscripts`|`boolean`| Keeps blocking memory sub-agent transcripts on disk instead of deleting temp files |
578
-
|`config.transcriptDir`|`string`| Relative blocking memory sub-agent transcript directory under the agent sessions folder |
|`config.agents`|`string[]`| Agent ids that may use active memory |
565
+
|`config.model`|`string`| Optional blocking memory sub-agent model ref; when unset, active memory uses the current session model |
566
+
|`config.allowedChatTypes`|`("direct" \| "group" \| "channel")[]`| Session types that may run Active Memory; defaults to direct-message style sessions |
|`config.deniedChatIds`|`string[]`| Optional per-conversation denylist that overrides allowed session types and allowed ids |
569
+
|`config.queryMode`|`"message" \| "recent" \| "full"`| Controls how much conversation the blocking memory sub-agent sees |
570
+
|`config.promptStyle`|`"balanced" \| "strict" \| "contextual" \| "recall-heavy" \| "precision-heavy" \| "preference-only"`| Controls how eager or strict the blocking memory sub-agent is when deciding whether to return memory |
571
+
|`config.thinking`|`"off" \| "minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "adaptive" \| "max"`| Advanced thinking override for the blocking memory sub-agent; default `off` for speed |
572
+
|`config.promptOverride`|`string`| Advanced full prompt replacement; not recommended for normal use |
573
+
|`config.promptAppend`|`string`| Advanced extra instructions appended to the default or overridden prompt |
574
+
|`config.timeoutMs`|`number`| Hard timeout for the blocking memory sub-agent, capped at 120000 ms |
575
+
|`config.setupGraceTimeoutMs`|`number`| Advanced extra setup budget before the recall timeout expires; defaults to 0 and is capped at 30000 ms |
576
+
|`config.maxSummaryChars`|`number`| Maximum total characters allowed in the active-memory summary |
577
+
|`config.logging`|`boolean`| Emits active memory logs while tuning |
578
+
|`config.persistTranscripts`|`boolean`| Keeps blocking memory sub-agent transcripts on disk instead of deleting temp files |
579
+
|`config.transcriptDir`|`string`| Relative blocking memory sub-agent transcript directory under the agent sessions folder |
"help": "Advanced: extra blocking budget for cold embedded-run setup before the recall timeout is considered exhausted. Defaults to 0 so timeoutMs remains the main-lane hook budget unless you opt in."
123
+
},
119
124
"queryMode": {
120
125
"label": "Query Mode",
121
126
"help": "Choose whether the blocking memory sub-agent sees only the latest user message, a small recent tail, or the full conversation."
0 commit comments