diff --git a/.gitignore b/.gitignore index 013c1908..ba59b57e 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,7 @@ api/prisma/schema.prisma .terraform.lock.hcl k3s_kubeconfig.yaml k3s_kustomization_backup.yaml + +# Python bytecode from .specify scripts +__pycache__/ +export-1a/ diff --git a/.specify/feature.json b/.specify/feature.json index 4be0e807..126b2cb2 100644 --- a/.specify/feature.json +++ b/.specify/feature.json @@ -1,3 +1,3 @@ { - "feature_directory": "specs/002-nuxt4-migration" + "feature_directory": "specs/006-agent-workspace-tabs" } diff --git a/admin/slices/agent/agent/components/agent/chat/Tab.vue b/admin/slices/agent/agent/components/agent/chat/Tab.vue index 0c8f9bd7..a9cebc36 100644 --- a/admin/slices/agent/agent/components/agent/chat/Tab.vue +++ b/admin/slices/agent/agent/components/agent/chat/Tab.vue @@ -10,13 +10,20 @@ import { IconRefresh, } from '@tabler/icons-vue'; -const props = defineProps<{ - agent: IAgentData; - apiUrl: string; - overlay: ChatOverlay; - restarting: boolean; - toggling: boolean; -}>(); +const props = withDefaults( + defineProps<{ + agent: IAgentData; + apiUrl: string; + overlay: ChatOverlay; + restarting: boolean; + toggling: boolean; + /** False while another tab is on screen. The chat itself stays mounted + * (v-show) so its socket and transcript survive, but the side logs must + * not keep polling behind a full-width Logs tab showing the same thing. */ + active?: boolean; + }>(), + { active: true }, +); const emit = defineEmits<{ restart: []; toggleRunning: [] }>(); @@ -79,11 +86,24 @@ watch(