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
- Introduced a unique report ID generation mechanism to enhance tracking and management of reports.
- Implemented detailed logging for the report generation process, including agent actions, planning stages, and tool calls, improving traceability and debugging.
- Added new API endpoints for retrieving agent and console logs, allowing users to access detailed execution logs and console outputs during report generation.
- Enhanced the frontend GraphPanel component with a notification for users when simulations finish, improving user experience and feedback.
- Introduced a new JSON data file containing detailed actions and quotes related to the 武大声誉修复基金 initiative.
- Updated the OasisProfileGenerator to ensure compatibility with the new JSON format, emphasizing the inclusion of user_id.
- Modified simulation management to support independent tracking of Twitter and Reddit platforms, including completion status and round information.
- Enhanced the SimulationRunner to accurately reflect the completion state of each platform and added checks for overall simulation completion.
- Improved the GraphPanel and Step3Simulation components to provide real-time updates and better user feedback during simulations.
- Changed maximize button icon for better visual representation.
- Revised descriptions in WorkbenchPanel.vue to enhance clarity and context regarding ontology generation and graph building processes.
- Updated step titles and descriptions to reflect more accurate terminology and user guidance.
- Introduced x and y forces to attract independent nodes towards the center, enhancing the overall layout and clustering of nodes in the graph visualization.
- Improved the simulation dynamics for a more cohesive visual representation of the graph.
- Added a title to the graph panel for better context.
- Improved detail panel to show additional attributes such as UUID, creation date, and labels for nodes and edges.
- Introduced self-loop handling with expanded views for self-loop groups.
- Implemented edge labels toggle functionality for improved user interaction.
- Enhanced styling for better readability and visual consistency across components.
- Introduced GraphPanel.vue for dynamic graph visualization, featuring real-time updates, node and edge detail panels, and loading states.
- Added WorkbenchPanel.vue to manage ontology generation and graph building processes, including progress tracking and system logs.
- Updated MainView.vue to integrate both panels, allowing users to switch between graph and workbench views seamlessly.
- Enhanced styling across components for improved user experience and visual consistency.