From a4aa86e66dad93f40bce640545d8903f7e6bcb64 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Fri, 16 Oct 2026 15:25:40 +0900 Subject: feat(tabs): confirm dialog that cascades a tab close to its subagents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closing a tab whose visible subagent group is non-empty now asks ONE daisyUI modal (CloseSubagentsConfirm): 'Yes, close all N' closes the tab plus every transitive descendant tab (sub-sub-agents included, no further prompts), 'No, keep them open' closes only the tab, and Cancel/Escape/ backdrop closes nothing. Plain tabs close directly as before. - cascadeCloseIds (pure, tab-groups.ts): the tab + its transitive visible group descendants in tab order — one decision covers the whole subtree - TabList intercepts tab-close and opens the dialog only when the subtree has >1 tab; ids are snapshotted at open time - each closed conversation goes through the existing onClose port, so every close still POSTs /conversations/:id/close (backend doesn't cascade; it is idempotent) --- src/features/tabs/index.ts | 1 + 1 file changed, 1 insertion(+) (limited to 'src/features/tabs/index.ts') diff --git a/src/features/tabs/index.ts b/src/features/tabs/index.ts index 980e8ee..0094528 100644 --- a/src/features/tabs/index.ts +++ b/src/features/tabs/index.ts @@ -1,6 +1,7 @@ export type { TabGroupForest, TabGroupNode } from "./tab-groups"; export { buildTabGroups, + cascadeCloseIds, directGroupChildren, groupBleedPx, groupDescendants, -- cgit v1.2.3