/resume screen conversations should be middle-truncated

Resolved 💬 3 comments Opened Dec 18, 2025 by miraclebakelaser Closed Mar 20, 2026

What feature would you like to see?

Issue

Conversation forking significantly limits the utility of the /resume feature. Forks result a list of conversations that all looking the same in the resume screen. This requires users to either (a) guess and peck at 1 of n choices until they resume the correct conversation (b) maintain their own workflow to record session ids that matter to them.

Solution

We can significantly improve the ergonomics of the screen by presenting users with a middle-truncated Conversation field.

The logic for the middle truncation would be this:
[beginning of first user message] + [...] + [end of last user message]

Example

Here's a a mock up of how the resume screen is currently presented, with right-side truncation:

Resume a previous session
Type to search
  Updated           Branch    Conversation
  6 seconds ago     main      Payments: Stripe webhook handler double-charges customers after retries in prod; logs + code attached…
  9 seconds ago     main      Payments: Stripe webhook handler double-charges customers after retries in prod; logs + code attached…
  12 seconds ago    main      Payments: Stripe webhook handler double-charges customers after retries in prod; logs + code attached…
  18 seconds ago    main      Search service: some users get empty results during rollout even though docs exist; canary metrics pasted…
  22 seconds ago    main      Search service: some users get empty results during rollout even though docs exist; canary metrics pasted…
  26 seconds ago    main      Search service: some users get empty results during rollout even though docs exist; canary metrics pasted…
  31 seconds ago    main      Search service: some users get empty results during rollout even though docs exist; canary metrics pasted…
  1 minute ago      main      Monorepo: `pnpm install` fails in CI after Node upgrade while local passes; lockfile + CI output attached…
> 2 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade while local passes; lockfile + CI output attached…
  3 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade while local passes; lockfile + CI output attached…
  4 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade while local passes; lockfile + CI output attached…
  6 minutes ago     main      Auth: intermittent 401s after refresh; token rotation + clock skew suspicion; request traces pasted…
  8 minutes ago     main      Auth: intermittent 401s after refresh; token rotation + clock skew suspicion; request traces pasted…
  11 minutes ago    main      Auth: intermittent 401s after refresh; token rotation + clock skew suspicion; request traces pasted…
  14 minutes ago    main      Kubernetes: CronJob runs twice during node drain / reschedule; manifests + controller logs attached…
  17 minutes ago    main      Kubernetes: CronJob runs twice during node drain / reschedule; manifests + controller logs attached…
  21 minutes ago    main      Kubernetes: CronJob runs twice during node drain / reschedule; manifests + controller logs attached…
  27 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering seems unstable; module snippet included below…
  33 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering seems unstable; module snippet included below…
  41 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering seems unstable; module snippet included below…
  55 minutes ago    main      Python: asyncio worker deadlocks when pool is saturated; stack traces + minimal repro attached…
  1 hour ago        dev       Python: asyncio worker deadlocks when pool is saturated; stack traces + minimal repro attached…
  2 hours ago       main      Postgres: feed query slow even with a new composite index; EXPLAIN ANALYZE + schema excerpt included…
  4 hours ago       main      Postgres: feed query slow even with a new composite index; EXPLAIN ANALYZE + schema excerpt included…
  8 hours ago       main      Postgres: feed query slow even with a new composite index; EXPLAIN ANALYZE + schema excerpt included…

enter to resume     esc to start new     ctrl + c to quit     ↑/↓ to browse

Note how forked conversations all appear to be the same, with Updated being the only differentiating field.

Here's how the same screen with the proposed middle truncation:

Resume a previous session
Type to search
  Updated           Branch    Conversation
  6 seconds ago     main      Payments: Stripe webhook handler double-charges cust…can you suggest an idempotency-key approach now?
  9 seconds ago     main      Payments: Stripe webhook handler double-charges cust…can you show a transaction-safe rewrite, please?
  12 seconds ago    main      Payments: Stripe webhook handler double-charges cust…can you propose a dedupe job for historical data too?
  18 seconds ago    main      Search service: some users get empty results during r…what rollout steps would you use, to avoid gaps?
  22 seconds ago    main      Search service: some users get empty results during r…can you outline a safer reindex/cutover plan, pls?
  26 seconds ago    main      Search service: some users get empty results during r…what metrics/alerts would catch this early, in prod?
  31 seconds ago    main      Search service: some users get empty results during r…can you suggest a feature-flag strategy for it, too?
  1 minute ago      main      Monorepo: `pnpm install` fails in CI after Node upgrade…what should I pin, so installs are reproducible?
> 2 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade…why did Turbo cache hits drop to 0% in CI again?
  3 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade…can you explain the lockfile diff I’m seeing, too?
  4 minutes ago     main      Monorepo: `pnpm install` fails in CI after Node upgrade…what’s the smallest CI change to stabilize it, pls?
  6 minutes ago     main      Auth: intermittent 401s after token refresh; rotation…what’s wrong with refresh token rotation, in it?
  8 minutes ago     main      Auth: intermittent 401s after token refresh; rotation…can you propose leeway + retry rules, for mobile too?
  11 minutes ago    main      Auth: intermittent 401s after token refresh; rotation…can you sketch tests to reproduce it deterministically?
  14 minutes ago    main      Kubernetes: CronJob runs twice during node drain; res…how can I lock CronJob without adding Redis now?
  17 minutes ago    main      Kubernetes: CronJob runs twice during node drain; res…can you suggest a leader-election option that’s simple?
  21 minutes ago    main      Kubernetes: CronJob runs twice during node drain; res…can you show what to change in YAML, to prevent overlap?
  27 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering…how do I make JSON ordering stable on every run?
  33 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering…can you point out common causes in HCL, for this?
  41 minutes ago    main      Terraform: IAM policy diff every plan; JSON ordering…can you rewrite this module snippet to be deterministic?
  55 minutes ago    main      Python: asyncio worker deadlocks when pool is saturated…can you spot the blocking call causing deadlock?
  1 hour ago        dev       Python: asyncio worker deadlocks when pool is saturated…can you propose a safer concurrency pattern, too?
  2 hours ago       main      Postgres: feed query slow even with index; EXPLAIN here…can you rewrite it for keyset pagination w/ties?
  4 hours ago       main      Postgres: feed query slow even with index; EXPLAIN here…can you explain why the planner ignores my index?
  8 hours ago       main      Postgres: feed query slow even with index; EXPLAIN here…what’s the safest migration path for the new index?

enter to resume     esc to start new     ctrl + c to quit     ↑/↓ to browse

Now, despite the shared initial message, users have more information to pick their desired resumption point.

Outcome

The user is able to resume conversations with ease.

Additional information

I've implemented this in my personal fork of codex. Willing to contribute if desired.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗