Skip to content

[codex] Reuse parsed plugin skills during session startup#28844

Draft
xl-openai wants to merge 2 commits into
mainfrom
xl/plugin-skill-cache
Draft

[codex] Reuse parsed plugin skills during session startup#28844
xl-openai wants to merge 2 commits into
mainfrom
xl/plugin-skill-cache

Conversation

@xl-openai

@xl-openai xl-openai commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Have a full plugin load return both the loaded plugins and the skill-root snapshots parsed during that load.
  • Store those snapshots in the existing loaded-plugin cache entry and reuse them during session startup.
  • Keep one-off marketplace plugin detail reads uncached; they share root construction and result resolution without depending on PluginSkillsCache.

Why

Plugin discovery already parses plugin skills to determine available capabilities. Cold session startup then scanned and parsed the same roots again while building the skills snapshot.

This solves the same duplicate-work problem as #28623 while keeping ownership explicit: one full plugin load creates one snapshot cache, and PluginsManager stores it with that load's plugin result. It does not add a load-result struct, optional cache parameter, parallel *_with_cache API, separate cache generation, capacity policy, or SkillsWatcher coupling.

Validation

  • just test -p codex-core-plugins plugin_cache_reuses_skills_parsed_during_plugin_load
  • just test -p codex-core-plugins read_plugin_for_config_uses_user_layer_skill_settings_only
  • just test -p codex-core-plugins plugin_skill_loading_dedupes_overlapping_manifest_roots
  • just test -p codex-core-skills -p codex-core-plugins (359 tests)
  • just test -p codex-core capability_sections_render_in_developer_message_in_order
  • Local codex exec probe against a mock Responses server: the configured plugin skill root entered load_skill_root exactly once.
  • just fix -p codex-core-plugins
  • just fmt

@xl-openai xl-openai force-pushed the xl/plugin-skill-cache branch from 4edd999 to 242d739 Compare June 18, 2026 05:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant