Merge branch 'main' into feature/arena-agent-collaboration

This commit is contained in:
tanzhenxin 2026-02-28 22:01:10 +08:00
commit 74b342623c
172 changed files with 12390 additions and 3258 deletions

View file

@ -103,8 +103,6 @@ import { t } from '../i18n/index.js';
import { useWelcomeBack } from './hooks/useWelcomeBack.js';
import { useDialogClose } from './hooks/useDialogClose.js';
import { useInitializationAuthError } from './hooks/useInitializationAuthError.js';
import { type VisionSwitchOutcome } from './components/ModelSwitchDialog.js';
import { processVisionSwitchOutcome } from './hooks/useVisionAutoSwitch.js';
import { useSubagentCreateDialog } from './hooks/useSubagentCreateDialog.js';
import { useAgentsManagerDialog } from './hooks/useAgentsManagerDialog.js';
import { useAttentionNotifications } from './hooks/useAttentionNotifications.js';
@ -501,18 +499,6 @@ export const AppContainer = (props: AppContainerProps) => {
closeAgentsManagerDialog,
} = useAgentsManagerDialog();
// Vision model auto-switch dialog state (must be before slashCommandActions)
const [isVisionSwitchDialogOpen, setIsVisionSwitchDialogOpen] =
useState(false);
const [visionSwitchResolver, setVisionSwitchResolver] = useState<{
resolve: (result: {
modelOverride?: string;
persistSessionModel?: string;
showGuidance?: boolean;
}) => void;
reject: () => void;
} | null>(null);
const slashCommandActions = useMemo(
() => ({
openAuthDialog,
@ -570,6 +556,7 @@ export const AppContainer = (props: AppContainerProps) => {
historyManager.loadHistory,
refreshStatic,
toggleVimEnabled,
isProcessing,
setIsProcessing,
setGeminiMdFileCount,
slashCommandActions,
@ -578,32 +565,6 @@ export const AppContainer = (props: AppContainerProps) => {
logger,
);
// Vision switch handlers
const handleVisionSwitchRequired = useCallback(
async (_query: unknown) =>
new Promise<{
modelOverride?: string;
persistSessionModel?: string;
showGuidance?: boolean;
}>((resolve, reject) => {
setVisionSwitchResolver({ resolve, reject });
setIsVisionSwitchDialogOpen(true);
}),
[],
);
const handleVisionSwitchSelect = useCallback(
(outcome: VisionSwitchOutcome) => {
setIsVisionSwitchDialogOpen(false);
if (visionSwitchResolver) {
const result = processVisionSwitchOutcome(outcome);
visionSwitchResolver.resolve(result);
setVisionSwitchResolver(null);
}
},
[visionSwitchResolver],
);
// onDebugMessage should log to debug logfile, not update footer debugMessage
const onDebugMessage = useCallback(
(message: string) => {
@ -694,11 +655,9 @@ export const AppContainer = (props: AppContainerProps) => {
setModelSwitchedFromQuotaError,
refreshStatic,
() => cancelHandlerRef.current(),
settings.merged.experimental?.visionModelPreview ?? false, // visionModelPreviewEnabled
setEmbeddedShellFocused,
terminalWidth,
terminalHeight,
handleVisionSwitchRequired, // onVisionSwitchRequired
);
// Track whether suggestions are visible for Tab key handling
@ -882,7 +841,6 @@ export const AppContainer = (props: AppContainerProps) => {
!isThemeDialogOpen &&
!isEditorDialogOpen &&
!showWelcomeBackDialog &&
!isVisionSwitchDialogOpen &&
welcomeBackChoice !== 'restart' &&
geminiClient?.isInitialized?.()
) {
@ -898,7 +856,6 @@ export const AppContainer = (props: AppContainerProps) => {
isThemeDialogOpen,
isEditorDialogOpen,
showWelcomeBackDialog,
isVisionSwitchDialogOpen,
welcomeBackChoice,
geminiClient,
]);
@ -1373,7 +1330,6 @@ export const AppContainer = (props: AppContainerProps) => {
isSettingsDialogOpen ||
isModelDialogOpen ||
activeArenaDialog !== null ||
isVisionSwitchDialogOpen ||
isPermissionsDialogOpen ||
isAuthDialogOpen ||
isAuthenticating ||
@ -1486,8 +1442,6 @@ export const AppContainer = (props: AppContainerProps) => {
extensionsUpdateState,
activePtyId,
embeddedShellFocused,
// Vision switch dialog
isVisionSwitchDialogOpen,
// Welcome back dialog
showWelcomeBackDialog,
welcomeBackInfo,
@ -1579,8 +1533,6 @@ export const AppContainer = (props: AppContainerProps) => {
activePtyId,
historyManager,
embeddedShellFocused,
// Vision switch dialog
isVisionSwitchDialogOpen,
// Welcome back dialog
showWelcomeBackDialog,
welcomeBackInfo,
@ -1625,8 +1577,6 @@ export const AppContainer = (props: AppContainerProps) => {
refreshStatic,
handleFinalSubmit,
handleClearScreen,
// Vision switch dialog
handleVisionSwitchSelect,
// Welcome back dialog
handleWelcomeBackSelection,
handleWelcomeBackClose,
@ -1673,7 +1623,6 @@ export const AppContainer = (props: AppContainerProps) => {
refreshStatic,
handleFinalSubmit,
handleClearScreen,
handleVisionSwitchSelect,
handleWelcomeBackSelection,
handleWelcomeBackClose,
// Subagent dialogs