LM Studio and Ollama do not support response_format: json_object,
only json_schema or text. This causes errors when using local LLMs.
The existing markdown fence cleanup logic in chat_json() already
handles parsing JSON from raw LLM output, making response_format
unnecessary. This change follows the same pattern as commit 985f89f
which improved compatibility with diverse model outputs.
Tested with: LM Studio + qwen3.5-9b (full predict pipeline passes)
- Added VITE_API_TIMEOUT environment variable support
- Default remains 300000ms (5 minutes)
- Users can increase timeout for slow local models like Ollama
- Example: VITE_API_TIMEOUT=600000 for 10 minutes
Fixes#58
Background:
- With many nodes, D3 force simulation tick callback updates all nodes/edges/labels every frame
- Original implementation called simulation.restart() in drag start event on mousedown
- Even after simulation converged, clicking a node to view details would restart simulation, causing lag
Solution:
- Distinguish between "click" and "drag" using 3px movement threshold
- On drag start: only record initial position, do not restart simulation
- On drag event: detect movement exceeding threshold before marking as actual drag and restarting simulation
- Pure click operations no longer trigger simulation restart, keeping graph static
Bug fix:
- Fixed issue where nodes became undraggable after initial optimization
- Cause: incorrectly used if(!event.active) check in drag event
- event.active equals 1 during drag event, causing restart() to never execute
- Removed that condition, using custom _isDragging flag to control logic instead
- Changed the title for the environment configuration status icon to "环境搭建" for clarity.
- Added a creation time display in the project detail modal for better context.
- Introduced a divider for the playback section to improve visual separation.
- Enhanced navigation buttons with step indicators for clearer user progression.
- Added a hint for playback limitations to inform users about simulation requirements.
- Updated CSS styles for new elements and improved overall modal aesthetics.
- Changed Python version specification to indicate compatibility with versions ≥3.11 and ≤3.12.
- Renamed "Contact Us" section to "Join the Conversation" for improved engagement.
- Added a centered image of the QQ group to the contact section for better visibility.