Fix project rename to update titles#12461
Open
franknoirot wants to merge 6 commits into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
pierremtb
reviewed
Jul 15, 2026
pierremtb
left a comment
Contributor
There was a problem hiding this comment.
Code looks good. Testing on Vercel too. Testing on Desktop then will approve
Comment on lines
+88
to
91
| /** New human-facing project title to write to project.toml. */ | ||
| requestedProjectName: string | ||
| /** Existing local project directory name used as the stable identifier. */ | ||
| projectName: string |
Contributor
There was a problem hiding this comment.
The comments are helpful because these props aren't hahaha
Contributor
Author
There was a problem hiding this comment.
Yeah haha sorry I wanted to limit the blast radius by not changing the property names everywhere, but we must name these better in the next iteration of systemIO.
Comment on lines
+608
to
+609
| oldName: projectDirectoryName, | ||
| newName: projectDirectoryName, |
Contributor
There was a problem hiding this comment.
Oh I see. Those are just the name in the FS
Contributor
Author
There was a problem hiding this comment.
Yeah "name" as a term has to die so at least this says it's the directory name.
pierremtb
reviewed
Jul 15, 2026
Comment on lines
+97
to
+98
| requestedProjectName: 'my-cool-project', | ||
| requestedProjectTitle: 'My Cool Project!', |
pierremtb
approved these changes
Jul 15, 2026
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.
We've gotten bug reports with our new cloud syncing behavior on desktop since #12374, which made a change to what a project's "title" is. Previously the title was just the directory name, but with the introduction of cloud projects which have a UUID as the identifier and the title as a metadata item in
project.toml, we have made those notions split. But that work was not completed: the "rename project" command and some syncing logic could show the user a UUID in the command palette, which is the directory name for cloud-synced projects, and apply the rename to their directory name instead of that title metadata.This PR cleans up those remaining mixed notions by splitting "title" from "directory name" in project commands and Home UI flows. While doing that, it also fixes two adjacent issues that made the split user-visible: create-project now derives a filesystem-safe directory from the requested title while preserving the user-facing title, and project settings writes now preserve top-level
project.tomlmetadata instead of dropping fields liketitle,default_file, andcloud.Summary
project.tomlinstead of renaming the directoryproject.tomlmetadata (title,default_file,cloud) when project settings are rewrittenVerification
npm run test:unit -- src/lib/projectTomlMetadata.test.ts src/lib/desktop.test.ts src/lib/projectName.test.tsnpm run test:integration -- src/lib/commandBarConfigs/projectsCommandConfig.spec.tsnpm run tscnpm run lintnpm run tronb:vite:devnpm run test:e2e:desktop -- --grep="project title case sensitive duplication"