Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save b-nnett/a390c227c22333206caee0061dea8509 to your computer and use it in GitHub Desktop.

Select an option

Save b-nnett/a390c227c22333206caee0061dea8509 to your computer and use it in GitHub Desktop.
Codex plugin shared skill icon asset issue

Codex plugin shared skill icons

What was happening

Some plugin skills reference a shared plugin-level icon asset instead of copying the icon into every skill directory. In the repro this showed up in Twilio Developer Kit skills, and one CodeRabbit skill had the same shape:

interface:
  icon_small: "../../assets/logo.svg"
  icon_large: "../../assets/logo.svg"

The skill loader only knew the skill directory, so it rejected every icon path containing ..:

codex_core_skills::loader: ignoring interface.icon_small: icon path must not contain '..'

The skills still loaded because icon metadata is optional, but the warnings repeated whenever skills were scanned.

Why this is separate from the log-growth fix

The logging PR fixes nested span amplification. This is a loader/model issue: plugin metadata can legitimately point at shared plugin assets, but the loader could not distinguish that from unsafe path traversal.

Fix

Branch: fix-plugin-shared-skill-icons
Commit: 3efa3a5c1d62
Compare: https://github.com/openai/codex/compare/main...b-nnett:fix-plugin-shared-skill-icons

The fix passes the plugin root alongside plugin skill roots, then allows .. in plugin skill icon paths only when the lexically normalized target stays under:

<plugin_root>/assets/

Guardrails preserved:

  • Non-plugin skill icons still reject ...
  • Plugin icon paths that escape <plugin_root>/assets/ still reject.
  • Existing skill-local ./assets/... icon paths still work.

Tests

cargo test -p codex-core-skills   # 96 passed
cargo test -p codex-plugin        # 1 passed
cargo test -p codex-core-plugins  # 191 passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment