Commit Graph

24618 Commits

Author SHA1 Message Date
Vincent Koc
df39e611f8 fix(channels): quiet disabled preview tool progress 2026-05-03 18:33:09 -07:00
Peter Steinberger
57c37ef933 fix(doctor): respect channel owner plugin repairs 2026-05-04 02:25:55 +01:00
Vincent Koc
642e1dfcdf fix(agents): preserve messaging dedupe thread ids 2026-05-03 18:11:32 -07:00
Vincent Koc
dfadf03e1f test(acp): isolate persistent binding lifecycle coverage 2026-05-03 18:10:56 -07:00
Vincent Koc
c151573f4c test(agents): align thinking default policy coverage 2026-05-03 18:10:56 -07:00
scoootscooob
b0f947f61c fix(whatsapp): honor group visible reply mode (#76973)
* fix(whatsapp): honor group visible reply mode

* fix(whatsapp): preserve direct reply defaults
2026-05-03 18:07:38 -07:00
Peter Steinberger
786fdeb366 refactor: centralize bootstrap system prompt assembly
Centralize embedded attempt system prompt assembly so override and default prompts share bootstrap Project Context handling and provider transforms. Make bootstrap context routing explicit: full bootstrap can enter system Project Context, while runtime/user-message context remains disabled.
2026-05-04 02:02:40 +01:00
Peter Steinberger
ecec68d06d fix: apply undici family fallback to guarded fetch 2026-05-04 01:47:26 +01:00
Peter Steinberger
2b01bcf6c8 refactor: source service env install planning 2026-05-04 01:47:02 +01:00
Peter Steinberger
419bcd26f0 docs: clarify webchat transcript persistence 2026-05-04 01:40:48 +01:00
Peter Steinberger
eb66def656 fix: scope messaging tool final reply dedupe
Co-authored-by: HCL <chenglunhu@gmail.com>
2026-05-04 01:35:58 +01:00
Peter Steinberger
5d09b4b92c feat(agents): add tool progress detail modes 2026-05-04 01:35:27 +01:00
Peter Steinberger
0fa70f5a47 fix: keep bootstrap context in system prompt
Keep pending BOOTSTRAP.md and bootstrap truncation notices in system-prompt Project Context instead of WebChat/runtime user context. Preserve bootstrap instructions when systemPromptOverride is configured.
2026-05-04 01:34:04 +01:00
Peter Steinberger
9c37cfcbdb fix: harden gateway install recovery paths 2026-05-04 01:28:17 +01:00
Vincent Koc
9799e412f8 fix(plugins): clean pinned externalized load paths 2026-05-03 17:27:18 -07:00
Peter Steinberger
b13e9f1864 fix: stabilize Google Meet realtime talkback 2026-05-04 01:24:01 +01:00
Vincent Koc
c42a349b42 fix(plugins): trust official externalized npm installs 2026-05-03 17:20:47 -07:00
Vincent Koc
f5927cbb43 fix(plugins): update trusted prerelease installs 2026-05-03 17:17:10 -07:00
Vincent Koc
443f7035a2 fix(plugins): filter unavailable optional tools 2026-05-03 17:10:41 -07:00
Vincent Koc
f1340be051 feat(openrouter): expand app attribution categories 2026-05-03 17:07:22 -07:00
Vincent Koc
ecd562b2b5 fix(realtime): label pre-ready transcription closes 2026-05-03 17:04:49 -07:00
Vincent Koc
34b3471f85 feat(openrouter): add opt-in response caching
Adds opt-in OpenRouter response caching params, preserves alias precedence across config scopes, and documents the behavior.\n\nVerification:\n- pnpm test:serial src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts src/agents/pi-embedded-runner-extraparams-openrouter.test.ts -- --reporter=verbose\n- pnpm exec oxfmt --check --threads=1 src/agents/pi-embedded-runner/proxy-stream-wrappers.ts src/plugin-sdk/provider-stream.ts src/agents/pi-embedded-runner/proxy-stream-wrappers.test.ts src/agents/pi-embedded-runner-extraparams-openrouter.test.ts docs/providers/openrouter.md CHANGELOG.md\n- git diff --check\n- Testbox tbx_01kqr4dakpsk9rswz9pem49nz0: pnpm check:changed (https://github.com/openclaw/openclaw/actions/runs/25294515012)
2026-05-03 17:02:18 -07:00
Vincent Koc
de82d17de2 fix(qa): require cache probe marker 2026-05-03 16:52:58 -07:00
Peter Steinberger
36c047c026 fix(channels): unify progress draft line formatting 2026-05-04 00:50:09 +01:00
Peter Steinberger
c3f5c20f2c fix(cli): retry admin device approval after ownership denial 2026-05-04 00:41:55 +01:00
Peter Steinberger
baadd74b6b fix(plugins): narrow optional tool cold loads 2026-05-04 00:41:01 +01:00
hcl
b1db87fb36 fix(doctor): commit legacy migrations even when unrelated validation fails (#76800)
* fix(doctor): commit legacy migrations even when unrelated validation fails (#76798)

migrateLegacyConfig previously returned config: null when post-migration
validation found any issue (e.g. a missing plugin). The caller then kept
the unmigrated config as the candidate, so doctor --fix never wrote the
legacy migration to disk.

Now when validation fails after a successful migration, the migrated
config is returned with partiallyValid: true. applyLegacyCompatibilityStep
always commits the migrated config to state.candidate, ensuring
agents.defaults.llm and other known-legacy keys are cleaned up on
doctor --fix even when an unrelated provider or plugin issue blocks
the full validator.

Adds regression test asserting that candidate is updated to the migrated
shape when partiallyValid is set.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fixup: extend skipPluginValidation to write path with E2E coverage

Thread skipPluginValidationOnWrite through loadAndMaybeMigrateDoctorConfig
return value into runWriteConfigHealth so replaceConfigFile bypasses plugin
validation when migration is only partially valid. Add E2E test verifying
the flag propagates end-to-end.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fixup(doctor): wire skipPluginValidation through full write path (#76800)

Clawsweeper P2 x2:
1. io.ts exported writeConfigFile wrapper now passes skipPluginValidation to
   createConfigIO so both write-phase validation and post-write loadConfig
   re-read honor the flag.
2. mutate.ts tryWriteSingleTopLevelIncludeMutation now skips plugin validation
   when writeOptions.skipPluginValidation is set, so include-write fast path
   no longer blocks safe legacy migrations with unrelated plugin errors.

Adds regression test: skipPluginValidation bypasses plugin schema rejection
on writeConfigFile and falls back to throwing when flag is not set.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fixup(doctor): bail out of include fast path when skipPluginValidation is set (#76800)

Clawsweeper P2: after the include write, readConfigFileSnapshotForWrite()
calls loadConfig() which validates with plugins; refreshedSnapshot.valid is
false when an unrelated plugin issue exists, causing the include path to
throw even though skipPluginValidation was requested.

Simplest fix: return false from tryWriteSingleTopLevelIncludeMutation when
skipPluginValidation is set, letting the root writer handle the write with
plugin validation disabled end-to-end (including post-write readback via
createConfigIO({ pluginValidation: "skip" })).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(doctor): cover partial legacy migration writes

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-04 00:34:24 +01:00
HCL
f8f881f63f fix(daemon): preserve systemd env-file secrets on re-stage
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 00:34:18 +01:00
Peter Steinberger
7915110259 fix(memory-lancedb): declare apache-arrow peer 2026-05-04 00:30:02 +01:00
Vincent Koc
7fb2e5506f test(agents): retry empty live cache probe text 2026-05-03 16:26:17 -07:00
Vincent Koc
cde9591168 fix(plugins): prefer newest official prerelease install 2026-05-03 16:25:02 -07:00
Vincent Koc
b520e40cf6 fix(plugins): merge external catalog channel hints 2026-05-03 16:24:17 -07:00
Peter Steinberger
392897304c fix(channels): delay progress drafts until work is visible 2026-05-04 00:22:13 +01:00
Peter Steinberger
88b983a713 fix: stabilize Google Meet realtime audio 2026-05-04 00:17:57 +01:00
Vincent Koc
b5affa64b3 fix(plugins): supplement external catalog contracts 2026-05-03 16:15:28 -07:00
Vincent Koc
3efa82de86 fix(plugins): allow prerelease-only official packages 2026-05-03 16:12:39 -07:00
Vincent Koc
250be27f64 fix(plugins): fall back to stable official npm versions 2026-05-03 16:07:53 -07:00
Peter Steinberger
107aad9742 fix(channels): add ellipses to progress draft defaults 2026-05-04 00:05:02 +01:00
Vincent Koc
60cf8c79fe fix(mattermost): expose streaming config hints 2026-05-03 16:00:22 -07:00
Josh Avant
911ac6dd10 fix(discord): handle SecretRef runtime status (#76987)
* fix(discord): handle SecretRef runtime status

* docs(changelog): mention Discord SecretRef fix
2026-05-03 17:56:36 -05:00
Vincent Koc
d62fb9eac3 test(agents): stabilize anthropic abort live harness 2026-05-03 15:52:25 -07:00
Vincent Koc
9ba7183b63 fix(docs): validate plugin json examples 2026-05-03 15:47:23 -07:00
Peter Steinberger
e5ec14a06a fix(plugins): discover alsoAllow plugin tools
Summary:
- Discover optional plugin tools named in tools.alsoAllow without treating additive alsoAllow as a restrictive plugin-tool allowlist.
- Preserve explicit alsoAllow wildcards and keep default non-optional plugin tools visible.
- Document llm-task and lobster enablement and add changelog coverage.

Verification:
- pnpm test src/agents/tool-policy.test.ts src/gateway/tools-invoke-http.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/plugins/tools.optional.test.ts
- pnpm exec oxfmt --check --threads=1 src/agents/sandbox-tool-policy.ts src/agents/tool-policy.ts src/agents/tool-policy.test.ts src/agents/pi-tools.create-openclaw-coding-tools.test.ts src/gateway/tools-invoke-http.test.ts src/plugins/tools.ts src/plugins/tools.optional.test.ts
- git diff --check
- Blacksmith Testbox tbx_01kqr05924hz9kw50myxrqmsf9: pnpm check:changed

Fixes #76616
2026-05-03 23:46:14 +01:00
Vincent Koc
0bf19f540d fix(docs): validate strict channel json fences 2026-05-03 15:44:44 -07:00
Peter Steinberger
6529cad499 fix(cli): avoid local preload for gateway-owned message actions (#76898)
* fix(cli): avoid Telegram send preload

* fix(cli): include telegram target prefixes

* fix(cli): generalize gateway message preload skip

* refactor(cli): clarify message preload planning

* fix(cli): keep broadcast plugin preload
2026-05-03 23:44:19 +01:00
Vincent Koc
f275e9d4b9 fix(docs): make slack manifest snippets parseable 2026-05-03 15:28:27 -07:00
Vincent Koc
9ae93179e2 fix(docs): validate channel config snippets 2026-05-03 15:23:07 -07:00
Peter Steinberger
4047f4d0b4 fix(plugins): recover managed npm install ledger 2026-05-03 23:17:49 +01:00
Vincent Koc
d57b16ff81 fix(tlon): expose group invite allowlist 2026-05-03 15:15:58 -07:00
Peter Steinberger
0872b505b0 fix(cron): clarify no-delivery previews 2026-05-03 22:49:31 +01:00