Skip to content

[codex] add /import for external agents#27071

Merged
stefanstokic-oai merged 2 commits into
mainfrom
codex/import-command
Jun 10, 2026
Merged

[codex] add /import for external agents#27071
stefanstokic-oai merged 2 commits into
mainfrom
codex/import-command

Conversation

@stefanstokic-oai

@stefanstokic-oai stefanstokic-oai commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Why

External-agent import should be discoverable and deliberate without blocking startup or claiming the public codex [PROMPT] CLI namespace. The slash command keeps the flow local to the interactive TUI and reuses the existing app-server import API.

What changed

  • add the user-facing /import slash command
  • detect external-agent importable items only when the command is invoked
  • run imports through the embedded local app-server
  • show start and completion messages, refresh configuration, and block duplicate imports while one is pending
  • reject the flow for unsupported remote and local-daemon sessions

Validation

  • just test -p codex-tui external_agent_config_migration (10 passed)
  • manually exercised an isolated TUI fixture with existing external-agent setup and session data using a fresh CODEX_HOME
  • verified picker customization, plugin and session detection, import completion, repeated invocation, and imported-session resume context
  • the broader just test -p codex-tui run passed 2,805 tests, with 2 unrelated guardian feature-flag failures and 4 skipped tests

Draft follow-ups

  • review whether completion messaging should remain attached to the initiating chat if the user switches chats during an import
  • review shutdown semantics for an in-progress background import

Stack

  1. #27064: remove the startup migration flow
  2. #27065: extract the picker renderer
  3. #27070: add the external-agent import picker UX
  4. #27071: expose the flow through /import

This PR is stack item 4. Draft while the lower stack dependencies are reviewed.

Comment thread codex-rs/tui/src/external_agent_config_migration_flow.rs Outdated
stefanstokic-oai added a commit that referenced this pull request Jun 10, 2026
## Why

External-agent import should be initiated deliberately instead of
interrupting eligible TUI startups. This cleanup removes the blocking
startup flow before the replacement import experience is introduced
later in the stack.

## What changed

- remove the startup-blocking external-agent migration prompt
- remove the now-unused external migration feature gate
- remove the obsolete TUI app-server migration wrappers
- retain the dormant picker behind a module-scoped dead-code allowance
until the next stack item wires it back in
- keep normal TUI startup focused on entering Codex immediately

## Validation

- `bazel build --config=clippy //codex-rs/tui:tui
//codex-rs/tui:tui-unit-tests-bin`
- `just test -p codex-tui external_agent_config_migration` (8 passed)
- `just test -p codex-tui` (2,786 passed, 12 unrelated local
environment-sensitive failures, 4 skipped)
- `just fix -p codex-tui`
- `just fmt`

## Stack

1. [#27064](#27064): remove the
startup migration flow
2. [#27065](#27065): extract the
picker renderer
3. [#27070](#27070): add the
external-agent import picker UX
4. [#27071](#27071): expose the flow
through `/import`

**This PR is stack item 1.**
stefanstokic-oai added a commit that referenced this pull request Jun 10, 2026
## Why

The external-agent import picker is easier to review when its rendering
refactor lands separately from new state and interaction behavior. This
layer is intended to be behavior-neutral.

## What changed

- extract external-agent migration rendering into a dedicated `render`
module
- preserve existing behavior while separating presentation from
interaction logic
- establish a smaller foundation for the import picker UX in the next PR

## Validation

- `just test -p codex-tui external_agent_config_migration` (10 passed)

## Stack

1. [#27064](#27064): remove the
startup migration flow
2. [#27065](#27065): extract the
picker renderer
3. [#27070](#27070): add the
external-agent import picker UX
4. [#27071](#27071): expose the flow
through `/import`

**This PR is stack item 2.** Draft while the lower stack dependency is
reviewed.
@stefanstokic-oai stefanstokic-oai force-pushed the codex/import-picker-ux branch from ff65430 to 72c495a Compare June 10, 2026 19:05
stefanstokic-oai added a commit that referenced this pull request Jun 10, 2026
## Why

Users need to understand what external-agent data Codex detected, what
is selected, and how to proceed before an import begins. The updated
picker makes focus, selection state, and the submission path explicit
while preserving the existing import backend.

## What changed

- replace the old migration prompt with a two-step external-agent import
picker
- add a customize view with explicit item focus, selection state,
counts, and a review action
- separate detected import data into a view model
- add Unix and Windows snapshots for prompt, item-focus, and
action-focus states

## Validation

- `just test -p codex-tui external_agent_config_migration` (10 passed)
- manually exercised an isolated TUI fixture covering customization,
selection toggles, review, import, repeated invocation, and session
resume
- the broader `just test -p codex-tui` run passed 2,805 tests, with 2
unrelated guardian feature-flag failures and 4 skipped tests

## Review note

This is the largest layer in the stack because the interaction state,
rendering changes, and required snapshots move together. It remains a
draft in case reviewers prefer a further presentation/state split.

## Stack

1. [#27064](#27064): remove the
startup migration flow
2. [#27065](#27065): extract the
picker renderer
3. [#27070](#27070): add the
external-agent import picker UX
4. [#27071](#27071): expose the flow
through `/import`

**This PR is stack item 3.** Draft while the lower stack dependencies
are reviewed.
Base automatically changed from codex/import-picker-ux to main June 10, 2026 19:19
@stefanstokic-oai stefanstokic-oai merged commit b4445f2 into main Jun 10, 2026
45 of 47 checks passed
@stefanstokic-oai stefanstokic-oai deleted the codex/import-command branch June 10, 2026 19:53
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 10, 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.

2 participants