From eb0f4d71e7d1f343fc7412566db1d646f93e3438 Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Wed, 1 Apr 2026 08:55:09 +0530 Subject: [PATCH 1/2] fix: preserve selected public subfolder when opening terminal --- src/lib/openFolder.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/lib/openFolder.js b/src/lib/openFolder.js index 445388a07..f28d90997 100644 --- a/src/lib/openFolder.js +++ b/src/lib/openFolder.js @@ -14,6 +14,7 @@ import escapeStringRegexp from "escape-string-regexp"; import FileBrowser from "pages/fileBrowser"; import helpers from "utils/helpers"; import Path from "utils/Path"; +import Uri from "utils/Uri"; import Url from "utils/Url"; import constants from "./constants"; import * as FileList from "./fileList"; @@ -49,7 +50,28 @@ const isTerminalAccessiblePath = (url = "") => { const convertToProotPath = (url = "") => { const { alpineRoot, publicDir } = getTerminalPaths(); if (isAcodeTerminalPublicSafUri(url)) { - return "/public"; + try { + const { docId } = Uri.parse(url); + const cleanDocId = decodeURIComponent(docId || ""); + if (!cleanDocId) return "/public"; + if (cleanDocId.startsWith(publicDir)) { + return cleanDocId.replace(publicDir, "/public") || "/public"; + } + if (cleanDocId.startsWith("/public")) { + return cleanDocId; + } + if (cleanDocId.startsWith("public:")) { + const relativePath = cleanDocId.slice("public:".length); + return relativePath ? Path.join("/public", relativePath) : "/public"; + } + const relativePath = cleanDocId.replace(/^\/+/, ""); + return relativePath ? Path.join("/public", relativePath) : "/public"; + } catch (error) { + console.warn( + `Failed to parse public SAF URI for terminal conversion: ${url}`, + ); + return "/public"; + } } const cleanUrl = url.replace(/^file:\/\//, ""); if (cleanUrl.startsWith(publicDir)) { From 87a3b62b90bc1db2a89e500b7899d7e25879007f Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Wed, 1 Apr 2026 09:02:06 +0530 Subject: [PATCH 2/2] fix --- src/lib/openFolder.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/openFolder.js b/src/lib/openFolder.js index f28d90997..c542a6073 100644 --- a/src/lib/openFolder.js +++ b/src/lib/openFolder.js @@ -52,7 +52,9 @@ const convertToProotPath = (url = "") => { if (isAcodeTerminalPublicSafUri(url)) { try { const { docId } = Uri.parse(url); - const cleanDocId = decodeURIComponent(docId || ""); + const cleanDocId = /::/.test(url) + ? decodeURIComponent(docId || "") + : docId || ""; if (!cleanDocId) return "/public"; if (cleanDocId.startsWith(publicDir)) { return cleanDocId.replace(publicDir, "/public") || "/public"; @@ -64,7 +66,9 @@ const convertToProotPath = (url = "") => { const relativePath = cleanDocId.slice("public:".length); return relativePath ? Path.join("/public", relativePath) : "/public"; } - const relativePath = cleanDocId.replace(/^\/+/, ""); + const relativePath = cleanDocId + .replace(/^\/+/, "") + .replace(/^public\//, ""); return relativePath ? Path.join("/public", relativePath) : "/public"; } catch (error) { console.warn(