Skip to content

Commit d818943

Browse files
Auto-merge upstream openclaw/openclaw
2 parents 65cd765 + 10d5b88 commit d818943

214 files changed

Lines changed: 6923 additions & 987 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/setup-node-env/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ inputs:
1414
pnpm-version:
1515
description: pnpm version for corepack.
1616
required: false
17-
default: "10.23.0"
17+
default: "10.32.1"
1818
install-bun:
1919
description: Whether to install Bun alongside Node.
2020
required: false

.github/actions/setup-pnpm-store-cache/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ inputs:
44
pnpm-version:
55
description: pnpm version to activate via corepack.
66
required: false
7-
default: "10.23.0"
7+
default: "10.32.1"
88
cache-key-suffix:
99
description: Suffix appended to the cache key.
1010
required: false

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ Docs: https://docs.openclaw.ai
2121
- Tests/runtime: trim local unit-test import/runtime fan-out across browser, WhatsApp, cron, task, and reply flows so owner suites start faster with lower shared-worker overhead while preserving the same focused behavior coverage. (#60249) Thanks @shakkernerd.
2222
- Tests/secrets runtime: restore split secrets suite cache and env isolation cleanup so broader runs do not leak stale plugin or provider snapshot state. (#60395) Thanks @shakkernerd.
2323
- Memory/dreaming (experimental): add opt-in weighted short-term recall promotion to `MEMORY.md`, managed dreaming modes (`off|core|rem|deep`), and a `/dreaming` command plus Dreams UI so durable memory promotion can run on background cadence without manual scheduling. (#60569) Thanks @vignesh07.
24-
- Agents/system prompts: add an internal cache-prefix boundary across Anthropic-family, OpenAI-family, Google, and CLI transport shaping so stable system-prompt prefixes stay reusable without leaking internal cache markers to provider payloads. (#59054)
24+
- Agents/system prompts: add an internal cache-prefix boundary across Anthropic-family, OpenAI-family, Google, and CLI transport shaping so stable system-prompt prefixes stay reusable without leaking internal cache markers to provider payloads. (#59054) Thanks @coletebou and @vincentkoc.
25+
- Docs/memory: add a dedicated Dreaming concept page, expand Memory overview with the Dreaming model, and link Dreaming from further reading to document the experimental opt-in consolidation workflow. Thanks @vignesh07.
2526

2627
### Fixes
2728

@@ -38,6 +39,8 @@ Docs: https://docs.openclaw.ai
3839
- Auth/failover: shorten `auth_permanent` lockouts, add dedicated config knobs for permanent-auth backoff, and downgrade ambiguous auth-ish upstream incidents to retryable auth failures so providers recover automatically after transient outages. (#60404) Thanks @extrasmall0.
3940
- Mobile pairing/Android: stop generating Tailscale and public mobile setup codes that point at unusable cleartext remote gateways, keep private LAN pairing allowed, and make Android reject insecure remote endpoints with clearer guidance while mixed bootstrap approvals honor operator scopes correctly. (#60128) Thanks @obviyus.
4041
- Mobile pairing/device approval: mint both node and operator device tokens when one approval grants merged roles, so mixed mobile bootstrap pairings stop reconnecting as operator-only and showing the node offline. (#60208) Thanks @obviyus.
42+
- ACPX/Windows: preserve backslashes in Claude CLI command parsing, including unquoted absolute `.exe` paths and Windows path-valued args, so Claude sessions can spawn reliably again on Windows. (#60689) Thanks @steipete.
43+
- ACPX/Windows: make direct wrapper-script targets fail fast with guidance to use `cmd.exe /c`, `powershell.exe -File`, or `node <script>`, and move ACPX command parsing into a dedicated helper with focused regression coverage.
4144
- Mobile pairing/bootstrap: keep setup bootstrap tokens alive through the initial node auto-pair so the same QR bootstrap token can finish operator approval, then revoke it after the full issued profile connects successfully. (#60221) Thanks @obviyus.
4245
- Telegram/models: compare full provider/model refs in the Telegram picker so same-id models from other providers no longer show the wrong current-model checkmark. (#60384) Thanks @sfuminya.
4346
- Telegram/model switching: render non-default `/model` callback confirmations with HTML formatting so Telegram shows the selected model in bold instead of raw `**...**` markers. (#60042) Thanks @GitZhangChi.
@@ -209,6 +212,7 @@ Docs: https://docs.openclaw.ai
209212
- Exec/node hosts: stop forwarding the gateway workspace cwd to remote node exec when no workdir was explicitly requested, so cross-platform node approvals fall back to the node default cwd instead of failing with `SYSTEM_RUN_DENIED`. (#58977) Thanks @Starhappysh.
210213
- TUI/chat: keep pending local sends visible and reconciled across history reloads, make busy/error recovery clearer through fallback and terminal-error paths, and reclaim transcript width for long links and paths. (#59800) Thanks @vincentkoc.
211214
- Exec approvals/channels: decouple initiating-surface approval availability from native delivery enablement so Telegram, Slack, and Discord still expose approvals when approvers exist and native target routing is configured separately. (#59776) Thanks @joelnishanth.
215+
- Agents/logging: keep orphaned-user transcript repair warnings focused on interactive runs, and downgrade background-trigger repairs (`heartbeat`, `cron`, `memory`, `overflow`) to debug logs to reduce false-alarm gateway noise.
212216

213217
## 2026.4.1
214218

apps/macos/Sources/OpenClawDiscovery/WideAreaGatewayDiscovery.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ enum WideAreaGatewayDiscovery {
4343
guard let statusJson = context.tailscaleStatus(),
4444
!collectTailnetIPv4s(statusJson: statusJson).isEmpty,
4545
let discovery = loadWideAreaPtrRecords(
46-
remaining: remaining,
47-
dig: context.dig)
46+
remaining: remaining,
47+
dig: context.dig)
4848
else { return [] }
4949

5050
let domainTrimmed = discovery.domainTrimmed
Lines changed: 3 additions & 0 deletions
Loading

docs/assets/sponsors/github.svg

Lines changed: 3 additions & 0 deletions
Loading

docs/concepts/memory-dreaming.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
---
2+
title: "Dreaming (experimental)"
3+
summary: "Background promotion from short-term recall into long-term memory"
4+
read_when:
5+
- You want memory promotion to run automatically
6+
- You want to understand dreaming modes and thresholds
7+
- You want to tune consolidation without polluting MEMORY.md
8+
---
9+
10+
# Dreaming (experimental)
11+
12+
Dreaming is the background memory consolidation pass in `memory-core`.
13+
14+
It is called "dreaming" because the system revisits what came up during the day
15+
and decides what is worth keeping as durable context.
16+
17+
Dreaming is **experimental**, **opt-in**, and **off by default**.
18+
19+
## What dreaming does
20+
21+
1. Tracks short-term recall events from `memory_search` hits in
22+
`memory/YYYY-MM-DD.md`.
23+
2. Scores those recall candidates with weighted signals.
24+
3. Promotes only qualified candidates into `MEMORY.md`.
25+
26+
This keeps long-term memory focused on durable, repeated context instead of
27+
one-off details.
28+
29+
## Promotion signals
30+
31+
Dreaming combines four signals:
32+
33+
- **Frequency**: how often the same candidate was recalled.
34+
- **Relevance**: how strong recall scores were when it was retrieved.
35+
- **Query diversity**: how many distinct query intents surfaced it.
36+
- **Recency**: temporal weighting over recent recalls.
37+
38+
Promotion requires all configured threshold gates to pass, not just one signal.
39+
40+
## Modes
41+
42+
`dreaming.mode` controls cadence and default thresholds:
43+
44+
- `off`: dreaming disabled.
45+
- `core`: nightly cadence with balanced thresholds.
46+
- `rem`: more frequent cadence for active consolidation.
47+
- `deep`: stricter promotion gating with slower cadence.
48+
49+
Default presets:
50+
51+
- `core`: `0 3 * * *`, `minScore=0.75`, `minRecallCount=3`,
52+
`minUniqueQueries=2`
53+
- `rem`: `0 */6 * * *`, `minScore=0.85`, `minRecallCount=4`,
54+
`minUniqueQueries=3`
55+
- `deep`: `0 */12 * * *`, `minScore=0.8`, `minRecallCount=3`,
56+
`minUniqueQueries=3`
57+
58+
## Scheduling model
59+
60+
When dreaming is enabled, `memory-core` manages the recurring schedule
61+
automatically. You do not need to manually create a cron job for this feature.
62+
63+
You can still tune behavior with explicit overrides such as:
64+
65+
- `dreaming.frequency` (cron expression)
66+
- `dreaming.timezone`
67+
- `dreaming.limit`
68+
- `dreaming.minScore`
69+
- `dreaming.minRecallCount`
70+
- `dreaming.minUniqueQueries`
71+
72+
## Configure
73+
74+
```json
75+
{
76+
"plugins": {
77+
"entries": {
78+
"memory-core": {
79+
"config": {
80+
"dreaming": {
81+
"mode": "core"
82+
}
83+
}
84+
}
85+
}
86+
}
87+
}
88+
```
89+
90+
## Operational notes
91+
92+
- Use `/dreaming off|core|rem|deep` to switch modes from chat.
93+
- Use `openclaw memory promote` to preview candidates and
94+
`openclaw memory promote --apply` for manual promotion.
95+
- Use `openclaw memory status --deep` to inspect current memory and dreaming
96+
status.
97+
98+
## Further reading
99+
100+
- [Memory](/concepts/memory)
101+
- [Memory Search](/concepts/memory-search)
102+
- [memory CLI](/cli/memory)
103+
- [Memory configuration reference](/reference/memory-config)

docs/concepts/memory.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,23 @@ important facts in the conversation that are not yet written to a file, they
8383
will be saved automatically before the summary happens.
8484
</Tip>
8585

86+
## Dreaming (experimental)
87+
88+
Dreaming is an optional background consolidation pass for memory. It revisits
89+
short-term recalls from daily files (`memory/YYYY-MM-DD.md`), scores them, and
90+
promotes only qualified items into long-term memory (`MEMORY.md`).
91+
92+
It is designed to keep long-term memory high signal:
93+
94+
- **Opt-in**: disabled by default.
95+
- **Scheduled**: when enabled, `memory-core` manages the recurring task
96+
automatically.
97+
- **Thresholded**: promotions must pass score, recall frequency, and query
98+
diversity gates.
99+
100+
For mode behavior (`off`, `core`, `rem`, `deep`), scoring signals, and tuning
101+
knobs, see [Dreaming (experimental)](/concepts/memory-dreaming).
102+
86103
## CLI
87104

88105
```bash
@@ -98,5 +115,7 @@ openclaw memory index --force # Rebuild the index
98115
- [Honcho Memory](/concepts/memory-honcho) -- AI-native cross-session memory
99116
- [Memory Search](/concepts/memory-search) -- search pipeline, providers, and
100117
tuning
118+
- [Dreaming (experimental)](/concepts/memory-dreaming) -- background promotion
119+
from short-term recall to long-term memory
101120
- [Memory configuration reference](/reference/memory-config) -- all config knobs
102121
- [Compaction](/concepts/compaction) -- how compaction interacts with memory

docs/docs.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1068,7 +1068,8 @@
10681068
"concepts/memory-builtin",
10691069
"concepts/memory-qmd",
10701070
"concepts/memory-honcho",
1071-
"concepts/memory-search"
1071+
"concepts/memory-search",
1072+
"concepts/memory-dreaming"
10721073
]
10731074
},
10741075
"concepts/compaction"

docs/gateway/cli-backends.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ The provider id becomes the left side of your model ref:
158158
- `existing`: only send a session id if one was stored before.
159159
- `none`: never send a session id.
160160

161+
Serialization notes:
162+
163+
- `serialize: true` keeps same-lane runs ordered.
164+
- Most CLIs serialize on one provider lane.
165+
- `claude-cli` is narrower: resumed runs serialize per Claude session id, and fresh runs serialize per workspace path. Independent workspaces can run in parallel.
166+
161167
## Images (pass-through)
162168

163169
If your CLI accepts image paths, set `imageArg`:

0 commit comments

Comments
 (0)