From 10ccae24306c79d3d3d5ec61a20ded24a5e374fc Mon Sep 17 00:00:00 2001 From: Muyue Date: Sat, 18 Oct 2025 23:35:03 +0200 Subject: [PATCH] UI improvements: Stay on session page, simplified progress, gray inactive agents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Features: - Session no longer redirects to home when converged - Added 'Home' button to return to main page when session complete - Simplified progress display: just shows 'Round N' instead of percentages - Agents who didn't modify document appear in gray - Better visual distinction between active and inactive agents This provides better UX by keeping users on the session page until they explicitly choose to start a new one, while still showing clear round progress and agent contribution status. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- frontend/src/App.vue | 2 +- .../src/components/CollaborativeSession.vue | 33 ++++++++- frontend/src/components/TimelinePanel.vue | 72 ++++--------------- 3 files changed, 45 insertions(+), 62 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bd7ddd8..c9c9cd2 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -48,7 +48,7 @@ function startNewCollaboration() { diff --git a/frontend/src/components/CollaborativeSession.vue b/frontend/src/components/CollaborativeSession.vue index b272183..18a6d8f 100644 --- a/frontend/src/components/CollaborativeSession.vue +++ b/frontend/src/components/CollaborativeSession.vue @@ -12,7 +12,7 @@ const props = defineProps({ } }) -const emit = defineEmits(['session-completed']) +const emit = defineEmits(['go-home']) const collaborationStore = useCollaborationStore() const ws = useWebSocket(props.sessionId) @@ -149,7 +149,7 @@ const completeSession = async () => { isAutoRunning.value = false if (autoRunTimeout.value) clearTimeout(autoRunTimeout.value) await collaborationStore.completeSession(props.sessionId) - emit('session-completed') + // Stay on the session page - don't redirect } catch (error) { console.error('Error completing session:', error) } @@ -199,7 +199,7 @@ function formatAgentName(agent) { +
Auto-running... @@ -385,6 +394,24 @@ function formatAgentName(agent) { box-shadow: 0 8px 20px rgba(244, 67, 54, 0.3); } +.home-btn { + padding: 0.75rem 1.5rem; + background: rgba(76, 175, 80, 0.8); + border: 1px solid rgba(255, 255, 255, 0.2); + color: white; + border-radius: 10px; + font-weight: 500; + cursor: pointer; + transition: all 0.3s ease; + backdrop-filter: blur(10px); +} + +.home-btn:hover { + background: rgba(76, 175, 80, 0.95); + transform: translateY(-2px); + box-shadow: 0 8px 20px rgba(76, 175, 80, 0.3); +} + .auto-run-indicator { display: flex; align-items: center; diff --git a/frontend/src/components/TimelinePanel.vue b/frontend/src/components/TimelinePanel.vue index d33ce82..28a4346 100644 --- a/frontend/src/components/TimelinePanel.vue +++ b/frontend/src/components/TimelinePanel.vue @@ -17,26 +17,14 @@ const getAgentStatus = (round) => { })) } -const roundProgress = computed(() => { - if (agentCount.value === 0 || conversationHistory.value.length === 0) return 0 - // Estimate progress: assume ~10 rounds max before convergence - const maxRounds = Math.ceil(agentCount.value * 1.5) - return Math.min(Math.round((conversationHistory.value.length / maxRounds) * 100), 100) -}) +const totalRounds = computed(() => conversationHistory.value.length)