From 415ebb733a3f8917223a65522366a95b107b29e8 Mon Sep 17 00:00:00 2001 From: menzelj Date: Sun, 21 Jun 2026 21:26:03 +0000 Subject: [PATCH] 0.37.6: remember the "Show hidden" toggle across reloads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uploaded dotfiles (.env) were persisting fine, but "Show hidden" is component state that reset to off on every reload — so after refreshing, hidden files disappeared from view and looked lost. Persist the toggle in localStorage (sp.files.showHidden) so it survives reloads; combined with 0.37.5's auto-reveal, an uploaded .env now stays visible. Frontend-only; all 3 images rebuilt+pushed 0.37.6. Co-Authored-By: Claude Opus 4.8 --- backend/version.py | 2 +- frontend/package.json | 2 +- frontend/src/pages/Files.tsx | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/version.py b/backend/version.py index 0dc6f6f..4662395 100644 --- a/backend/version.py +++ b/backend/version.py @@ -1,3 +1,3 @@ """Single source of truth for the StackPilot release version.""" -APP_VERSION = "0.37.5" +APP_VERSION = "0.37.6" diff --git a/frontend/package.json b/frontend/package.json index c5729eb..396528b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "stackpilot-frontend", "private": true, - "version": "0.37.5", + "version": "0.37.6", "type": "module", "scripts": { "dev": "vite", diff --git a/frontend/src/pages/Files.tsx b/frontend/src/pages/Files.tsx index ca0f831..8707cd9 100644 --- a/frontend/src/pages/Files.tsx +++ b/frontend/src/pages/Files.tsx @@ -76,7 +76,14 @@ export function Files() { const qc = useQueryClient(); const [host, setHost] = useState(undefined); // undefined = local const [path, setPath] = useState("/"); - const [showHidden, setShowHidden] = useState(false); + // Persist "Show hidden" across reloads — otherwise an uploaded dotfile (.env) + // becomes invisible again after a refresh and looks like it was lost. + const [showHidden, setShowHidden] = useState( + () => localStorage.getItem("sp.files.showHidden") === "1", + ); + useEffect(() => { + localStorage.setItem("sp.files.showHidden", showHidden ? "1" : "0"); + }, [showHidden]); const [editing, setEditing] = useState(null); const [renaming, setRenaming] = useState(null); const [deleting, setDeleting] = useState(null);