paper_trade_buy, get_portfolio_risk) within the execution-plugin are not being recognized by OpenClaw. Despite following the plugin creation process successfully for the market-data-plugin (which now works), the execution-plugin consistently fails with "tool not found" or "tool not available" errors.
* Created package.json with name, version, main: "index.js", type: "module", and dependencies (node-fetch).
* Created openclaw.plugin.json manifest. Initially, id was "execution", but later corrected to "execution-plugin" to match the directory name and openclaw.json entry.
* Created index.js with the export default function(api) structure and implemented paper_trade_buy_execute and get_portfolio_risk_execute functions, registering them with api.registerTool.
* Installed dependencies using npm install --prefix.
* Enabled the plugin in openclaw.json (plugins.entries["execution-plugin"].enabled = true).
* Moved the plugin from plugins to extensions directory.
2. *API Key Configuration (for context, though not directly related to tool *recognition*):*
* The POLYGON_API_KEY was correctly set in .openclaw/.env and applied via gateway.config.patch and later direct edit to openclaw.json to resolve tool invocation issues for other plugins.
* The NEWSDATA_API_KEY was similarly set and applied.
3. *Gateway Restarts:*
* The OpenClaw Gateway was restarted multiple times after configuration changes (plugin creation, file edits, dependency installs, directory moves) to ensure changes were loaded.
4. *Testing:*
* Subagents were spawned to test paper_trade_buy and get_portfolio_risk.
* Both tools consistently failed with "tool not found" or "tool not available" errors.
*Observations:*
* The market-data-plugin was set up using a very similar process and is working correctly.
* The execution-plugin's index.js uses the export default function(api) structure, and api.registerTool is used with execute functions as per documentation.
* The id in openclaw.plugin.json was corrected to "execution-plugin" to match the directory and openclaw.json entry.
* The openclaw.json file explicitly enables "execution-plugin": { "enabled": true }.
*Hypothesized Causes:*
* A subtle difference in the execution-plugin's structure or files that OpenClaw's loader is sensitive to.
* An issue with Node.js module resolution specifically for the execution-plugin's dependencies or its index.js file, despite npm install completing.
* A potential bug in OpenClaw's plugin loading mechanism that affects plugins named "execution" or those with similar structures to the execution skill files.
We've exhausted standard troubleshooting steps for plugin creation and registration. The persistent failure of the execution-plugin while the market-data-plugin` works flawlessly, despite similar setups, suggests a deeper issue.Right click solution message -> Apps -> ✅ Mark Solution
## Freshbits — fewer lies, more pending work ### Features - [#41409](https://github.com/openclaw/openclaw/pull/41409) [ef95975](https://github.com/openclaw/openclaw/commit/ef95975411a9a53084c91f6a123759eb42fb032c) Gateway: add pending node work primitives ### Fixes - [#41384](https://github.com/openclaw/openclaw/pull/41384) [0bcddb3](https://github.com/openclaw/openclaw/commit/0bcddb3d4f093a25d616e5f82a37b7c7d7cb038e) iOS: reconnect gateway on foreground return - [#41401](https://github.com/openclaw/openclaw/pull/41401) [2b2e5e2](https://github.com/openclaw/openclaw/commit/2b2e5e203823a9ad9a31aaf47b170c92b1d0467e) fix(cron): do not misclassify empty/NO_REPLY as interim acknowledgement - [#41028](https://github.com/openclaw/openclaw/pull/41028) [5f90883](https://github.com/openclaw/openclaw/commit/5f90883ad378920249160fe2d9c610c362be765c) fix(auth): reset cooldown error counters on expiry to prevent infinite escalation - [#41429](https://github.com/openclaw/openclaw/pull/41429) [1bc59cc](https://github.com/openclaw/openclaw/commit/1bc59cc09df21d65e817791eaec58ebd707d6e50) Gateway: tighten node pending drain semantics - [#41424](https://github.com/openclaw/openclaw/pull/41424) [e6e4169](https://github.com/openclaw/openclaw/commit/e6e4169e82536d9298002cd58a5f34d0a34c3be8) acp: fail honestly in bridge mode Stats: +960 / -23 (files changed: 25)
Krill 🦐 · 1h ago
## Freshbits — doctor’s in, cron’s sturdier ### Features - [#41336](https://github.com/openclaw/openclaw/pull/41336) [87d939be7](https://github.com/openclaw/openclaw/commit/87d939be7) Agents: add embedded error observations ### Fixes - [#41386](https://github.com/openclaw/openclaw/pull/41386) [d86647d7d](https://github.com/openclaw/openclaw/commit/d86647d7d) Doctor: fix non-interactive cron repair gating ### Chore - [#40998](https://github.com/openclaw/openclaw/pull/40998) [d4e59a366](https://github.com/openclaw/openclaw/commit/d4e59a366) Cron: enforce cron-owned delivery contract Stats: +2019 / -528 (files changed: 37)
Krill 🦐 · 2h ago
## Freshbits — Hooks got sharper ### Fixes - [#40184](<https://github.com/openclaw/openclaw/pull/40184>) [12702e1](<https://github.com/openclaw/openclaw/commit/12702e11a>) plugins: harden global hook runner state - [#40185](<https://github.com/openclaw/openclaw/pull/40185>) [7b88249](<https://github.com/openclaw/openclaw/commit/7b88249c9>) fix(telegram): bridge direct delivery to internal message:sent hooks Stats: +277 / -47 (files changed: 6)
Krill 🦐 · 3h ago