From 4109001b2c9becf8e7e4f936b9c999fe35f43486 Mon Sep 17 00:00:00 2001 From: bowen628 Date: Mon, 9 Mar 2026 00:19:17 +0800 Subject: [PATCH 1/4] feat: unified image analysis pipeline, bot image support, and mobile-web enhancements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Backend - Centralize vision pre-analysis in ConversationCoordinator for all platforms (desktop, mobile, bot) with automatic fallback to multimodal - Add ImageAnalysisStarted/Completed events and propagate through Tauri & WebSocket transports - Carry original_user_input and image metadata in DialogTurnStarted for correct UI display - Add SessionManager::fail_dialog_turn() for proper failed-turn persistence - Fix cancelled-turn handling: emit DialogTurnCancelled unconditionally, persist partial content - Route internal events sequentially to preserve text chunk ordering - Simplify image context references (remove AnalyzeImage tool hints) ## Feishu Bot - Support post (rich-text) and image message types, not just text - Download and compress user-sent images via Feishu message resources API (≤1MB) - Pass image contexts through command router to execution pipeline - Fix Unicode truncation boundary in bot response messages ## Relay Server - Increase command endpoint body limit to 10MB for image payloads - Simplify deploy script (remove --build-mobile option) ## Desktop Frontend - Display image thumbnails in UserMessageItem with lightbox preview - Add image-analyzing indicator in VirtualItemRenderer - Handle ImageAnalysisStarted/Completed events with temp turn management - Simplify useMessageSender by delegating vision strategy to backend - Persist and restore image metadata in dialog turns - NavBar menu auto-aligns left/right based on viewport position - QR code click-to-copy URL in RemoteConnectDialog - Fix Markdown code block styling for inline-code within pre tags - Add section descriptions to all settings panels (i18n en-US & zh-CN) ## Mobile Web - Overhaul ChatPage: theme-aware syntax highlighting, copy buttons, line numbers - Add TodoCard and TaskToolCard components for rich tool display - Add iOS-style push/pop navigation animations - Improve light/dark theme consistency and SCSS styling across all components Made-with: Cursor --- src/apps/desktop/src/lib.rs | 12 +- src/apps/relay-server/README.md | 5 +- src/apps/relay-server/deploy.sh | 27 +- src/apps/relay-server/src/lib.rs | 5 +- .../src/agentic/coordination/coordinator.rs | 300 +++- .../src/agentic/execution/execution_engine.rs | 2 - .../src/agentic/image_analysis/enhancer.rs | 2 + .../image_analysis/image_processing.rs | 36 +- .../core/src/agentic/image_analysis/mod.rs | 3 +- .../src/agentic/image_analysis/processor.rs | 11 +- .../src/agentic/session/session_manager.rs | 52 + .../core/src/agentic/tools/image_context.rs | 6 +- .../implementations/ask_user_question_tool.rs | 8 +- .../conversation/persistence_manager.rs | 2 +- .../remote_connect/bot/command_router.rs | 36 +- .../src/service/remote_connect/bot/feishu.rs | 257 +++- .../service/remote_connect/bot/telegram.rs | 2 +- .../core/src/service/remote_connect/mod.rs | 6 +- .../service/remote_connect/remote_server.rs | 470 ++++-- src/crates/events/src/agentic.rs | 24 +- src/crates/transport/src/adapters/tauri.rs | 19 +- .../transport/src/adapters/websocket.rs | 21 +- src/mobile-web/index.html | 6 +- src/mobile-web/src/App.tsx | 110 +- src/mobile-web/src/assets/Logo-ICON.png | Bin 0 -> 391518 bytes src/mobile-web/src/pages/ChatPage.tsx | 1306 ++++++++++++++--- src/mobile-web/src/pages/SessionListPage.tsx | 273 +++- src/mobile-web/src/pages/WorkspacePage.tsx | 4 +- .../src/services/RelayHttpClient.ts | 4 +- .../src/services/RemoteSessionManager.ts | 42 +- .../src/services/imageCompressor.ts | 81 + src/mobile-web/src/services/store.ts | 5 +- .../src/styles/components/chat-input.scss | 385 +++-- .../src/styles/components/chat.scss | 157 +- .../src/styles/components/markdown.scss | 365 ++++- .../src/styles/components/sessions.scss | 493 +++++-- .../src/styles/components/tool-card.scss | 385 ++++- .../src/styles/components/workspace.scss | 79 +- src/mobile-web/src/styles/global.scss | 48 + src/mobile-web/src/theme/ThemeProvider.tsx | 14 +- src/mobile-web/src/theme/presets/dark.ts | 12 +- src/mobile-web/src/theme/presets/light.ts | 172 ++- src/mobile-web/src/vite-env.d.ts | 6 + .../src/app/components/NavBar/NavBar.scss | 4 + .../src/app/components/NavBar/NavBar.tsx | 19 +- .../RemoteConnectDialog.scss | 10 + .../RemoteConnectDialog.tsx | 22 +- .../components/Markdown/Markdown.scss | 5 +- .../components/modern/UserMessageItem.scss | 76 + .../components/modern/UserMessageItem.tsx | 38 +- .../modern/VirtualItemRenderer.scss | 11 +- .../components/modern/VirtualItemRenderer.tsx | 20 +- .../src/flow_chat/hooks/useMessageSender.ts | 259 +--- .../services/AgenticEventListener.ts | 20 +- .../src/flow_chat/services/FlowChatManager.ts | 1 + .../flow-chat-manager/EventHandlerModule.ts | 197 ++- .../flow-chat-manager/MessageModule.ts | 9 +- .../flow-chat-manager/PersistenceModule.ts | 12 + .../src/flow_chat/store/FlowChatStore.ts | 27 +- .../flow_chat/store/modernFlowChatStore.ts | 8 +- src/web-ui/src/flow_chat/types/flow-chat.ts | 7 + src/web-ui/src/flow_chat/utils/imageUtils.ts | 13 +- .../api/service-api/AgentAPI.ts | 15 + .../config/components/AIModelConfig.tsx | 14 +- .../config/components/AIRulesMemoryConfig.tsx | 4 +- .../config/components/LspConfig.tsx | 8 +- .../config/components/McpToolsConfig.tsx | 30 +- .../components/PromptTemplateConfig.tsx | 4 +- src/web-ui/src/locales/en-US/common.json | 3 +- src/web-ui/src/locales/en-US/flow-chat.json | 12 +- .../locales/en-US/settings/agentic-tools.json | 13 + .../src/locales/en-US/settings/ai-memory.json | 6 + .../src/locales/en-US/settings/ai-model.json | 1 + .../src/locales/en-US/settings/lsp.json | 10 + .../src/locales/en-US/settings/mcp.json | 6 + .../en-US/settings/prompt-templates.json | 6 + src/web-ui/src/locales/zh-CN/common.json | 3 +- .../locales/zh-CN/settings/agentic-tools.json | 13 + .../src/locales/zh-CN/settings/ai-memory.json | 6 + .../src/locales/zh-CN/settings/ai-model.json | 1 + .../src/locales/zh-CN/settings/lsp.json | 10 + .../src/locales/zh-CN/settings/mcp.json | 6 + .../zh-CN/settings/prompt-templates.json | 6 + 83 files changed, 4863 insertions(+), 1325 deletions(-) create mode 100644 src/mobile-web/src/assets/Logo-ICON.png create mode 100644 src/mobile-web/src/services/imageCompressor.ts create mode 100644 src/mobile-web/src/vite-env.d.ts diff --git a/src/apps/desktop/src/lib.rs b/src/apps/desktop/src/lib.rs index 437dd7dc..cbf2e7d5 100644 --- a/src/apps/desktop/src/lib.rs +++ b/src/apps/desktop/src/lib.rs @@ -712,13 +712,11 @@ fn start_event_loop_with_transport( if !batch.is_empty() { for envelope in batch { - let router = event_router.clone(); - let env_clone = envelope.clone(); - tokio::spawn(async move { - if let Err(e) = router.route(env_clone).await { - log::warn!("Internal event routing failed: {:?}", e); - } - }); + // Route to internal subscribers (e.g. RemoteSessionStateTracker) + // sequentially so that text chunks are appended in order. + if let Err(e) = event_router.route(envelope.clone()).await { + log::warn!("Internal event routing failed: {:?}", e); + } if let Err(e) = transport.emit_event("", envelope.event).await { log::error!("Failed to emit event: {:?}", e); diff --git a/src/apps/relay-server/README.md b/src/apps/relay-server/README.md index 73750750..2e1698e3 100644 --- a/src/apps/relay-server/README.md +++ b/src/apps/relay-server/README.md @@ -18,9 +18,6 @@ WebSocket relay server for BitFun Remote Connect. Bridges desktop (WebSocket) an ```bash # One-click deploy bash deploy.sh - -# With mobile web client rebuild -bash deploy.sh --build-mobile ``` ### What URL should I fill in BitFun Desktop? @@ -123,7 +120,7 @@ Only desktop clients connect via WebSocket. Mobile clients use the HTTP endpoint 1. Clone the repository 2. Navigate to `src/apps/relay-server/` -3. Run `bash deploy.sh --build-mobile` +3. Run `bash deploy.sh` 4. Configure DNS/firewall as needed 5. In BitFun desktop, select "Custom Server" and enter your server URL diff --git a/src/apps/relay-server/deploy.sh b/src/apps/relay-server/deploy.sh index 8786b934..48b81a30 100755 --- a/src/apps/relay-server/deploy.sh +++ b/src/apps/relay-server/deploy.sh @@ -1,15 +1,13 @@ #!/usr/bin/env bash # BitFun Relay Server — one-click deploy script. -# Usage: bash deploy.sh [--build-mobile] [--skip-build] [--skip-health-check] +# Usage: bash deploy.sh [--skip-build] [--skip-health-check] # # Prerequisites: Docker, Docker Compose set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" -BUILD_MOBILE=false SKIP_BUILD=false SKIP_HEALTH_CHECK=false @@ -21,7 +19,6 @@ Usage: bash deploy.sh [options] Options: - --build-mobile Build mobile-web static files before deploy --skip-build Skip docker compose build, only restart services --skip-health-check Skip post-deploy health check -h, --help Show this help message @@ -46,7 +43,6 @@ check_docker_compose() { for arg in "$@"; do case "$arg" in - --build-mobile) BUILD_MOBILE=true ;; --skip-build) SKIP_BUILD=true ;; --skip-health-check) SKIP_HEALTH_CHECK=true ;; -h|--help) @@ -65,31 +61,16 @@ echo "=== BitFun Relay Server Deploy ===" check_command docker check_docker_compose -# Build mobile web static files if requested -if [ "$BUILD_MOBILE" = true ] && [ -d "$PROJECT_ROOT/src/mobile-web" ]; then - check_command npm - echo "[1/3] Building mobile web client..." - cd "$PROJECT_ROOT/src/mobile-web" - npm ci - npm run build - mkdir -p "$SCRIPT_DIR/static" - cp -r dist/* "$SCRIPT_DIR/static/" - cd "$SCRIPT_DIR" - echo " Mobile web built → $SCRIPT_DIR/static/" -else - echo "[1/3] Skipping mobile web build (use --build-mobile to include)" -fi - # Build and start containers cd "$SCRIPT_DIR" if [ "$SKIP_BUILD" = true ]; then - echo "[2/3] Skipping Docker build (--skip-build)" + echo "[1/2] Skipping Docker build (--skip-build)" else - echo "[2/3] Building Docker images..." + echo "[1/2] Building Docker images..." docker compose build fi -echo "[3/3] Starting services..." +echo "[2/2] Starting services..." docker compose up -d if [ "$SKIP_HEALTH_CHECK" = false ]; then diff --git a/src/apps/relay-server/src/lib.rs b/src/apps/relay-server/src/lib.rs index e133f5b5..3be16d62 100644 --- a/src/apps/relay-server/src/lib.rs +++ b/src/apps/relay-server/src/lib.rs @@ -247,7 +247,10 @@ pub fn build_relay_router( .route("/health", get(routes::api::health_check)) .route("/api/info", get(routes::api::server_info)) .route("/api/rooms/:room_id/pair", post(routes::api::pair)) - .route("/api/rooms/:room_id/command", post(routes::api::command)) + .route( + "/api/rooms/:room_id/command", + post(routes::api::command).layer(DefaultBodyLimit::max(10 * 1024 * 1024)), + ) .route( "/api/rooms/:room_id/upload-web", post(routes::api::upload_web).layer(DefaultBodyLimit::max(10 * 1024 * 1024)), diff --git a/src/crates/core/src/agentic/coordination/coordinator.rs b/src/crates/core/src/agentic/coordination/coordinator.rs index 250a1f51..f667a241 100644 --- a/src/crates/core/src/agentic/coordination/coordinator.rs +++ b/src/crates/core/src/agentic/coordination/coordinator.rs @@ -246,6 +246,78 @@ impl ConversationCoordinator { } } + /// Ensure the completed/failed/cancelled turn is persisted to the workspace + /// conversation storage. If the frontend already saved a richer version + /// during streaming, we only update the final status; otherwise we create + /// a minimal record with the user message so the turn is never lost. + /// Safety-net persistence: only creates a minimal record when the frontend + /// has not saved anything yet. The frontend's PersistenceModule is the + /// authoritative writer for turn content (model rounds, text, tools, etc.) + /// and final status. This function must NOT overwrite frontend-managed + /// data, because the spawned task always runs before the frontend receives + /// the DialogTurnCompleted event via the transport layer, and the existing + /// disk data from debounced saves may have incomplete model rounds. + async fn finalize_turn_in_workspace( + session_id: &str, + turn_id: &str, + turn_index: usize, + user_input: &str, + workspace_path: &str, + status: crate::service::conversation::TurnStatus, + user_message_metadata: Option, + ) { + use crate::infrastructure::PathManager; + use crate::service::conversation::{ + ConversationPersistenceManager, DialogTurnData, UserMessageData, + }; + + let path_manager = match PathManager::new() { + Ok(pm) => std::sync::Arc::new(pm), + Err(_) => return, + }; + + let conv_mgr = match ConversationPersistenceManager::new( + path_manager, + std::path::PathBuf::from(workspace_path), + ) + .await + { + Ok(mgr) => mgr, + Err(_) => return, + }; + + if let Ok(Some(_existing)) = conv_mgr.load_dialog_turn(session_id, turn_index).await { + return; + } + + let now_ms = std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap_or_default() + .as_millis() as u64; + + let mut turn_data = DialogTurnData::new( + turn_id.to_string(), + turn_index, + session_id.to_string(), + UserMessageData { + id: format!("{}-user", turn_id), + content: user_input.to_string(), + timestamp: now_ms, + metadata: user_message_metadata, + }, + ); + turn_data.status = status; + turn_data.end_time = Some(now_ms); + turn_data.duration_ms = Some(now_ms.saturating_sub(turn_data.start_time)); + + if let Err(e) = conv_mgr.save_dialog_turn(&turn_data).await { + warn!( + "Failed to finalize turn in workspace: session_id={}, turn_index={}, error={}", + session_id, turn_index, e + ); + } + } + /// Create a subagent session for internal AI execution. /// Unlike `create_session`, this does NOT emit `SessionCreated` to the transport layer, /// because subagent sessions are internal implementation details of the execution engine @@ -319,6 +391,112 @@ impl ConversationCoordinator { .await } + /// Pre-analyze images using the configured vision model. + /// + /// Strategy: + /// 1. Vision model configured → analyze images → enhance user message with text descriptions → clear image_contexts + /// 2. No vision model → keep image_contexts as-is for multimodal fallback to primary model + async fn pre_analyze_images_if_needed( + &self, + user_input: String, + image_contexts: Option>, + session_id: &str, + image_metadata: Option, + ) -> (String, Option>) { + let images = match &image_contexts { + Some(imgs) if !imgs.is_empty() => imgs, + _ => return (user_input, image_contexts), + }; + + use crate::agentic::image_analysis::{ + resolve_vision_model_from_global_config, AnalyzeImagesRequest, ImageAnalyzer, + MessageEnhancer, + }; + use crate::infrastructure::ai::get_global_ai_client_factory; + + let vision_model = match resolve_vision_model_from_global_config().await { + Ok(m) => m, + Err(e) => { + info!("No vision model configured, using multimodal fallback: {}", e); + return (user_input, image_contexts); + } + }; + + let factory = match get_global_ai_client_factory().await { + Ok(f) => f, + Err(e) => { + warn!("Failed to get AI client factory for vision: {}", e); + return (user_input, image_contexts); + } + }; + + let vision_client = match factory.get_client_by_id(&vision_model.id).await { + Ok(c) => c, + Err(e) => { + warn!("Failed to create vision AI client: {}", e); + return (user_input, image_contexts); + } + }; + + let workspace_path = crate::infrastructure::get_workspace_path(); + let analyzer = ImageAnalyzer::new(workspace_path, vision_client); + let request = AnalyzeImagesRequest { + images: images.clone(), + user_message: Some(user_input.clone()), + session_id: session_id.to_string(), + }; + + self.emit_event(AgenticEvent::ImageAnalysisStarted { + session_id: session_id.to_string(), + image_count: images.len(), + user_input: user_input.clone(), + image_metadata: image_metadata.clone(), + }) + .await; + + let analysis_start = std::time::Instant::now(); + + match analyzer.analyze_images(request, &vision_model).await { + Ok(results) => { + let duration_ms = analysis_start.elapsed().as_millis() as u64; + + self.emit_event(AgenticEvent::ImageAnalysisCompleted { + session_id: session_id.to_string(), + success: true, + duration_ms, + }) + .await; + + info!( + "Vision pre-analysis completed: session={}, images={}, results={}, duration={}ms", + session_id, + images.len(), + results.len(), + duration_ms + ); + let enhanced = + MessageEnhancer::enhance_with_image_analysis(&user_input, &results, &[]); + (enhanced, None) + } + Err(e) => { + let duration_ms = analysis_start.elapsed().as_millis() as u64; + + self.emit_event(AgenticEvent::ImageAnalysisCompleted { + session_id: session_id.to_string(), + success: false, + duration_ms, + }) + .await; + + warn!( + "Vision pre-analysis failed, falling back to multimodal: session={}, error={}", + session_id, e + ); + (user_input, image_contexts) + } + } + } + async fn start_dialog_turn_internal( &self, session_id: String, @@ -449,6 +627,50 @@ impl ConversationCoordinator { } let original_user_input = user_input.clone(); + + // Build image metadata for ConversationPersistenceManager (before image_contexts is consumed) + // Also stores original_text so the UI can display the user's actual input + // instead of the vision-enhanced text. + let user_message_metadata: Option = image_contexts + .as_ref() + .filter(|imgs| !imgs.is_empty()) + .map(|imgs| { + let image_meta: Vec = imgs + .iter() + .map(|img| { + let name = img + .metadata + .as_ref() + .and_then(|m| m.get("name")) + .and_then(|v| v.as_str()) + .unwrap_or("image.png"); + let mut meta = serde_json::json!({ + "id": &img.id, + "name": name, + "mime_type": &img.mime_type, + }); + if let Some(url) = &img.data_url { + meta["data_url"] = serde_json::json!(url); + } + if let Some(path) = &img.image_path { + meta["image_path"] = serde_json::json!(path); + } + meta + }) + .collect(); + serde_json::json!({ + "images": image_meta, + "original_text": &original_user_input, + }) + }); + + // Auto vision pre-analysis: when images are present, try to use the configured + // vision model to pre-analyze them, then enhance the user message with text descriptions. + // This is the single authoritative code path for all image handling (desktop, remote, bot). + // Fallback: if no vision model is configured, pass images as multimodal to the primary model. + let (user_input, image_contexts) = + self.pre_analyze_images_if_needed(user_input, image_contexts, &session_id, user_message_metadata.clone()).await; + let wrapped_user_input = self .wrap_user_input(&effective_agent_type, user_input) .await?; @@ -466,12 +688,20 @@ impl ConversationCoordinator { ) .await?; - // Send dialog turn started event + // Send dialog turn started event with original input and image metadata + // so all frontends (desktop, mobile, bot) can display correctly. + let has_images = user_message_metadata.is_some(); self.emit_event(AgenticEvent::DialogTurnStarted { session_id: session_id.clone(), turn_id: turn_id.clone(), turn_index, user_input: wrapped_user_input.clone(), + original_user_input: if has_images { + Some(original_user_input.clone()) + } else { + None + }, + user_message_metadata: user_message_metadata.clone(), subagent_parent_info: None, }) .await; @@ -560,14 +790,16 @@ impl ConversationCoordinator { let session_id_clone = session_id.clone(); let turn_id_clone = turn_id.clone(); let session_workspace_path = session.config.workspace_path.clone(); + let user_input_for_workspace = wrapped_user_input.clone(); let effective_agent_type_clone = effective_agent_type.clone(); + let user_message_metadata_clone = user_message_metadata; tokio::spawn(async move { // Note: Don't check cancellation here as cancel token hasn't been created yet // Cancel token is created in execute_dialog_turn -> execute_round // execute_dialog_turn has proper cancellation checks internally - if let Some(workspace_path) = session_workspace_path { + if let Some(ref workspace_path) = session_workspace_path { use crate::infrastructure::{get_workspace_path, set_workspace_path}; let current = get_workspace_path().map(|p| p.to_string_lossy().to_string()); @@ -590,7 +822,7 @@ impl ConversationCoordinator { ) .await; - match execution_engine + let workspace_turn_status = match execution_engine .execute_dialog_turn(effective_agent_type_clone, messages, execution_context) .await { @@ -621,17 +853,52 @@ impl ConversationCoordinator { let _ = session_manager .update_session_state(&session_id_clone, SessionState::Idle) .await; + + Some(crate::service::conversation::TurnStatus::Completed) } Err(e) => { let is_cancellation = matches!(&e, BitFunError::Cancelled(_)); if is_cancellation { - // DialogTurnCancelled already sent in execution_engine - debug!("Dialog turn cancelled: {}", e); + info!("Dialog turn cancelled: session={}, turn={}", session_id_clone, turn_id_clone); + + // The execution engine only emits DialogTurnCancelled when + // cancellation is detected between rounds. If cancellation + // interrupted streaming mid-round, no event was emitted. + // Emit it here unconditionally (duplicates are harmless). + let _ = event_queue + .enqueue( + AgenticEvent::DialogTurnCancelled { + session_id: session_id_clone.clone(), + turn_id: turn_id_clone.clone(), + subagent_parent_info: None, + }, + Some(EventPriority::Critical), + ) + .await; + + // Mark the turn as completed in persistence so its partial + // content appears in historical messages (turns_to_chat_messages + // skips InProgress turns). + let _ = session_manager + .complete_dialog_turn( + &session_id_clone, + &turn_id_clone, + String::new(), + TurnStats { + total_rounds: 0, + total_tools: 0, + total_tokens: 0, + duration_ms: 0, + }, + ) + .await; let _ = session_manager .update_session_state(&session_id_clone, SessionState::Idle) .await; + + Some(crate::service::conversation::TurnStatus::Cancelled) } else { error!("Dialog turn execution failed: {}", e); @@ -650,6 +917,14 @@ impl ConversationCoordinator { ) .await; + let _ = session_manager + .fail_dialog_turn( + &session_id_clone, + &turn_id_clone, + e.to_string(), + ) + .await; + let _ = session_manager .update_session_state( &session_id_clone, @@ -659,8 +934,23 @@ impl ConversationCoordinator { }, ) .await; + + Some(crate::service::conversation::TurnStatus::Error) } } + }; + + if let (Some(ref wp), Some(status)) = (&session_workspace_path, workspace_turn_status) { + Self::finalize_turn_in_workspace( + &session_id_clone, + &turn_id_clone, + turn_index, + &user_input_for_workspace, + wp, + status, + user_message_metadata_clone, + ) + .await; } }); diff --git a/src/crates/core/src/agentic/execution/execution_engine.rs b/src/crates/core/src/agentic/execution/execution_engine.rs index 61adeb16..26d50b11 100644 --- a/src/crates/core/src/agentic/execution/execution_engine.rs +++ b/src/crates/core/src/agentic/execution/execution_engine.rs @@ -182,8 +182,6 @@ impl ExecutionEngine { &err, is_current_turn_message, ) { - // Degrade only for historical multimodal messages. Current-turn - // image failures should still surface to users. warn!( "Failed to rebuild multimodal payload, falling back to text-only message: message_id={}, provider={}, turn_id={:?}, current_turn_id={}, error={}", msg.id, provider, msg.metadata.turn_id, current_turn_id, err diff --git a/src/crates/core/src/agentic/image_analysis/enhancer.rs b/src/crates/core/src/agentic/image_analysis/enhancer.rs index 767fef3f..93b38876 100644 --- a/src/crates/core/src/agentic/image_analysis/enhancer.rs +++ b/src/crates/core/src/agentic/image_analysis/enhancer.rs @@ -57,6 +57,8 @@ impl MessageEnhancer { enhanced.push_str("\n"); } + enhanced.push_str("The above image analysis has already been performed. Do NOT suggest the user to view or re-analyze the image. Respond directly to the user's question based on the analysis.\n\n"); + // 3. Separator enhanced.push_str("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"); diff --git a/src/crates/core/src/agentic/image_analysis/image_processing.rs b/src/crates/core/src/agentic/image_analysis/image_processing.rs index d4cd763e..d5c5bbea 100644 --- a/src/crates/core/src/agentic/image_analysis/image_processing.rs +++ b/src/crates/core/src/agentic/image_analysis/image_processing.rs @@ -152,8 +152,24 @@ pub fn optimize_image_for_provider( image_data: Vec, provider: &str, fallback_mime: Option<&str>, +) -> BitFunResult { + optimize_image_with_size_limit(image_data, provider, fallback_mime, None) +} + +/// Like `optimize_image_for_provider` but allows an explicit size cap. +/// When `max_output_size` is `Some(n)`, the effective limit is +/// `min(provider_limit, n)`. +pub fn optimize_image_with_size_limit( + image_data: Vec, + provider: &str, + fallback_mime: Option<&str>, + max_output_size: Option, ) -> BitFunResult { let limits = ImageLimits::for_provider(provider); + let effective_max = match max_output_size { + Some(cap) => cap.min(limits.max_size), + None => limits.max_size, + }; let guessed_format = image::guess_format(&image_data).ok(); let dynamic = image::load_from_memory(&image_data) @@ -162,7 +178,7 @@ pub fn optimize_image_for_provider( let (orig_width, orig_height) = (dynamic.width(), dynamic.height()); let needs_resize = orig_width > limits.max_width || orig_height > limits.max_height; - if !needs_resize && image_data.len() <= limits.max_size { + if !needs_resize && image_data.len() <= effective_max { let mime_type = detect_mime_type_from_bytes(&image_data, fallback_mime)?; return Ok(ProcessedImage { data: image_data, @@ -185,33 +201,33 @@ pub fn optimize_image_for_provider( let mut encoded = encode_dynamic_image(&working, preferred_format, 85)?; - if encoded.0.len() > limits.max_size { + if encoded.0.len() > effective_max { for quality in [80u8, 65, 50, 35] { encoded = encode_dynamic_image(&working, ImageFormat::Jpeg, quality)?; - if encoded.0.len() <= limits.max_size { + if encoded.0.len() <= effective_max { break; } } } - if encoded.0.len() > limits.max_size { - for _ in 0..3 { - let next_w = ((working.width() as f32) * 0.85).round().max(64.0) as u32; - let next_h = ((working.height() as f32) * 0.85).round().max(64.0) as u32; + if encoded.0.len() > effective_max { + for _ in 0..5 { + let next_w = ((working.width() as f32) * 0.75).round().max(64.0) as u32; + let next_h = ((working.height() as f32) * 0.75).round().max(64.0) as u32; if next_w == working.width() && next_h == working.height() { break; } working = working.resize(next_w, next_h, FilterType::Triangle); - for quality in [70u8, 55, 40] { + for quality in [70u8, 55, 40, 25] { encoded = encode_dynamic_image(&working, ImageFormat::Jpeg, quality)?; - if encoded.0.len() <= limits.max_size { + if encoded.0.len() <= effective_max { break; } } - if encoded.0.len() <= limits.max_size { + if encoded.0.len() <= effective_max { break; } } diff --git a/src/crates/core/src/agentic/image_analysis/mod.rs b/src/crates/core/src/agentic/image_analysis/mod.rs index 4ba156f8..0778eb2a 100644 --- a/src/crates/core/src/agentic/image_analysis/mod.rs +++ b/src/crates/core/src/agentic/image_analysis/mod.rs @@ -10,7 +10,8 @@ pub mod types; pub use enhancer::MessageEnhancer; pub use image_processing::{ build_multimodal_message, decode_data_url, detect_mime_type_from_bytes, load_image_from_path, - optimize_image_for_provider, process_image_contexts_for_provider, resolve_image_path, + optimize_image_for_provider, optimize_image_with_size_limit, + process_image_contexts_for_provider, resolve_image_path, resolve_vision_model_from_ai_config, resolve_vision_model_from_global_config, build_multimodal_message_with_images, ProcessedImage, }; diff --git a/src/crates/core/src/agentic/image_analysis/processor.rs b/src/crates/core/src/agentic/image_analysis/processor.rs index 2363738d..33fc6276 100644 --- a/src/crates/core/src/agentic/image_analysis/processor.rs +++ b/src/crates/core/src/agentic/image_analysis/processor.rs @@ -4,7 +4,7 @@ use super::image_processing::{ build_multimodal_message, decode_data_url, detect_mime_type_from_bytes, load_image_from_path, - optimize_image_for_provider, resolve_image_path, + optimize_image_with_size_limit, resolve_image_path, }; use super::types::{AnalyzeImagesRequest, ImageAnalysisResult, ImageContextData}; use crate::infrastructure::ai::AIClient; @@ -94,8 +94,13 @@ impl ImageAnalyzer { let (image_data, fallback_mime) = Self::load_image_from_context(&image_ctx, workspace_path.as_deref()).await?; - let processed = - optimize_image_for_provider(image_data, &model.provider, fallback_mime.as_deref())?; + const IMAGE_ANALYSIS_MAX_BYTES: usize = 1024 * 1024; + let processed = optimize_image_with_size_limit( + image_data, + &model.provider, + fallback_mime.as_deref(), + Some(IMAGE_ANALYSIS_MAX_BYTES), + )?; debug!( "Image processing completed: mime={}, size={}KB, dimensions={}x{}", diff --git a/src/crates/core/src/agentic/session/session_manager.rs b/src/crates/core/src/agentic/session/session_manager.rs index db282dae..373c2cbc 100644 --- a/src/crates/core/src/agentic/session/session_manager.rs +++ b/src/crates/core/src/agentic/session/session_manager.rs @@ -641,6 +641,58 @@ impl SessionManager { Ok(()) } + /// Mark a dialog turn as failed and persist it. + /// Unlike `complete_dialog_turn`, this sets the state to `Failed` with an error message. + pub async fn fail_dialog_turn( + &self, + session_id: &str, + turn_id: &str, + error: String, + ) -> BitFunResult<()> { + let mut turn = self + .persistence_manager + .load_dialog_turn(session_id, turn_id) + .await?; + + turn.state = DialogTurnState::Failed { error }; + turn.completed_at = Some(SystemTime::now()); + + if self.config.enable_persistence { + match self.get_context_messages(session_id).await { + Ok(context_messages) => { + if let Err(err) = self + .persistence_manager + .save_turn_context_snapshot( + session_id, + turn.turn_index, + &context_messages, + ) + .await + { + warn!( + "failed to save turn context snapshot on failure: session_id={}, turn_index={}, err={}", + session_id, turn.turn_index, err + ); + } + } + Err(err) => { + warn!( + "failed to build context messages for snapshot on failure: session_id={}, turn_index={}, err={}", + session_id, turn.turn_index, err + ); + } + } + self.persistence_manager.save_dialog_turn(&turn).await?; + } + + debug!( + "Dialog turn marked as failed: turn_id={}, turn_index={}", + turn_id, turn.turn_index + ); + + Ok(()) + } + // ============ Helper Methods ============ /// Get session's message history (complete) diff --git a/src/crates/core/src/agentic/tools/image_context.rs b/src/crates/core/src/agentic/tools/image_context.rs index 3b1ba885..35dda919 100644 --- a/src/crates/core/src/agentic/tools/image_context.rs +++ b/src/crates/core/src/agentic/tools/image_context.rs @@ -73,13 +73,13 @@ pub fn format_image_context_reference(image: &ImageContextData) -> String { if let Some(image_path) = &image.image_path { format!( - "[Image: {}{}]\nPath: {}\nTip: You can use the AnalyzeImage tool with the image_path parameter.", + "[Image: {}{}]\nPath: {}", image.image_name, size_label, image_path ) } else { format!( - "[Image: {}{} (from clipboard)]\nImage ID: {}\nTip: You can use the AnalyzeImage tool.\nParameter: image_id=\"{}\"", - image.image_name, size_label, image.id, image.id + "[Image: {}{} (from clipboard)]\nImage ID: {}", + image.image_name, size_label, image.id ) } } diff --git a/src/crates/core/src/agentic/tools/implementations/ask_user_question_tool.rs b/src/crates/core/src/agentic/tools/implementations/ask_user_question_tool.rs index a7ac71f2..75b0b286 100644 --- a/src/crates/core/src/agentic/tools/implementations/ask_user_question_tool.rs +++ b/src/crates/core/src/agentic/tools/implementations/ask_user_question_tool.rs @@ -76,8 +76,8 @@ impl AskUserQuestionTool { } // Validate options - if question.options.len() < 2 || question.options.len() > 5 { - return Err(format!("Question {} must have 2-5 options", q_num)); + if question.options.len() < 2 || question.options.len() > 10 { + return Err(format!("Question {} must have 2-10 options", q_num)); } for (opt_idx, opt) in question.options.iter().enumerate() { @@ -215,8 +215,8 @@ Usage notes: "additionalProperties": false }, "minItems": 2, - "maxItems": 5, - "description": "The available choices for this question. Must have 2-5 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically." + "maxItems": 10, + "description": "The available choices for this question. Must have 2-10 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically." }, "multiSelect": { "type": "boolean", diff --git a/src/crates/core/src/service/conversation/persistence_manager.rs b/src/crates/core/src/service/conversation/persistence_manager.rs index 9a26d89c..f234b941 100644 --- a/src/crates/core/src/service/conversation/persistence_manager.rs +++ b/src/crates/core/src/service/conversation/persistence_manager.rs @@ -184,7 +184,7 @@ impl ConversationPersistenceManager { if let Some(turn) = self.load_dialog_turn(session_id, i).await? { turns.push(turn); } else { - warn!("Missing dialog turn: session={}, turn={}", session_id, i); + debug!("Missing dialog turn: session={}, turn={}", session_id, i); } } diff --git a/src/crates/core/src/service/remote_connect/bot/command_router.rs b/src/crates/core/src/service/remote_connect/bot/command_router.rs index e9b51591..ea2bfcdc 100644 --- a/src/crates/core/src/service/remote_connect/bot/command_router.rs +++ b/src/crates/core/src/service/remote_connect/bot/command_router.rs @@ -100,6 +100,7 @@ pub struct ForwardRequest { pub content: String, pub agent_type: String, pub turn_id: String, + pub image_contexts: Vec, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -245,7 +246,15 @@ fn cancel_task_actions(command: impl Into) -> Vec { // ── Main dispatch ─────────────────────────────────────────────────── -pub async fn handle_command(state: &mut BotChatState, cmd: BotCommand) -> HandleResult { +pub async fn handle_command( + state: &mut BotChatState, + cmd: BotCommand, + images: Vec, +) -> HandleResult { + let image_contexts: Vec = + super::super::remote_server::images_to_contexts( + if images.is_empty() { None } else { Some(&images) }, + ); match cmd { BotCommand::Start | BotCommand::Help => { if state.paired { @@ -324,7 +333,7 @@ pub async fn handle_command(state: &mut BotChatState, cmd: BotCommand) -> Handle if !state.paired { return not_paired(); } - handle_chat_message(state, &msg).await + handle_chat_message(state, &msg, image_contexts).await } } } @@ -658,9 +667,9 @@ async fn handle_new_session(state: &mut BotChatState, agent_type: &str) -> Handl let workspace = ws_path.as_deref().unwrap_or("(unknown)"); HandleResult { reply: format!( - "Created new {} session: {}\nSession ID: {}\nWorkspace: {}\n\n\ + "Created new {} session: {}\nWorkspace: {}\n\n\ You can now send messages to interact with the AI agent.", - label, session_name, session_id, workspace + label, session_name, workspace ), actions: vec![], forward_to_session: None, @@ -724,7 +733,7 @@ async fn handle_number_selection(state: &mut BotChatState, n: usize) -> HandleRe ) .await } - None => handle_chat_message(state, &n.to_string()).await, + None => handle_chat_message(state, &n.to_string(), vec![]).await, } } @@ -1216,11 +1225,15 @@ async fn handle_next_page(state: &mut BotChatState) -> HandleResult { forward_to_session: None, } } - None => handle_chat_message(state, "0").await, + None => handle_chat_message(state, "0", vec![]).await, } } -async fn handle_chat_message(state: &mut BotChatState, message: &str) -> HandleResult { +async fn handle_chat_message( + state: &mut BotChatState, + message: &str, + image_contexts: Vec, +) -> HandleResult { if let Some(PendingAction::AskUserQuestion { tool_id, questions, @@ -1293,6 +1306,7 @@ async fn handle_chat_message(state: &mut BotChatState, message: &str) -> HandleR content: message.to_string(), agent_type: "agentic".to_string(), turn_id, + image_contexts, }), } } @@ -1328,7 +1342,7 @@ pub async fn execute_forwarded_turn( &forward.session_id, forward.content, Some(&forward.agent_type), - None, + forward.image_contexts, DialogTriggerSource::Bot, Some(forward.turn_id), ) @@ -1402,7 +1416,11 @@ pub async fn execute_forwarded_turn( Ok(mut text) => { const MAX_BOT_MSG_LEN: usize = 4000; if text.len() > MAX_BOT_MSG_LEN { - text.truncate(MAX_BOT_MSG_LEN); + let mut end = MAX_BOT_MSG_LEN; + while !text.is_char_boundary(end) { + end -= 1; + } + text.truncate(end); text.push_str("\n\n... (truncated)"); } text diff --git a/src/crates/core/src/service/remote_connect/bot/feishu.rs b/src/crates/core/src/service/remote_connect/bot/feishu.rs index 3ad860fe..65a5f88a 100644 --- a/src/crates/core/src/service/remote_connect/bot/feishu.rs +++ b/src/crates/core/src/service/remote_connect/bot/feishu.rs @@ -228,6 +228,13 @@ struct PendingPairing { created_at: i64, } +struct ParsedMessage { + chat_id: String, + message_id: String, + text: String, + image_keys: Vec, +} + impl FeishuBot { pub fn new(config: FeishuConfig) -> Self { Self { @@ -307,6 +314,97 @@ impl FeishuBot { Ok(()) } + /// Download a user-sent image from a Feishu message using the message resources API. + /// The returned data-URL is compressed to at most 1 MB. + async fn download_image_as_data_url(&self, message_id: &str, file_key: &str) -> Result { + use base64::{engine::general_purpose::STANDARD as B64, Engine}; + + let token = match self.get_access_token().await { + Ok(t) => t, + Err(e) => { + return Err(e); + } + }; + let client = reqwest::Client::new(); + let url = format!( + "https://open.feishu.cn/open-apis/im/v1/messages/{}/resources/{}?type=image", + message_id, file_key + ); + let resp = client + .get(&url) + .bearer_auth(&token) + .send() + .await + .map_err(|e| { + anyhow!("feishu download image: {e}") + })?; + + let status = resp.status(); + if !status.is_success() { + let body = resp.text().await.unwrap_or_default(); + return Err(anyhow!("feishu image download failed: HTTP {status} — {body}")); + } + + let content_type = resp + .headers() + .get("content-type") + .and_then(|v| v.to_str().ok()) + .unwrap_or("image/png") + .to_string(); + let raw_bytes = resp.bytes().await?; + + const MAX_BYTES: usize = 1024 * 1024; + if raw_bytes.len() <= MAX_BYTES { + let b64 = B64.encode(&raw_bytes); + return Ok(format!("data:{};base64,{}", content_type, b64)); + } + + log::info!( + "Feishu image exceeds {}KB ({}KB), compressing", + MAX_BYTES / 1024, + raw_bytes.len() / 1024 + ); + match crate::agentic::image_analysis::optimize_image_with_size_limit( + raw_bytes.to_vec(), + "openai", + Some(&content_type), + Some(MAX_BYTES), + ) { + Ok(processed) => { + let b64 = B64.encode(&processed.data); + Ok(format!("data:{};base64,{}", processed.mime_type, b64)) + } + Err(e) => { + log::warn!("Feishu image compression failed, using original: {e}"); + let b64 = B64.encode(&raw_bytes); + Ok(format!("data:{};base64,{}", content_type, b64)) + } + } + } + + /// Download multiple images and convert to ImageAttachment list. + async fn download_images( + &self, + message_id: &str, + image_keys: &[String], + ) -> Vec { + let mut attachments = Vec::new(); + for (i, key) in image_keys.iter().enumerate() { + match self.download_image_as_data_url(message_id, key).await { + Ok(data_url) => { + attachments.push(super::super::remote_server::ImageAttachment { + name: format!("image_{}.png", i + 1), + data_url, + }); + } + Err(e) => { + warn!("Failed to download Feishu image {key}: {e}"); + } + } + } + attachments + } + pub async fn send_action_card( &self, chat_id: &str, @@ -498,8 +596,9 @@ impl FeishuBot { Ok((url, client_config)) } - /// Extract (chat_id, text) from a Feishu text message event. - fn parse_message_event(event: &serde_json::Value) -> Option<(String, String)> { + /// Parse a Feishu message event into text + image keys. + /// Supports `text`, `post` (rich text with images), and `image` message types. + fn parse_message_event_full(event: &serde_json::Value) -> Option { let event_type = event .pointer("/header/event_type") .and_then(|v| v.as_str())?; @@ -507,23 +606,105 @@ impl FeishuBot { return None; } - let msg_type = event - .pointer("/event/message/message_type") - .and_then(|v| v.as_str())?; - if msg_type != "text" { - return None; - } - let chat_id = event .pointer("/event/message/chat_id") .and_then(|v| v.as_str())? .to_string(); + let message_id = event + .pointer("/event/message/message_id") + .and_then(|v| v.as_str()) + .unwrap_or("") + .to_string(); + let msg_type = event + .pointer("/event/message/message_type") + .and_then(|v| v.as_str())?; let content_str = event .pointer("/event/message/content") .and_then(|v| v.as_str())?; let content: serde_json::Value = serde_json::from_str(content_str).ok()?; - let text = content["text"].as_str()?.trim().to_string(); - Some((chat_id, text)) + + match msg_type { + "text" => { + let text = content["text"].as_str()?.trim().to_string(); + if text.is_empty() { return None; } + Some(ParsedMessage { chat_id, message_id, text, image_keys: vec![] }) + } + "post" => { + let (text, image_keys) = Self::extract_from_post(&content); + if text.is_empty() && image_keys.is_empty() { return None; } + Some(ParsedMessage { chat_id, message_id, text, image_keys }) + } + "image" => { + let image_key = content["image_key"].as_str()?.to_string(); + Some(ParsedMessage { + chat_id, + message_id, + text: String::new(), + image_keys: vec![image_key], + }) + } + _ => None, + } + } + + /// Backward-compatible wrapper: returns (chat_id, text) only for text/post with text content. + fn parse_message_event(event: &serde_json::Value) -> Option<(String, String)> { + let parsed = Self::parse_message_event_full(event)?; + if parsed.text.is_empty() { return None; } + Some((parsed.chat_id, parsed.text)) + } + + /// Extract text and image keys from a Feishu `post` (rich-text) message. + fn extract_from_post(content: &serde_json::Value) -> (String, Vec) { + let root = if content["content"].is_array() { + content + } else { + content + .get("zh_cn") + .or_else(|| content.get("en_us")) + .or_else(|| content.as_object().and_then(|obj| obj.values().next())) + .unwrap_or(content) + }; + + let paragraphs = match root["content"].as_array() { + Some(p) => p, + None => return (String::new(), vec![]), + }; + + let mut text_parts: Vec = Vec::new(); + let mut image_keys: Vec = Vec::new(); + + for para in paragraphs { + if let Some(elements) = para.as_array() { + for elem in elements { + match elem["tag"].as_str().unwrap_or("") { + "text" | "a" => { + if let Some(t) = elem["text"].as_str() { + let trimmed = t.trim(); + if !trimmed.is_empty() { + text_parts.push(trimmed.to_string()); + } + } + } + "img" => { + if let Some(key) = elem["image_key"].as_str() { + if !key.is_empty() { + image_keys.push(key.to_string()); + } + } + } + _ => {} + } + } + } + } + + let title = root["title"].as_str().unwrap_or("").trim(); + if !title.is_empty() { + text_parts.insert(0, title.to_string()); + } + + (text_parts.join(" "), image_keys) } /// Extract (chat_id, command) from a Feishu card action callback. @@ -552,10 +733,23 @@ impl FeishuBot { Some((chat_id, command)) } + #[cfg(test)] fn parse_ws_event(event: &serde_json::Value) -> Option<(String, String)> { Self::parse_message_event(event).or_else(|| Self::parse_card_action_event(event)) } + /// Extract chat_id from any im.message.receive_v1 event (regardless of msg_type). + fn extract_message_chat_id(event: &serde_json::Value) -> Option { + let event_type = event.pointer("/header/event_type").and_then(|v| v.as_str())?; + if event_type != "im.message.receive_v1" { + return None; + } + event + .pointer("/event/message/chat_id") + .and_then(|v| v.as_str()) + .map(String::from) + } + /// Handle a single incoming protobuf data frame. /// Returns Some(chat_id) if pairing succeeded, None to continue waiting. async fn handle_data_frame_for_pairing( @@ -609,6 +803,11 @@ impl FeishuBot { self.send_message(&chat_id, "Please enter the 6-digit pairing code from BitFun Desktop.") .await.ok(); } + } else if let Some(chat_id) = Self::extract_message_chat_id(&event) { + self.send_message( + &chat_id, + "Only text messages are supported. Please send the 6-digit pairing code as text.", + ).await.ok(); } None } @@ -766,10 +965,33 @@ impl FeishuBot { let resp = pb::Frame::new_response(&frame, 200); let _ = write.write().await.send(WsMessage::Binary(pb::encode_frame(&resp))).await; - if let Some((chat_id, msg_text)) = Self::parse_ws_event(&event) { + if let Some(parsed) = Self::parse_message_event_full(&event) { + let bot = self.clone(); + tokio::spawn(async move { + let images = if parsed.image_keys.is_empty() { + vec![] + } else { + bot.download_images(&parsed.message_id, &parsed.image_keys).await + }; + let text = if parsed.text.is_empty() && !images.is_empty() { + "[User sent an image]".to_string() + } else { + parsed.text + }; + bot.handle_incoming_message(&parsed.chat_id, &text, images).await; + }); + } else if let Some((chat_id, cmd)) = Self::parse_card_action_event(&event) { let bot = self.clone(); tokio::spawn(async move { - bot.handle_incoming_message(&chat_id, &msg_text).await; + bot.handle_incoming_message(&chat_id, &cmd, vec![]).await; + }); + } else if let Some(chat_id) = Self::extract_message_chat_id(&event) { + let bot = self.clone(); + tokio::spawn(async move { + bot.send_message( + &chat_id, + "This message type is not supported. Please send text or images.", + ).await.ok(); }); } } @@ -810,7 +1032,12 @@ impl FeishuBot { } } - async fn handle_incoming_message(self: &Arc, chat_id: &str, text: &str) { + async fn handle_incoming_message( + self: &Arc, + chat_id: &str, + text: &str, + images: Vec, + ) { let mut states = self.chat_states.write().await; let state = states .entry(chat_id.to_string()) @@ -857,7 +1084,7 @@ impl FeishuBot { } let cmd = parse_command(text); - let result = handle_command(state, cmd).await; + let result = handle_command(state, cmd, images).await; self.persist_chat_state(chat_id, state).await; drop(states); diff --git a/src/crates/core/src/service/remote_connect/bot/telegram.rs b/src/crates/core/src/service/remote_connect/bot/telegram.rs index 5047acb7..fa7b7eff 100644 --- a/src/crates/core/src/service/remote_connect/bot/telegram.rs +++ b/src/crates/core/src/service/remote_connect/bot/telegram.rs @@ -292,7 +292,7 @@ impl TelegramBot { } let cmd = parse_command(text); - let result = handle_command(state, cmd).await; + let result = handle_command(state, cmd, vec![]).await; self.persist_chat_state(chat_id, state).await; drop(states); diff --git a/src/crates/core/src/service/remote_connect/mod.rs b/src/crates/core/src/service/remote_connect/mod.rs index 3cd6821a..6ad38a7b 100644 --- a/src/crates/core/src/service/remote_connect/mod.rs +++ b/src/crates/core/src/service/remote_connect/mod.rs @@ -27,7 +27,7 @@ pub use relay_client::RelayClient; pub use remote_server::RemoteServer; use anyhow::Result; -use log::{error, info}; +use log::{debug, error, info, warn}; use serde::{Deserialize, Serialize}; use std::sync::Arc; use tokio::sync::RwLock; @@ -362,7 +362,7 @@ impl RemoteConnectService { if let Some(ref server) = *server_guard { match server.decrypt_command(&encrypted_data, &nonce) { Ok((cmd, request_id)) => { - info!("Remote command: {cmd:?}"); + debug!("Remote command: {cmd:?}"); let response = server.dispatch(&cmd).await; match server .encrypt_response(&response, request_id.as_deref()) @@ -385,7 +385,7 @@ impl RemoteConnectService { } } } - Err(e) => error!("Failed to decrypt command: {e}"), + Err(e) => warn!("Failed to decrypt command (stale session?): {e}"), } } } else { diff --git a/src/crates/core/src/service/remote_connect/remote_server.rs b/src/crates/core/src/service/remote_connect/remote_server.rs index 0ebad07e..58648c05 100644 --- a/src/crates/core/src/service/remote_connect/remote_server.rs +++ b/src/crates/core/src/service/remote_connect/remote_server.rs @@ -54,6 +54,7 @@ pub enum RemoteCommand { content: String, agent_type: Option, images: Option>, + image_contexts: Option>, }, CancelTask { session_id: String, @@ -181,6 +182,12 @@ pub struct SessionInfo { pub workspace_name: Option, } +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct ChatImageAttachment { + pub name: String, + pub data_url: String, +} + #[derive(Debug, Clone, Serialize, Deserialize)] pub struct ChatMessage { pub id: String, @@ -195,6 +202,8 @@ pub struct ChatMessage { /// Ordered items preserving the interleaved display order from the desktop. #[serde(skip_serializing_if = "Option::is_none")] pub items: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub images: Option>, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -205,6 +214,8 @@ pub struct ChatMessageItem { pub content: Option, #[serde(skip_serializing_if = "Option::is_none")] pub tool: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub is_subagent: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -244,30 +255,94 @@ pub struct RemoteToolStatus { pub type EncryptedPayload = (String, String); +/// Build a slim version of tool params for mobile preview. +/// Strips large string values (file content, diffs, etc.) to keep payload small, +/// while preserving all short fields so the frontend can parse and display them. +fn make_slim_params(params: &serde_json::Value) -> Option { + match params { + serde_json::Value::Object(obj) => { + let slim: serde_json::Map = obj + .iter() + .filter_map(|(k, v)| match v { + serde_json::Value::String(s) if s.len() > 200 => None, + _ => Some((k.clone(), v.clone())), + }) + .collect(); + if slim.is_empty() { + return None; + } + serde_json::to_string(&serde_json::Value::Object(slim)).ok() + } + serde_json::Value::String(s) => Some(s.chars().take(200).collect()), + _ => None, + } +} + /// Convert ConversationPersistenceManager turns into mobile ChatMessages. /// This is the same data source the desktop frontend uses. fn turns_to_chat_messages( turns: &[crate::service::conversation::DialogTurnData], ) -> Vec { + use crate::service::conversation::TurnStatus; + let mut result = Vec::new(); for turn in turns { + let images = turn + .user_message + .metadata + .as_ref() + .and_then(|m| m.get("images")) + .and_then(|v| v.as_array()) + .map(|arr| { + arr.iter() + .filter_map(|v| { + Some(ChatImageAttachment { + name: v.get("name")?.as_str()?.to_string(), + data_url: v.get("data_url")?.as_str()?.to_string(), + }) + }) + .collect::>() + }) + .filter(|v| !v.is_empty()); + + // Prefer original_text from metadata (pre-enhancement) for display + let display_content = turn + .user_message + .metadata + .as_ref() + .and_then(|m| m.get("original_text")) + .and_then(|v| v.as_str()) + .map(|s| s.to_string()) + .unwrap_or_else(|| strip_user_input_tags(&turn.user_message.content)); + result.push(ChatMessage { id: turn.user_message.id.clone(), role: "user".to_string(), - content: strip_user_input_tags(&turn.user_message.content), + content: display_content, timestamp: (turn.user_message.timestamp / 1000).to_string(), metadata: None, tools: None, thinking: None, items: None, + images, }); + // Skip assistant message for in-progress turns. The active turn's + // content is delivered via the real-time overlay, not the historical + // list. Including an empty / partial assistant message here would + // "consume" a slot in the count-based skip cursor and prevent the + // final version from ever being delivered. + if turn.status == TurnStatus::InProgress { + continue; + } + // Collect ordered items across all rounds, preserving interleaved order struct OrderedEntry { order_index: Option, timestamp: u64, sequence: usize, + round_idx: usize, item: ChatMessageItem, } let mut ordered: Vec = Vec::new(); @@ -276,40 +351,48 @@ fn turns_to_chat_messages( let mut text_parts = Vec::new(); let mut sequence = 0usize; - for round in &turn.model_rounds { - for t in &round.text_items { + for (round_idx, round) in turn.model_rounds.iter().enumerate() { + // Iterate in streaming order: thinking → text → tools. + // The model first thinks, then outputs text (which may reference + // tool calls), and finally the tools are detected and executed. + // This matches the real-time display order on the tracker. + for t in &round.thinking_items { if t.is_subagent_item.unwrap_or(false) { continue; } if !t.content.is_empty() { - text_parts.push(t.content.clone()); + thinking_parts.push(t.content.clone()); ordered.push(OrderedEntry { order_index: t.order_index, timestamp: t.timestamp, sequence, + round_idx, item: ChatMessageItem { - item_type: "text".to_string(), + item_type: "thinking".to_string(), content: Some(t.content.clone()), tool: None, + is_subagent: None, }, }); sequence += 1; } } - for t in &round.thinking_items { + for t in &round.text_items { if t.is_subagent_item.unwrap_or(false) { continue; } if !t.content.is_empty() { - thinking_parts.push(t.content.clone()); + text_parts.push(t.content.clone()); ordered.push(OrderedEntry { order_index: t.order_index, timestamp: t.timestamp, sequence, + round_idx, item: ChatMessageItem { - item_type: "thinking".to_string(), + item_type: "text".to_string(), content: Some(t.content.clone()), tool: None, + is_subagent: None, }, }); sequence += 1; @@ -332,8 +415,11 @@ fn turns_to_chat_messages( status: status_str.to_string(), duration_ms: t.duration_ms, start_ms: Some(t.start_time), - input_preview: None, - tool_input: if t.tool_name == "AskUserQuestion" { + input_preview: make_slim_params(&t.tool_call.input), + tool_input: if t.tool_name == "AskUserQuestion" + || t.tool_name == "Task" + || t.tool_name == "TodoWrite" + { Some(t.tool_call.input.clone()) } else { None @@ -342,29 +428,34 @@ fn turns_to_chat_messages( tools_flat.push(tool_status.clone()); ordered.push(OrderedEntry { order_index: t.order_index, - timestamp: t.start_time, + timestamp: round.start_time, sequence, + round_idx, item: ChatMessageItem { item_type: "tool".to_string(), content: None, tool: Some(tool_status), + is_subagent: None, }, }); sequence += 1; } } - ordered.sort_by(|a, b| match (a.order_index, b.order_index) { - (Some(a_idx), Some(b_idx)) => a_idx - .cmp(&b_idx) - .then_with(|| a.timestamp.cmp(&b.timestamp)) - .then_with(|| a.sequence.cmp(&b.sequence)), - (Some(_), None) => std::cmp::Ordering::Less, - (None, Some(_)) => std::cmp::Ordering::Greater, - (None, None) => a - .timestamp - .cmp(&b.timestamp) - .then_with(|| a.sequence.cmp(&b.sequence)), + // Sort by round first (rounds are strictly sequential), then by + // order_index within each round. order_index is per-round (resets + // to 0 each round), so it must NOT be compared across rounds. + ordered.sort_by(|a, b| { + let round_cmp = a.round_idx.cmp(&b.round_idx); + if round_cmp != std::cmp::Ordering::Equal { + return round_cmp; + } + match (a.order_index, b.order_index) { + (Some(a_idx), Some(b_idx)) => a_idx.cmp(&b_idx), + (Some(_), None) => std::cmp::Ordering::Less, + (None, Some(_)) => std::cmp::Ordering::Greater, + (None, None) => a.sequence.cmp(&b.sequence), + } }); let items: Vec = ordered.into_iter().map(|e| e.item).collect(); @@ -387,6 +478,7 @@ fn turns_to_chat_messages( Some(thinking_parts.join("\n\n")) }, items: if items.is_empty() { None } else { Some(items) }, + images: None, }); } @@ -428,6 +520,12 @@ fn strip_user_input_tags(content: &str) -> String { if let Some(pos) = s.find("") { return s[..pos].trim().to_string(); } + // Extract original question from enhancer-wrapped content + if s.starts_with("User uploaded") { + if let Some(pos) = s.find("User's question:\n") { + return s[pos + "User's question:\n".len()..].trim().to_string(); + } + } s.to_string() } @@ -441,6 +539,40 @@ fn resolve_agent_type(mobile_type: Option<&str>) -> &'static str { } } +/// Convert legacy `ImageAttachment` to unified `ImageContextData`. +pub fn images_to_contexts( + images: Option<&Vec>, +) -> Vec { + let Some(imgs) = images.filter(|v| !v.is_empty()) else { + return Vec::new(); + }; + imgs.iter() + .map(|img| { + let mime_type = img + .data_url + .split_once(',') + .and_then(|(header, _)| { + header + .strip_prefix("data:") + .and_then(|rest| rest.split(';').next()) + }) + .unwrap_or("image/png") + .to_string(); + + crate::agentic::image_analysis::ImageContextData { + id: format!("remote_img_{}", uuid::Uuid::new_v4()), + image_path: None, + data_url: Some(img.data_url.clone()), + mime_type, + metadata: Some(serde_json::json!({ + "name": img.name, + "source": "remote" + })), + } + }) + .collect() +} + fn build_message_with_remote_images(content: &str, images: &[ImageAttachment]) -> String { use crate::agentic::tools::image_context::{ format_image_context_reference, store_image_context, ImageContextData, @@ -500,6 +632,10 @@ struct TrackerState { round_index: usize, /// Ordered items preserving the interleaved arrival order for real-time display. active_items: Vec, + /// Set on structural events (turn start/complete) that change persisted + /// messages. Cleared after the poll handler loads persistence. Allows + /// skipping the expensive disk read during streaming. + persistence_dirty: bool, } /// Lightweight event broadcast by the tracker for real-time consumers (e.g. bots). @@ -544,6 +680,7 @@ impl RemoteSessionStateTracker { active_tools: Vec::new(), round_index: 0, active_items: Vec::new(), + persistence_dirty: true, }), event_tx, } @@ -564,14 +701,17 @@ impl RemoteSessionStateTracker { pub fn snapshot_active_turn(&self) -> Option { let s = self.state.read().unwrap(); + let has_items = !s.active_items.is_empty(); s.turn_id.as_ref().map(|tid| ActiveTurnSnapshot { turn_id: tid.clone(), status: s.turn_status.clone(), - text: s.accumulated_text.clone(), - thinking: s.accumulated_thinking.clone(), + // When items exist they already contain the text/thinking content. + // Skip the duplicate top-level fields to halve the payload. + text: if has_items { String::new() } else { s.accumulated_text.clone() }, + thinking: if has_items { String::new() } else { s.accumulated_thinking.clone() }, tools: s.active_tools.clone(), round_index: s.round_index, - items: if s.active_items.is_empty() { None } else { Some(s.active_items.clone()) }, + items: if has_items { Some(s.active_items.clone()) } else { None }, }) } @@ -583,6 +723,67 @@ impl RemoteSessionStateTracker { self.state.read().unwrap().title.clone() } + pub fn turn_status(&self) -> String { + self.state.read().unwrap().turn_status.clone() + } + + /// Returns true if the turn has ended (completed/failed/cancelled) but + /// the tracker state hasn't been cleaned up yet (waiting for persistence). + pub fn is_turn_finished(&self) -> bool { + let s = self.state.read().unwrap(); + s.turn_id.is_some() + && matches!( + s.turn_status.as_str(), + "completed" | "failed" | "cancelled" + ) + } + + /// Clear tracker state after the persisted historical message is confirmed + /// available. Called by the poll handler to complete the atomic transition. + pub fn finalize_completed_turn(&self) { + let mut s = self.state.write().unwrap(); + if matches!(s.turn_status.as_str(), "completed" | "failed" | "cancelled") { + s.turn_id = None; + s.accumulated_text.clear(); + s.accumulated_thinking.clear(); + s.active_tools.clear(); + s.active_items.clear(); + } + } + + /// Whether the persisted message list may have changed since the last + /// poll. Structural events (turn start / complete) set this flag; + /// streaming events (text / thinking chunks) do not. + pub fn is_persistence_dirty(&self) -> bool { + self.state.read().unwrap().persistence_dirty + } + + pub fn mark_persistence_clean(&self) { + self.state.write().unwrap().persistence_dirty = false; + } + + /// Find the last item of `target_type` with matching `subagent_marker` that + /// can be extended, skipping over the complementary text/thinking type. + /// Tool items act as boundaries — we never merge across tool items. + /// This mirrors the desktop's EventBatcher behaviour where text and thinking + /// accumulate independently within a single ModelRound. + fn find_mergeable_item( + items: &[ChatMessageItem], + target_type: &str, + subagent_marker: &Option, + ) -> Option { + for i in (0..items.len()).rev() { + let item = &items[i]; + if item.item_type == "tool" { + return None; + } + if item.item_type == target_type && &item.is_subagent == subagent_marker { + return Some(i); + } + } + None + } + fn upsert_active_tool( state: &mut TrackerState, tool_id: &str, @@ -590,6 +791,7 @@ impl RemoteSessionStateTracker { status: &str, input_preview: Option, tool_input: Option, + is_subagent: bool, ) { let resolved_id = if tool_id.is_empty() { format!("{}-{}", tool_name, state.active_tools.len()) @@ -597,6 +799,7 @@ impl RemoteSessionStateTracker { tool_id.to_string() }; let allow_name_fallback = tool_id.is_empty() && !tool_name.is_empty(); + let subagent_marker = if is_subagent { Some(true) } else { None }; if let Some(tool) = state .active_tools @@ -631,6 +834,7 @@ impl RemoteSessionStateTracker { item_type: "tool".to_string(), content: None, tool: Some(tool_status), + is_subagent: subagent_marker, }); return; } @@ -678,24 +882,22 @@ impl RemoteSessionStateTracker { match event { AE::TextChunk { text, .. } => { + let subagent_marker = if is_subagent { Some(true) } else { None }; let mut s = self.state.write().unwrap(); - s.accumulated_text.push_str(text); - if let Some(last) = s.active_items.last_mut() { - if last.item_type == "text" { - let c = last.content.get_or_insert_with(String::new); - c.push_str(text); - } else { - s.active_items.push(ChatMessageItem { - item_type: "text".to_string(), - content: Some(text.clone()), - tool: None, - }); - } + if !is_subagent { + s.accumulated_text.push_str(text); + } + let extend_idx = Self::find_mergeable_item(&s.active_items, "text", &subagent_marker); + if let Some(idx) = extend_idx { + let item = &mut s.active_items[idx]; + let c = item.content.get_or_insert_with(String::new); + c.push_str(text); } else { s.active_items.push(ChatMessageItem { item_type: "text".to_string(), content: Some(text.clone()), tool: None, + is_subagent: subagent_marker, }); } drop(s); @@ -707,24 +909,22 @@ impl RemoteSessionStateTracker { .replace("", "") .replace("", "") .replace("", ""); + let subagent_marker = if is_subagent { Some(true) } else { None }; let mut s = self.state.write().unwrap(); - s.accumulated_thinking.push_str(&clean); - if let Some(last) = s.active_items.last_mut() { - if last.item_type == "thinking" { - let c = last.content.get_or_insert_with(String::new); - c.push_str(&clean); - } else { - s.active_items.push(ChatMessageItem { - item_type: "thinking".to_string(), - content: Some(clean), - tool: None, - }); - } + if !is_subagent { + s.accumulated_thinking.push_str(&clean); + } + let extend_idx = Self::find_mergeable_item(&s.active_items, "thinking", &subagent_marker); + if let Some(idx) = extend_idx { + let item = &mut s.active_items[idx]; + let c = item.content.get_or_insert_with(String::new); + c.push_str(&clean); } else { s.active_items.push(ChatMessageItem { item_type: "thinking".to_string(), content: Some(clean), tool: None, + is_subagent: subagent_marker, }); } drop(s); @@ -763,18 +963,14 @@ impl RemoteSessionStateTracker { "preparing", None, None, + is_subagent, ); } "ConfirmationNeeded" => { let params = val.get("params").cloned(); - let input_preview = params.as_ref().map(|v| { - let text = if v.is_string() { - v.as_str().unwrap_or_default().to_string() - } else { - serde_json::to_string(v).unwrap_or_default() - }; - text.chars().take(160).collect() - }); + let input_preview = params + .as_ref() + .and_then(|v| make_slim_params(v)); Self::upsert_active_tool( &mut s, &tool_id, @@ -782,19 +978,18 @@ impl RemoteSessionStateTracker { "pending_confirmation", input_preview, params, + is_subagent, ); } "Started" => { let params = val.get("params").cloned(); - let input_preview = params.as_ref().map(|v| { - let text = if v.is_string() { - v.as_str().unwrap_or_default().to_string() - } else { - serde_json::to_string(v).unwrap_or_default() - }; - text.chars().take(160).collect() - }); - let tool_input = if tool_name == "AskUserQuestion" { + let input_preview = params + .as_ref() + .and_then(|v| make_slim_params(v)); + let tool_input = if tool_name == "AskUserQuestion" + || tool_name == "Task" + || tool_name == "TodoWrite" + { params.clone() } else { None @@ -806,6 +1001,7 @@ impl RemoteSessionStateTracker { "running", input_preview, tool_input, + is_subagent, ); let _ = self.event_tx.send(TrackerEvent::ToolStarted { tool_id: tool_id.clone(), @@ -821,6 +1017,7 @@ impl RemoteSessionStateTracker { "confirmed", None, None, + is_subagent, ); } "Rejected" => { @@ -831,6 +1028,7 @@ impl RemoteSessionStateTracker { "rejected", None, None, + is_subagent, ); } "Completed" | "Succeeded" => { @@ -923,18 +1121,15 @@ impl RemoteSessionStateTracker { s.active_items.clear(); s.round_index = 0; s.session_state = "running".to_string(); + s.persistence_dirty = true; drop(s); self.bump_version(); } AE::DialogTurnCompleted { .. } if is_direct => { let mut s = self.state.write().unwrap(); s.turn_status = "completed".to_string(); - s.turn_id = None; - s.accumulated_text.clear(); - s.accumulated_thinking.clear(); - s.active_tools.clear(); - s.active_items.clear(); s.session_state = "idle".to_string(); + s.persistence_dirty = true; drop(s); self.bump_version(); let _ = self.event_tx.send(TrackerEvent::TurnCompleted); @@ -942,8 +1137,8 @@ impl RemoteSessionStateTracker { AE::DialogTurnFailed { error, .. } if is_direct => { let mut s = self.state.write().unwrap(); s.turn_status = "failed".to_string(); - s.turn_id = None; s.session_state = "idle".to_string(); + s.persistence_dirty = true; drop(s); self.bump_version(); let _ = self.event_tx.send(TrackerEvent::TurnFailed(error.clone())); @@ -951,8 +1146,8 @@ impl RemoteSessionStateTracker { AE::DialogTurnCancelled { .. } if is_direct => { let mut s = self.state.write().unwrap(); s.turn_status = "cancelled".to_string(); - s.turn_id = None; s.session_state = "idle".to_string(); + s.persistence_dirty = true; drop(s); self.bump_version(); let _ = self.event_tx.send(TrackerEvent::TurnCancelled); @@ -1052,12 +1247,14 @@ impl RemoteExecutionDispatcher { /// Dispatch a SendMessage command: ensure tracker, restore session, start dialog turn. /// Returns `(session_id, turn_id)` on success. /// If `turn_id` is `None`, one is auto-generated. + /// + /// All platforms (desktop, mobile, bot) use the same `ImageContextData` format. pub async fn send_message( &self, session_id: &str, content: String, agent_type: Option<&str>, - images: Option<&Vec>, + image_contexts: Vec, trigger_source: crate::agentic::coordination::DialogTriggerSource, turn_id: Option, ) -> std::result::Result<(String, String), String> { @@ -1078,22 +1275,33 @@ impl RemoteExecutionDispatcher { .map(|t| resolve_agent_type(Some(t)).to_string()) .unwrap_or_else(|| "agentic".to_string()); - let full_content = images - .map(|imgs| build_message_with_remote_images(&content, imgs)) - .unwrap_or_else(|| content.clone()); - let turn_id = turn_id.unwrap_or_else(|| format!("turn_{}", chrono::Utc::now().timestamp_millis())); - coordinator - .start_dialog_turn( - session_id.to_string(), - full_content, - Some(turn_id.clone()), - resolved_agent_type, - trigger_source, - ) - .await - .map_err(|e| e.to_string())?; + + if image_contexts.is_empty() { + coordinator + .start_dialog_turn( + session_id.to_string(), + content.clone(), + Some(turn_id.clone()), + resolved_agent_type, + trigger_source, + ) + .await + .map_err(|e| e.to_string())?; + } else { + coordinator + .start_dialog_turn_with_image_contexts( + session_id.to_string(), + content.clone(), + image_contexts, + Some(turn_id.clone()), + resolved_agent_type, + trigger_source, + ) + .await + .map_err(|e| e.to_string())?; + } Ok((session_id.to_string(), turn_id)) } @@ -1312,6 +1520,26 @@ impl RemoteServer { }; } + // Fast path: during active streaming, only the real-time snapshot + // changes — persisted messages stay the same. Skip the expensive + // disk read and return just the snapshot. + let needs_persistence = *since_version == 0 || tracker.is_persistence_dirty(); + + if !needs_persistence { + let active_turn = tracker.snapshot_active_turn(); + let sess_state = tracker.session_state(); + let title = tracker.title(); + return RemoteResponse::SessionPoll { + version: current_version, + changed: true, + session_state: Some(sess_state), + title: if title.is_empty() { None } else { Some(title) }, + new_messages: None, + total_msg_count: None, + active_turn, + }; + } + let (all_chat_msgs, _) = load_chat_messages_from_conversation_persistence(session_id).await; let total_msg_count = all_chat_msgs.len(); @@ -1319,35 +1547,48 @@ impl RemoteServer { let new_messages: Vec = all_chat_msgs.into_iter().skip(skip).collect(); - let active_turn = tracker.snapshot_active_turn(); + let turn_finished = tracker.is_turn_finished(); + let has_assistant_msg = new_messages.iter().any(|m| m.role == "assistant"); + + let active_turn = if turn_finished && has_assistant_msg { + tracker.finalize_completed_turn(); + None + } else if turn_finished { + let ts = tracker.turn_status(); + if ts == "completed" { + tracker.snapshot_active_turn() + } else { + tracker.finalize_completed_turn(); + tracker.mark_persistence_clean(); + None + } + } else { + tracker.snapshot_active_turn() + }; + + let (send_msgs, send_total) = if turn_finished && !has_assistant_msg { + // Turn is finished but disk doesn't have the completed assistant + // message yet — the frontend's immediateSaveDialogTurn hasn't + // landed. Don't send partial data; the snapshot overlay keeps the + // user informed. Next poll will re-read from disk. + (None, None) + } else { + if !new_messages.is_empty() { + tracker.mark_persistence_clean(); + } + (Some(new_messages), Some(total_msg_count)) + }; + let sess_state = tracker.session_state(); let title = tracker.title(); - let active_turn_ask_tool_ids = active_turn - .as_ref() - .map(|turn| { - turn.tools - .iter() - .filter(|tool| tool.name == "AskUserQuestion") - .map(|tool| tool.id.clone()) - .collect::>() - }) - .unwrap_or_default(); - let new_message_ask_tool_ids = new_messages - .iter() - .flat_map(|message| message.items.iter().flatten()) - .filter_map(|item| item.tool.as_ref()) - .filter(|tool| tool.name == "AskUserQuestion") - .map(|tool| tool.id.clone()) - .collect::>(); - RemoteResponse::SessionPoll { version: current_version, changed: true, session_state: Some(sess_state), title: if title.is_empty() { None } else { Some(title) }, - new_messages: Some(new_messages), - total_msg_count: Some(total_msg_count), + new_messages: send_msgs, + total_msg_count: send_total, active_turn, } } @@ -1662,18 +1903,23 @@ impl RemoteServer { content, agent_type: requested_agent_type, images, + image_contexts, } => { + // Unified: prefer image_contexts (new format), fall back to legacy images + let resolved_contexts = image_contexts.clone().unwrap_or_else(|| { + images_to_contexts(images.as_ref()) + }); info!( - "Remote send_message: session={session_id}, agent_type={}, images={}", + "Remote send_message: session={session_id}, agent_type={}, image_contexts={}", requested_agent_type.as_deref().unwrap_or("agentic"), - images.as_ref().map_or(0, |v| v.len()) + resolved_contexts.len() ); match dispatcher .send_message( session_id, content.clone(), requested_agent_type.as_deref(), - images.as_ref(), + resolved_contexts, DialogTriggerSource::RemoteRelay, None, ) diff --git a/src/crates/events/src/agentic.rs b/src/crates/events/src/agentic.rs index fda73528..0bbf88c3 100644 --- a/src/crates/events/src/agentic.rs +++ b/src/crates/events/src/agentic.rs @@ -46,11 +46,29 @@ pub enum AgenticEvent { title: String, method: String, }, + ImageAnalysisStarted { + session_id: String, + image_count: usize, + user_input: String, + /// Image metadata JSON for UI rendering (same as DialogTurnStarted) + image_metadata: Option, + }, + + ImageAnalysisCompleted { + session_id: String, + success: bool, + duration_ms: u64, + }, + DialogTurnStarted { session_id: String, turn_id: String, turn_index: usize, user_input: String, + /// Original user input before vision enhancement (for display on all clients) + original_user_input: Option, + /// Image metadata JSON for UI rendering (id, name, data_url, mime_type, image_path) + user_message_metadata: Option, subagent_parent_info: Option, }, @@ -287,6 +305,8 @@ impl AgenticEvent { | Self::SessionStateChanged { session_id, .. } | Self::SessionDeleted { session_id } | Self::SessionTitleGenerated { session_id, .. } + | Self::ImageAnalysisStarted { session_id, .. } + | Self::ImageAnalysisCompleted { session_id, .. } | Self::DialogTurnStarted { session_id, .. } | Self::DialogTurnCompleted { session_id, .. } | Self::TokenUsageUpdated { session_id, .. } @@ -316,7 +336,9 @@ impl AgenticEvent { | Self::DialogTurnCompleted { .. } | Self::ContextCompressionFailed { .. } => AgenticEventPriority::High, - Self::TextChunk { .. } + Self::ImageAnalysisStarted { .. } + | Self::ImageAnalysisCompleted { .. } + | Self::TextChunk { .. } | Self::ThinkingChunk { .. } | Self::ToolEvent { .. } | Self::ModelRoundStarted { .. } diff --git a/src/crates/transport/src/adapters/tauri.rs b/src/crates/transport/src/adapters/tauri.rs index d297032f..d742f68e 100644 --- a/src/crates/transport/src/adapters/tauri.rs +++ b/src/crates/transport/src/adapters/tauri.rs @@ -54,12 +54,29 @@ impl TransportAdapter for TauriTransportAdapter { "sessionId": session_id, }))?; } - AgenticEvent::DialogTurnStarted { session_id, turn_id, turn_index, user_input, subagent_parent_info } => { + AgenticEvent::ImageAnalysisStarted { session_id, image_count, user_input, image_metadata } => { + self.app_handle.emit("agentic://image-analysis-started", json!({ + "sessionId": session_id, + "imageCount": image_count, + "userInput": user_input, + "imageMetadata": image_metadata, + }))?; + } + AgenticEvent::ImageAnalysisCompleted { session_id, success, duration_ms } => { + self.app_handle.emit("agentic://image-analysis-completed", json!({ + "sessionId": session_id, + "success": success, + "durationMs": duration_ms, + }))?; + } + AgenticEvent::DialogTurnStarted { session_id, turn_id, turn_index, user_input, original_user_input, user_message_metadata, subagent_parent_info } => { self.app_handle.emit("agentic://dialog-turn-started", json!({ "sessionId": session_id, "turnId": turn_id, "turnIndex": turn_index, "userInput": user_input, + "originalUserInput": original_user_input, + "userMessageMetadata": user_message_metadata, "subagentParentInfo": subagent_parent_info, }))?; } diff --git a/src/crates/transport/src/adapters/websocket.rs b/src/crates/transport/src/adapters/websocket.rs index a3723dc5..892afb0c 100644 --- a/src/crates/transport/src/adapters/websocket.rs +++ b/src/crates/transport/src/adapters/websocket.rs @@ -51,12 +51,31 @@ impl fmt::Debug for WebSocketTransportAdapter { impl TransportAdapter for WebSocketTransportAdapter { async fn emit_event(&self, _session_id: &str, event: AgenticEvent) -> anyhow::Result<()> { let message = match event { - AgenticEvent::DialogTurnStarted { session_id, turn_id, turn_index, .. } => { + AgenticEvent::ImageAnalysisStarted { session_id, image_count, user_input, image_metadata } => { + json!({ + "type": "image-analysis-started", + "sessionId": session_id, + "imageCount": image_count, + "userInput": user_input, + "imageMetadata": image_metadata, + }) + } + AgenticEvent::ImageAnalysisCompleted { session_id, success, duration_ms } => { + json!({ + "type": "image-analysis-completed", + "sessionId": session_id, + "success": success, + "durationMs": duration_ms, + }) + } + AgenticEvent::DialogTurnStarted { session_id, turn_id, turn_index, original_user_input, user_message_metadata, .. } => { json!({ "type": "dialog-turn-started", "sessionId": session_id, "turnId": turn_id, "turnIndex": turn_index, + "originalUserInput": original_user_input, + "userMessageMetadata": user_message_metadata, }) } AgenticEvent::ModelRoundStarted { session_id, turn_id, round_id, .. } => { diff --git a/src/mobile-web/index.html b/src/mobile-web/index.html index ca443af8..8d41a631 100644 --- a/src/mobile-web/index.html +++ b/src/mobile-web/index.html @@ -3,11 +3,15 @@ - + + BitFun Remote diff --git a/src/mobile-web/src/App.tsx b/src/mobile-web/src/App.tsx index b4b893c1..5a596cd0 100644 --- a/src/mobile-web/src/App.tsx +++ b/src/mobile-web/src/App.tsx @@ -1,4 +1,4 @@ -import React, { useState, useCallback, useRef } from 'react'; +import React, { useState, useCallback, useRef, useEffect } from 'react'; import PairingPage from './pages/PairingPage'; import WorkspacePage from './pages/WorkspacePage'; import SessionListPage from './pages/SessionListPage'; @@ -9,14 +9,53 @@ import { ThemeProvider } from './theme'; import './styles/index.scss'; type Page = 'pairing' | 'workspace' | 'sessions' | 'chat'; +type NavDirection = 'push' | 'pop' | null; + +const NAV_PUSH_DURATION = 350; +const NAV_POP_DURATION = 250; + +function getNavClass( + targetPage: Page, + currentPage: Page, + navDir: NavDirection, + isAnimating: boolean, +): string { + if (!isAnimating) return ''; + const isEntering = currentPage === targetPage; + if (isEntering) { + return navDir === 'push' ? 'nav-push-enter' : 'nav-pop-enter'; + } + return navDir === 'push' ? 'nav-push-exit' : 'nav-pop-exit'; +} const AppContent: React.FC = () => { const [page, setPage] = useState('pairing'); const [activeSessionId, setActiveSessionId] = useState(null); const [activeSessionName, setActiveSessionName] = useState('Session'); + const [chatAutoFocus, setChatAutoFocus] = useState(false); const clientRef = useRef(null); const sessionMgrRef = useRef(null); + const [navDir, setNavDir] = useState(null); + const [prevPage, setPrevPage] = useState(null); + const timerRef = useRef>(); + + const navigateTo = useCallback((target: Page, direction: NavDirection) => { + setPage(prev => { + setPrevPage(prev); + return target; + }); + setNavDir(direction); + clearTimeout(timerRef.current); + const duration = direction === 'pop' ? NAV_POP_DURATION : NAV_PUSH_DURATION; + timerRef.current = setTimeout(() => { + setPrevPage(null); + setNavDir(null); + }, duration); + }, []); + + useEffect(() => () => clearTimeout(timerRef.current), []); + const handlePaired = useCallback( (client: RelayHttpClient, sessionMgr: RemoteSessionManager) => { clientRef.current = client; @@ -27,47 +66,60 @@ const AppContent: React.FC = () => { ); const handleOpenWorkspace = useCallback(() => { - setPage('workspace'); - }, []); + navigateTo('workspace', 'push'); + }, [navigateTo]); const handleWorkspaceReady = useCallback(() => { - setPage('sessions'); - }, []); + navigateTo('sessions', 'pop'); + }, [navigateTo]); - const handleSelectSession = useCallback((sessionId: string, sessionName?: string) => { + const handleSelectSession = useCallback((sessionId: string, sessionName?: string, isNew?: boolean) => { setActiveSessionId(sessionId); setActiveSessionName(sessionName || 'Session'); - setPage('chat'); - }, []); + setChatAutoFocus(!!isNew); + navigateTo('chat', 'push'); + }, [navigateTo]); const handleBackToSessions = useCallback(() => { - setActiveSessionId(null); - setPage('sessions'); - }, []); + navigateTo('sessions', 'pop'); + setTimeout(() => setActiveSessionId(null), NAV_POP_DURATION); + }, [navigateTo]); + + const isAnimating = navDir !== null; + const currentPage: Page = page; + + const shouldShow = (p: Page) => currentPage === p || (isAnimating && prevPage === p); return (
{page === 'pairing' && } - {page === 'workspace' && sessionMgrRef.current && ( - + {shouldShow('workspace') && sessionMgrRef.current && ( +
+ +
)} - {page === 'sessions' && sessionMgrRef.current && ( - + {shouldShow('sessions') && sessionMgrRef.current && ( +
+ +
)} - {page === 'chat' && sessionMgrRef.current && activeSessionId && ( - + {shouldShow('chat') && sessionMgrRef.current && activeSessionId && ( +
+ +
)}
); diff --git a/src/mobile-web/src/assets/Logo-ICON.png b/src/mobile-web/src/assets/Logo-ICON.png new file mode 100644 index 0000000000000000000000000000000000000000..e250ea9776aa334823ead88ba76ceb1e10bf158c GIT binary patch literal 391518 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ⅅ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

uJoqd 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�wKtCDrGF_ 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

xS{k|L7avTzouoG%q!}Y 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 void; + autoFocus?: boolean; } // ─── Markdown ─────────────────────────────────────────────────────────────── -const MarkdownContent: React.FC<{ content: string }> = ({ content }) => ( - - {codeStr} - - ) : ( - +function formatDuration(ms: number): string { + if (ms < 1000) return `${Math.round(ms)}ms`; + return `${(ms / 1000).toFixed(1)}s`; +} + +function copyToClipboard(text: string): Promise { + if (navigator.clipboard?.writeText) { + return navigator.clipboard.writeText(text); + } + // Fallback for insecure contexts (HTTP) + const ta = document.createElement('textarea'); + ta.value = text; + ta.style.cssText = 'position:fixed;left:-9999px;top:-9999px;opacity:0'; + document.body.appendChild(ta); + ta.select(); + try { + document.execCommand('copy'); + } finally { + document.body.removeChild(ta); + } + return Promise.resolve(); +} + +const CopyButton: React.FC<{ code: string }> = ({ code }) => { + const [copied, setCopied] = useState(false); + + const handleCopy = async () => { + try { + await copyToClipboard(code); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { /* ignore */ } + }; + + return ( + + ); +}; + +const MarkdownContent: React.FC<{ content: string }> = ({ content }) => { + const { isDark } = useTheme(); + const syntaxTheme = isDark ? vscDarkPlus : vs; + + const components: React.ComponentProps['components'] = useMemo(() => ({ + code({ className, children, ...props }: any) { + const match = /language-(\w+)/.exec(className || ''); + const codeStr = String(children).replace(/\n$/, ''); + const hasMultipleLines = codeStr.includes('\n'); + const isCodeBlock = className?.startsWith('language-') || hasMultipleLines; + + if (!isCodeBlock) { + return ( + {children} ); - }, - }} - > - {content} - -); + } + + return ( +

+ ); + }, + + table({ children }: any) { + return ( +
+ {children}
+
+ ); + }, + + blockquote({ children }: any) { + return
{children}
; + }, + }), [syntaxTheme, isDark]); + + return ( + + {content} + + ); +}; // ─── Thinking (ModelThinkingDisplay-style) ─────────────────────────────────── @@ -68,7 +171,7 @@ const ThinkingBlock: React.FC<{ thinking: string; streaming?: boolean }> = ({ th const charCount = thinking.length; const label = streaming && charCount === 0 ? 'Thinking...' - : `Thought for ${charCount} characters`; + : `Thought ${charCount} characters`; return (
@@ -112,12 +215,312 @@ const TOOL_TYPE_MAP: Record = { grep: 'Grep', create_file: 'Write', delete_file: 'Delete', - execute_subagent: 'Task', + Task: 'Task', search: 'Search', edit_file: 'Edit', web_search: 'Web', + TodoWrite: 'Todo', +}; + +// ─── TodoWrite card ───────────────────────────────────────────────────────── + +const TodoCard: React.FC<{ tool: RemoteToolStatus }> = ({ tool }) => { + const [expanded, setExpanded] = useState(false); + + const todos: { id?: string; content: string; status: string }[] = useMemo(() => { + const src = tool.tool_input; + if (!src) return []; + const arr = src.todos || src.result?.todos; + return Array.isArray(arr) ? arr : []; + }, [tool.tool_input]); + + if (todos.length === 0) return null; + + const completed = todos.filter(t => t.status === 'completed').length; + const allDone = completed === todos.length; + const inProgress = todos.find(t => t.status === 'in_progress'); + + const statusIcon = (s: string) => { + switch (s) { + case 'completed': + return ; + case 'in_progress': + return ; + case 'cancelled': + return ; + default: + return ; + } + }; + + return ( +
+
setExpanded(!expanded)}> + + + + + + {allDone && !expanded ? ( + All tasks completed + ) : inProgress && !expanded ? ( + {inProgress.content} + ) : null} + + + {todos.map((t, i) => ( + + ))} + + {completed}/{todos.length} + + + + +
+ {expanded && ( +
+ {todos.map((t, i) => ( +
+ {statusIcon(t.status)} + {t.content} +
+ ))} +
+ )} +
+ ); +}; + +/** + * Extract task description and agent type from execute_subagent tool data. + * Prefers tool_input (full JSON from backend), falls back to input_preview (truncated). + */ +function parseTaskInfo(tool: RemoteToolStatus): { description?: string; agentType?: string } | null { + const source = tool.tool_input ?? (() => { + try { return JSON.parse(tool.input_preview || ''); } catch { return null; } + })(); + if (!source) return null; + return { + description: source.description, + agentType: source.subagent_type, + }; +} + +/** + * Summarize a subItem for display inside a Task card. + */ +function subItemLabel(item: ChatMessageItem): string { + if (item.type === 'thinking') { + const len = (item.content || '').length; + return `Thought ${len} characters`; + } + if (item.type === 'tool' && item.tool) { + const t = item.tool; + const preview = t.input_preview ? `: ${t.input_preview}` : ''; + return `${t.name}${preview}`; + } + if (item.type === 'text') { + const len = (item.content || '').length; + return `Text ${len} characters`; + } + return ''; +} + +const TaskToolCard: React.FC<{ + tool: RemoteToolStatus; + now: number; + subItems?: ChatMessageItem[]; + onCancelTool?: (toolId: string) => void; +}> = ({ tool, now, subItems = [], onCancelTool }) => { + const scrollRef = useRef(null); + const prevCountRef = useRef(0); + const [stepsExpanded, setStepsExpanded] = useState(false); + const isRunning = tool.status === 'running'; + const isCompleted = tool.status === 'completed'; + const isError = tool.status === 'failed' || tool.status === 'error'; + const showCancel = isRunning && !!onCancelTool; + const taskInfo = parseTaskInfo(tool); + + const durationLabel = isCompleted && tool.duration_ms != null + ? formatDuration(tool.duration_ms) + : isRunning && tool.start_ms + ? formatDuration(now - tool.start_ms) + : ''; + + const statusClass = isRunning ? 'running' : isCompleted ? 'done' : isError ? 'error' : 'pending'; + + const subTools = subItems.filter(i => i.type === 'tool' && i.tool); + const subToolsDone = subTools.filter(i => i.tool!.status === 'completed').length; + const subToolsRunning = subTools.filter(i => i.tool!.status === 'running').length; + + useEffect(() => { + if (stepsExpanded && subItems.length > prevCountRef.current && scrollRef.current) { + scrollRef.current.scrollTop = scrollRef.current.scrollHeight; + } + prevCountRef.current = subItems.length; + }, [subItems.length, stepsExpanded]); + + return ( +
+
+ + {isRunning ? ( + + ) : isCompleted ? ( + + + + ) : isError ? ( + + + + ) : ( + + )} + + + {taskInfo?.description || 'Task'} + + {taskInfo?.agentType && ( + {taskInfo.agentType} + )} + {durationLabel && ( + {durationLabel} + )} + {showCancel && ( + + )} +
+ + {subItems.length > 0 && ( + <> +
setStepsExpanded(e => !e)}> + + {subTools.length} tool call{subTools.length === 1 ? '' : 's'} + + + {subToolsDone} done + {subToolsRunning > 0 && {subToolsRunning} running} + + + + +
+ {stepsExpanded && ( +
+ {subItems.map((item, idx) => { + if (item.type === 'thinking') { + return ( +
+ + {subItemLabel(item)} +
+ ); + } + if (item.type === 'tool' && item.tool) { + const t = item.tool; + const isDone = t.status === 'completed'; + const isErr = t.status === 'failed' || t.status === 'error'; + return ( +
+ {isDone ? ( + + ) : isErr ? ( + + ) : ( + + )} + {t.name} + {(() => { + const p = getToolPreview(t); + return p ? {p} : null; + })()} + {isDone && t.duration_ms != null && ( + {formatDuration(t.duration_ms)} + )} +
+ ); + } + return null; + })} +
+ )} + + )} +
+ ); }; +/** + * Parse tool input_preview (slim JSON from backend) and extract a concise display text. + * Backend sends valid JSON with large fields stripped; frontend extracts the key field + * and truncates the resulting plain text. + */ +function getToolPreview(tool: RemoteToolStatus): string | null { + if (!tool.input_preview) return null; + try { + const params = JSON.parse(tool.input_preview); + if (!params || typeof params !== 'object') return null; + + const lastSegment = (p: string) => { + const parts = p.replace(/\\/g, '/').split('/'); + return parts[parts.length - 1] || p; + }; + + let result: string | null = null; + + const pathVal = params.file_path || params.path; + switch (tool.name) { + case 'Read': + case 'Write': + case 'Edit': + case 'LS': + case 'StrReplace': + case 'delete_file': + result = pathVal ? lastSegment(pathVal) : null; + break; + case 'Glob': + case 'Grep': + result = params.pattern || null; + break; + case 'Bash': + case 'Shell': + result = params.description || params.command || null; + break; + case 'web_search': + case 'WebSearch': + result = params.search_term || params.query || null; + break; + case 'WebFetch': + result = params.url || null; + break; + case 'SemanticSearch': + result = params.query || null; + break; + default: { + const first = Object.values(params).find( + (v): v is string => typeof v === 'string' && v.length > 0 && v.length < 80, + ); + result = first || null; + } + } + + if (!result) return null; + return result.length > 60 ? result.slice(0, 60) + '…' : result; + } catch { + return null; + } +} + const ToolCard: React.FC<{ tool: RemoteToolStatus; now: number; @@ -127,15 +530,17 @@ const ToolCard: React.FC<{ const typeLabel = TOOL_TYPE_MAP[toolKey] || TOOL_TYPE_MAP[tool.name] || 'Tool'; const isRunning = tool.status === 'running'; const isCompleted = tool.status === 'completed'; + const isError = tool.status === 'failed' || tool.status === 'error'; const showCancel = isRunning && !!onCancelTool; + const preview = getToolPreview(tool); const durationLabel = isCompleted && tool.duration_ms != null - ? `${(tool.duration_ms / 1000).toFixed(1)}s` + ? formatDuration(tool.duration_ms) : isRunning && tool.start_ms - ? `${((now - tool.start_ms) / 1000).toFixed(1)}s` + ? formatDuration(now - tool.start_ms) : ''; - const statusClass = isRunning ? 'running' : isCompleted ? 'done' : 'error'; + const statusClass = isRunning ? 'running' : isCompleted ? 'done' : isError ? 'error' : 'pending'; return (
@@ -147,21 +552,72 @@ const ToolCard: React.FC<{ - ) : ( + ) : isError ? ( + ) : ( + )} - {tool.name} + + {tool.name} + {preview && {preview}} + {typeLabel} {durationLabel && ( {durationLabel} )} + {showCancel && ( + + )}
- {showCancel && ( -
- +
+ ); +}; + +const READ_LIKE_TOOLS = new Set(['Read', 'Grep', 'Glob', 'SemanticSearch']); + +const ReadFilesToggle: React.FC<{ tools: RemoteToolStatus[] }> = ({ tools }) => { + const [open, setOpen] = useState(false); + if (tools.length === 0) return null; + + const doneCount = tools.filter(t => t.status === 'completed').length; + const allDone = doneCount === tools.length; + const label = allDone + ? `Read ${tools.length} file${tools.length === 1 ? '' : 's'}` + : `Reading ${tools.length} file${tools.length === 1 ? '' : 's'} (${doneCount} done)`; + + return ( +
+ + {open && ( +
+
+ {tools.map(t => { + const preview = t.input_preview || ''; + return ( +
+ {t.status === 'completed' ? '✓' : '⋯'} {t.name} {preview} +
+ ); + })} +
)}
@@ -177,13 +633,14 @@ const ToolList: React.FC<{ }> = ({ tools, now, onCancelTool }) => { const scrollRef = useRef(null); const prevCountRef = useRef(0); + const [expanded, setExpanded] = useState(false); useEffect(() => { - if (tools.length > prevCountRef.current && scrollRef.current) { + if (expanded && tools.length > prevCountRef.current && scrollRef.current) { scrollRef.current.scrollTop = scrollRef.current.scrollHeight; } prevCountRef.current = tools.length; - }, [tools.length]); + }, [tools.length, expanded]); if (!tools || tools.length === 0) return null; @@ -202,18 +659,23 @@ const ToolList: React.FC<{ return (
-
- {tools.length} tool calls +
setExpanded(e => !e)}> + {tools.length} tool call{tools.length === 1 ? '' : 's'} {doneCount > 0 && {doneCount} done} {runningCount > 0 && {runningCount} running} + + +
-
- {tools.map((tc) => ( - - ))} -
+ {expanded && ( +
+ {tools.map((tc) => ( + + ))} +
+ )}
); }; @@ -226,6 +688,75 @@ const TypingDots: React.FC = () => ( ); +// ─── Typewriter effect (pseudo-streaming) ────────────────────────────────── + +function useTypewriter(targetText: string, animate: boolean): string { + const [displayText, setDisplayText] = useState(animate ? '' : targetText); + const revealedRef = useRef(animate ? 0 : targetText.length); + const targetRef = useRef(targetText); + const timerRef = useRef | null>(null); + const speedRef = useRef(3); + + useEffect(() => { + if (!animate) { + if (timerRef.current) { + clearInterval(timerRef.current); + timerRef.current = null; + } + revealedRef.current = targetText.length; + targetRef.current = targetText; + setDisplayText(targetText); + return; + } + + targetRef.current = targetText; + + if (targetText.length < revealedRef.current) { + revealedRef.current = 0; + } + + const delta = targetText.length - revealedRef.current; + if (delta > 0) { + const FRAME_INTERVAL = 30; + const REVEAL_DURATION = 800; + const totalFrames = REVEAL_DURATION / FRAME_INTERVAL; + speedRef.current = Math.max(Math.ceil(delta / totalFrames), 2); + + if (!timerRef.current) { + timerRef.current = setInterval(() => { + const target = targetRef.current; + const cur = revealedRef.current; + if (cur >= target.length) { + if (timerRef.current) { + clearInterval(timerRef.current); + timerRef.current = null; + } + return; + } + const next = Math.min(cur + speedRef.current, target.length); + revealedRef.current = next; + setDisplayText(target.slice(0, next)); + }, FRAME_INTERVAL); + } + } + }, [targetText, animate]); + + useEffect(() => { + return () => { + if (timerRef.current) { + clearInterval(timerRef.current); + } + }; + }, []); + + return displayText; +} + +const TypewriterText: React.FC<{ content: string }> = ({ content }) => { + const displayText = useTypewriter(content, true); + return ; +}; + // ─── AskUserQuestion Card ───────────────────────────────────────────────── interface AskQuestionCardProps { @@ -392,6 +923,43 @@ const AskQuestionCard: React.FC = ({ tool, onAnswer }) => ); }; +/** + * Collect subagent internal items into the Task item's subItems field. + * When a Task tool appears, all subsequent items until the next non-subagent + * item (or a completed Task) are its internal output. We attach them as + * subItems on the Task ChatMessageItem for nested rendering. + */ +function filterSubagentItems(items: ChatMessageItem[]): ChatMessageItem[] { + const result: ChatMessageItem[] = []; + let currentTaskItem: ChatMessageItem | null = null; + + for (const item of items) { + if (item.type === 'tool' && item.tool?.name === 'Task') { + const taskCopy: ChatMessageItem = { ...item, subItems: [] }; + result.push(taskCopy); + currentTaskItem = taskCopy; + continue; + } + + if (item.is_subagent && currentTaskItem) { + currentTaskItem.subItems!.push(item); + continue; + } + + if (item.is_subagent) { + continue; + } + + // Don't reset currentTaskItem — when the agent calls tools in + // parallel (e.g. Explore + 3 Reads), direct tools interleave with + // the subagent's internal tools. Keeping currentTaskItem alive + // ensures later is_subagent items still get grouped correctly. + result.push(item); + } + + return result; +} + function groupChatItems(items: ChatMessageItem[]) { const groups: { type: string; entries: ChatMessageItem[] }[] = []; for (const item of items) { @@ -425,6 +993,7 @@ function renderStandardGroups( keyPrefix: string, now: number, onCancelTool?: (toolId: string) => void, + animate?: boolean, ) { return groups.map((g, gi) => { if (g.type === 'thinking') { @@ -432,14 +1001,56 @@ function renderStandardGroups( return ; } if (g.type === 'tool') { - const tools = g.entries.map(e => e.tool!).filter(Boolean); - return ; + const rendered: React.ReactNode[] = []; + let regularBuf: RemoteToolStatus[] = []; + let readBuf: RemoteToolStatus[] = []; + + const flushRead = () => { + if (readBuf.length > 0) { + rendered.push( + , + ); + readBuf = []; + } + }; + + const flushRegular = () => { + if (regularBuf.length > 0) { + rendered.push( + , + ); + regularBuf = []; + } + }; + + const flushAll = () => { flushRead(); flushRegular(); }; + + for (const entry of g.entries) { + if (entry.tool?.name === 'Task') { + flushAll(); + rendered.push( + , + ); + } else if (entry.tool?.name === 'TodoWrite') { + flushAll(); + rendered.push(); + } else if (entry.tool && READ_LIKE_TOOLS.has(entry.tool.name)) { + flushRegular(); + readBuf.push(entry.tool); + } else if (entry.tool) { + flushRead(); + regularBuf.push(entry.tool); + } + } + flushAll(); + + return {rendered}; } if (g.type === 'text') { const text = g.entries.map(e => e.content || '').join(''); return text ? (
- + {animate ? : }
) : null; } @@ -450,11 +1061,12 @@ function renderStandardGroups( // ─── Ordered Items renderer ───────────────────────────────────────────────── function renderOrderedItems( - items: ChatMessageItem[], + rawItems: ChatMessageItem[], now: number, onCancelTool?: (toolId: string) => void, onAnswer?: (toolId: string, answers: any) => Promise, ) { + const items = filterSubagentItems(rawItems); const askEntries = items.filter(item => isPendingAskUserQuestion(item.tool)); if (askEntries.length === 0) { return renderStandardGroups(groupChatItems(items), 'ordered', now, onCancelTool); @@ -485,19 +1097,20 @@ function renderOrderedItems( // ─── Active turn items renderer (with AskUserQuestion support) ───────────── function renderActiveTurnItems( - items: ChatMessageItem[], + rawItems: ChatMessageItem[], now: number, sessionMgr: RemoteSessionManager, setError: (e: string) => void, onAnswer: (toolId: string, answers: any) => Promise, ) { + const items = filterSubagentItems(rawItems); const askEntries = items.filter(item => isPendingAskUserQuestion(item.tool)); const onCancel = (toolId: string) => { sessionMgr.cancelTool(toolId, 'User cancelled').catch(err => { setError(String(err)); }); }; if (askEntries.length === 0) { - return renderStandardGroups(groupChatItems(items), 'active', now, onCancel); + return renderStandardGroups(groupChatItems(items), 'active', now, onCancel, true); } const beforeAskItems: ChatMessageItem[] = []; @@ -515,9 +1128,9 @@ function renderActiveTurnItems( return ( <> - {renderStandardGroups(groupChatItems(beforeAskItems), 'active-before', now, onCancel)} + {renderStandardGroups(groupChatItems(beforeAskItems), 'active-before', now, onCancel, true)} {renderQuestionEntries(askEntries, 'active', onAnswer)} - {renderStandardGroups(groupChatItems(afterAskItems), 'active-after', now, onCancel)} + {renderStandardGroups(groupChatItems(afterAskItems), 'active-after', now, onCancel, true)} ); } @@ -525,7 +1138,7 @@ function renderActiveTurnItems( // ─── Theme toggle icon ───────────────────────────────────────────────────── const ThemeToggleIcon: React.FC<{ isDark: boolean }> = ({ isDark }) => ( - + {isDark ? ( ) : ( @@ -546,7 +1159,7 @@ const MODE_OPTIONS: { id: AgentMode; label: string }[] = [ // ─── ChatPage ─────────────────────────────────────────────────────────────── -const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, onBack }) => { +const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, onBack, autoFocus }) => { const { getMessages, setMessages, @@ -564,15 +1177,21 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, const [agentMode, setAgentMode] = useState('agentic'); const [liveTitle, setLiveTitle] = useState(sessionName); const [pendingImages, setPendingImages] = useState<{ name: string; dataUrl: string }[]>([]); - const [inputFocused, setInputFocused] = useState(false); + const [imageAnalyzing, setImageAnalyzing] = useState(false); + const [optimisticMsg, setOptimisticMsg] = useState<{ + id: string; text: string; images: { name: string; data_url: string }[]; + } | null>(null); + const [inputExpanded, setInputExpanded] = useState(!!autoFocus); const inputRef = useRef(null); const fileInputRef = useRef(null); + const inputBarRef = useRef(null); const pollerRef = useRef(null); const [isLoadingMore, setIsLoadingMore] = useState(false); const [hasMore, setHasMore] = useState(true); const messagesEndRef = useRef(null); const messagesContainerRef = useRef(null); + const [expandedMsgIds, setExpandedMsgIds] = useState>(new Set()); const isStreaming = activeTurn != null && activeTurn.status === 'active'; @@ -621,14 +1240,39 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, }, [hasMore, isLoadingMore, getMessages, sessionId, loadMessages]); // Initial load + start poller + const initialScrollDone = useRef(false); useEffect(() => { + initialScrollDone.current = false; loadMessages().then(() => { const initialMsgCount = useMobileStore.getState().getMessages(sessionId).length; + // Scroll to bottom after initial load — use rAF + setTimeout to ensure + // the DOM has finished laying out the newly rendered messages. + requestAnimationFrame(() => { + setTimeout(() => { + messagesEndRef.current?.scrollIntoView({ behavior: 'auto' }); + initialScrollDone.current = true; + prevMsgCountRef.current = useMobileStore.getState().getMessages(sessionId).length; + }, 50); + }); + const poller = new SessionPoller(sessionMgr, sessionId, (resp: PollResponse) => { if (resp.new_messages && resp.new_messages.length > 0) { appendNewMessages(sessionId, resp.new_messages); } + + // Detect count mismatch (messages inserted in the middle due to + // persistence race). When the local count doesn't match the server + // total, do a full reload to pick up all messages. + if (resp.total_msg_count != null) { + const localCount = useMobileStore.getState().getMessages(sessionId).length; + if (localCount !== resp.total_msg_count) { + sessionMgr.getSessionMessages(sessionId, 200).then(fresh => { + useMobileStore.getState().setMessages(sessionId, fresh.messages); + }).catch(() => {}); + } + } + if (resp.title) { setLiveTitle(resp.title); updateSessionName(sessionId, resp.title); @@ -647,37 +1291,80 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, }; }, [sessionId, sessionMgr]); + const prevMsgCountRef = useRef(0); useEffect(() => { - if (!isLoadingMore) { - messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); + if (!initialScrollDone.current) return; + if (messages.length !== prevMsgCountRef.current) { + const isNewAppend = messages.length > prevMsgCountRef.current; + prevMsgCountRef.current = messages.length; + if (isNewAppend && !isLoadingMore) { + messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); + } } - }, [messages, activeTurn, isLoadingMore]); + }, [messages.length, isLoadingMore]); - // Reload messages when a turn completes so the messages array - // contains the final persisted content instead of stale partial data. - const prevActiveTurnRef = useRef(null); useEffect(() => { - const prev = prevActiveTurnRef.current; - prevActiveTurnRef.current = activeTurn; - if (prev && !activeTurn) { - loadMessages(); + if (!initialScrollDone.current || !isStreaming) return; + messagesEndRef.current?.scrollIntoView({ behavior: 'auto' }); + }, [activeTurn, isStreaming]); + + useEffect(() => { + if (optimisticMsg) { + messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' }); } - }, [activeTurn, loadMessages]); + }, [optimisticMsg]); + + useEffect(() => { + if (!initialScrollDone.current || !isStreaming) return; + const container = messagesContainerRef.current; + if (!container) return; + const tid = setInterval(() => { + const gap = container.scrollHeight - container.scrollTop - container.clientHeight; + if (gap > 10 && gap < 300) { + container.scrollTop = container.scrollHeight; + } + }, 200); + return () => clearInterval(tid); + }, [isStreaming]); const handleSend = useCallback(async () => { const text = input.trim(); const imgs = pendingImages; - if ((!text && imgs.length === 0) || isStreaming) return; + if ((!text && imgs.length === 0) || isStreaming || imageAnalyzing) return; setInput(''); setPendingImages([]); + setInputExpanded(false); + + const hasImages = imgs.length > 0; + const imageContexts = hasImages + ? imgs.map((img, idx) => { + const mimeType = img.dataUrl.split(';')[0]?.replace('data:', '') || 'image/png'; + return { + id: `mobile_img_${Date.now()}_${idx}`, + data_url: img.dataUrl, + mime_type: mimeType, + metadata: { name: img.name, source: 'remote' }, + }; + }) + : undefined; + + if (hasImages) { + setOptimisticMsg({ + id: `opt_${Date.now()}`, + text: text || '', + images: imgs.map(i => ({ name: i.name, data_url: i.dataUrl })), + }); + setImageAnalyzing(true); + } try { - const imagePayload = imgs.length > 0 - ? imgs.map(i => ({ name: i.name, data_url: i.dataUrl })) - : undefined; - await sessionMgr.sendMessage(sessionId, text || '(see attached images)', agentMode, imagePayload); + await sessionMgr.sendMessage(sessionId, text || '(see attached images)', agentMode, imageContexts); + pollerRef.current?.nudge(); } catch (e: any) { setError(e.message); + } finally { + setImageAnalyzing(false); + setOptimisticMsg(null); } }, [input, pendingImages, isStreaming, sessionId, sessionMgr, setError, agentMode]); @@ -685,24 +1372,33 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, fileInputRef.current?.click(); }, []); - const handleFileChange = useCallback((e: React.ChangeEvent) => { + const handleFileChange = useCallback(async (e: React.ChangeEvent) => { const files = e.target.files; if (!files) return; const maxImages = 5; const remaining = maxImages - pendingImages.length; const toProcess = Array.from(files).slice(0, remaining); - toProcess.forEach((file) => { - const reader = new FileReader(); - reader.onload = () => { - const dataUrl = reader.result as string; + const { compressImageFile } = await import('../services/imageCompressor'); + for (const file of toProcess) { + try { + const compressed = await compressImageFile(file); setPendingImages((prev) => { if (prev.length >= maxImages) return prev; - return [...prev, { name: file.name, dataUrl }]; + return [...prev, { name: compressed.name, dataUrl: compressed.dataUrl }]; }); - }; - reader.readAsDataURL(file); - }); + } catch { + const reader = new FileReader(); + reader.onload = () => { + const dataUrl = reader.result as string; + setPendingImages((prev) => { + if (prev.length >= maxImages) return prev; + return [...prev, { name: file.name, dataUrl }]; + }); + }; + reader.readAsDataURL(file); + } + } e.target.value = ''; }, [pendingImages.length]); @@ -710,6 +1406,30 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, setPendingImages((prev) => prev.filter((_, i) => i !== idx)); }, []); + const expandInput = useCallback(() => { + setInputExpanded(true); + requestAnimationFrame(() => inputRef.current?.focus()); + }, []); + + useEffect(() => { + if (autoFocus) { + requestAnimationFrame(() => inputRef.current?.focus()); + } + }, [autoFocus]); + + useEffect(() => { + if (!inputExpanded) return; + const handleClickOutside = (e: MouseEvent) => { + if (inputBarRef.current && !inputBarRef.current.contains(e.target as Node)) { + if (!input.trim() && pendingImages.length === 0) { + setInputExpanded(false); + } + } + }; + document.addEventListener('mousedown', handleClickOutside); + return () => document.removeEventListener('mousedown', handleClickOutside); + }, [inputExpanded, input, pendingImages.length]); + const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); @@ -730,7 +1450,7 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName, const displayName = liveTitle || sessionName || 'Session'; return ( -
+
{/* Header */}
@@ -741,6 +1461,17 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName,
{displayName} + {workspaceName && ( +
+ {workspaceName} + {gitBranch && ( + + + {gitBranch} + + )} +
+ )}
- {workspaceName && ( -
- - - - - - {workspaceName} - {gitBranch && ( - - - {gitBranch} - - )} -
- )}
{/* Messages */} @@ -772,176 +1487,329 @@ const ChatPage: React.FC = ({ sessionMgr, sessionId, sessionName,
Loading older messages…
)} - {messages.map((m, _idx) => { - if (m.role === 'system' || m.role === 'tool') return null; + {(() => { + // Find the last user message index to determine which assistant + // responses are "old" and can be collapsed. + const lastUserIdx = messages.reduceRight( + (found, m, i) => (found < 0 && m.role === 'user' ? i : found), + -1, + ); - if (m.role === 'user') { - return ( -
-
-
U
-
{m.content}
+ return messages.map((m, idx) => { + if (m.role === 'system' || m.role === 'tool') return null; + + if (m.role === 'user') { + const userText = m.content + .replace(/#img:\S+\s*/g, '') + .replace(/\[Image:.*?\]\n(?:Path:.*?\n|Image ID:.*?\n)?/g, '') + .trim(); + return ( +
+
+
U
+
+ {userText} + {m.images && m.images.length > 0 && ( +
+ {m.images.map((img, imgIdx) => ( + {img.name} + ))} +
+ )} +
+
+
+ ); + } + + const hasItems = m.items && m.items.length > 0; + const hasContent = m.thinking || (m.tools && m.tools.length > 0) || m.content; + if (!hasItems && !hasContent) return null; + + const isOldResponse = idx < lastUserIdx; + const isExpanded = expandedMsgIds.has(m.id); + + if (isOldResponse && !isExpanded) { + return ( +
+
+ ); + } + + return ( +
+ {isOldResponse && isExpanded && ( + + )} + {hasItems ? ( + renderOrderedItems(m.items!, now, undefined, handleAnswerQuestion) + ) : ( + <> + {m.thinking && } + {m.tools && m.tools.length > 0 && } + {m.content && ( +
+ +
+ )} + + )}
); - } - - return ( -
- {m.items && m.items.length > 0 ? ( - renderOrderedItems(m.items, now, undefined, handleAnswerQuestion) - ) : ( - <> - {m.thinking && } - {m.tools && m.tools.length > 0 && } - {m.content && ( -
- -
- )} - - )} -
- ); - })} + }); + })()} - {/* Active turn overlay (streaming content from poller) */} + {/* Active turn overlay (streaming or completed-pending-persist) */} {activeTurn && (() => { - if (activeTurn.items && activeTurn.items.length > 0) { + const turn = activeTurn; + const turnIsActive = turn.status === 'active'; + + if (turn.items && turn.items.length > 0) { return (
- {renderActiveTurnItems(activeTurn.items, now, sessionMgr, setError, handleAnswerQuestion)} - {activeTurn.status === 'active' && !activeTurn.thinking && !activeTurn.text && activeTurn.tools.length === 0 && ( + {turnIsActive + ? renderActiveTurnItems(turn.items, now, sessionMgr, setError, handleAnswerQuestion) + : renderOrderedItems(turn.items, now)} + {turnIsActive && !turn.thinking && !turn.text && turn.tools.length === 0 && (
)}
); } - const askTools = activeTurn.tools.filter( + const taskTools = turn.tools.filter(t => t.name === 'Task'); + const hasRunningSubagent = taskTools.some(t => t.status === 'running'); + const askTools = turn.tools.filter( t => t.name === 'AskUserQuestion' && t.status === 'running' && t.tool_input, ); const askToolIds = new Set(askTools.map(t => t.id)); - const regularTools = activeTurn.tools.filter(t => !askToolIds.has(t.id)); + const regularTools = turn.tools.filter(t => t.name !== 'Task' && !askToolIds.has(t.id)); + const subItemsForTask: ChatMessageItem[] = hasRunningSubagent + ? [ + ...(turn.thinking ? [{ type: 'thinking' as const, content: turn.thinking }] : []), + ...regularTools.map(t => ({ type: 'tool' as const, tool: t })), + ] + : []; + const onCancel = (toolId: string) => { + sessionMgr.cancelTool(toolId, 'User cancelled').catch(err => { setError(String(err)); }); + }; return (
- {(activeTurn.thinking || activeTurn.status === 'active') && ( + {!hasRunningSubagent && (turn.thinking || turnIsActive) && ( )} - { - sessionMgr.cancelTool(toolId, 'User cancelled').catch(err => { setError(String(err)); }); - }} - /> - {askTools.map(at => ( + {taskTools.map(t => ( + + ))} + {!hasRunningSubagent && regularTools.length > 0 && ( + + )} + {turnIsActive && askTools.map(at => ( ))} - {activeTurn.text ? ( + {!hasRunningSubagent && turn.text ? (
- + {turnIsActive ? : }
- ) : activeTurn.status === 'active' && !activeTurn.thinking && activeTurn.tools.length === 0 ? ( + ) : turnIsActive && !turn.thinking && turn.tools.length === 0 ? (
) : null}
); })()} -
-
- - {/* Floating Input Bar */} -
-
-
- {MODE_OPTIONS.map((opt) => ( - - ))} + {/* Optimistic user message with images (shown immediately before server responds) */} + {optimisticMsg && ( +
+
+
U
+
+ {optimisticMsg.text} + {optimisticMsg.images.length > 0 && ( +
+ {optimisticMsg.images.map((img, i) => ( + {img.name} + ))} +
+ )} +
+
-
+ )} - {pendingImages.length > 0 && ( -
- {pendingImages.map((img, idx) => ( -
- {img.name} - + {/* Image analysis indicator */} + {imageAnalyzing && ( +
+
+
+
+ + + + +
+ Analyzing image with vision model... +
- ))} +
)} -
- - -