Skip to content

Make conversation filters readable and compact in xmd repl #928

Open

Description

@taras

Story

As a person using xmd repl, I want conversation filters to take little space and identify conversations by their content, so I can find the work I recognize without decoding provider IDs.

For example, Sessions shows one [All conversations v] control. Opening it offers a conversation by its opening request, with the agent's name as supporting text. Choosing it filters the existing turns; clearing it restores all conversations.

Current gap

Sessions permanently lists every provider key above the actual turns. The labels are truncated IDs whose common prefixes consume the available width. More conversations leave less room for the work itself. This rendering already exists before the Sidekick PR.

Contract

  • Replace the permanently expanded filter list with a compact control whose choices open on demand.
  • Use saved readable request text and the agent as primary identification. For Sidekick, use the first person's message, not bootstrap instructions or automatic feedback.
  • Keep distinct conversations selectable even when their text and agent match. Provide a readable fallback when no opening request is available.
  • Preserve the actual provider keys for filtering. Matching display labels never merge conversations or establish session identity.
  • Selecting or clearing a filter preserves the selected entry, inspected checkpoint, both drafts, and running work. Background activity does not change the filter or take focus.
  • Labels and choices reconstruct from saved facts without an agent call or a new naming store.

Settle the missing-title and duplicate-title presentation before freezing implementation acceptance. An authored Session name is not currently available in every saved Prompt record; do not promise it without evidence.

Acceptance

  • A populated session with many conversations uses one compact filter control until its chooser is opened.
  • Conversations with matching provider-ID prefixes have distinguishable readable choices.
  • Duplicate and missing request text follow the agreed fallback without collapsing choices.
  • Pointer and keyboard selection filter by the correct complete key. Closing without choosing changes nothing.
  • Cold reopening restores the selected filter and drafts without contacting a provider.
  • The control and chooser remain usable at supported wide, intermediate, and narrow sizes.

Use the mounted REPL Agent-interface and Sidekick-presentation journeys for interaction evidence. A static label helper alone does not establish compact filtering.

Relationships and scope

Follow-up to #883 and PR #921, related to REPL Quest #827. Coordinate focus behavior with #895 without making that broader keyboard redesign a prerequisite.

Source assessment: packages/cli/src/repl/application.ts, sessionRows(), at PR2 27da762b. The local Architect packet is .reviewer/issue-883/pr921-ui-feedback-sessions-history-sidekick.md.

This is separate follow-up work, not additional acceptance for the active Sidekick delivery. No provider/session renaming, history migration, generated conversation summaries, or general session-management feature is included.

Activity

  1. added
    enhancementNew feature or request
    UXUser-facing usability and interaction improvements
    on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    UXUser-facing usability and interaction improvementsenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions