[Bug]: Editing the auto-settle days field autosaves intermediate values and immediately settles threads (14 -> 1 -> 30 settled all threads older than 1 day)#24041
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
- Have several threads whose last activity is about 2 days old (in my case, 7 threads last active on 2026-10-21).
- Open Settings and find the auto-settle inactivity setting (
sidebarAutoSettleAfterDays). Its value is14. - Edit the number by keyboard: put the cursor after
4and press Backspace. The field now shows1. - Type
30to get the value you want (the field ends at30).
Expected behavior
Intermediate values typed while editing are not applied. The setting is saved when the edit is done (blur, Enter, or a debounce). Or, at least, lowering the threshold does not settle threads in the background without a warning.
Actual behavior
Autosave writes the intermediate value 1 to the server. The settlement sweep runs about one second later with the 1-day threshold and settles every thread inactive for more than one day. When the value then becomes 30, the settled threads stay settled. So one Backspace in a number field settles all threads older than one day, without confirmation and without undo.
In my case: 7 user threads and 489 hidden subagent threads were settled in the same second. The thread.settled events have settledAt backdated to the last activity of each thread, so in the sidebar it looks like the threads settled themselves 2 days ago.
Impact
Major degradation or frequent failure
Version or commit
T3 Code (Beta) 0.1.2
Environment
macOS 26 (Darwin 25.6.0), Apple Silicon, desktop app. Provider: Claude (claudeAgent) and Codex.
Logs or stack traces
Times are UTC. Local time is UTC+2.
| 1 | server.trace.ndjson: server.updateSettings at 09:09:23, 09:09:42, 09:09:57, 09:10:01, 09:10:02 (all Success) |
| 2 | orchestration_events: 496 x thread.settled, occurred_at 2026-10-23T09:09:57Z .. 09:09:58Z, |
| 3 | command_id prefix "server:auto-settle:...", actor_kind "server" |
| 4 | payload: "settledOverride":"settled", "settledAt":"2026-10-21T14:03:..." (last activity of the thread) |
| 5 | settings.json: sidebarAutoSettleAfterDays 14 (before) -> 30 (after, file written 09:10:02) |
Workaround
Unsettle the threads by hand from the sidebar, one by one. To avoid the bug, select the whole value and type the new number, so that no lower intermediate value is saved.
Related: #12418 (NumberField for the auto-settle inactivity days input), #23949 (bulk settle without confirmation, 5 s undo).