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

オープン 初心者向け
#37,275 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
74/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
typescript
領域
frontend

調査の方向性

関連するコードは apps/web にあります。sidebarWorkingShelfEnabled、boringSidebarEnabled、activeTimeOrdered、activeOrderKey を検索して、issue で説明されている Active-list の並べ替え分岐を見つけてください。sidebarThreadSortOrder が読み取られる箇所と、Working セクションの説明がレンダリングされる箇所を追跡してください。Working セクションを無効化し、新しい返信がある古いスレッドが埋もれたままになることを確認して再現してください。完了とは、その設定を無効化しても最新順の並べ替えが失われなくなることを意味します。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
TypeScript
スター
24.8k
フォーク
6.4k
平均マージ
3時間 40分
マージ済み PR(30日)
543

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingdotgg/t3code のほかの issue

pingdotgg/t3code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。