Skip to content

Test selected capabilities across availability and resume - #30157

Merged
jif-oai merged 6 commits into
mainfrom
jif/selected-capability-stack-integration
Jun 26, 2026
Merged

Test selected capabilities across availability and resume#30157
jif-oai merged 6 commits into
mainfrom
jif/selected-capability-stack-integration

Conversation

@jif-oai

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

Copy link
Copy Markdown
Contributor

Why

This stack crosses World State, executor skills, selected plugin metadata, MCP processes, connectors, dynamic environments, and resume. This PR adds two end-to-end scenarios that validate those pieces together.

Both tests enable deferred_executor, so they exercise the real delayed-environment path.

Scenario 1: availability across turns and resume

1. Start a thread with one selected plugin root bound to E1.
2. E1 is unavailable.
   - executor skill is absent
   - selected MCP is absent
   - connector has no selected-plugin attribution
3. Start E1 and register the same stable environment ID.
4. Start a new turn.
   - the executor skill appears through World State
   - its body beats a colliding host skill
   - the selected MCP tool is advertised and executes inside E1
   - the connector is attributed to the selected plugin
5. Start another turn without changing E1.
   - the MCP PID stays the same, proving runtime reuse
6. Restart app-server and resume the thread.
   - durable selected-root intent is restored
   - skills, MCP, and connector attribution are restored
   - a new MCP PID proves ephemeral process state was rebuilt

Scenario 2: availability changes inside one turn

1. Start a turn while E1 is unavailable.
2. The first model sample sees no executor skill, MCP, or selected connector.
3. The turn pauses on request_user_input.
4. Start E1 and register it while that same turn is still active.
5. Continue the turn.
6. The very next model sample sees:
   - the executor skill catalog
   - the selected MCP tool
   - selected-plugin connector attribution
7. The model calls the MCP, and its output proves execution happened inside E1.

This second scenario specifically protects the aeon-style behavior: capability state is captured again for every sampling step, not only at the next user turn.

Scope

These are integration tests only. They do not add a combinatorial matrix for unsupported plugin-file mutation, environment generations, transport disconnects, or delayed required = true executor MCPs.

@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: c38d428177

ℹ️ 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/app-server/tests/suite/v2/selected_capability_stack.rs
Comment thread codex-rs/app-server/tests/suite/v2/mod.rs
@jif-oai
jif-oai merged commit 25f50de into main Jun 26, 2026
30 checks passed
@jif-oai
jif-oai deleted the jif/selected-capability-stack-integration branch June 26, 2026 02:11
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant