fix[Bug]: [skills] Skipping skill path error triggered on officially installed skills via clawhub (WSL Environment)#44082
Conversation
Greptile SummaryThis PR fixes a regression introduced in Key changes:
Confidence Score: 5/5
Last reviewed commit: a8662f2 |
f6dde2c to
f8c8845
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2ffdef4577
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b654b94164
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7b64a725ba
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 374f380515
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ae1c0292d1
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 30699efe9a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
75e6f9d to
3d8eccc
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4efda6501a
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
4efda65 to
a21b989
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5db9a3ee72
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
5db9a3e to
a21b989
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c1c625ed2e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
9290d28 to
a21b989
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Swish! ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
c3a9894 to
a21b989
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8514f560f2
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7a5cd180a7
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| "tavily", | ||
| "xai", | ||
| ] as const; | ||
| import { bundledWebSearchPluginRegistrations } from "../bundled-web-search-registry.js"; |
There was a problem hiding this comment.
Decouple web-search ID lookup from eager plugin imports
Importing bundled-web-search-registry here eagerly loads all bundled web-search plugin modules via that registry’s top-level imports, so listBundledWebSearchPluginIds() now fails at module load time if any single bundled plugin module is unavailable (for example in stripped or partially built environments). This can break callers such as config validation before compat logic runs, and the local try/catch around entry.plugin.id cannot intercept those failures because they occur before the function executes.
Useful? React with 👍 / 👎.
d9790c6 to
c93c0d5
Compare
c93c0d5 to
67e61ac
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c93c0d5bfe
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| "tavily", | ||
| "xai", | ||
| ] as const; | ||
| import { bundledWebSearchPluginRegistrations } from "../bundled-web-search-registry.js"; |
There was a problem hiding this comment.
Keep ID fast path independent of bundled plugin module loads
Importing bundled-web-search-registry at module scope makes listBundledWebSearchPluginIds() eagerly load every bundled web-search plugin before the function body runs, so the local try/catch cannot handle import-time failures. In environments where a bundled web-search plugin is unavailable (for example, a partial/stripped build), callers that only need compat IDs (such as config validation via src/config/validation.ts) will now fail during module initialization instead of degrading gracefully.
Useful? React with 👍 / 👎.
fix[Bug]: [skills] Skipping skill path error triggered on officially installed skills via clawhub (WSL Environment) #44051
Summary
Fix a managed skills loading regression introduced by the skills realpath boundary hardening.
In
2026.3.9, the loader started rejecting skill roots andSKILL.mdfiles whoseresolved realpath escaped the configured source root. That behavior is correct for
workspace and extra-dir skills, but it was also being applied to managed skills under
~/.openclaw/skills.As a result, managed skills installed via symlink/junction-backed layouts could be
skipped with:
Skipping skill path that resolves outside its configured root.This was surfacing in WSL reports, but the bug is in source scoping rather than
WSL-specific path normalization.
Root Cause
The containment check in
src/agents/skills/workspace.tswas enforced for all skillsources, including
openclaw-managed.That meant a skill path that appeared under
~/.openclaw/skills/<name>but resolvedoutside that directory via
realpathwas rejected, even though managed skill roots areuser-owned shared roots and were not intended to be subject to the workspace/extra-dir
escape restriction.
What Changed
shouldEnforceContainedSkillPaths()to scope realpath boundary enforcement to:openclaw-workspaceopenclaw-extraagents-skills-projectFiles
src/agents/skills/workspace.tssrc/agents/skills.loadworkspaceskillentries.test.tsTest
full test
Passed:
pnpm exec vitest run src/agents/skills.loadworkspaceskillentries.test.tspnpm exec vitest run src/agents/skills.buildworkspaceskillsnapshot.test.tspnpm exec vitest run src/agents/skills.build-workspace-skills-prompt.syncs-merged-skills-into-target-workspace.test.tspnpm exec vitest run src/agents/skills.build-workspace-skills-prompt.prefers-workspace-skills-managed-skills.test.tspnpm exec vitest run src/agents/skills-status.test.tsAI assisted by Codex 5.4