From 949b8f9a4bbab05b45126c94ae1594c2e496510f Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:10:57 -0700 Subject: [PATCH 1/2] fix(i18n): add the nested-worktree removal strings to the English catalog #25668 added DeleteNestedWorktreesDialog and its preserved-branches toast with translate() keys under worktree.nestedRemoval, but not the matching en.json entries. verify-localization-catalogs and -extraction now fail on main, and on every PR that merges it. Entries generated by the catalog sync script from the code's own fallbacks. --- src/renderer/src/i18n/locales/en.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/renderer/src/i18n/locales/en.json b/src/renderer/src/i18n/locales/en.json index 4588ebee4058..173a1453e07e 100644 --- a/src/renderer/src/i18n/locales/en.json +++ b/src/renderer/src/i18n/locales/en.json @@ -19047,5 +19047,21 @@ }, "fileSearch": { "failed": "Search failed. Try again." + }, + "worktree": { + "nestedRemoval": { + "refreshFailed": "Could not refresh the workspace list", + "review": "Delete with nested worktrees…", + "title": "Delete workspace and nested worktrees?", + "description": "This permanently deletes \"{{name}}\", every nested worktree listed below, and all files inside them, including uncommitted changes. Their terminals and agents will be stopped.", + "detached": "Detached HEAD", + "loading": "Checking nested worktrees…", + "order": "Nested worktrees are deleted first. If one fails, deletion stops and the parent is kept. Branches follow your existing deletion settings.", + "cancel": "Cancel", + "retry": "Review again", + "deleting": "Deleting…", + "confirm": "Delete all listed worktrees", + "preservedBranches": "Some nested worktree branches were kept" + } } } From 17bf1ab34c8a0ceb0babebd23a4748923f2ff0b2 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:12:21 -0700 Subject: [PATCH 2/2] fix(sidebar): import worktree removal types once #25668 imported from shared/worktree/removal twice in delete-worktree-failure-toast.tsx. The whole-tree lint gate (no-duplicate-imports, --deny-warnings) fails on it for main and every branch that merges main. --- .../src/components/sidebar/delete-worktree-failure-toast.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/src/components/sidebar/delete-worktree-failure-toast.tsx b/src/renderer/src/components/sidebar/delete-worktree-failure-toast.tsx index 3ad1a939aa9b..5f6e93444fa7 100644 --- a/src/renderer/src/components/sidebar/delete-worktree-failure-toast.tsx +++ b/src/renderer/src/components/sidebar/delete-worktree-failure-toast.tsx @@ -4,10 +4,10 @@ import { getDeleteWorktreeToastCopy } from './delete-worktree-toast' import { translate } from '@/i18n/i18n' import { DeleteNestedWorktreesDialog } from './DeleteNestedWorktreesDialog' import { isNestedWorktreeRemovalError } from '../../../../shared/worktree/nested-removal' -import type { WorktreeRemovalTarget } from '../../../../shared/worktree/removal' import { isLockedWorktreeRemovalError, - type WorktreeForceDeleteReason + type WorktreeForceDeleteReason, + type WorktreeRemovalTarget } from '../../../../shared/worktree/removal' type DeleteWorktreeFailureToastOptions = {