From 43c27eeccd87c893628548d52b346b252e76a30c Mon Sep 17 00:00:00 2001 From: 0neStep <146049978+AperturePlus@users.noreply.github.com> Date: Mon, 25 May 2026 10:08:49 +0800 Subject: [PATCH 1/3] .env --- app/.env.example | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/.env.example b/app/.env.example index f88678f..f6e870a 100644 --- a/app/.env.example +++ b/app/.env.example @@ -4,8 +4,8 @@ FF_DB_URI=postgresql://root:password@localhost:5432/fileflash APP_ENV=development # Required when APP_ENV=production or APP_ENV=prod. -DEFAULT_ADMIN_USERNAME=admin -DEFAULT_ADMIN_EMAIL=admin@example.com +DEFAULT_ADMIN_USERNAME=administrator +DEFAULT_ADMIN_EMAIL=admin@fileflash.next DEFAULT_ADMIN_PASSWORD=replace-with-32-bytes-or-longer-password JWT_SECRET_KEY=please-set-at-least-32-bytes-secret-key From 322b2d259c76f06d49e5977f96bedab9dd30a30b Mon Sep 17 00:00:00 2001 From: 0neStep <146049978+AperturePlus@users.noreply.github.com> Date: Mon, 25 May 2026 14:25:43 +0800 Subject: [PATCH 2/3] refactor(agent): move AgentLayout from pages to templates with tab navigation Relocate the layout component to components/templates to share across routes, add SegmentedControl tab switching, brand header, and page transition wrapper. --- web/src/components/templates/AgentLayout.vue | 79 ++++++++++++++++++-- web/src/pages/agent/AgentLayout.vue | 55 -------------- web/src/pages/agent/index.ts | 3 - 3 files changed, 73 insertions(+), 64 deletions(-) delete mode 100644 web/src/pages/agent/AgentLayout.vue delete mode 100644 web/src/pages/agent/index.ts diff --git a/web/src/components/templates/AgentLayout.vue b/web/src/components/templates/AgentLayout.vue index 49b7dad..8e234d6 100644 --- a/web/src/components/templates/AgentLayout.vue +++ b/web/src/components/templates/AgentLayout.vue @@ -1,15 +1,82 @@ + + - - - - - + + {{ t('agent.v2.layout.brand') }} + + + + + + + + + diff --git a/web/src/pages/agent/index.ts b/web/src/pages/agent/index.ts deleted file mode 100644 index c0da0fd..0000000 --- a/web/src/pages/agent/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import AgentLayout from './AgentLayout.vue'; - -export default AgentLayout; From 421fddae4352684c3d5cdd7c0cc1a9e7b87cbf6f Mon Sep 17 00:00:00 2001 From: 0neStep <146049978+AperturePlus@users.noreply.github.com> Date: Mon, 25 May 2026 14:25:49 +0800 Subject: [PATCH 3/3] feat(layout): add fullscreen mode for agent routes Support fullscreen layout via route meta flag: hide footer, remove content padding, and overlay right sidebar on narrow viewport. Fix AgentWorkspace right sidebar position and transition timing. --- web/src/components/templates/MainLayout.vue | 20 +++++++++++++++---- .../pages/agent/workspace/AgentWorkspace.vue | 6 ++++-- web/src/router/routes.ts | 6 +++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/web/src/components/templates/MainLayout.vue b/web/src/components/templates/MainLayout.vue index 62e0621..62dc04e 100644 --- a/web/src/components/templates/MainLayout.vue +++ b/web/src/components/templates/MainLayout.vue @@ -1,5 +1,6 @@ - + - + - + @@ -53,7 +57,7 @@ function onClosePreview() { - + @@ -68,6 +72,14 @@ function onClosePreview() { .content-scroll { flex: 1; overflow: auto; padding: var(--sp-lg); } .fallback { display: flex; align-items: center; justify-content: center; min-height: 240px; } +.main-layout.is-fullscreen .content-scroll { + padding: 0; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 0; +} + .page-fade-enter-active, .page-fade-leave-active { transition: opacity var(--mo-duration-mid) var(--mo-easing), transform var(--mo-duration-mid) var(--mo-easing); } diff --git a/web/src/pages/agent/workspace/AgentWorkspace.vue b/web/src/pages/agent/workspace/AgentWorkspace.vue index 85dd1cd..f038329 100644 --- a/web/src/pages/agent/workspace/AgentWorkspace.vue +++ b/web/src/pages/agent/workspace/AgentWorkspace.vue @@ -71,6 +71,7 @@ const onHint = (text: string) => { taskInput.value = text; sendMessage(); }; min-width: 0; overflow: hidden; background: var(--surface-base); + position: relative; } .aw__left { min-height: 0; min-width: 0; } .aw__center { @@ -85,10 +86,11 @@ const onHint = (text: string) => { taskInput.value = text; sendMessage(); }; @media (max-width: 1280px) { .aw { grid-template-columns: 240px 1fr; } .aw__right { - position: fixed; right: 0; top: 48px; bottom: 0; + position: absolute; right: 0; top: 0; bottom: 0; + width: 320px; z-index: 50; transform: translateX(100%); - transition: transform 200ms var(--mo-easing); + transition: transform var(--mo-duration-mid) var(--mo-easing); background: var(--surface-base); border-left: 1px solid var(--border-default); } diff --git a/web/src/router/routes.ts b/web/src/router/routes.ts index fbc02db..f15ddc5 100644 --- a/web/src/router/routes.ts +++ b/web/src/router/routes.ts @@ -190,19 +190,19 @@ export const routes: Array = [ { path: "agent", component: AgentLayout, - meta: { navId: "agent" }, + meta: { navId: "agent", fullscreen: true }, children: [ { path: "", name: "AgentWorkspace", component: () => import("../pages/agent/workspace/index.ts"), - meta: { navId: "agent" }, + meta: { navId: "agent", fullscreen: true }, }, { path: "skills", name: "AgentSkills", component: () => import("../pages/agent/skills/index.ts"), - meta: { navId: "agent" }, + meta: { navId: "agent", fullscreen: true }, }, ], },