Skip to content

Cherry-pick: Feishu adapter (1/2) (50 commits) #1875

@alexey-pelykh

Description

@alexey-pelykh

Cherry-pick from upstream — Feishu adapter (batch 1/2)

Source: openclaw/openclaw main branch
Scan session: 2026-03-24 (rescan after cursor reset)
Commits: 50 (37 clean, 13 partial)

Commits

# Hash Subject Author Files Tier
1 0e825ece05 test: add Feishu bot-menu lifecycle regression Tak Hoffman 3 PARTIAL
2 223ae42c79 fix(feishu): harden webhook signature compare Peter Steinberger 3 PARTIAL
3 40be12db96 refactor: move feishu zalo zalouser to setup wizard Peter Steinberger 14 PARTIAL
4 4c36436fb4 Plugin SDK: add legacy message discovery helper Gustavo Madeira Santana 5 PARTIAL
5 53ccc78c63 refactor: rename setup helper surfaces Peter Steinberger 12 PARTIAL
6 61bcdcca9c Feishu: split setup adapter helpers Vincent Koc 4 PARTIAL
7 6464149031 refactor: share feishu webhook monitor harness Peter Steinberger 3 PARTIAL
8 83a267e2f3 fix(ci): reset deep test runtime state Vincent Koc 6 PARTIAL
9 889bb8a78a Plugins: internalize matrix and feishu SDK imports Vincent Koc 66 PARTIAL
10 8de2f7339c test: fix current ci regressions Peter Steinberger 3 PARTIAL
11 9b6859e5db Feishu: break plugin-sdk setup cycle Vincent Koc 3 PARTIAL
12 dbd26e49f1 fix(test): reduce startup-heavy hotspot retention (openclaw#52381) Vincent Koc 12 PARTIAL
13 df3a247db2 feat(feishu): structured cards with identity header, note footer, and streaming enhancements (opencl songlei 11 PARTIAL
14 0eaf03f55b fix: update feishu setup adapter import Peter Steinberger 1 PICK
15 143ae5a5b0 refactor: share feishu chunked reply delivery Peter Steinberger 1 PICK
16 1ea5bba848 test: dedupe feishu startup preflight waits Peter Steinberger 1 PICK
17 214c7a481c refactor(feishu-tests): share card action event builders Peter Steinberger 1 PICK
18 285f903462 test: flatten feishu docx hoisted mocks Peter Steinberger 1 PICK
19 2a02337be2 Feishu: move outbound session routing behind plugin boundary Gustavo Madeira Santana 2 PICK
20 3365f2e157 refactor: adopt chat plugin builder in feishu Peter Steinberger 1 PICK
21 383d5ac476 fix(test): split feishu bot helpers Vincent Koc 2 PICK
22 3e730c0332 Security: preserve Feishu reaction chat type (openclaw#44088) Vincent Koc 5 PICK
23 3e8bf845cb tests(feishu): mock conversation runtime seam huntharo 1 PICK
24 3ffb9f19cb test: reduce feishu reply dispatcher duplication Peter Steinberger 1 PICK
25 496ca3a637 fix(feishu): fail closed on webhook signature checks Peter Steinberger 3 PICK
26 4df8722edf test: share feishu monitor startup mocks Peter Steinberger 1 PICK
27 60d4c5a30b Feishu: own message tool card schema Gustavo Madeira Santana 1 PICK
28 628b55a825 test: add Feishu ACP failure lifecycle regression Tak Hoffman 1 PICK
29 66a8c257b9 Feishu: lazy-load runtime-heavy channel paths Vincent Koc 4 PICK
30 75ab4db87d fix(test): repair extensions lane regressions Vincent Koc 3 PICK
31 7ca8804a33 test: share feishu schema and reaction assertions Peter Steinberger 1 PICK
32 7d50e7fa85 test: add Feishu card-action lifecycle regression Tak Hoffman 1 PICK
33 8448f48cc5 tests(feishu): inject client runtime seam huntharo 3 PICK
34 8a607d7553 fix(feishu): fetch thread context so AI can see bot replies in topic threads (openclaw#45254) Brian Qu 7 PICK
35 8ca510a669 test: dedupe feishu media account setup Peter Steinberger 1 PICK
36 983fecc106 fix(feishu): preserve non-ASCII filenames in file uploads (openclaw#33912) (openclaw#34262) fabiaodemianyang 3 PICK
37 9a14696f30 test: dedupe feishu config schema checks Peter Steinberger 1 PICK
38 9e8df16732 feat(feishu): add reasoning stream support to streaming cards (openclaw#46029) day253 3 PICK
39 a14a32695d refactor: share feishu reaction client setup Peter Steinberger 1 PICK
40 a474a9c45d test: reuse feishu streaming merge helper Peter Steinberger 1 PICK
41 a7e5925ec1 test: dedupe feishu account resolution fixtures Peter Steinberger 1 PICK
42 b23bfef8cc test: dedupe feishu probe fixtures Peter Steinberger 1 PICK
43 b5eb329f94 test: dedupe feishu outbound setup Peter Steinberger 1 PICK
44 b8dbc12560 fix: align channel adapters with plugin sdk Peter Steinberger 2 PICK
45 c3e78908c7 test: share feishu startup mock modules Peter Steinberger 1 PICK
46 c6e32835d4 fix(feishu): clear stale streamingStartPromise on card creation failure Andrew Demczuk 3 PICK
47 c7cebd608b test: add Feishu broadcast lifecycle regression Tak Hoffman 1 PICK
48 ca757b6b77 test: add Feishu reply-once lifecycle regression Tak Hoffman 1 PICK
49 cac1c62208 Feishu: consolidate message tool discovery Gustavo Madeira Santana 1 PICK
50 d9a2666ee1 refactor: share more computed channel status adapters Peter Steinberger 4 PICK

Execution

Pick up with: /pick-from-openclaw execute issue #N

Recommended strategy: staging branch
Note: 13 PARTIAL commits — some files may need discarding (files not on fork).

Metadata

Metadata

Assignees

No one assigned

    Labels

    cherry-pickCherry-pick from upstream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions