diff --git a/frontend/src/components/FloatingTranscriptDebug.vue b/frontend/src/components/FloatingTranscriptDebug.vue
index 479cfe4..302a992 100644
--- a/frontend/src/components/FloatingTranscriptDebug.vue
+++ b/frontend/src/components/FloatingTranscriptDebug.vue
@@ -30,9 +30,12 @@ const {
error,
isRealtime,
processing,
+ ephemeral,
+ terminalReady,
init,
switchAgent,
selectSession,
+ createNewSession,
disconnectRealtime,
sendPrompt
} = useTranscriptDebug()
@@ -335,6 +338,10 @@ function handleSend(message: string) {
sendPrompt(message)
}
+function handleCreateSession() {
+ createNewSession()
+}
+
// ============================================================================
// WATCHERS
// ============================================================================
@@ -485,6 +492,8 @@ onBeforeUnmount(() => {
v-if="conversation"
:conversation="conversation"
:processing="processing"
+ :terminal-ready="terminalReady"
+ :terminal="ephemeral"
:show-selector="showSelector"
:agents="agents"
:selected-agent="selectedAgent"
@@ -494,6 +503,7 @@ onBeforeUnmount(() => {
@send="handleSend"
@switch-agent="handleAgentSwitch"
@select-session="handleSessionSelect"
+ @create-session="handleCreateSession"
/>
@@ -272,6 +283,7 @@ function formatDuration(start: string, end: string): string {
v-if="selectedAgent"
:agent="selectedAgent"
:session-id="conversation.sessionId"
+ :terminal="terminal ?? null"
/>
@@ -354,6 +366,7 @@ function formatDuration(start: string, end: string): string {
@@ -365,6 +378,7 @@ function formatDuration(start: string, end: string): string {
v-if="selectedAgent"
:agent="selectedAgent"
:session-id="conversation.sessionId"
+ :terminal="terminal ?? null"
/>
{{ formatDuration(conversation.metadata.startTime, conversation.metadata.endTime) }}
@@ -739,6 +753,31 @@ function formatDuration(start: string, end: string): string {
color: #ccc;
}
+.new-session-btn {
+ display: inline-flex;
+ align-items: center;
+ gap: 3px;
+ padding: 2px 6px;
+ background: rgba(34, 197, 94, 0.12);
+ border: 1px solid rgba(34, 197, 94, 0.25);
+ border-radius: 0;
+ color: #4ade80;
+ font-size: 9px;
+ font-weight: 700;
+ font-family: 'Courier New', monospace;
+ cursor: pointer;
+ flex-shrink: 0;
+ transition: all 0.15s;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+.new-session-btn:hover {
+ background: rgba(34, 197, 94, 0.2);
+ border-color: rgba(34, 197, 94, 0.4);
+ color: #86efac;
+}
+
.spinner-sm {
width: 12px;
height: 12px;
diff --git a/frontend/src/components/transcript-debug/ResumeTerminalButton.vue b/frontend/src/components/transcript-debug/ResumeTerminalButton.vue
index c57af4d..2492cce 100644
--- a/frontend/src/components/transcript-debug/ResumeTerminalButton.vue
+++ b/frontend/src/components/transcript-debug/ResumeTerminalButton.vue
@@ -1,12 +1,13 @@