You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): clarify error when unknown subcommand is actually an agent tool name
When `openclaw <name>` does not match a CLI subcommand or a plugin id,
the unknown-subcommand handler now first looks up <name> against the
manifest plugin tool registry. If <name> is an agent tool declared by a
plugin (e.g. `lcm_recent` from `lossless-claw`), emit a clear 'this is
an agent tool, not a CLI subcommand' error pointing at model tool-use
instead of the misleading `plugins.allow` suggestion.
The previous error told the user to add the tool name to
`plugins.allow`, but `plugins.allow` accepts plugin ids (not tool
names), and config patches against it are rejected by the
protected-config-paths guard. In the wild this sent an agent down 3
restart cycles trying to 'fix' config that was never the problem.
Filtering: the runtime resolver consults the full manifest snapshot and
filters through `isManifestPluginAvailableForControlPlane` (covering
`plugins.allow`/`plugins.deny`/`plugins.entries[id].enabled`/installed
index) plus per-tool `hasManifestToolAvailability` (covering
`toolMetadata.configSignals` like Feishu's `appId`/`appSecret` gate).
The diagnostic also re-checks `plugins.allow` and
`plugins.entries[X].enabled` for the OWNING plugin before emitting, so
denied/disabled plugins are not falsely attributed.
Wording: when ownership is only manifest-provable (per-account
`enabled` flags and per-tool toggles in the Feishu family are
runtime-only and not declarable as configSignals, so the manifest is
necessarily an over-approximation), emit a softer 'may be provided by
the X plugin' message instead of asserting 'registered by'. The strong
wording is reserved for the case where both control-plane availability
and tool availability pass.
Fall-throughs: if <name> is not a registered tool, the existing
`plugins.allow` and `plugins.entries.<id>.enabled` suggestions are
emitted unchanged. The new branch only fires when the tool-registry
lookup matches AND the owning plugin passes availability filters.
Closes#77214.
- CLI/router: when `openclaw <name>` does not match a CLI subcommand, check the runtime plugin tool registry first so that names that are actually agent tools (e.g. `lcm_recent`) get a "this is an agent tool registered by the `<plugin>` plugin, not a CLI subcommand" error instead of the misleading suggestion to add the tool name to `plugins.allow`. Fixes #77214.
186
187
- Agents/compaction: keep the recent tail after manual `/compact` when Pi returns an empty or no-op compaction summary, preventing blank checkpoints from replacing the live context.
187
188
- fix(discord): gate user allowlist name resolution [AI]. (#79002) Thanks @pgondhi987.
0 commit comments