@@ -62,6 +62,53 @@ openclaw config get meta.lastTouchedVersion
|
62 | 62 | For intentional downgrade or emergency recovery only, set `OPENCLAW_ALLOW_OLDER_BINARY_DESTRUCTIVE_ACTIONS=1` for the single command. Leave it unset for normal operation. |
63 | 63 | </Warning> |
64 | 64 | |
| 65 | +## Skill symlink skipped as path escape |
| 66 | + |
| 67 | +Use this when logs include: |
| 68 | + |
| 69 | +```text |
| 70 | +Skipping escaped skill path outside its configured root: ... reason=symlink-escape |
| 71 | +``` |
| 72 | + |
| 73 | +OpenClaw treats every skill root as a containment boundary. A symlink under |
| 74 | +`~/.agents/skills`, `<workspace>/.agents/skills`, `<workspace>/skills`, or |
| 75 | +`~/.openclaw/skills` is skipped when its real target resolves outside that root |
| 76 | +unless the target is explicitly trusted. |
| 77 | + |
| 78 | +Inspect the link: |
| 79 | + |
| 80 | +```bash |
| 81 | +ls -l ~/.agents/skills/<name> |
| 82 | +realpath ~/.agents/skills/<name> |
| 83 | +openclaw config get skills.load |
| 84 | +``` |
| 85 | + |
| 86 | +If the target is intentional, configure both the direct skill root and the |
| 87 | +allowed symlink target: |
| 88 | + |
| 89 | +```json5 |
| 90 | +{ |
| 91 | + skills: { |
| 92 | + load: { |
| 93 | + extraDirs: ["~/Projects/manager/skills"], |
| 94 | + allowSymlinkTargets: ["~/Projects/manager/skills"], |
| 95 | + }, |
| 96 | + }, |
| 97 | +} |
| 98 | +``` |
| 99 | + |
| 100 | +Then start a new session or wait for the skills watcher to refresh. Restart the |
| 101 | +gateway if the running process predates the config change. |
| 102 | + |
| 103 | +Do not use broad targets such as `~`, `/`, or a whole synced project folder. |
| 104 | +Keep `allowSymlinkTargets` scoped to the real skill root that contains trusted |
| 105 | +`SKILL.md` directories. |
| 106 | + |
| 107 | +Related: |
| 108 | + |
| 109 | +- [Skills config](/tools/skills-config#symlinked-sibling-repos) |
| 110 | +- [Configuration examples](/gateway/configuration-examples#symlinked-sibling-skill-repo) |
| 111 | + |
65 | 112 | ## Anthropic 429 extra usage required for long context |
66 | 113 | |
67 | 114 | Use this when logs/errors include: `HTTP 429: rate_limit_error: Extra usage is required for long context requests`. |
|