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
Merge pull request #5 from OnlyTerp/devin/1776396999-glossary-decisions-retire16
* Fact-check + retire Part 16 + decision trees + Part 28 Glossary
- Fact-check (#5): openclaw tasks -> openclaw flows across Part 24, 26, 27, README; expanded March CVE wave to Feb-Mar with CVE-2026-25253/25157/25158 and CVSS 9.9 WebSocket bypass; added ClawHavoc / Antiy CERT / Trend Micro / Kaspersky framing to Part 23; hedged 'openclaw secrets reload' verb since it varies across 2026.4.x betas and pointed at the Canvas Model Auth status card + models.authStatus gateway method; added OpenClaw docs (clawdocs.org) + changelog (openclawai.io/changelog) links; tightened Part 25 version table (v4.0 Agent OS, v4.1 ClawHub, v4.2 ACP with accurate dates); Unicode em-dash cleanup across files.
- Retire Part 16 (#3): deleted part16-autodream-memory-consolidation.md; added one-paragraph retirement note in Part 22 (README) and updated inbound links in README, Part 26, CONTRIBUTING.md; retired-pattern checklist items now point at Part 22 / Part 26.
- Decision trees (#4): every part (14 external + 12 README-embedded + the new Part 28) now opens with a 'Read this if / Skip if' callout so readers can self-route.
- Glossary (#2): new Part 28 with ~30 terms (MOC, autoDream, Task Brain, ACP, Ralph loop, ClawHub, ClawHavoc, memory-lancedb, LightRAG, DREAMS.md, semantic approval categories, localModelLean, gateway daemon, coordinator protocol, CVE wave, etc.), cross-linked from the themed TOC, 'Navigate By Goal', and 'Primers & references' blocks.
Co-Authored-By: Rob <onerobby@gmail.com>
* Refresh for 2026.4.15 stable: Opus 4.7, dreaming storage flip, memory_get excerpt cap, tool-name collision rejection
Co-Authored-By: Rob <onerobby@gmail.com>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ Thanks for wanting to make the guide better. This is a living document — OpenC
33
33
-**Links > inline duplication.** If something is already covered in another part, link to it.
34
34
-**Cross-link new parts** from the relevant existing parts and the README TOC.
35
35
-**Consistent heading levels.** Each part starts with `# Part N: Title`, major sections are `##`, subsections `###`.
36
-
-**Mark deprecated content** with a block quote at the top saying "DEPRECATED — use [Part X] instead"(see [Part 16](./part16-autodream-memory-consolidation.md)for an example).
36
+
-**Mark deprecated content** with a block quote at the top saying "DEPRECATED — use [Part X] instead". When a part is fully retired, delete the file and leave a one-paragraph tombstone in the part that supersedes it (see the Part 22 "What Changed (and the Part 16 Retirement)" block in the README for the pattern).
Copy file name to clipboardExpand all lines: part10-state-of-the-art-embeddings.md
+6-3Lines changed: 6 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,9 @@
6
6
7
7
The main guide's one-shot prompt installs a local embedding model via Ollama. Pick the right tier for your hardware:
8
8
9
+
> **Read this if** you care about retrieval quality, you're running local embeddings, or you want to evaluate the GitHub Copilot embedding provider added in 2026.4.15.
10
+
> **Skip if** you're using cloud embeddings behind a managed memory service and don't mind the latency/cost — the defaults are fine for casual single-user setups.
11
+
9
12
## Embedding Model Tiers
10
13
11
14
| Tier | Model | Dims | RAM | Speed | Quality | Best For |
@@ -18,9 +21,9 @@ The main guide's one-shot prompt installs a local embedding model via Ollama. Pi
18
21
19
22
> **⚠️ Do not use cloud embeddings as your primary provider.** Every memory search round-trips to an API server, adding 2-5 seconds of latency PER QUERY. This defeats the entire purpose of fast memory search. Local embeddings respond in <100ms. Use cloud only as a fallback if you have no local option at all.
20
23
21
-
### GitHub Copilot Embeddings (new in OpenClaw 2026.4.15-beta.1)
24
+
### GitHub Copilot Embeddings (new in OpenClaw 2026.4.15)
22
25
23
-
OpenClaw 2026.4.15-beta.1 added a `copilot` memory-search provider. If your org already pays for Copilot Business/Enterprise, this reuses that seat for embeddings:
26
+
OpenClaw 2026.4.15 added a `copilot` memory-search provider. If your org already pays for Copilot Business/Enterprise, this reuses that seat for embeddings:
24
27
25
28
```json5
26
29
{
@@ -39,7 +42,7 @@ OpenClaw 2026.4.15-beta.1 added a `copilot` memory-search provider. If your org
39
42
40
43
**When it doesn't:** a personal/power-user setup. The latency is still cloud-cloud (2-5s round trip), you lose offline capability, and you're still better off with a local Ollama `qwen3-embedding:0.6b` that answers in <100ms for free.
41
44
42
-
**Gotcha:** Copilot embeddings share rate limits with Copilot chat completions. If you also use Copilot as an agent model, heavy memory-search traffic can starve chat \u2014 watch the new Model Auth card in Control UI for rate-limit pressure and keep a local fallback configured.
45
+
**Gotcha:** Copilot embeddings share rate limits with Copilot chat completions. If you also use Copilot as an agent model, heavy memory-search traffic can starve chat — watch the new Model Auth card in Control UI for rate-limit pressure and keep a local fallback configured.
43
46
44
47
The `qwen3-embedding:0.6b` model is the sweet spot for most users — it's from the same Qwen3 family that holds #1 on MTEB, runs on anything, and blows away nomic on quality. Install via `ollama pull qwen3-embedding:0.6b`.
Copy file name to clipboardExpand all lines: part11-auto-capture-hook.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,9 @@ ByteRover (a community plugin on ClawHub) solves this with an `afterTurn` hook t
12
12
13
13
---
14
14
15
+
> **Read this if** your `vault/00_inbox/` stays empty, you keep forgetting to save useful conversations, or you want knowledge extraction to happen automatically after every session.
16
+
> **Skip if** you're disciplined about manually saving knowledge, or the built-in `session-memory` hook is already giving you what you need.
Copy file name to clipboardExpand all lines: part12-self-improving-system.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,9 @@ Your agent makes a mistake Monday. You correct it. Tuesday, same mistake. Wednes
4
4
5
5
**The fix: a micro-learning loop that costs <100 tokens/message and compounds forever.**
6
6
7
+
> **Read this if** you correct the same mistakes every week, or want your agent to compound learnings over months instead of forgetting them at the next `/new`.
8
+
> **Skip if** you only use your agent for one-off tasks where pattern memory isn't worth the infra.
Copy file name to clipboardExpand all lines: part15-infrastructure-hardening.md
+35-13Lines changed: 35 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,9 @@ Your OpenClaw setup probably has hidden landmines that cause crash loops, GPU co
4
4
5
5
---
6
6
7
+
> **Read this if** you're running OpenClaw in production, have more than one user on it, or have ever hit a gateway crash loop, GPU contention, or a secret leak in an approval prompt.
8
+
> **Skip if** you're experimenting on a single-user dev box and don't mind restarting every few hours.
9
+
7
10
## The Compaction Crash Loop
8
11
9
12
### The Problem
@@ -43,11 +46,11 @@ Set an explicit compaction model that won't rate-limit you:
43
46
44
47
**Never use for compaction:** Gemini Flash (rate limits), expensive models like Opus (waste of money for summarization).
45
48
46
-
### The Reserve-Token Trap on Small Local Models (fixed in 2026.4.15-beta.1)
49
+
### The Reserve-Token Trap on Small Local Models (fixed in 2026.4.15)
47
50
48
51
If you pointed `compaction.model` at a small local model (a 14B Qwen with a 16K-32K context window), you could hit a *different* infinite loop. When `reserveTokens` was larger than the model's context window, compaction would compute "I need to free more tokens than this model even accepts" — fail — retry — forever. Same crash-loop symptom, different root cause.
49
52
50
-
2026.4.15-beta.1 caps the reserve-token floor at the model's actual context window. If you're running a small local compaction worker, **upgrade to 2026.4.15-beta.1 or later** and this class of loop is gone. If you can't upgrade yet, keep `reserveTokens` strictly under your compaction model's window (e.g. `reserveTokens: 4000` on a 16K-context model — never higher than ~25% of the window).
53
+
2026.4.15 caps the reserve-token floor at the model's actual context window. If you're running a small local compaction worker, **upgrade to 2026.4.15 or later** and this class of loop is gone. If you can't upgrade yet, keep `reserveTokens` strictly under your compaction model's window (e.g. `reserveTokens: 4000` on a 16K-context model — never higher than ~25% of the window).
51
54
52
55
---
53
56
@@ -241,29 +244,48 @@ If you find anything, rotate those keys immediately. Git history is permanent
241
244
242
245
After the Claude Code leak, a developer built [secretgate](https://github.com/nickcaglar/secretgate) — a local proxy that intercepts outbound AI traffic and redacts secrets before they leave your machine. Early stage (v0.6, ~170 regex patterns) but addresses the root cause: secrets shouldn't leave your machine in API calls.
243
246
244
-
### Gateway Auth Hot-Reload (new in 2026.4.15-beta.1)
247
+
### Gateway Auth Hot-Reload (new in 2026.4.15)
245
248
246
-
Before 2026.4.15-beta.1, rotating a gateway auth secret required a full gateway restart \u2014 every agent, every running sub-agent, every in-flight cron job got dropped. That made rotation so painful that most operators just\u2026 didn't. Expired OAuth tokens quietly degraded half the setup.
249
+
Before 2026.4.15, rotating a gateway auth secret required a full gateway restart — every agent, every running sub-agent, every in-flight cron job got dropped. That made rotation so painful that most operators just… didn't. Expired OAuth tokens quietly degraded half the setup.
247
250
248
-
2026.4.15-beta.1 adds `secrets.reload`: drop a new value into your secret store and the gateway picks it up without restarting. New requests use the new secret; in-flight requests finish on the old one.
251
+
2026.4.15 adds `secrets.reload`: drop a new value into your secret store and the gateway picks it up without restarting. New requests use the new secret; in-flight requests finish on the old one.
249
252
250
253
```bash
251
254
# Example: rotate an Anthropic key without killing the gateway
252
255
# (exact command depends on how your secrets are wired)
253
256
openclaw secrets set ANTHROPIC_API_KEY "sk-ant-new-key-here"
254
-
openclaw secrets reload
257
+
openclaw secrets reload# verb varies across 2026.4.x betas—check `openclaw --help`
255
258
openclaw doctor # confirm new key picked up
256
259
```
257
260
258
261
**Use this to finally rotate those 12-month-old keys you're embarrassed about.** Ideally wire it into a quarterly cron or your password-manager rotation policy.
259
262
260
-
### Approvals Secret Redaction (new in 2026.4.15-beta.1)
263
+
### Approvals Secret Redaction (new in 2026.4.15)
264
+
265
+
When a tool call required approval, the approval prompt used to echo the full argument payload to the approver — including any API keys, tokens, or passwords the tool was about to send. A reviewer clicking "approve" on a `curl` call was reading the raw `Authorization: Bearer …` header.
266
+
267
+
2026.4.15 redacts secret-shaped strings (`sk-*`, `sk-ant-*`, `AIza*`, `xai-*`, `Bearer *`, `password=*`, etc.) from approval prompts before they reach the reviewer. The tool still receives the real values — only the approval UI sees placeholders.
268
+
269
+
**Practical impact:** if you run OpenClaw with human-in-the-loop approvals (most multi-user deployments should — see [Part 24](./part24-task-brain-control-plane.md)), upgrade. Before this fix, every approval was a credential leak to the approver.
270
+
271
+
### Gateway Tool-Name Collision Rejection (new in 2026.4.15 stable)
261
272
262
-
When a tool call required approval, the approval prompt used to echo the full argument payload to the approver \u2014 including any API keys, tokens, or passwords the tool was about to send. A reviewer clicking "approve" on a `curl` call was reading the raw `Authorization: Bearer \u2026` header.
273
+
The 2026.4.15 stable release closed a subtle but ugly class of privilege inheritance: if a **client-supplied tool definition** normalized to the same name as a built-in tool, it used to silently *inherit* the built-in's trust envelope — in particular the local-media (`MEDIA:`) passthrough path. A malicious or poorly-vetted ClawHub skill could register a tool like `Browser` or `exec` with a trailing space that normalize-collided with a built-in and ride the built-in's trust.
274
+
275
+
2026.4.15 anchors the trusted local-media passthrough on the **exact raw name** of that run's registered built-in tools, and **rejects any client tool whose name normalize-collides with a built-in or with another client tool in the same request** — on both JSON and SSE paths — with `400 invalid_request_error`.
276
+
277
+
```
278
+
POST /v1/chat/completions
279
+
{ "tools": [ { "name": "Browser", ... } ] }
280
+
→ 400 invalid_request_error
281
+
"client tool name collides with built-in 'browser'"
282
+
```
263
283
264
-
2026.4.15-beta.1 redacts secret-shaped strings (`sk-*`, `sk-ant-*`, `AIza*`, `xai-*`, `Bearer *`, `password=*`, etc.) from approval prompts before they reach the reviewer. The tool still receives the real values \u2014 only the approval UI sees placeholders.
284
+
Practical impact:
265
285
266
-
**Practical impact:** if you run OpenClaw with human-in-the-loop approvals (most multi-user deployments should \u2014 see [Part 24](./part24-task-brain-control-plane.md)), upgrade. Before this fix, every approval was a credential leak to the approver.
286
+
- If you maintain skills in-house that deliberately shadow a built-in (don't — rename instead), they will start hard-failing after the upgrade.
287
+
- If you install community skills from [Part 23](./part23-clawhub-skills-marketplace.md), this is one of the structural defenses against the ClawHavoc-style supply-chain attack: even a signed-but-compromised skill can't inherit a built-in's trust by name anymore.
288
+
- Combine with: local-roots containment on webchat audio (same release), Task Brain semantic approvals ([Part 24](./part24-task-brain-control-plane.md)), and the skill scope allowlist ([Part 23](./part23-clawhub-skills-marketplace.md)).
267
289
268
290
### Gateway Crash Loop Fix
269
291
@@ -284,7 +306,7 @@ This kills any orphaned gateway process before starting a new one. Without this,
284
306
## The Hardening Checklist
285
307
286
308
-[ ] Compaction model set explicitly (not defaulting to Flash)
287
-
-[ ]`reserveTokens` safe for your compaction model's context window (2026.4.15-beta.1+ caps this automatically)
309
+
-[ ]`reserveTokens` safe for your compaction model's context window (2026.4.15+ caps this automatically)
288
310
-[ ] All agent fallbacks point to reliable providers (Cerebras, Groq, local)
289
311
-[ ] Web search uses Tavily (not Gemini grounding)
290
312
-[ ] Embedding server on dedicated GPU (not shared with gaming/inference)
@@ -294,8 +316,8 @@ This kills any orphaned gateway process before starting a new one. Without this,
294
316
-[ ] No credentials written in memory/session files (rule in AGENTS.md)
295
317
-[ ] Existing git history scanned for leaked secrets
296
318
-[ ] Gateway startup script has stale-process cleanup
297
-
-[ ] Gateway auth hot-reload tested (2026.4.15-beta.1+): rotate a test key via `openclaw secrets reload`without a gateway restart
298
-
-[ ] Approval prompts show redacted secrets, not raw values (2026.4.15-beta.1+)
319
+
-[ ] Gateway auth hot-reload tested (2026.4.15+): rotate a test key and confirm the Canvas **Model Auth status card** picks up the new credential without a full gateway restart (backed by the `models.authStatus` gateway method)
320
+
-[ ] Approval prompts show redacted secrets, not raw values (2026.4.15+)
0 commit comments