Fix: Allow directory creation outside workspace in Add Project modal (#256)

This commit is contained in:
Nelson Pires
2026-01-31 22:36:10 +02:00
committed by GitHub
parent 0b12678f24
commit 5bb2c56bc0
4 changed files with 26 additions and 10 deletions
+14 -7
View File
@@ -6151,20 +6151,27 @@ async function main(options = {}) {
app.post('/api/fs/mkdir', async (req, res) => {
try {
const { path: dirPath } = req.body;
const { path: dirPath, allowOutsideWorkspace } = req.body ?? {};
if (!dirPath) {
if (typeof dirPath !== 'string' || !dirPath.trim()) {
return res.status(400).json({ error: 'Path is required' });
}
const resolved = await resolveWorkspacePathFromContext(req, dirPath);
if (!resolved.ok) {
return res.status(400).json({ error: resolved.error });
let resolvedPath = '';
if (allowOutsideWorkspace) {
resolvedPath = path.resolve(normalizeDirectoryPath(dirPath));
} else {
const resolved = await resolveWorkspacePathFromContext(req, dirPath);
if (!resolved.ok) {
return res.status(400).json({ error: resolved.error });
}
resolvedPath = resolved.resolved;
}
await fsPromises.mkdir(resolved.resolved, { recursive: true });
await fsPromises.mkdir(resolvedPath, { recursive: true });
res.json({ success: true, path: resolved.resolved });
res.json({ success: true, path: resolvedPath });
} catch (error) {
console.error('Failed to create directory:', error);
res.status(500).json({ error: error.message || 'Failed to create directory' });