Skip to content

Project executor skills through World State - #30088

Merged
jif-oai merged 7 commits into
mainfrom
jif/extension-owned-selected-skills
Jun 25, 2026
Merged

Project executor skills through World State#30088
jif-oai merged 7 commits into
mainfrom
jif/extension-owned-selected-skills

Conversation

@jif-oai

@jif-oai jif-oai commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Why

A selected executor environment can be unavailable in one model step and ready in the next. The model should see its skills only while that environment is ready, without rescanning stable files on every sample.

The product assumption is simple:

  • an environment ID names one stable logical environment;
  • the selected root contents do not change during the thread.

Behavior

E1 unavailable -> do not show E1 skills
E1 ready       -> discover once, cache, show through World State
E1 unavailable -> hide skills, keep cache
E1 ready again -> reuse cache, show skills again
resume         -> create a new thread cache and discover again

The cache key is the full SelectedCapabilityRoot. Availability does not invalidate it; dropping the extension's thread state does.

The step supplies the ready selected roots directly. They do not have to be turn environments:

turn environment: laptop
selected root:    worker:/plugins/lint-fix

worker ready -> lint-fix skills are visible

What changes

  • Keeps executor skill catalogs in the existing skills extension.
  • Passes the roots resolved as ready for the step into World State contributors.
  • Loads each ready selected root at most once per thread.
  • Contributes the executor catalog as the skills World State section.
  • Uses the exact step catalog for explicit skill selection and body reads.
  • Leaves host and orchestrator skill behavior where it already lives.

Taking a step snapshot itself does not add an RPC. Executor filesystem calls happen only on the first discovery of a stable root for that thread.

What does not change

  • No filesystem watcher or content-based invalidation.
  • No retry/generation framework.
  • No skill runtime migration into core.
  • No general rewrite of the skills extension.

Stack

  1. Extension-owned World State sections.
  2. This PR: project cached executor skills through World State.
  3. Pin one MCP runtime to each model step.
  4. Project selected MCP/app/connector metadata by environment availability.
  5. One end-to-end integration scenario.

@jif-oai
jif-oai force-pushed the jif/extension-owned-selected-skills branch from d737577 to bcfb0ff Compare June 25, 2026 17:25
Base automatically changed from jif/thread-scoped-executor-connectors to main June 25, 2026 17:49
@jif-oai
jif-oai force-pushed the jif/extension-owned-selected-skills branch from 2ea809a to 06c6eea Compare June 25, 2026 18:44
@jif-oai
jif-oai changed the base branch from main to jif/skill-runtime-foundation June 25, 2026 18:45
@jif-oai
jif-oai force-pushed the jif/skill-runtime-foundation branch from 884b07b to 920e737 Compare June 25, 2026 19:59
@jif-oai
jif-oai force-pushed the jif/extension-owned-selected-skills branch from 06c6eea to f55c074 Compare June 25, 2026 19:59
@jif-oai jif-oai changed the title Keep executor skill state in the skills extension Project executor skills through World State Jun 25, 2026
@jif-oai
jif-oai marked this pull request as ready for review June 25, 2026 20:04

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f55c074df7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread codex-rs/ext/skills/src/world_state.rs
Comment thread codex-rs/ext/skills/src/world_state.rs
Comment thread codex-rs/ext/skills/src/extension.rs
@jif-oai
jif-oai force-pushed the jif/extension-owned-selected-skills branch from f55c074 to 04a50f4 Compare June 25, 2026 20:14
@jif-oai
jif-oai force-pushed the jif/skill-runtime-foundation branch from 920e737 to cdfb338 Compare June 25, 2026 20:14
Base automatically changed from jif/skill-runtime-foundation to main June 25, 2026 21:23
@jif-oai
jif-oai requested a review from a team as a code owner June 25, 2026 21:23
Comment thread codex-rs/ext/skills/src/state.rs
Comment thread codex-rs/ext/skills/src/extension.rs Outdated
@jif-oai
jif-oai merged commit 5eebeb8 into main Jun 25, 2026
29 of 31 checks passed
@jif-oai
jif-oai deleted the jif/extension-owned-selected-skills branch June 25, 2026 23:13
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants