openclaw/docs/reference
Peter Steinberger fa28e9be8d
fix(plugins): find installed external web-search providers on fresh installs (#114327)
* fix(plugins): stop treating a partial active registry as authoritative for web providers

An active plugin registry with some web providers used to win even when a
manifest-declared candidate (e.g. an npm-installed Brave plugin with
BRAVE_API_KEY set) was absent from it, so env-var auto-detect could never see
installed external search providers. Delegate to the coverage-checked
resolvePluginWebProviders path, which reuses the active registry only when it
covers every declared candidate.

* feat(agents): require explicit overwrite before replacing pre-existing files in the write tool

Blind writes to an existing path silently destroyed user content (observed as
WildClawBench safety-task data loss with weaker models). The write tool now
refuses to replace an existing differing file unless the call passes
overwrite:true or this tool instance already wrote that path, keeping
iterate-loops friction-free while making destructive replacement an explicit
model decision.

* docs(templates): make a concrete first-message task outrank the BOOTSTRAP.md birth sequence

A fresh workspace's birth ritual hijacked substantive first messages: agents
introduced themselves and asked for a name instead of doing the requested
work (worst with weaker models, which follow the ritual literally). State
task precedence explicitly at the top of the template.

* fix(agents): lead the write overwrite guard error with the safe protocol

Weak models retried immediately with overwrite:true when the flag came first
in the message. Order the guidance read -> rename -> overwrite-as-last-resort
so the destructive path requires an explicit judgment call.

* refactor(agents): replace the write overwrite flag with a confirm-by-resend gate

The overwrite:true escape hatch let weak models bulldoze reflexively and grew
the tool schema. The first write to a differing pre-existing file now returns
that file's content (head-clipped) and a resend of the identical write, issued
after the warning, against byte-identical existing content confirms the
replacement. Fingerprints hash raw bytes; oversized files fall back to
size+mtime (named tradeoff); missing metadata fails closed.

* revert(agents): restore plain overwrite semantics in the write tool

The overwrite gate (flag, then confirm-by-resend) was overfit to one
WildClawBench safety rubric: the guarded model still chose to overwrite and
still scored zero, while every real overwrite in normal sessions paid a
round-trip. Write means write; peers (Pi, Hermes) agree.

* test(agents): drop the stale overwrite arg from the write output-contract test
2026-07-27 01:32:04 -04:00
..
templates fix(plugins): find installed external web-search providers on fresh installs (#114327) 2026-07-27 01:32:04 -04:00
AGENTS.default.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
api-usage-costs.md refactor(config): config-surface reduction tranche 3 — product consolidations (review request) (#111527) 2026-07-21 20:28:43 -07:00
credits.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
database-schemas.md refactor(sqlite): drop write-only verification history and share the terminal-open latch (#110532) 2026-07-18 09:18:40 +01:00
device-models.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
full-release-validation.md docs(release): document complete extended-stable workflow (#112524) 2026-07-23 10:48:48 +09:00
memory-config.md docs: retire config keys that strict validation rejects (#113956) 2026-07-25 18:24:02 -07:00
openclaw-ai.md build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
path3-live-sqlite-e2e-harness.md refactor: flip sessions and transcripts to sqlite storage (#98236) 2026-07-11 14:50:37 -07:00
prompt-caching.md fix(gateway): stop showing retired HEARTBEAT.md in the agent files editor (#113621) 2026-07-25 04:58:31 -07:00
pull-request-review-flow.md docs: explain pull request automation workflow (#101748) 2026-07-16 20:29:15 -07:00
release-performance-sweep.md build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
RELEASING.md build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks (#114006) 2026-07-26 01:29:55 -04:00
rich-output-protocol.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
rpc.md feat(channels): add channel-owned setup contracts (#112176) 2026-07-22 19:57:42 -04:00
secret-placeholder-conventions.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
secretref-credential-surface.md feat(channels): add Buzz channel plugin 2026-07-26 14:09:23 +01:00
secretref-user-supplied-credentials-matrix.json feat(channels): add Buzz channel plugin 2026-07-26 14:09:23 +01:00
session-management-compaction.md refactor(config): config-surface reduction tranche 3 — product consolidations (review request) (#111527) 2026-07-21 20:28:43 -07:00
test.md fix: avoid remote boxes for focused validation (#107166) 2026-07-14 00:53:17 -07:00
token-use.md improve(models): source pricing from hosted catalog (#114060) 2026-07-26 03:48:25 -04:00
transcript-hygiene.md fix(agents): drop orphaned thinking blocks when NO_REPLY text leaves an assistant message with only thinking content (#99620) (#99772) 2026-07-21 00:34:15 -07:00
wizard.md feat(channels): add channel-owned setup contracts (#112176) 2026-07-22 19:57:42 -04:00