[Bug]: New threads in the same project do not preserve the last-used model and working-mode settings
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Before submitting
- I searched existing issues and did not find an open issue covering the full same-project preference behavior.
- I included enough detail to reproduce or investigate the problem.
Area
apps/web (including the desktop app's shared web UI)
Steps to reproduce
- Open an existing project and start a new thread.
- Select a non-default provider/model.
- Change one or more model options, such as reasoning/effort, fast or service tier, context window, or thinking.
- Optionally change the runtime/permission mode or interaction mode.
- Send the first message so those settings are actually used.
- Create another new thread in the same project.
- Inspect the new-thread composer settings.
Expected behavior
A new thread should consistently inherit the target project's last successfully used safe composer preferences:
- provider instance and model;
- the complete model-options snapshot;
- runtime/permission mode;
- interaction mode.
Every new-thread entry point should use the same precedence:
- Explicit choices already made in the unsent draft.
- An explicitly configured project default model, when present.
- The target project's last-used working mode.
- Global/provider defaults.
Web/desktop and mobile should resolve these defaults consistently.
Branch, worktree path, environment mode, and start-from-origin should not carry implicitly; those should continue to use their configured workspace defaults.
Actual behavior
The new thread can reset model settings or inherit global/currently viewed-thread state rather than remembering the settings last used in the target project. The behavior depends on how and from where the new thread is created.
Impact
Major degradation or frequent failure
Repeatedly reselecting the model and its options is error-prone. Starting with the wrong reasoning level, service tier, permission mode, or provider instance can also affect cost, limits, and the permissions granted to the turn.
Version or commit
Current desktop app; exact build not available.
Environment
Desktop client using the shared web UI.
Logs or stack traces
No relevant logs observed.
Screenshots, recordings, or supporting files
None currently available.
Workaround
Manually re-check and reselect every composer setting before starting each new thread.
Related issues
- #1276 tracked the model-only same-project case and was closed as fixed, so this report may be a regression or a remaining entry-point gap.
- #5796 tracks an explicit project default being overridden by another project's sticky model.
- #2662, #2324, and #1991 track narrower permission-mode, per-model reasoning, and plan-mode defaults.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/web by tracing each new-thread entry point and the composer preference-resolution flow, including the shared desktop web UI. Reproduce the same-project cases and compare draft, project-default, last-used, and global precedence. Done means all entry points preserve the specified model options and working modes without carrying branch or workspace settings.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, frontend, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100