Repository navigation
Conversation
The plugin runs inside an OpenClaw host and imports the host's SDK through openclaw/plugin-sdk/*. OpenClaw's plugin guide declares the host as a peer dependency: managed plugin installs omit peers and link the host's own package into plugins that declare it. As a regular dependency, openclaw put the host's whole dependency tree into the plugin's dependency graph, and the repository lockfile counted that tree as runtime dependencies of the plugin. The peer range keeps the hosts the plugin already accepted (^2026.4.10). The plugin's type check, build, and smoke test need a concrete host package, so openclaw is also a development dependency, pinned to the 2026.7 line (~2026.7.35): it is the newest line the plugin builds against. OpenClaw 2026.8.1 removed the root openclaw/plugin-sdk entry point, api.registerMemoryPromptSection, and the before_agent_start hook, all of which index.mts uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
npm update within the ranges package.json already declares; no range changes. The runtime tree moves to @memmachine/client 0.3.9 and axios 1.21.0, and the development tree to the newest releases its ranges allow. Lockfile only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
No workflow checked integrations/openclaw before a release: the publish workflow was the only one that built it. Changes to the plugin, including dependency update pull requests for its lockfile, merged without a type check, test run, or build. The workflow installs from the lockfile with npm ci, then runs the plugin's type check, Jest suite, and smoke test, which builds dist and imports the built module against the installed OpenClaw package. It runs on Node 22, the version the publish workflow builds with, and follows ts-client-test.yml's triggers and draft skip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
No other integration or example has its own CI workflow, and the dependency change does not need one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Edwin Yu <edwinyyyu@gmail.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose of the change
Stop counting OpenClaw's own dependency tree as runtime dependencies of the OpenClaw plugin.
integrations/openclaw/package-lock.jsonhas 219 open Dependabot alerts, 205 of them runtime scope. The plugin listedopenclaw, the whole host application, as a regular dependency, and the lockfile has not changed since May (#1393).Description
openclawmoves fromdependenciestopeerDependenciesand keeps the plugin's range,^2026.4.10. OpenClaw's plugin guide declares the host this way. Its dependency resolution page says managed plugin installs runnpm install --omit=dev --omit=peer ...and link the host's own package into plugins that declare the host peer.openclawis also a development dependency,~2026.7.35, so the type check, build, and smoke test have a host package to run against. 2026.7 is the newest line the plugin builds against (see Further comments). tsup still keepsopenclaw/plugin-sdk/coreexternal indist.npm updatewithin the declared ranges, with no range changes. This moves@memmachine/clientfrom 0.3.4 to 0.3.9,axiosfrom 1.16.0 to 1.21.0, and the development tree to the newest versions its ranges allow.After this change the runtime tree is
@memmachine/client,@sinclair/typebox, and their dependencies, 27 packages in all.npm audit --omit=devreports no advisories for it; it reads the GitHub Advisory Database, the same source Dependabot uses. The remaining advisories are all in the development tree.Type of change
How Has This Been Tested?
Run at the head in
integrations/openclaw/, on Node 22.23.4, macOS arm64:npm ci --ignore-scripts,npm run lint,npm test(3 suites, 37 tests passed), andnpm run test:smoke(buildsdistand importsdist/index.mjsagainst the installed OpenClaw) pass.npm audit --omit=devreports 0 advisories.npm auditreports 49, all in development scope. On main's lockfile,npm auditreports 224.Test Results: as listed above.
Checklist
Further comments
index.mtsuses: the rootopenclaw/plugin-sdkentry point,api.registerMemoryPromptSection(OpenClaw's migration notes replace it withregisterMemoryCapability), and thebefore_agent_starthook. The type check passes against 2026.7.35 and fails on exactly these three against 2026.8.1, 2026.8.2, 2026.8.33, 2026.8.34, 2026.9.36, and 2026.10.9. The 2026.10.9 runtime defines noregisterMemoryPromptSection, andregister()calls it before registering anything else. The plugin's^2026.4.10range admits all of those hosts. Porting the plugin to the current SDK is separate work; once that lands, the development pin can move to the current release.packages/ts-client's. This PR supersedes itsintegrations/openclawhalf.🤖 Written by Claude Code (Claude Opus 5.5) on behalf of @edwinyyyu.