Skip to content

Refresh the subagent picker in the background - #35693

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/7eae7f696f8d2d323a47b3fd2800ea1c1cdbf2a0
Jul 28, 2026
Merged

Refresh the subagent picker in the background#35693
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/7eae7f696f8d2d323a47b3fd2800ea1c1cdbf2a0

Conversation

@copyberry

@copyberry copyberry Bot commented Jul 28, 2026

Copy link
Copy Markdown

Refresh the subagent picker in the background

Why

Opening the subagent picker could wait on thread metadata and live event-store locks, delaying terminal input. Its cached entries could also omit descendants that were not observed in the current TUI session.

What changed

  • Render the picker immediately from cached navigation state and refresh root descendants asynchronously with thread/list.
  • Merge discovered descendants into an open picker while preserving its selection and live status, and coalesce concurrent refresh requests.
  • Ignore refresh responses from a previous session and avoid blocking on busy event stores.

Testing

  • Extend session lifecycle coverage for nonblocking picker opens, refresh coalescing, descendant discovery, selection preservation, and status updates.
  • Add coverage for rejecting a refresh response after navigation state is cleared.

## Why

Opening the subagent picker could wait on thread metadata and live event-store locks, delaying terminal input. Its cached entries could also omit descendants that were not observed in the current TUI session.

## What changed

- Render the picker immediately from cached navigation state and refresh root descendants asynchronously with `thread/list`.
- Merge discovered descendants into an open picker while preserving its selection and live status, and coalesce concurrent refresh requests.
- Ignore refresh responses from a previous session and avoid blocking on busy event stores.

## Testing

- Extend session lifecycle coverage for nonblocking picker opens, refresh coalescing, descendant discovery, selection preservation, and status updates.
- Add coverage for rejecting a refresh response after navigation state is cleared.

GitOrigin-RevId: 7eae7f696f8d2d323a47b3fd2800ea1c1cdbf2a0
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/7eae7f696f8d2d323a47b3fd2800ea1c1cdbf2a0 branch from 56b3ea7 to f029bb7 Compare July 28, 2026 00:39
@copyberry
copyberry Bot merged commit f029bb7 into main Jul 28, 2026
14 of 32 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/7eae7f696f8d2d323a47b3fd2800ea1c1cdbf2a0 branch July 28, 2026 00:41
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 28, 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