From 0f2625e4af995993a11beb05ed8e32133d66117b Mon Sep 17 00:00:00 2001 From: Rodrigo Matos Date: Wed, 26 Aug 2026 17:14:08 -0300 Subject: [PATCH] fix(platform): split "check" and "hide" archived into separate controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The single combined button set hideArchived=true in the same click that kicked off the archived check — so the moment archived status arrived, those rows were immediately filtered out of the list, and the "(archived)" badge could never actually be seen. Now "Check archived" only runs the check and tags matched repos with the badge; a separate "Hide archived" toggle appears once a check has completed, for anyone who wants to additionally filter them out. Co-Authored-By: claude-code_2-1-238_agent --- .../src/app/[tenant]/dashboard/repo-list.tsx | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/platform/src/app/[tenant]/dashboard/repo-list.tsx b/platform/src/app/[tenant]/dashboard/repo-list.tsx index 0e0b6f6..bd1da84 100644 --- a/platform/src/app/[tenant]/dashboard/repo-list.tsx +++ b/platform/src/app/[tenant]/dashboard/repo-list.tsx @@ -56,6 +56,7 @@ export function RepoList({ const [staleOnly, setStaleOnly] = useState(false); const [hideArchived, setHideArchived] = useState(false); const [checkingArchived, setCheckingArchived] = useState(false); + const [hasCheckedArchived, setHasCheckedArchived] = useState(false); // Ephemeral, not persisted: repo-slug -> archived (null = unknown, e.g. // private repo the session token can't read). Empty until "Check // archived" runs, and re-fetched fresh every time — never cached across @@ -85,6 +86,7 @@ export function RepoList({ archived: Record; }; setArchivedBySlug(data.archived); + setHasCheckedArchived(true); } } catch { // Non-fatal — the button just stays available to retry. @@ -170,29 +172,31 @@ export function RepoList({ + {hasCheckedArchived && ( + + )} )} {sorted.map((repo) => {