Skip to content

Commit 7915110

Browse files
committed
fix(memory-lancedb): declare apache-arrow peer
1 parent 7fb2e55 commit 7915110

7 files changed

Lines changed: 20 additions & 1 deletion

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Telegraph style. Root rules only. Read scoped `AGENTS.md` before subtree work.
3030
- Core/tests: no deep plugin internals (`extensions/*/src/**`, `onboard.js`). Use `api.ts`, SDK facade, generic contracts.
3131
- Extension-owned behavior stays extension-owned: repair, detection, onboarding, auth/provider defaults, provider tools/settings.
3232
- Owner boundary: fix owner-specific behavior in the owner module. Shared/core gets generic seams only; no owner ids, dependency strings, defaults, migrations, or recovery policy. If a bug names an extension or its dependency, start in that extension and add a generic core seam only when multiple owners need it.
33+
- Dependency ownership follows runtime ownership: extension-only deps stay plugin-local; root deps only for core imports or intentionally internalized bundled plugin runtime.
3334
- Legacy config repair: doctor/fix paths, not startup/load-time core migrations.
3435
- Core test asserting extension-specific behavior: move to owner extension or generic contract test.
3536
- New seams: backwards-compatible, documented, versioned. Third-party plugins exist.

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Docs: https://docs.openclaw.ai
3636
- Plugins/catalog: supplement lagging official external WeCom and Yuanbao npm manifests with channel config descriptors and declared tool contracts from the OpenClaw catalog, so trusted package sweeps no longer fail because external package metadata trails the host contract. Thanks @vincentkoc.
3737
- Plugins/install: let trusted official `@openclaw/*` catalog installs recover when npm `latest` points at a prerelease by falling back to the newest stable version, or by selecting the newest exact prerelease for prerelease-only launch packages with a warning instead of making beta/development plugin sweeps fail at install time. Thanks @vincentkoc.
3838
- Google Meet: grant Chrome media permissions against the actual Meet tab, start the local realtime audio bridge only after Meet joins, expose realtime transcripts in status/logs, and force explicit audio responses with current OpenAI realtime output-audio events so BlackHole capture does not keep the OpenClaw participant muted or silent.
39+
- Memory/LanceDB: declare `apache-arrow` in the bundled memory plugin package so LanceDB installs include its runtime peer. Fixes #76910. Thanks @afiqfiles-max.
3940
- Google Meet: use the local call-control microphone button instead of disabled remote participant mute buttons, and block realtime speech when the OpenClaw Meet microphone remains muted.
4041
- Google Meet: refresh realtime browser state during status and retry delayed speech after Meet finishes joining, so a just-opened in-call tab no longer leaves speech stuck behind stale `not-in-call` health.
4142
- Plugins/install: recover the install ledger from the managed npm root when `plugins/installs.json` is empty or partial, so reinstalling Discord and Codex no longer makes the other installed plugin disappear.

extensions/AGENTS.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@ third-party plugins see.
3131
- Do not use relative imports that escape the current extension package root.
3232
- Keep plugin metadata accurate in `openclaw.plugin.json` and the package
3333
`openclaw` block so discovery and setup work without executing plugin code.
34+
- Plugin runtime dependencies belong to the owning plugin package. If a plugin
35+
dependency has a runtime peer, declare/provide it in that plugin's
36+
`package.json`; do not move it to root unless root/package dist owns the
37+
import. Runtime never installs deps; install/update/doctor are repair points.
38+
- Keep plugin dependency assertions in generic contracts
39+
(`package-manifest.contract.test.ts`,
40+
`extension-runtime-dependencies.contract.test.ts`) rather than plugin e2e
41+
tests when they express package ownership.
3442
- Treat files like `src/**`, `onboard.ts`, and other local helpers as private
3543
unless you intentionally promote them through `api.ts` and, if needed, a
3644
matching `src/plugin-sdk/<id>.ts` facade.

extensions/memory-lancedb/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"type": "module",
1010
"dependencies": {
1111
"@lancedb/lancedb": "^0.27.2",
12+
"apache-arrow": "18.1.0",
1213
"openai": "^6.35.0",
1314
"typebox": "1.1.37"
1415
},

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/plugins/contracts/extension-runtime-dependencies.contract.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ const INDIRECT_RUNTIME_DEPENDENCIES = new Map<string, Set<string>>([
2525
// Baileys loads jimp as an optional peer when it needs media thumbnails.
2626
new Set(["jimp"]),
2727
],
28+
[
29+
"extensions/memory-lancedb",
30+
// LanceDB imports apache-arrow at runtime through its peer dependency.
31+
new Set(["apache-arrow"]),
32+
],
2833
[
2934
"extensions/tlon",
3035
// The Tlon plugin manifest exposes the bundled skill from this package path.

src/plugins/contracts/package-manifest.contract.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const packageManifestContractTests: PackageManifestContractParams[] = [
4444
{ pluginId: "mattermost", minHostVersionBaseline: "2026.3.22" },
4545
{
4646
pluginId: "memory-lancedb",
47-
pluginLocalRuntimeDeps: ["@lancedb/lancedb"],
47+
pluginLocalRuntimeDeps: ["@lancedb/lancedb", "apache-arrow"],
4848
minHostVersionBaseline: "2026.3.22",
4949
},
5050
{

0 commit comments

Comments
 (0)