Skip to content

Commit 4401feb

Browse files
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>
2 parents 343e83c + 735f204 commit 4401feb

21 files changed

Lines changed: 596 additions & 540 deletions

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ contact_links:
33
- name: Question about OpenClaw itself (not the guide)
44
url: https://github.com/openclaw/openclaw/issues
55
about: For OpenClaw bugs, feature requests, or usage questions, open an issue on the OpenClaw repo instead.
6+
- name: OpenClaw documentation
7+
url: https://clawdocs.org/
8+
about: Official OpenClaw docs — the right place for questions about the product itself.
69
- name: Read the FAQ first
710
url: https://github.com/OnlyTerp/openclaw-optimization-guide/blob/master/part27-gotchas-and-faq.md
811
about: Most questions are already answered in Part 27 — Gotchas & FAQ.

.github/ISSUE_TEMPLATE/correction.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@ What should it say instead?
1818
Release notes, config schema, your own testing — whatever backs up the correction.
1919

2020
**OpenClaw version you're on**
21-
e.g. `2026.4.15-beta.1`
21+
e.g. `2026.4.15`

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Thanks for wanting to make the guide better. This is a living document — OpenC
3333
- **Links > inline duplication.** If something is already covered in another part, link to it.
3434
- **Cross-link new parts** from the relevant existing parts and the README TOC.
3535
- **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).
3737

3838
## Running The Quality Checks Locally
3939

README.md

Lines changed: 99 additions & 52 deletions
Large diffs are not rendered by default.

part10-state-of-the-art-embeddings.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
The main guide's one-shot prompt installs a local embedding model via Ollama. Pick the right tier for your hardware:
88

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+
912
## Embedding Model Tiers
1013

1114
| 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
1821

1922
> **⚠️ 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.
2023
21-
### GitHub Copilot Embeddings (new in OpenClaw 2026.4.15-beta.1)
24+
### GitHub Copilot Embeddings (new in OpenClaw 2026.4.15)
2225

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:
2427

2528
```json5
2629
{
@@ -39,7 +42,7 @@ OpenClaw 2026.4.15-beta.1 added a `copilot` memory-search provider. If your org
3942

4043
**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.
4144

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.
4346

4447
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`.
4548

part11-auto-capture-hook.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ ByteRover (a community plugin on ClawHub) solves this with an `afterTurn` hook t
1212

1313
---
1414

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.
17+
1518
## How It Works
1619

1720
The auto-capture hook fires on three events:

part12-self-improving-system.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Your agent makes a mistake Monday. You correct it. Tuesday, same mistake. Wednes
44

55
**The fix: a micro-learning loop that costs <100 tokens/message and compounds forever.**
66

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.
9+
710
## The Architecture
811

912
```

part13-memory-bridge.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ When you spawn Codex or Claude Code to build something, they start blind. They d
44

55
**The fix: inject your vault knowledge into the coding agent's workspace before it starts.**
66

7+
> **Read this if** you spawn Codex, Claude Code, or other coding agents and they start every session blind to your architecture / past decisions.
8+
> **Skip if** you don't use external coding agents — or your vault is small enough to paste into their prompts manually.
9+
710
## The Problem
811

912
```

part15-infrastructure-hardening.md

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Your OpenClaw setup probably has hidden landmines that cause crash loops, GPU co
44

55
---
66

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+
710
## The Compaction Crash Loop
811

912
### The Problem
@@ -43,11 +46,11 @@ Set an explicit compaction model that won't rate-limit you:
4346

4447
**Never use for compaction:** Gemini Flash (rate limits), expensive models like Opus (waste of money for summarization).
4548

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)
4750

4851
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.
4952

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).
5154

5255
---
5356

@@ -241,29 +244,48 @@ If you find anything, rotate those keys immediately. Git history is permanent
241244

242245
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.
243246

244-
### Gateway Auth Hot-Reload (new in 2026.4.15-beta.1)
247+
### Gateway Auth Hot-Reload (new in 2026.4.15)
245248

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.
247250

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.
249252

250253
```bash
251254
# Example: rotate an Anthropic key without killing the gateway
252255
# (exact command depends on how your secrets are wired)
253256
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`
255258
openclaw doctor # confirm new key picked up
256259
```
257260

258261
**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.
259262

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)
261272

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+
```
263283

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:
265285

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)).
267289

268290
### Gateway Crash Loop Fix
269291

@@ -284,7 +306,7 @@ This kills any orphaned gateway process before starting a new one. Without this,
284306
## The Hardening Checklist
285307

286308
- [ ] 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)
288310
- [ ] All agent fallbacks point to reliable providers (Cerebras, Groq, local)
289311
- [ ] Web search uses Tavily (not Gemini grounding)
290312
- [ ] 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,
294316
- [ ] No credentials written in memory/session files (rule in AGENTS.md)
295317
- [ ] Existing git history scanned for leaked secrets
296318
- [ ] 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+)
299321
- [ ] Config backed up before changes
300322
- [ ] Gateway restarted after config changes
301323

0 commit comments

Comments
 (0)