Commit Graph

40787 Commits

Author SHA1 Message Date
Vincent Koc
de82d17de2 fix(qa): require cache probe marker 2026-05-03 16:52:58 -07:00
Peter Steinberger
a94897d99c docs: update maintainer closeout guidance 2026-05-04 00:51:57 +01:00
Peter Steinberger
36c047c026 fix(channels): unify progress draft line formatting 2026-05-04 00:50:09 +01:00
Otto Deng
df5c453625 fix(workspace): allow @whiskeysockets/libsignal-node in onlyBuiltDependencies (#76539)
pnpm v9+ defaults blockExoticSubdeps=true, which rejects
@whiskeysockets/libsignal-node — a tarball-URL subdep of
@whiskeysockets/baileys. This silently breaks the WhatsApp channel and
silences all inbound agent replies on fresh installs.

Add @whiskeysockets/libsignal-node to onlyBuiltDependencies in both
package.json and pnpm-workspace.yaml — the same exemption already used
for @whiskeysockets/baileys itself.

Fixes #76539.
2026-05-03 16:49:36 -07:00
Vincent Koc
ef0f5d8cfa docs(changelog): credit @hclsys for doctor legacy-migration fix
#76800 (fixes #76798) added user-facing `doctor --fix` behavior to
commit safe legacy migrations even when unrelated validation issues
prevent full validation, but the existing entry credited no contributor
and used a bare PR/issue reference. Promote #76798 to a `Fixes` ref,
add the merging PR ref (#76800), and credit the human contributor
@hclsys per CLAUDE.md changelog-attribution rules.
2026-05-03 16:49:25 -07:00
Vincent Koc
c90a828d17 fix(slack): skip empty progress refreshes 2026-05-03 16:48:39 -07:00
Vincent Koc
744b7e56e2 test(qa): relax Matrix tool progress preview wording 2026-05-03 16:45:13 -07:00
Vincent Koc
d2ba09b301 fix(channels): skip empty progress drafts 2026-05-03 16:44:21 -07:00
Peter Steinberger
d609859a8b test: simplify parallels smoke harness 2026-05-04 00:44:05 +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
Vincent Koc
07b52b4a01 fix(qa): align mock tool progress markers 2026-05-03 16:38:18 -07: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
Vincent Koc
d841394eba test(qa): harden Matrix tool progress live check 2026-05-03 16:31:47 -07:00
Vincent Koc
50a7b95227 fix(openai): wait for realtime voice session readiness 2026-05-03 16:30:56 -07: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
12dbfab678 fix(msteams): stream progress tool lines 2026-05-03 16:17:02 -07:00
Vincent Koc
b5affa64b3 fix(plugins): supplement external catalog contracts 2026-05-03 16:15:28 -07:00
Peter Steinberger
4419a9de2a docs: clarify fixed issue closeout 2026-05-04 00:12:47 +01:00
Vincent Koc
3efa82de86 fix(plugins): allow prerelease-only official packages 2026-05-03 16:12:39 -07:00
Vincent Koc
0a8694c522 fix(openai): avoid duplicate realtime setup errors 2026-05-03 16:12:05 -07:00
Vincent Koc
f66af6a5f5 fix(openai): wait for realtime transcription session update 2026-05-03 16:12:05 -07:00
Vincent Koc
3546a54003 fix(mattermost): honor progress tool silence 2026-05-03 16:08:47 -07:00
Vincent Koc
8a1e220273 test(qa): relax Matrix tool progress matching 2026-05-03 16:08:24 -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
b2fd814f91 fix(docs): use additive llm task allowlist 2026-05-03 15:53:30 -07: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
9f2f75ff02 docs(changelog): drop docs-only Channel docs and Google Chat setup-example entries
Both entries described pure docs/example fixes (JSON5 channel config
snippets and Google Chat `groups.<space>.enabled` setup example) with
no runtime behavior change. Per CLAUDE.md "Changelog user-facing only"
they are not warranted in Unreleased; drop them while keeping QA, Tlon,
and external-contributor entries intact.
2026-05-03 15:42:58 -07:00
Vincent Koc
1fbc240e70 test(qa): preserve Slack live failure artifacts 2026-05-03 15:39:45 -07:00
Vincent Koc
7e92c440eb test(extensions): keep shard balance assertion stable 2026-05-03 15:38:27 -07:00
Vincent Koc
a027ac0195 fix(qa): fail slack no-reply on any reply 2026-05-03 15:35:49 -07:00
Peter Steinberger
95ef5eb762 test(e2e): require configured plugin npm repair 2026-05-03 23:33:01 +01:00
Vincent Koc
f275e9d4b9 fix(docs): make slack manifest snippets parseable 2026-05-03 15:28:27 -07:00
Vincent Koc
3f27ef8ef8 test(googlechat): mirror gaxios interceptor surface 2026-05-03 15:26:39 -07:00
Vincent Koc
9ae93179e2 fix(docs): validate channel config snippets 2026-05-03 15:23:07 -07:00
Peter Steinberger
940487e20f fix: detect muted Google Meet microphone 2026-05-03 23:22:47 +01:00
Vincent Koc
d3043345ca ci(testbox): remove unusable windows harness 2026-05-03 15:21:04 -07:00