Commit Graph

49 Commits

Author SHA1 Message Date
Sliverp 84c7d45f15 refactor(qqbot): install plugin from Tencent package (#107295)
* refactor(qqbot): remove bundled extension source

Mechanical deletion half of the #107295 squashed rebase; the catalog
repoint and host integration land in the follow-up commit.

Co-authored-by: sliverp <870080352@qq.com>

* refactor(qqbot): install plugin from Tencent package

Squashed rebase of #107295 onto current main. Repoints the official
external channel catalog at @tencent-connect/openclaw-qqbot@2.0.1 and
adapts onboarding, doctor migrations, secrets, build guards, and tests.

Documents the known limitation that the external package does not
support structured SecretRef clientSecret values; operators move those
to QQBOT_CLIENT_SECRET or clientSecretFile before upgrading.

Co-authored-by: sliverp <870080352@qq.com>

* fix(doctor): reuse shared hasOwnKey record helper

The rebased QQBot migration carried its own hasOwnKey export, colliding
with the one main now ships in legacy-config-record-shared.ts.

Co-authored-by: sliverp <870080352@qq.com>

* fix(plugins): carry catalog integrity through the update bridge

The externalized-bundled-plugin bridge dropped the official catalog's
expectedIntegrity pin, so bundled-user updates installed the external
npm package without integrity verification. The bridge now carries the
pin for the catalog's exact npm spec and both bridge install calls pass
it through; update-channel spec overrides intentionally skip the pin
since it only covers the pinned version.

Co-authored-by: sliverp <870080352@qq.com>

* chore(plugin-sdk): refresh per-entrypoint API baselines

The QQBot compat export and bundled-type removal shift 26 entrypoint
closure hashes in the new split baseline layout.

Co-authored-by: sliverp <870080352@qq.com>

* refactor(qqbot): drop helper reintroduced during rebase

Main's coercion consolidation added this file after the deletion
commit's base; its only consumers were the removed qqbot sources.

Co-authored-by: sliverp <870080352@qq.com>

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-11 15:10:27 -07:00
Jacqueline Henriksen 762fa6e428 feat(clickclack): allow opt-in bot-to-bot inbound dispatch 2026-08-09 20:33:03 +01:00
Peter Steinberger 48639663b0 chore(release): prepare 2026.8.1 (#120375) 2026-08-07 18:44:12 -07:00
Vincent Koc 1ee0564b09 fix(discord): avoid doctor runtime loading (#119391)
* fix(discord): publish doctor capability metadata

Punchcard-Session: amber-workshop-river-yr

* fix(doctor): read packaged channel metadata

Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
Peter Steinberger 3d65ea2a1b fix(googlechat): align doctor policy ownership with canonical account configuration (#118972)
* fix(googlechat): align doctor policy ownership with canonical account configuration

* test(googlechat): align generated channel metadata and typed doctor fixtures
2026-08-03 15:23:16 -07:00
Vincent Koc 554a6f3bbf feat(sms): add Twilio MMS support (#118664)
* feat(sms): add Twilio MMS support

* fix(sms): harden hosted media bearer handling

* fix(sms): discard staged media before dispatch

* fix(sms): close staged media cleanup races

* fix(sms): finalize MMS metadata and race proof

* fix(media): bind local reads to authorized descriptors

* fix(sms): close MMS review gaps

* fix(media): make inbound root matching type-safe

* fix(media): route bounded reads through fs-safe facade

* test(media): satisfy async lint contracts
2026-08-04 05:46:37 +08:00
Vincent Koc f9baa3e894 fix(channels): generate discovery docs from catalog (#118106) 2026-08-03 23:42:55 +08:00
Vincent Koc 7fabb55648 fix(channels): generate catalog from package manifests (#118097) 2026-08-03 23:17:09 +08:00
Vincent Koc 89aadef6ef feat(plugins): externalize iMessage channel (#117101) 2026-08-01 08:01:18 +08:00
Shakker 014e1a6c3a feat: preserve Markdown in Buzz messages 2026-07-29 23:07:22 +01:00
Patrick Erichsen aa0d3192d2 feat(channels): add Buzz channel plugin 2026-07-26 14:09:23 +01:00
Jesse Merhi 4a2a600809 feat(channels): add channel-owned setup contracts (#112176)
* feat(channels): add channel-owned setup contracts

* test(channels): align legacy setup fixtures

* chore(channels): regenerate config and SDK baselines after rebase

* fix(update): run fresh doctor after current-process core changes

* fix(channels): align add pre-scan with execution precedence

* style(cli): format channels-cli test additions

* fix(channels): restore option-before-positional channel resolution via metadata arity scan

* fix(channels): keep help flags out of metadata arity escalation

* test(update): mock fresh post-update doctor in current-process suites

* style: format review fixes and correct entrypoint mock type

* fix(channels): register only modern contract options for dual-publishing plugins

* test(update): align downgrade suites with fresh-doctor child invocation

* docs(channels): record empty-contract and input-forwarding invariants

* fix(line): keep the shipped --token switch as a channel access token alias

* fix(signal): stop treating exact cross-family loopback endpoints as bind-aligned

* chore(config): regenerate docs config baselines after second rebase

* style: format rebased channels add tests

* fix(channels): enforce field-key and flag-name agreement in setup contracts

* fix(signal): detect container endpoints for bare --http-url setup

* fix(signal): ignore unconfigured accounts in transport collision checks

* fix(channels): validate negated setup flags in contract and normalizer

* fix(signal): preserve existing transport kind when setup detection is unreachable

* style(signal): use direct boolean check in collision guard

* style(signal): type test config literals

* docs(update): record two-read design of fresh-doctor validation gate

* fix(channels): satisfy post-rebase architecture gates

* docs: refresh channel setup map

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-22 19:57:42 -04:00
Peter Steinberger d725632ee7 refactor(channels): move channel-flavored setup flags into plugin manifests (#112239)
* refactor(channels): move channel-flavored setup flags into plugin manifests

* refactor(channels): normalize manifest cliAddOptions formatting, drop changelog entry

* fix(channels): dedupe channels add options by commander switch identity

* fix(channels): let the selected channel's cliAddOptions win switch dedupe
2026-07-21 02:50:19 -07:00
linhongkuan 12ea61a08d chore(catalog): bump Weixin plugin to 2.4.6 (#96801)
* chore(catalog): bump Weixin plugin to 2.4.6

* chore(catalog): align Weixin host floor

* chore: retrigger PR checks

---------

Co-authored-by: lin-hongkuan <lin-hongkuan@users.noreply.github.com>
2026-06-27 08:12:12 +08:00
jase-283 f8df80646b chore: sync yuanbao plugin catalog to 2.15.0 (#94470) 2026-06-22 18:50:07 +00:00
Vincent Koc f2eca94391 feat(plugins): externalize additional official plugins (#95683) 2026-06-22 16:12:51 +08:00
Vincent Koc 2b50bbf152 feat(raft): add wake bridge channel 2026-06-22 14:36:12 +08:00
Kendrick Ha 4723602e7e feat(channels): add Zalo ClawBot external channel entry and documenta… (#89586)
Merged via squash.

Prepared head SHA: 5ef4fe999a
Co-authored-by: ken-kuro <47441476+ken-kuro@users.noreply.github.com>
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
Reviewed-by: @steipete
2026-06-19 13:42:38 +01:00
Peter Steinberger 729420c34a test: split slow vitest shards 2026-06-01 05:34:59 -04:00
Peter Steinberger fbf900c746 refactor: move plugin state consumers to sqlite
Summary:
- add plugin-state runtime SDK subpaths backed by the existing sidecar DB
- migrate Discord model-picker preferences and Feishu dedup state to plugin-state keyed stores
- wire doctor legacy-state migration imports, including TTL preservation, for existing plugin JSON state

Verification:
- pnpm plugin-sdk:api:check
- focused plugin-state, doctor, Discord, Feishu, and package-boundary Vitest suites
- git diff --check origin/main...HEAD
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode branch --base origin/main
- GitHub Actions PR checks green on 1025c2b570
2026-05-29 11:12:15 +01:00
Vincent Koc d2a1f62d23 fix(matrix): keep fallback tool warnings mention-inert 2026-05-27 18:07:24 +02:00
Josh Avant 0240cc578c fix: repair source-only official plugin installs (#82425)
* fix: repair source-only official plugin installs

* docs: add changelog for official plugin repair
2026-05-15 23:04:15 -05:00
scotthuang c35634c729 Fix/weixin catalog update 2.4.3 (#81730)
* fix(weixin): upgrade catalog to 2.4.3

* fix(weixin): update catalog integrity for 2.4.3

---------

Co-authored-by: scotthuang <scotthuang@tencent.com>
2026-05-14 03:32:38 -05:00
Peter Steinberger 81b239dc98 build: externalize slack openshell vertex plugins 2026-05-14 07:46:58 +01:00
brokemac79 f2cbe9ecc5 fix(channel): refresh wecom onboarding install 2026-05-13 13:52:05 +01:00
Peter Steinberger 85f9276624 build(whatsapp): externalize whatsapp plugin 2026-05-13 11:21:17 +01:00
loongfay 128b204319 fix(yuanbao): support sourceReplyDeliveryMode automatic for group chat (#79814) (thanks @loongfay) (#79814)
Co-authored-by: sliverp <870080352@qq.com>
2026-05-11 11:09:30 +08:00
Peter Steinberger b34cf2f1a2 fix: externalize matrix plugin 2026-05-09 06:38:29 +01:00
loongfay c9f451996a feat(yuanbao) update yuanbao channel plugin npm version (#79620)
* feat(yuanbao) update yuanbao channel plugin npm version

* feat: update yuanbao channel plugin npm version to 2.13.0 (#79620) (thanks @loongfay)

---------

Co-authored-by: loongzhao <loongzhao@tencent.com>
Co-authored-by: sliverp <870080352@qq.com>
2026-05-09 11:47:06 +08:00
Vincent Koc c97998ce21 chore(channels): remove bluebubbles bundled surface 2026-05-07 12:52:48 -07:00
Pumpkin Xing 5fae1c32b5 fix(plugins): forward install records to channel catalog registry (#77269)
Merged via squash.

Prepared head SHA: d06034b037
Co-authored-by: pumpkinxing1 <271513653+pumpkinxing1@users.noreply.github.com>
Co-authored-by: odysseus0 <8635094+odysseus0@users.noreply.github.com>
Reviewed-by: @odysseus0
2026-05-05 10:47:01 -07:00
Vincent Koc b5affa64b3 fix(plugins): supplement external catalog contracts 2026-05-03 16:15:28 -07:00
Vincent Koc 4545a0ed61 fix(plugins): keep launch specs production-ready 2026-05-03 03:08:32 -07:00
Vincent Koc 3ee5df618a Revert "fix(plugins): align beta external launch metadata"
This reverts commit 34581bf46c.
2026-05-03 02:53:36 -07:00
Vincent Koc 34581bf46c fix(plugins): align beta external launch metadata 2026-05-03 02:51:18 -07:00
Vincent Koc e7b6e0ff90 fix(plugins): pin beta-only external launch specs 2026-05-03 02:50:10 -07:00
Vincent Koc 4781b46056 fix(channels): load third-party official channel packages 2026-05-03 01:30:43 -07:00
Peter Steinberger e857c795a8 fix(plugins): allow Discord install repair 2026-05-02 23:48:54 +01:00
Vincent Koc e3d76d2e1f fix(channels): keep matrix and mattermost bundled 2026-05-02 15:32:29 -07:00
Vincent Koc 46d4238425 fix(plugins): install external search plugins during onboarding 2026-05-02 13:58:07 -07:00
Vincent Koc d4268b1b2b fix(plugins): catalog externalized npm installs 2026-05-02 13:30:07 -07:00
clawsweeper[bot] 099037cca6 fix(channels): align Yuanbao catalog id
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-30 02:50:35 -07:00
loongfay 914287642d feat(channel) update yuanbao plugin github location (#74253)
* feat(channel) update yuanbao plugin version and github location

* feat(channel) update yuanbao plugin github location

* fix(channel): update yuanbao plugin GitHub location and add yuanbao alias (#74253) (thanks @loongfay)

---------

Co-authored-by: loongzhao <loongzhao@tencent.com>
Co-authored-by: sliverp <870080352@qq.com>
2026-04-30 16:02:40 +08:00
Peter Steinberger 56fa69a48a fix(ci): pin yuanbao official channel catalog source 2026-04-27 16:28:56 +01:00
loongfay 3120401f53 feat(channel) yuanbao (#72756)
* feat(channel) yuanbao

* feat(channel) yuanbao

* docs(changelog): note Yuanbao channel plugin (#72756) (thanks @loongfay)

---------

Co-authored-by: loongzhao <loongzhao@tencent.com>
Co-authored-by: sliverp <870080352@qq.com>
2026-04-27 23:04:33 +08:00
Vincent Koc c1b9aa7d96 fix(plugins): pin official external channel source (#70997) 2026-04-24 00:35:03 -07:00
Sliverp e6d1ce943c fix:update wecom blurb (#70614) 2026-04-23 21:18:14 +08:00
Sliverp d634380304 fix (#70562) 2026-04-23 17:58:16 +08:00
Vincent Koc ce4bb8f638 fix(onboarding): surface official WeCom channel install 2026-04-23 00:29:34 -07:00