fix: finish 2.9.0 plugin moves and get every check green

This commit is contained in:
LukeGus committed 2026-09-24 23:35:18 -05:00
1 parent 8c1e02af89
commit 6489b62ece
335 files changed
+29878 -17749

No files matched your search

+21
View File
@@ -33,6 +33,7 @@ import { isSessionTabType } from "@/shell/tab-registry";
import { isElectron } from "@/lib/electron";
import type { Tab, TabType, SplitMode } from "@/types/ui-types";
import { SPLIT_MODES, PANE_COUNTS } from "@/lib/theme";
import { ActionSlot } from "@/shell/ActionSlot";
/**
* Tabs holding a live connection that can be refreshed: the registered
@@ -686,6 +687,26 @@ export function TabBar({
{t("nav.openFileManager")}
</button>
)}
{/* Plugins add entries here, invoked with the tab's surface handle. */}
<ActionSlot
slotId="tab.menu"
when={{ tab: ctxTab, handle: ctxTab.terminalRef?.current }}
context={() => [ctxTab.terminalRef?.current]}
renderItem={(contribution, invoke) => (
<button
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-left hover:bg-accent hover:text-accent-foreground"
onClick={() => {
invoke();
setContextTabId(null);
}}
>
{contribution.icon && (
<contribution.icon className="size-3" />
)}
{t(contribution.titleKey)}
</button>
)}
/>
<button
className="flex items-center gap-2 w-full px-3 py-1.5 text-xs text-left hover:bg-accent hover:text-accent-foreground"
onClick={() => {
+3 -3
View File
@@ -111,8 +111,8 @@ export function TabProvider({ children }: TabProviderProps) {
const computeUniqueTitle = useCallback(
(tabType: Tab["type"], desiredTitle: string | undefined): string => {
const defaultTitle =
tabType === "file_manager" ? t("nav.fileManager") : t("nav.terminal");
const titleKey = getTabType(tabType)?.titleKey;
const defaultTitle = titleKey ? t(titleKey) : t("nav.terminal");
const baseTitle = (desiredTitle || defaultTitle).trim();
const match = baseTitle.match(/^(.*) \((\d+)\)$/);
const root = match ? match[1] : baseTitle;
@@ -181,7 +181,7 @@ export function TabProvider({ children }: TabProviderProps) {
const instanceId = `tab_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
const isCommandTarget = !!getTabType(tabData.type)?.commandTarget;
const needsUniqueTitle =
isCommandTarget || tabData.type === "file_manager";
isCommandTarget || !!getTabType(tabData.type)?.multiInstance;
const singletonTitleKey = getTabType(tabData.type)?.singleton
? getTabType(tabData.type)?.titleKey
: undefined;