Commit Graph
2 Commits
Author SHA1 Message Date
xl-openai 5c305eb50b Harden skill installation against unsafe symlinks (#39608)
## What changed

- Require selected skill paths to resolve within the cloned repository and reject
  symlinked path components.
- Reject special files and symlinks that escape the selected skill or resolve to
  anything other than a regular file.
- Add regression tests showing that escaping symlinks are rejected while links
  to regular files within the skill are installed as file contents.

GitOrigin-RevId: d4c3f09fb630dea96b34ea5552de571b36f1ceca
2026-08-20 06:10:03 +00:00
xl-openai 5ee6baee2f Validate identifiers in plugin creator workflows (#39131)
## Why

Plugin and marketplace names can flow into generated install commands, so the
plugin creator must reject names outside the supported identifier syntax before
using them or changing files.

## What changed

- Centralize validation for plugin names, including dotted names, and marketplace
  names.
- Apply validation when reading marketplaces, validating manifests, updating
  cachebusters, and scaffolding plugins.
- Validate existing marketplace state before scaffold writes so invalid or
  duplicate entries leave plugin and marketplace files unchanged.

## Testing

Add regression tests for accepted identifiers, unsafe and malformed names,
dotted plugin names, and failure paths that must not modify files.

GitOrigin-RevId: 9db68c2313a1539c5ab44d777966e33b460ceb71
2026-08-18 03:31:06 +00:00