[Bug]: Turning off "Working section" silently switches Active list to creation-time sorting and ignores latest replies

Open Beginner friendly
#37,275 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
74/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
typescript
Domain
frontend

Research direction

The relevant code is in apps/web; search for sidebarWorkingShelfEnabled, boringSidebarEnabled, activeTimeOrdered and activeOrderKey to find the Active-list sorting branches described in the issue. Trace where sidebarThreadSortOrder is read and where the Working section description is rendered. Reproduce by disabling Working section and confirming an older thread with a fresh reply stays buried. Done means disabling that setting no longer drops recency sorting.

Written by the indexing model from the issue text.

Description

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/web

Steps to reproduce
  1. Open Settings → General → Sidebar and disable Working section (sidebarWorkingShelfEnabled: false), while keeping Settings → Labs → Boring sidebar disabled (boringSidebarEnabled: false).
  2. Keep an older active thread (for example, created ~1 day ago) alongside several newer active threads created later.
  3. Send a new prompt in that older thread and wait for the reply to finish (Done).
Expected behavior

An active thread that just received a new user message / completed reply should move up to the top of the Active list (or have an independent setting to sort Active threads by latest activity), unless the user explicitly switches to manual ordering.

At minimum, disabling Working section should not silently switch the Active list from recency sorting to creation-time sorting.

Actual behavior

The older thread updates its status badge to Done, but remains buried in its original createdAt position below all threads created after it.

From inspecting the bundled client logic:

  • When workingShelfEnabled is true (and boringSidebarEnabled is false), the Active list is sorted by Math.max(createdAt, unsettledAt, latestRun.requestedAt, latestRun.completedAt, returnedAt).
  • When both workingShelfEnabled and boringSidebarEnabled are false, the Active list unconditionally switches to activeTimeOrdered = false and sorts by activeOrderKey (if manually dragged) or Math.max(createdAt, unsettledAt) — ignoring updatedAt, latestRun.requestedAt, latestRun.completedAt, and sidebarThreadSortOrder (which is currently persisted in client-settings.json as "updated_at" by default, has no UI control, and is only used for fallback thread selection on archive/delete/project switch).
  • The UI description for Working section does not warn that turning it off disables recency sorting for Active threads.
Impact

Minor bug or occasional failure

Version or commit

0.1.10-nightly.20261115.4736 (commit 7379f1969b0f)

Environment

macOS 27.3 (Build 26C5035r), T3 Code (Nightly) Desktop

Workaround

Re-enable Settings → General → Sidebar → Working section (sidebarWorkingShelfEnabled: true), or enable Boring sidebar in Settings → Labs.

Dominant language
TypeScript
Stars
24.8k
Forks
6.4k
Avg merge
3h 40m
Merged PRs (30d)
543

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

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.

More from pingdotgg/t3code

All issues in pingdotgg/t3code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.