Repository navigation
Conversation
Projects started from just a name always landed in `<T3 home>/projects`. A new `projectsDirectory` server setting (Settings → General → New project location) moves them, for example to `~/Projects`. It follows the worktree location rules: `~` expands, and the folder must be absolute on that machine and not a drive root; otherwise the create fails with a message that names the setting. The server reads it at create time, so the palette, the mobile Add Project screen and the t3_project_create MCP tool all follow it. Clients show the destination through resolveNewProjectsRoot, which prefers the live setting over the config snapshot's default folder, so the preview updates as soon as the setting changes.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Projects started from just a name (New project in the command palette, on mobile, or the
t3_project_createMCP tool) always land in<T3 home>/projects, e.g.~/.t3/projects. There was no way to put them where the rest of your code lives.What changes
projectsDirectory, shown as Settings → General → Projects & threads → New project location, next to "Add project starts in". It is per machine (server-scoped) and only shown when every selected environment advertises the newprojectsDirectorycapability.ManagedProjectFolders.createNamedProjectreads the setting at create time. It reuses the worktree location rules (resolveWorktreesDirectory):~expands, and the folder must be absolute on that machine and not a drive root. A bad value fails withNamedProjectLocationError, whose message names the value and the setting. The WebSocket handler and the MCP tool already forwarderror.message. A missing folder is created on first use.resolveNewProjectsRoothelper in client-runtime (palette and mobile Add Project). It prefers the live setting over the config snapshot'snewProjectsRoot. Otherwise the "Goes in …" preview would stay stale until the next snapshot, becausesettingsUpdatedonly carries settings. The snapshot field keeps meaning "default folder".docs/user/source-control.md.Existing projects stay where they are. With an empty setting, nothing changes.
Verification
apps/serverManagedProjectFolders.test.ts: 15 pass. New tests cover a project created under the setting (the default folder is not touched) and a relative location refused withNamedProjectLocationError.packages/client-runtimeprojects.test.ts: 18 pass. The new test covers setting vs. default vs. no support.packages/sharedserverSettings.test.ts(35) andapps/websettingsSearch.test.ts(60) pass.tsc --noEmitis clean for contracts, client-runtime, server, web and mobile. Targeted lint shows only the existing warnings in CommandPalette.Built with Claude Opus 5.5 (1M context) in Claude Code, running inside T3 Code.
🤖 Generated with Claude Code