Repository navigation
[Feature]: Add a setting for default changed-files expansion in chat UI #2158
Description
Activity
- addedenhancementRequested improvement or new capability.Requested improvement or new capability.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Apr 18, 2026 Bumping!
Really lengthy "files changed" lists could use, at minimum, a preferences toggle to be collapsed by default.While trying out a Swift project for the first time, I noticed there to be a really high number of build artifact files after invocations of
swift build(typically due toswift package cleanfollowed by a build).Scrolling up this when the list of files was expanded is not great default UX:
The less-generalizable, albeit quicker fix just for greenfielding Swift projects specifically could be to "hardcode" not expanding
.build/, and similar for other languages/frameworks where this type of behavior is commonly expected.But of course the cleaner implementation would be the settings toggle as described in the original issue comment above, with which only the top-level directories will be shown (fully collapsed list), or even being able to set some form of threshold or heuristic for when the changed file count becomes too large (i.e. a partially expanded list of changed files and then
…for the rest).Oh, and thanks for building T3 Code! I really like it :)
Another concrete case for this: after a normal T3 Code agent turn completes, the chat timeline
Changed filesblock can take over the visible message area and make the assistant's final summary hard to find.In my current example, the assistant finished with a useful final response, then the timeline rendered
CHANGED FILES (22) +911/-1below it. With theChangedFilesTreeexpanded, the file tree occupies most of the viewport, so the actual final LLM message is pushed out of sight. To read it again I either have to scroll back up a lot, or manually hitCollapse allso only the top-level folders are visible. Once collapsed, the same turn becomes much easier to scan.This is not only a rebase/merge/build-artifact case. It also happens in ordinary implementation turns where the
turnDiffSummaryhas enough touched files to dominate the chat timeline.A default collapsed preference would solve my case. A useful version could be:
- keep the existing per-thread/per-turn persisted override winning when present
- otherwise initialize each new chat timeline
Changed filesblock from a user setting - optionally consider an automatic threshold later, e.g. default-collapse when file count exceeds N, but the simple setting described in this issue is already enough
Expected UX: after an agent finishes, the assistant's final message stays easy to read first; changed files remain one click away via
Expand all/View diff.Reacted by lmerz1 and Stoicho Monev- added and removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Jul 20, 2026 - locked and limited conversation to collaborators
on Aug 15, 2026
Before submitting
Area
apps/web
Problem or use case
The chat timeline
Changed filessection is not configurable and can become very noisy when a turn includes a large diff.A common case is updating or rebasing a branch, which can make the assistant message show a massive changed-files list in the chat UI. When that happens, the expanded file tree can dominate the thread and push the actual conversation content out of view.
Examples:
mainand a turn now shows a very large changed-files list.Proposed solution
Add an app setting that controls the default expansion behavior of the chat timeline
Changed filessection.Suggested options:
ExpandedCollapsedThis setting should only affect the initial state when a given changed-files block is first shown.
If there is already a persisted user override for a specific thread/turn, that existing state should continue to win over the global default.
Why this matters
Different users want different review defaults.
A configurable default would:
Smallest useful scope
Add a single app setting in
apps/webfor the initial default state of chatChanged filesblocks:ExpandedCollapsedThe setting only affects first render when no per-thread/turn override already exists.
No redesign is needed.
Existing manual expand/collapse behavior can remain unchanged.
Alternatives considered
Risks or tradeoffs
Changed filessection so it is not confused with diff panel behavior.Examples or references
This request is specifically about adding a user setting for the assistant message
Changed filessection in the chat timeline.Contribution