Skip to content

Conversation

@stijnpotters1
Copy link
Contributor

@stijnpotters1 stijnpotters1 commented Feb 4, 2026

It works both locally and on cloud
Full integration with file system
Open and saves original folder and files on the frank flow.
you can create a new project in your file system and work in it.
you can clone a github repository to your local file system and work in it.
Your recent projects are being tracked and you also can delete then from your recents.

image image image image image

@stijnpotters1 stijnpotters1 changed the title Filesystem persistence solution Implemented Persistent Filesystem solution Feb 4, 2026
@stijnpotters1 stijnpotters1 self-assigned this Feb 4, 2026
@sonarqubecloud
Copy link

sonarqubecloud bot commented Feb 4, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
13.3% Coverage on New Code (required ≥ 65%)
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

}

List<FilesystemEntry> entries = new ArrayList<>();
try (Stream<Path> stream = Files.list(dir)) {

Check failure

Code scanning / SonarCloud

I/O function calls should not be vulnerable to path injection attacks High

Change this code to not construct the path from user-controlled data. See more on SonarQube Cloud
}

Path dir = Paths.get(path).toAbsolutePath().normalize();
if (!Files.exists(dir) || !Files.isDirectory(dir)) {

Check warning

Code scanning / SonarCloud

Accessing files should not lead to filesystem oracle attacks Medium

Change this code to not construct the path from user-controlled data. See more on SonarQube Cloud
}

Path dir = Paths.get(path).toAbsolutePath().normalize();
if (!Files.exists(dir) || !Files.isDirectory(dir)) {

Check warning

Code scanning / SonarCloud

Accessing files should not lead to filesystem oracle attacks Medium

Change this code to not construct the path from user-controlled data. See more on SonarQube Cloud
@stijnpotters1 stijnpotters1 marked this pull request as draft February 4, 2026 18:54
Copy link
Contributor

@Daan0709 Daan0709 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some small changes needed, and you should take a look at the security issues.

selectedEntry === entry.absolutePath ? 'bg-backdrop font-medium' : 'hover:bg-backdrop/50'
}`}
>
<span className="text-xs">📁</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldnt you use the Folder.svg here instead? Keeps the whole application more consistent

useEffect(() => {
clearProject()
}, [location.key, clearProject])
clearProjectState()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably a good idea to also clear the tab stores, these will linger into different projects

// Filter projects by search string (case-insensitive)
const filteredProjects = projects.filter((project) => project.name.toLowerCase().includes(search.toLowerCase()))
const projects = recentProjects ?? []
const filteredProjects = projects.filter((p) => p.name.toLowerCase().includes(searchTerm.toLowerCase()))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Abbreviations like this (p) are generally worse for readability of the code, although I know I also sometimes forget

{projects.length === 0 ? (
<p className="text-muted-foreground mt-10 text-center text-sm italic">No projects found</p>
) : (
projects.map((p) => (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create new project in studio Clone repository open project from file explorer through backend Double dots on landing page are not working?

2 participants