openai / openai/codex

Show an indicator in the sidebar for conversations that have an unsaved composer draft

Open
#41,137 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app enhancement session
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Problem

When I type a message in a conversation's composer but don't send it (for example, I'm
collecting drafts across several conversations and plan to send them all at once later),
the draft is preserved per conversation, but there is no way to see which conversations
have pending drafts without opening each one.

The sidebar currently distinguishes several thread states (running, unread, waiting for
input), and the desktop app shows an unread/completion badge on threads with new activity.
There is no equivalent signal for "this thread has unsent composer text".

This makes it easy to lose track of pending drafts, especially when:

  • drafts are intentionally held back (e.g., waiting for lower API pricing, reviewing later);
  • the app is restarted and the thread list is the only place you look;
  • multiple conversations each contain a few paragraphs of unsent text.
Requested behavior

Add a small, unobtrusive indicator on sidebar thread rows that have a non-empty unsent
composer draft, similar in placement/style to the existing unread badge:

  • a dot (or small pencil/draft marker) next to the thread title/row;
  • shown regardless of whether the thread is currently open or has unread activity;
  • disappears when the draft is sent or cleared;
  • also visible in any other thread pickers that already render per-thread status
    (e.g., the quick-resume list), for consistency.
Suggested scope
  • Codex desktop app sidebar (and ideally the same thread-status pickers that already show
    running / unread states).
  • A plain boolean signal based on the composer draft text (non-empty after trimming) is
    sufficient; no need for preview text or timestamps.
Related
  • Existing unread/completion badge behavior (see e.g. #33100 for the automation completion
    badge discussion).
  • Manual workaround today: "Mark chat as unread" (Ctrl+Shift+U / Cmd+Shift+U) can be
    applied to draft-holding threads, but it is manual and not tied to draft state.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the desktop app's sidebar thread rows and the quick-resume or other thread-status pickers, then trace how composer draft text is exposed to them. Done means non-empty trimmed drafts show an indicator in each relevant picker and the indicator disappears when the draft is sent or cleared.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.