diff --git a/static/src/components/input/InputComposer.vue b/static/src/components/input/InputComposer.vue index 522af74..5718336 100644 --- a/static/src/components/input/InputComposer.vue +++ b/static/src/components/input/InputComposer.vue @@ -89,7 +89,7 @@ :mode="props.avatarStatus.mode" :tool-keys="props.avatarStatus.toolKeys || []" :tracking="props.avatarStatus.tracking !== false" - :size="40" + :size="45" hex-background /> @@ -119,85 +119,87 @@ -
- - - -
- - -
+
+ + +
+
+ + +
+ +
+
- + + 目标模式运行中 + 目标模式就绪 -
- -
+ {{ terminalCount }} 个终端 + +
-
- - 目标模式运行中 - 目标模式就绪 - - - - +
{ // 收起态横幅是脱离流、浮在角上的小圆点,不应计入为聊天区预留的高度, // 否则会把消息区可滚动范围顶高。故排除 .goal-mode-banner--collapsed。 const nodes = root.querySelectorAll( - '.runtime-queue-list:not(.runtime-queue-list--empty), .floating-project-status, .composer-avatar' + '.runtime-queue-list:not(.runtime-queue-list--empty), .floating-status-row, .composer-avatar' ); nodes.forEach((node) => { if (!(node instanceof HTMLElement)) return; // 离开态:floatingStatusVisible / showComposerAvatar 已翻 false 但元素仍在 DOM 中做退场动画。 // 此时不再计入它的高度,让输入栏立即回升、与浮层的退场动画同步。 - if (node.classList.contains('floating-project-status') && !floatingStatusVisible.value) return; + if (node.classList.contains('floating-status-row') && !floatingStatusVisible.value) return; if (node.classList.contains('composer-avatar') && !showComposerAvatar.value) return; top = Math.min(top, node.offsetTop); bottom = Math.max(bottom, node.offsetTop + node.offsetHeight); @@ -2956,13 +2958,43 @@ onBeforeUnmount(() => {