fix(plugins): ship Feishu bundled runtime dependency (#39990)

* fix: ship feishu bundled runtime dependency

* test: align feishu bundled dependency specs
This commit is contained in:
Tak Hoffman
2026-03-08 10:36:41 -05:00
committed by GitHub
parent 67b2e81360
commit fa83010b17
3 changed files with 35 additions and 16 deletions

View File

@@ -12,20 +12,18 @@ Feishu (Lark) is a team chat platform used by companies for messaging and collab
---
## Plugin required
## Bundled plugin
Install the Feishu plugin:
Feishu ships bundled with current OpenClaw releases, so no separate plugin install
is required.
If you are using an older build or a custom install that does not include bundled
Feishu, install it manually:
```bash
openclaw plugins install @openclaw/feishu
```
Local checkout (when running from a git repo):
```bash
openclaw plugins install ./extensions/feishu
```
---
## Quickstart

View File

@@ -12,20 +12,16 @@ title: 飞书
---
## 需要插件
## 内置插件
安装 Feishu 插件:
当前版本的 OpenClaw 已内置 Feishu 插件,因此通常不需要单独安装。
如果你使用的是较旧版本,或是没有内置 Feishu 的自定义安装,可手动安装:
```bash
openclaw plugins install @openclaw/feishu
```
本地 checkout在 git 仓库内运行):
```bash
openclaw plugins install ./extensions/feishu
```
---
## 快速开始

View File

@@ -0,0 +1,25 @@
import fs from "node:fs";
import path from "node:path";
import { describe, expect, it } from "vitest";
type PackageManifest = {
dependencies?: Record<string, string>;
};
function readJson<T>(relativePath: string): T {
const absolutePath = path.resolve(process.cwd(), relativePath);
return JSON.parse(fs.readFileSync(absolutePath, "utf8")) as T;
}
describe("bundled plugin runtime dependencies", () => {
it("keeps bundled Feishu runtime deps available from the published root package", () => {
const rootManifest = readJson<PackageManifest>("package.json");
const feishuManifest = readJson<PackageManifest>("extensions/feishu/package.json");
const feishuSpec = feishuManifest.dependencies?.["@larksuiteoapi/node-sdk"];
const rootSpec = rootManifest.dependencies?.["@larksuiteoapi/node-sdk"];
expect(feishuSpec).toBeTruthy();
expect(rootSpec).toBeTruthy();
expect(rootSpec).toBe(feishuSpec);
});
});