Skip to content

Session picker gives no indication that the list is scoped to a directory #42058

Closed as not planned

Description

@thepigdestroyer

Context

CONTRIBUTING says UI changes need a design review before implementation, so raising this rather than sending a PR.

The session picker shows footer hints for quick-switch and delete, but nothing for app.toggle.session_directory_filter. Even once the binding works in the picker (#42056) and is bindable, there is no indication in the picker that the current list is scoped to a directory, or that a key widens it. The scope of the list is invisible: a session that exists but is filtered out looks like a session that does not exist.

Proposal

Add one footer hint to DialogSessionList that names what the key will do next and flips with the current scope:

  • while narrowed to a directory: <key> all sessions
  • while showing everything: <key> this directory

Details that seem worth keeping either way:

  • read the key via useCommandShortcut("app.toggle.session_directory_filter"), as the delete and quick-switch hints already do, so a rebind is reflected and nothing is hardcoded
  • render nothing when the command is unbound, so the footer never advertises a dead key
  • render nothing when project.data.instance.path.worktree is absent, since sessionListQuery() returns { scope: "project" } regardless in that case and the toggle would appear to do nothing

Open questions for the design review

  1. Is a footer hint the right surface, or would you rather show current scope in the picker title or as a header line?
  2. Wording. "all sessions" / "this directory" describes the next action; showing current state instead ("this directory only") is the other option, and the two read quite differently in the footer.
  3. Should the hint appear at all when the command is unbound, as a discoverability nudge pointing at the palette entry, or stay hidden as proposed?

I have this implemented and tested locally, including the unbound and no-worktree cases, and am happy to open a PR if you want it in this shape, or to build whatever shape you prefer. Equally happy for this to be closed if it is not wanted.

Activity

  1. github-actions commented on Aug 12, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    For keybind-related issues, please also check our pinned keybinds documentation: #4997

  2. thepigdestroyer commented on Aug 12, 2026

    @thepigdestroyer
    Author

    Cross-linking #35581, which the bot flagged. They are related but not the same ask, so leaving this open for now. Happy to be closed into it if a maintainer disagrees.

    • [FEATURE]: TUI /session picker: option to show all sessions across all projects #35581 wants a capability that does not exist: browsing sessions across projects. sessionListQuery() returns { scope: "project" } at its widest, so there is currently no cross-project view.
    • This issue is about the scoping that already exists being invisible. app.toggle.session_directory_filter already widens the picker from the current directory to the whole project, but the picker shows no indication of which scope is active, and the keybind defaults to none, so most people never find it.

    If #35581 is implemented, this gets more important rather than less, since there would then be three scopes to tell apart instead of two.

  3. github-actions commented on Oct 12, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions