[Bug]: Settings changes in the desktop app don't apply to a remote environment
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 a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/desktop
Steps to reproduce
I went to the settings and made changes but they didn't sync over to my VPS, they seemed to be local specific.
One example which stands out is that I disabled Codex and Claude locally (on the machine I'm running t3code on) but did have them enabled on a remote environment, yet when I went to change the model for text generation I couldn't do so at all. No dropdown or anything available.
Another example is that I added a project from a remote environment, started a chat, and then went to adjust the project settings. I want to set a default model there, but I can't. I just see "No providers available" even though Codex and Claude are set as providers for that remote.
I like the idea of t3code since I can manage different remotes and models, I just don't want to have stuff locally enabled, since it's pointless for my uses.
Expected behavior
The entire settings pane should have a filter for "Local", "Remote 1", "Remote 2", etc., or if not the entire pane, then the parts where it's definitely needed, like for the examples I gave.
Actual behavior
Settings in the desktop app only use providers available locally and don't ping the remotes for any capabilities they may have. There's no settings sync between the desktop and any remotes. No providers dropdown when adjusting the model settings for a remote project.
Impact
Major degradation or frequent failure
Version or commit
Desktop app 0.0.33 (Windows); remote t3 serve 0.0.33
Environment
Windows 11 app + Linux (Debian 13) remote, connected via Tailscale.
Logs or stack traces
None available
Screenshots, recordings, or supporting files
none
Workaround
Going to the browser instance (the one served by the remote t3 server) which I have accessible over Tailscale and changing things from there.
Code pointers
(I had Claude come up with this part after asking it about this; from main @ 67e2fe71)
General and Project settings read usePrimarySettings() / primaryServerProvidersAtom (SettingsPanels.tsx:1774, ProjectSettingsPanel.tsx:308-310) — "primary" is the client's own local backend (state/primaryEnvironment.ts), never the project's environment. ProviderSettingsPanel.tsx:373 does take an environmentId, which is why provider toggles do reach the remote.
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 with SettingsPanels.tsx:1774 and ProjectSettingsPanel.tsx:308-310, then trace usePrimarySettings(), primaryServerProvidersAtom, and state/primaryEnvironment.ts to see how provider data is selected. Compare this with the environmentId handling in ProviderSettingsPanel.tsx:373. Done means remote project settings can see and select providers available in that project's environment rather than only local providers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100