diff --git a/apps/mana/apps/web/src/lib/components/workbench/scenes/SceneHeader.svelte b/apps/mana/apps/web/src/lib/components/workbench/scenes/SceneHeader.svelte
index 1b9120ae3..fb49dcd86 100644
--- a/apps/mana/apps/web/src/lib/components/workbench/scenes/SceneHeader.svelte
+++ b/apps/mana/apps/web/src/lib/components/workbench/scenes/SceneHeader.svelte
@@ -12,12 +12,40 @@
import { workbenchScenesStore } from '$lib/stores/workbench-scenes.svelte';
import { Sparkle } from '@mana/shared-icons';
import { goto } from '$app/navigation';
+ import { TagSelector, type Tag } from '@mana/shared-ui';
+ import { useAllTags } from '@mana/shared-stores';
+ import { useAgents } from '$lib/data/ai/agents/queries';
interface Props {
scene: WorkbenchScene | null;
}
const { scene }: Props = $props();
+ const allTags = $derived(useAllTags());
+ const agents = $derived(useAgents());
+
+ // Auto-infer scopeTagIds from bound agent if scene has no explicit override
+ const effectiveScopeTagIds = $derived.by(() => {
+ if (!scene) return [];
+ if (scene.scopeTagIds?.length) return scene.scopeTagIds;
+ if (scene.viewingAsAgentId) {
+ const agent = agents.value.find((a) => a.id === scene.viewingAsAgentId);
+ return agent?.scopeTagIds ?? [];
+ }
+ return [];
+ });
+
+ const selectedScopeTags = $derived