Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.251 ·

Plugin paths are confined to their marketplace directory

Plugin-supplied paths must stay inside their own marketplace directory or they're refused.

You'll notice New Features
JSON All of v2.1.251
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
2Signal: worth watching, 1 to 5
PluginsArea: what it touches
New FeaturesKind: in v2.1.251,
New FeaturesSection of the release
What

Every path a plugin supplies is now resolved before use and refused unless it is a plain relative path that stays inside the marketplace's own directory. Absolute paths, .. segments that climb out, network-style paths, and anything routed through a symlink are all rejected rather than resolved. This covers plugin and marketplace installs, replacing looser lookups, and extends to tools that take a directory path from a plugin, such as skill and filesystem tools.

Details
  • A refused install path produces a message naming the offending path and directing you to give the marketplace entry a plain relative path.
  • For plugin-supplied directory arguments, the path must be canonical as well as local, so symlinked or relative-segment routes fail with must be canonical instead of being normalised.
  • Validation is unconditional and enforced at the schema level, with no flag, setting, or environment variable to relax it.
Evidence

Plugin source path refused: ${or(e, 300)} does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path., must be canonical

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.251 →

Feedback