Skip to content

Commit 88a8a4d

Browse files
committed
Auto-merge upstream openclaw/openclaw
2 parents 307922a + 4fdcacd commit 88a8a4d

278 files changed

Lines changed: 17848 additions & 4248 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.

.agents/skills/openclaw-parallels-smoke/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Use this skill for Parallels guest workflows and smoke interpretation. Do not lo
5050
- Because the default upgrade lane no longer needs a host tgz, skip `npm pack` + host HTTP server startup for `--mode upgrade` unless `--target-package-spec` is set. Keep the pack/server path for `fresh` and `both`.
5151
- If that release-to-dev lane fails with `reason=preflight-no-good-commit` and repeated `sh: pnpm: command not found` tails from `preflight build`, treat it as an updater regression first. The fix belongs in the git/dev updater bootstrap path, not in Parallels retry logic.
5252
- Until the public stable train includes that updater bootstrap fix, the macOS release-to-dev lane may seed a temporary guest-local `pnpm` shim immediately before `openclaw update --channel dev`. Keep that workaround scoped to the smoke harness and remove it once the latest stable no longer needs it.
53+
- After the package -> git switch, prefer post-update verification through explicit `node ~/openclaw/openclaw.mjs ...` calls. In Tahoe `prlctl exec --current-user` runs, the shebanged global `openclaw` wrapper can fail with `env: node: No such file or directory` even though the dev switch already succeeded.
5354
- Default to the snapshot closest to `macOS 26.3.1 latest`.
5455
- On Peter's Tahoe VM, `fresh-latest-march-2026` can hang in `prlctl snapshot-switch`; if restore times out there, rerun with `--snapshot-hint 'macOS 26.3.1 latest'` before blaming auth or the harness.
5556
- `parallels-macos-smoke.sh` now retries `snapshot-switch` once after force-stopping a stuck running/suspended guest. If Tahoe still times out after that recovery path, then treat it as a real Parallels/host issue and rerun manually.

CHANGELOG.md

Lines changed: 25 additions & 22 deletions
Large diffs are not rendered by default.

apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/tool-display.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,6 +1030,29 @@
10301030
}
10311031
}
10321032
},
1033+
"music_generate": {
1034+
"emoji": "🎵",
1035+
"title": "Music Generation",
1036+
"actions": {
1037+
"generate": {
1038+
"label": "generate",
1039+
"detailKeys": [
1040+
"prompt",
1041+
"model",
1042+
"durationSeconds",
1043+
"format",
1044+
"instrumental"
1045+
]
1046+
},
1047+
"list": {
1048+
"label": "list",
1049+
"detailKeys": [
1050+
"provider",
1051+
"model"
1052+
]
1053+
}
1054+
}
1055+
},
10331056
"video_generate": {
10341057
"emoji": "🎬",
10351058
"title": "Video Generation",
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
57a3b1cc7d573c3788a670d927eac947fb1685384804f5c3c926f702a27fe00b config-baseline.json
2-
82163136ff466db3caa61290fd65a8b8dd9487fc61f3871c177f96fcecf9e29b config-baseline.core.json
3-
ae67508350baf891b902348d55fada6c17e9c053adf53aaf3a8b92cd364ef3f1 config-baseline.channel.json
4-
d972a11d0f86080a722bddfe48990dd1b8fa16eb8e157e83f49bd46a5941c512 config-baseline.plugin.json
1+
fb2c88ef41657f1aa7237dcce655d16313dc849fd03991b221346367c569a482 config-baseline.json
2+
ff8f64e1866748644776b229bdf334762875e3139b717a3adb8e5c587286ada3 config-baseline.core.json
3+
ba5f7e89aad95d3eae0bc4e3b590c8dbb87bd921bba0d8f12fe67545af5887c6 config-baseline.channel.json
4+
dc19ac1c60544d87fe08944d1184e0ade7b469367cdf8d6ce61452f64f9e0a47 config-baseline.plugin.json
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
97509287d728c8f5d1736f7ea07521451ada4b9d7ef56555dbe860a89e1b6e08 plugin-sdk-api-baseline.json
2-
a22b3d427953cc8394b28c87ef7a992d2eb4f2c9f6a76fa58b33079e2306661b plugin-sdk-api-baseline.jsonl
1+
4e024092a28987e1a826b0c731e9ee5adb9d28e73b5cac51ca055c46d9067258 plugin-sdk-api-baseline.json
2+
9e3279a3e78e24b72952ab0f1707dcf465f8c283acf568f043e9b232fd0ae5dd plugin-sdk-api-baseline.jsonl

docs/channels/matrix.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ Password-based setup (token is cached after login):
103103

104104
Matrix stores cached credentials in `~/.openclaw/credentials/matrix/`.
105105
The default account uses `credentials.json`; named accounts use `credentials-<account>.json`.
106+
When cached credentials exist there, OpenClaw treats Matrix as configured for setup, doctor, and channel-status discovery even if current auth is not set directly in config.
106107

107108
Environment variable equivalents (used when the config key is not set):
108109

@@ -280,7 +281,7 @@ OpenClaw marks finalized text-only preview edits with:
280281

281282
```bash
282283
curl -sS -X PUT \
283-
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview" \
284+
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname" \
284285
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
285286
-H "Content-Type: application/json" \
286287
--data '{
@@ -310,8 +311,15 @@ Replace these values before you run the command:
310311

311312
- `https://matrix.example.org`: your homeserver base URL
312313
- `$USER_ACCESS_TOKEN`: the receiving user's access token
314+
- `openclaw-finalized-preview-botname`: a rule ID unique to this bot for this receiving user
313315
- `@bot:example.org`: your OpenClaw Matrix bot MXID, not the receiving user's MXID
314316

317+
Important for multi-bot setups:
318+
319+
- Push rules are keyed by `ruleId`. Re-running `PUT` against the same rule ID updates that one rule.
320+
- If one receiving user should notify for multiple OpenClaw Matrix bot accounts, create one rule per bot with a unique rule ID for each sender match.
321+
- A simple pattern is `openclaw-finalized-preview-<botname>`, such as `openclaw-finalized-preview-ops` or `openclaw-finalized-preview-support`.
322+
315323
The rule is evaluated against the event sender:
316324

317325
- authenticate with the receiving user's token
@@ -322,12 +330,20 @@ The rule is evaluated against the event sender:
322330
```bash
323331
curl -sS \
324332
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
325-
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview"
333+
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"
326334
```
327335

328336
7. Test a streamed reply. In quiet mode, the room should show a quiet draft preview and the final
329337
in-place edit should notify once the block or turn finishes.
330338

339+
If you need to remove the rule later, delete that same rule ID with the receiving user's token:
340+
341+
```bash
342+
curl -sS -X DELETE \
343+
-H "Authorization: Bearer $USER_ACCESS_TOKEN" \
344+
"https://matrix.example.org/_matrix/client/v3/pushrules/global/override/openclaw-finalized-preview-botname"
345+
```
346+
331347
Notes:
332348

333349
- Create the rule with the receiving user's access token, not the bot's.

docs/cli/memory.md

Lines changed: 13 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ openclaw memory status --deep --index
3434
openclaw memory status --deep --index --verbose
3535
openclaw memory status --agent main
3636
openclaw memory index --agent main --verbose
37-
openclaw memory promote-explain "router vlan"
38-
openclaw memory rem-harness --json
3937
```
4038

4139
## Options
@@ -80,9 +78,9 @@ openclaw memory promote [--apply] [--limit <n>] [--include-promoted]
8078

8179
Full options:
8280

83-
- Ranks short-term candidates from `memory/YYYY-MM-DD.md` using weighted recall signals (`frequency`, `relevance`, `query diversity`, `recency`).
84-
- Uses recall events captured when `memory_search` returns daily-memory hits.
85-
- When dreaming is enabled, `memory-core` auto-manages a cron job for the deep phase that triggers promotion in the background (no manual `openclaw cron add` required).
81+
- Ranks short-term candidates from `memory/YYYY-MM-DD.md` using weighted promotion signals (`frequency`, `relevance`, `query diversity`, `recency`, `consolidation`, `conceptual richness`).
82+
- Uses short-term signals from both memory recalls and daily-ingestion passes, plus light/REM phase reinforcement signals.
83+
- When dreaming is enabled, `memory-core` auto-manages one cron job that runs a full sweep (`light -> REM -> deep`) in the background (no manual `openclaw cron add` required).
8684
- `--agent <id>`: scope to a single agent (default: the default agent).
8785
- `--limit <n>`: max candidates to return/apply.
8886
- `--min-score <n>`: minimum weighted promotion score.
@@ -92,54 +90,26 @@ Full options:
9290
- `--include-promoted`: include already promoted candidates in output.
9391
- `--json`: print JSON output.
9492

95-
`memory promote-explain`:
96-
97-
Explain why a specific candidate would or would not promote, with a full score breakdown.
98-
99-
```bash
100-
openclaw memory promote-explain "<selector>"
101-
```
102-
103-
- `<selector>`: candidate key, path fragment, or snippet fragment to match.
104-
- `--agent <id>`: scope to a single agent (default: the default agent).
105-
- `--include-promoted`: include already promoted candidates.
106-
- `--json`: print JSON output.
107-
108-
`memory rem-harness`:
109-
110-
Preview REM reflections, candidate truths, and deep promotion output without writing anything. Useful for staging and debugging the REM phase before it runs for real.
111-
112-
```bash
113-
openclaw memory rem-harness [--json] [--agent <id>] [--include-promoted]
114-
```
115-
116-
- `--agent <id>`: scope to a single agent (default: the default agent).
117-
- `--include-promoted`: include already promoted deep candidates.
118-
- `--json`: print JSON output.
119-
120-
See [Dreaming](/concepts/dreaming) for the full phase model and how REM fits in.
121-
12293
## Dreaming (experimental)
12394

12495
Dreaming is the background memory consolidation system with three cooperative
125-
phases: **light** (organize into `DREAMS.md` in inline mode), **deep**
126-
(promote into `MEMORY.md`), and **REM** (reflect and find patterns in
127-
`DREAMS.md` in inline mode).
96+
phases: **light** (sort/stage short-term material), **deep** (promote durable
97+
facts into `MEMORY.md`), and **REM** (reflect and surface themes).
12898

12999
- Enable with `plugins.entries.memory-core.config.dreaming.enabled: true`.
130-
- Toggle from chat with `/dreaming on|off` or `/dreaming enable|disable light|deep|rem`.
131-
- Each phase runs on its own cron schedule, managed automatically by `memory-core`.
132-
- Only the deep phase writes durable memory to `MEMORY.md`. With default inline storage, Light and REM write to `DREAMS.md`.
100+
- Toggle from chat with `/dreaming on|off` (or inspect with `/dreaming status`).
101+
- Dreaming runs on one managed sweep schedule (`dreaming.frequency`) and executes phases in order: light, REM, deep.
102+
- Only the deep phase writes durable memory to `MEMORY.md`.
103+
- Human-readable phase output and diary entries are written to `DREAMS.md` (or existing `dreams.md`), with optional per-phase reports in `memory/dreaming/<phase>/YYYY-MM-DD.md`.
133104
- Ranking uses weighted signals: recall frequency, retrieval relevance, query diversity, temporal recency, cross-day consolidation, and derived concept richness.
134105
- Promotion re-reads the live daily note before writing to `MEMORY.md`, so edited or deleted short-term snippets do not get promoted from stale recall-store snapshots.
135106
- Scheduled and manual `memory promote` runs share the same deep phase defaults unless you pass CLI threshold overrides.
136107
- Automatic runs fan out across configured memory workspaces.
137108

138-
Default phase schedules:
109+
Default scheduling:
139110

140-
- **Light**: every 6 hours (`0 */6 * * *`), `lookbackDays=2`, `limit=100`
141-
- **Deep**: daily at 3 AM (`0 3 * * *`), `limit=10`, `minScore=0.8`, `minRecallCount=3`, `minUniqueQueries=3`, `recencyHalfLifeDays=14`
142-
- **REM**: weekly, Sunday 5 AM (`0 5 * * 0`), `lookbackDays=7`, `limit=10`
111+
- **Sweep cadence**: `dreaming.frequency = 0 3 * * *`
112+
- **Deep thresholds**: `minScore=0.8`, `minRecallCount=3`, `minUniqueQueries=3`, `recencyHalfLifeDays=14`, `maxAgeDays=30`
143113

144114
Example:
145115

@@ -165,6 +135,5 @@ Notes:
165135
- `memory status` includes any extra paths configured via `memorySearch.extraPaths`.
166136
- If effectively active memory remote API key fields are configured as SecretRefs, the command resolves those values from the active gateway snapshot. If gateway is unavailable, the command fails fast.
167137
- Gateway version skew note: this command path requires a gateway that supports `secrets.resolve`; older gateways return an unknown-method error.
168-
- Override each phase schedule with `phases.<phase>.cron` and fine-tune deep promotion with `phases.deep.minScore`, `phases.deep.minRecallCount`, `phases.deep.minUniqueQueries`, `phases.deep.recencyHalfLifeDays`, and `phases.deep.maxAgeDays`.
169-
- Set `plugins.entries.memory-core.config.dreaming.verboseLogging` to `true` to emit per-run candidate and apply details into the normal gateway logs while tuning the feature.
138+
- Tune scheduled sweep cadence with `dreaming.frequency`. Deep promotion policy is otherwise internal; use CLI flags on `memory promote` when you need one-off manual overrides.
170139
- See [Dreaming](/concepts/dreaming) for full phase descriptions and configuration reference.

docs/cli/update.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,13 @@ High-level:
9696
3. Fetches upstream (dev only).
9797
4. Dev only: preflight lint + TypeScript build in a temp worktree; if the tip fails, walks back up to 10 commits to find the newest clean build.
9898
5. Rebases onto the selected commit (dev only).
99-
6. Installs deps (pnpm preferred; npm fallback; bun remains available as a secondary compatibility fallback).
99+
6. Installs deps with the repo package manager. For pnpm checkouts, the updater bootstraps `pnpm` on demand (via `corepack` first, then a temporary `npm install pnpm@10` fallback) instead of running `npm run build` inside a pnpm workspace.
100100
7. Builds + builds the Control UI.
101101
8. Runs `openclaw doctor` as the final “safe update” check.
102102
9. Syncs plugins to the active channel (dev uses bundled extensions; stable/beta uses npm) and updates npm-installed plugins.
103103

104+
If pnpm bootstrap still fails, the updater now stops early with a package-manager-specific error instead of trying `npm run build` inside the checkout.
105+
104106
## `--update` shorthand
105107

106108
`openclaw --update` rewrites to `openclaw update` (useful for shells and launcher scripts).

0 commit comments

Comments
 (0)