Skip to content

[Feature]: Claude Code Desktop-inspired thread filtering #3523

Description

@adinvadim

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/web

Problem or use case

As the number of projects and threads grows, the sidebar becomes harder to scan. T3 Code already has useful sidebar controls for sorting, grouping, and thread preview count, but there is no single filter menu for narrowing the visible threads by operational state and recent activity.

I would like a thread filtering improvement inspired by Claude Code Desktop: a compact popover that combines filters and the existing sidebar organization controls in one predictable place.

The goal is not to remove the current sidebar options. The goal is to keep the current behavior and add filtering on top of it.

Proposed solution

Add a Thread filters / sidebar filtering popover inspired by Claude Code Desktop.

Suggested rows:

  • Status: filter by active/working/needs-attention states. This should reuse T3 Code's existing thread status model and status pills.
  • Project: all projects or selected project(s).
  • Environment: all environments or selected environment(s).
  • Last activity: all, today, 3d, 7d, 30d, or similar recent ranges.
  • Group by: keep and expose the existing project grouping behavior.
  • Sort by: keep and expose the existing project/thread sort behavior.
  • Clear filters: reset only active filters while leaving user preferences intact.

Existing sidebar controls should remain available and should not regress:

  • project sort order, currently Last user message, Created at, Manual
  • thread sort order, currently Last user message, Created at
  • project grouping mode
  • thread preview count

Implementation notes:

  • Keep this client-side initially. It should filter the existing sidebar state without requiring new server APIs or contract changes.
  • OR within a filter group is fine; AND across groups is predictable.
  • Sorting and grouping should continue to run after filters are applied.
  • The active filter state should be visible enough that users can tell when the sidebar is narrowed.

Why this matters

This makes T3 Code more usable for people running many threads across multiple projects or environments. It helps find active work, stale work, blocked/attention-needed threads, or recently touched threads without manually expanding and scanning every project.

It also keeps the existing T3 Code sidebar controls, so current workflows around grouping and sorting are preserved.

Smallest useful scope

A first pass could include:

  • a filter button in the Projects/sidebar header
  • Status filter
  • Last activity filter
  • Clear filters
  • existing Group by and Sort by controls moved into or mirrored inside the same popover

Project and environment filters can follow if that keeps the first PR smaller.

Alternatives considered

A plain search input helps when the user knows the thread title, but it does not help with operational questions like which threads are active, stale, waiting for approval, or in a specific environment.

The existing sidebar sort/group controls are useful and should stay. They solve ordering and organization, but not filtering.

Risks or tradeoffs

The menu could become too dense if it tries to include every possible thread attribute. Keeping the first version to status and last activity would reduce scope while still solving the main problem.

Another tradeoff is whether filter state should persist. A first pass can keep it local/session-only to avoid surprising users on restart.

Examples or references

Related issue:

Claude Code Desktop-inspired reference layout:

  • Status: Active
  • Project: All
  • Environment: All
  • Last activity: 3d
  • Group by: Project
  • Sort by: Recency
  • Clear filters

Claude Code Desktop thread filter menu reference

Contribution

  • I would be open to helping implement this.

I am ready to implement this quickly if the proposed scope looks acceptable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions