From cc29adfe9c015c34c1b1e8d93fc7e7a9ed460a27 Mon Sep 17 00:00:00 2001
From: phantom5099 <1011668688@qq.com>
Date: Mon, 24 Aug 2026 11:21:02 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E6=8E=89ide=E6=A8=A1=E5=BC=8F?=
=?UTF-8?q?=E5=88=87=E6=8D=A2=E6=8C=89=E9=92=AE=EF=BC=8C=E4=B8=8D=E5=86=8D?=
=?UTF-8?q?=E5=BC=95=E5=85=A5ide=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/desktop/scripts/verify.mjs | 19 ----------
packages/desktop/src/App.tsx | 37 ++++++++++++++-----
packages/desktop/src/TitleBar.tsx | 34 +----------------
packages/desktop/src/layouts/AgentLayout.tsx | 33 -----------------
packages/desktop/src/layouts/IDELayout.tsx | 18 ---------
packages/desktop/src/stores/ui.store.ts | 14 -------
.../test/app-agent-layout-inline.test.ts | 17 +++++++++
7 files changed, 46 insertions(+), 126 deletions(-)
delete mode 100644 packages/desktop/src/layouts/AgentLayout.tsx
delete mode 100644 packages/desktop/src/layouts/IDELayout.tsx
create mode 100644 packages/desktop/test/app-agent-layout-inline.test.ts
diff --git a/packages/desktop/scripts/verify.mjs b/packages/desktop/scripts/verify.mjs
index 84a1158e..7fe10526 100644
--- a/packages/desktop/scripts/verify.mjs
+++ b/packages/desktop/scripts/verify.mjs
@@ -47,25 +47,6 @@ console.log('Screenshot (Agent mode):', shot1)
const bodyText = await page.evaluate(() => document.body.innerText)
console.log('Page text:', bodyText.slice(0, 200))
-// Click the mode switch button
-const switchResult = await page.evaluate(() => {
- const btns = [...document.querySelectorAll('button')]
- const btn = btns.find(b => b.textContent?.includes('IDE'))
- if (!btn) return 'NOT_FOUND'
- btn.click()
- return 'CLICKED: ' + btn.textContent?.trim()
-})
-console.log('Switch button:', switchResult)
-
-await new Promise(r => setTimeout(r, 500))
-const shot2 = path.join(SHOT_DIR, '02-ide-mode.png')
-await page.screenshot({ path: shot2 })
-console.log('Screenshot (IDE mode):', shot2)
-
-// Verify mode switched
-const bodyText2 = await page.evaluate(() => document.body.innerText)
-console.log('Page text after switch:', bodyText2.slice(0, 200))
-
// Test IPC ping
const pingResult = await page.evaluate(() => {
return window.electronAPI?.ping?.()
diff --git a/packages/desktop/src/App.tsx b/packages/desktop/src/App.tsx
index ee442651..cfcac6a0 100644
--- a/packages/desktop/src/App.tsx
+++ b/packages/desktop/src/App.tsx
@@ -1,14 +1,20 @@
import { useEffect } from 'react';
+import { useAgentCore } from './hooks/useAgent';
import { useUIStore } from './stores/ui.store';
import { useWorkspaceStore } from './stores/workspace.store';
-import AgentLayout from './layouts/AgentLayout';
-import IDELayout from './layouts/IDELayout';
+import ProjectStrip from './agent/ProjectStrip';
+import AgentSidebar from './agent/AgentSidebar';
+import AgentWorkspace from './agent/AgentWorkspace';
+import { AutomationPanel } from './agent/AutomationPanel';
+import GlobalSettingsPage from './settings/GlobalSettingsPage';
+import ProjectSettingsPage from './settings/ProjectSettingsPage';
import TitleBar from './TitleBar';
import ErrorBoundary from './shared/ErrorBoundary';
export default function App() {
- const mode = useUIStore((s) => s.mode);
+ const { sendMessage, abort } = useAgentCore();
const theme = useUIStore((s) => s.theme);
+ const view = useUIStore((s) => s.view);
const rootPath = useWorkspaceStore((s) => s.rootPath);
// Sync workspace cwd to main process for git polling
@@ -31,16 +37,29 @@ export default function App() {
};
}, []);
+ let content;
+ if (view === 'global-settings') {
+ content =
Phase 3 中实现完整 IDE 布局
- -