diff --git a/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts b/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts index cec892082..3c4cac69c 100644 --- a/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts +++ b/apps/mana/apps/web/src/lib/components/layout/use-ai-tier-items.svelte.ts @@ -184,7 +184,7 @@ export function useAiTierItems() { id: 'ai-settings', label: 'KI-Einstellungen', icon: 'settings', - onClick: () => goto('/'), + onClick: () => goto('/?app=settings'), }, ]); diff --git a/apps/mana/apps/web/src/lib/components/onboarding/steps/CompleteStep.svelte b/apps/mana/apps/web/src/lib/components/onboarding/steps/CompleteStep.svelte index 04e446ba0..6cb38a10b 100644 --- a/apps/mana/apps/web/src/lib/components/onboarding/steps/CompleteStep.svelte +++ b/apps/mana/apps/web/src/lib/components/onboarding/steps/CompleteStep.svelte @@ -84,7 +84,7 @@
diff --git a/apps/mana/apps/web/src/routes/(app)/+layout.svelte b/apps/mana/apps/web/src/routes/(app)/+layout.svelte index dbfdf5269..be6969550 100644 --- a/apps/mana/apps/web/src/routes/(app)/+layout.svelte +++ b/apps/mana/apps/web/src/routes/(app)/+layout.svelte @@ -746,7 +746,7 @@ id: 'settings', label: 'Einstellungen', category: 'Navigation', - onExecute: () => goto('/'), + onExecute: () => goto('/?app=settings'), }, ]; diff --git a/apps/mana/apps/web/src/routes/(app)/+page.svelte b/apps/mana/apps/web/src/routes/(app)/+page.svelte index f19d195df..0d3ed346d 100644 --- a/apps/mana/apps/web/src/routes/(app)/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/+page.svelte @@ -16,6 +16,8 @@ import { ContextMenu, type ContextMenuItem } from '@mana/shared-ui'; import { Pencil, Copy, Trash, Image, Sparkle } from '@mana/shared-icons'; import { goto } from '$app/navigation'; + import { page } from '$app/stores'; + import { tick } from 'svelte'; import { _, locale } from 'svelte-i18n'; import { buildContextMenuItems, createWorkbenchContextMenu } from '$lib/context-menu'; import type { WorkbenchScene } from '$lib/types/workbench-scenes'; @@ -61,8 +63,24 @@ }); // ── Scene store wiring ────────────────────────────────── - onMount(() => { - workbenchScenesStore.initialize(); + onMount(async () => { + await workbenchScenesStore.initialize(); + // Deep-link: `/?app=settings` (or any registered appId) opens the + // app in the active scene (or focuses it if already open) and + // scrolls it into view. Used by command menu, pill-nav settings + // link, onboarding CTAs, sync-status banner — anywhere we used + // to navigate to `/settings` before the route was removed. + const target = $page.url.searchParams.get('app'); + if (target && getApp(target)) { + const already = workbenchScenesStore.openApps.find((a) => a.appId === target); + if (!already) await workbenchScenesStore.addApp(target); + await tick(); + scrollToPage(target); + // Clean the query out of the URL so refresh doesn't re-trigger. + const clean = new URL($page.url); + clean.searchParams.delete('app'); + history.replaceState({}, '', clean); + } }); onDestroy(() => { workbenchScenesStore.dispose(); diff --git a/apps/mana/apps/web/src/routes/(app)/settings/my-data/+page.svelte b/apps/mana/apps/web/src/routes/(app)/settings/my-data/+page.svelte index 16630bf06..7ef3ecf4e 100644 --- a/apps/mana/apps/web/src/routes/(app)/settings/my-data/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/settings/my-data/+page.svelte @@ -186,7 +186,7 @@

Meine Daten

diff --git a/apps/mana/apps/web/src/routes/(app)/settings/sync/+page.svelte b/apps/mana/apps/web/src/routes/(app)/settings/sync/+page.svelte index dd4df3a43..d5fd7299e 100644 --- a/apps/mana/apps/web/src/routes/(app)/settings/sync/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/settings/sync/+page.svelte @@ -106,7 +106,7 @@

- + {#if syncBilling.loading}