@@ -53,7 +53,6 @@ const props = withDefaults(defineProps<{
5353 status? : ConversationStatus ;
5454 thinking? : ThinkingLevel ;
5555 planMode? : boolean ;
56- dynamicWorkflowMode? : boolean ;
5756 goalMode? : boolean ;
5857 goal? : AppGoal | null ;
5958 activationBadges? : ActivationBadges ;
@@ -96,13 +95,11 @@ const emit = defineEmits<{
9695 setPermission: [mode : PermissionMode ];
9796 setThinking: [level : ThinkingLevel ];
9897 togglePlan: [];
99- toggleDynamicWorkflow: [];
10098 toggleGoal: [];
10199 openBtw: [];
102100 createGoal: [objective : string ];
103101 controlGoal: [action : ' pause' | ' resume' | ' cancel' ];
104102 focusGoal: [];
105- focusDynamicWorkflow: [];
106103 compact: [];
107104 pickModel: [];
108105 selectModel: [modelId : string ];
@@ -669,23 +666,20 @@ function thinkingSegmentLabel(segment: string): string {
669666
670667// Plan toggle
671668const planOn = computed (() => props .planMode === true );
672- const dynamicWorkflowOn = computed (() => props .dynamicWorkflowMode === true );
673669const goalStatus = computed (() => props .goal ?.status ?? props .activationBadges ?.goal ?.status ?? null );
674670const goalActive = computed (() => goalStatus .value !== null && goalStatus .value !== ' complete' );
675671const goalArmed = computed (() => goalActive .value || props .goalMode === true );
676672const goalCanPause = computed (() => goalStatus .value === ' active' );
677673const goalCanResume = computed (() => goalStatus .value === ' paused' || goalStatus .value === ' blocked' );
678674
679- // Modes selector (plan / goal / dynamic_workflow) — the popover that replaces the bare
680- // "plan" pill. Plan/DynamicWorkflow are real client toggles; goal reflects agent-driven
681- // state and focuses its card when active.
675+ // Modes selector for plan and goal state.
682676const modesOpen = ref (false );
683677const modesRef = ref <HTMLElement | null >(null );
684678const modesMenuRef = ref <HTMLElement | null >(null );
685679// The menu is position:fixed (so no composer stacking context can paint over
686680// it); these coords anchor it just above the pill, computed on open.
687681const modesMenuStyle = ref <Record <string , string >>({});
688- const anyModeActive = computed (() => planOn .value || dynamicWorkflowOn . value || goalArmed .value );
682+ const anyModeActive = computed (() => planOn .value || goalArmed .value );
689683function closeModes(): void {
690684 modesOpen .value = false ;
691685 document .removeEventListener (' mousedown' , onModesDocClick );
@@ -719,7 +713,7 @@ const PERM_MODES: { mode: PermissionMode; color: string; labelKey: string; descK
719713 { mode: ' yolo' , color: ' var(--color-warning)' , labelKey: ' status.permissionYolo' , descKey: ' status.permissionYoloDesc' },
720714 { mode: ' auto' , color: ' var(--color-danger)' , labelKey: ' status.permissionAuto' , descKey: ' status.permissionAutoDesc' },
721715];
722- const MODE_DESC_KEYS = [' status.planDesc' , ' status.dynamicWorkflowDesc ' , ' status. goalDesc' ] as const ;
716+ const MODE_DESC_KEYS = [' status.planDesc' , ' status.goalDesc' ] as const ;
723717
724718const menuMeasureRef = ref <HTMLElement | null >(null );
725719const permissionDescriptionWidth = ref (' ' );
@@ -998,7 +992,7 @@ function selectModel(modelId: string): void {
998992 </button >
999993 </div >
1000994
1001- <!-- Modes selector ( plan / goal / dynamic_workflow) — replaces the plan pill . -->
995+ <!-- Modes selector for plan and goal state . -->
1002996 <div v-if =" status" ref =" modesRef" class =" modes" >
1003997 <button
1004998 type =" button"
@@ -1008,7 +1002,6 @@ function selectModel(modelId: string): void {
10081002 >
10091003 <span class =" mode-label" >{{ t('status.modesLabel') }}</span >
10101004 <span v-if =" planOn" class =" mode-tag" >{{ t('status.planLabel') }}</span >
1011- <span v-if =" dynamicWorkflowOn" class =" mode-tag" >{{ t('status.dynamicWorkflowLabel') }}</span >
10121005 <span v-if =" goalArmed" class =" mode-tag" >{{ t('status.goalLabel') }}</span >
10131006 </button >
10141007
@@ -1022,15 +1015,6 @@ function selectModel(modelId: string): void {
10221015 </span >
10231016 <span class =" mode-switch" :class =" { on: planOn }" ><span class =" mode-knob" /></span >
10241017 </button >
1025- <!-- DynamicWorkflow — functional client toggle -->
1026- <button type =" button" class =" mode-row" :class =" { on: dynamicWorkflowOn }" role =" menuitem" @click =" emit('toggleDynamicWorkflow')" >
1027- <span class =" mode-row-icon" ><Icon name="sparkles" size="sm" /></span >
1028- <span class =" mode-row-info" >
1029- <span class =" mode-row-name" >{{ t('status.dynamicWorkflowLabel') }}</span >
1030- <span class =" mode-row-desc" >{{ t('status.dynamicWorkflowDesc') }}</span >
1031- </span >
1032- <span class =" mode-switch" :class =" { on: dynamicWorkflowOn }" ><span class =" mode-knob" /></span >
1033- </button >
10341018 <!-- Goal — lifecycle controls when active; switch is on when active or armed. -->
10351019 <div class =" mode-row mode-row-goal" :class =" { on: goalActive || props.goalMode }" >
10361020 <button
@@ -1902,7 +1886,7 @@ function selectModel(modelId: string): void {
19021886}
19031887
19041888/* Toggle pills (Thinking / Plan) */
1905- /* Modes selector ( plan / goal / dynamic_workflow) — replaces the old plan pill + badges .
1889+ /* Modes selector for plan and goal state .
19061890 z-index lifts the whole control (incl. its upward-opening menu) above the
19071891 composer input row, which otherwise paints over the menu. */
19081892.modes { position : relative ; display : inline-flex ; z-index : var (--z-sticky ); }
0 commit comments