update/harsh/optimizations#52
Merged
harshkedia177 merged 17 commits intomainfrom Mar 8, 2026
Merged
Conversation
Owner
harshkedia177
commented
Mar 8, 2026
- fix: comprehensive bugfix and optimization pass across ingestion pipeline
- refactor: split resolution from mutation in ingestion pipeline for concurrency
- feat: implement read-only fallback mode for KuzuBackend initialization
- refactor: update process_heritage to return edges and patches as a tuple
- refactor: clean up docstrings and comments across ingestion modules
- refactor: improve storage management and type annotations in ingestion modules
- feat: add handle_coupling tool for temporal coupling analysis
- feat: enhance MCP server with new tools for code analysis
- feat: add new tools for code analysis in MCP server
- feat: enhance Axon with shared host capabilities and new runtime management
- chore:cleanup
- feat: add update notifier to Axon CLI
- feat: Updated graphs physics to prevent overlapping and allow equi-distance between nodes
- refactor: UI update for graph as well as performance improvements
- feat: enhance FileTree component with improved node highlighting and community layout support
- feat: add Axon logo and update README and header layout
…line - O(1) has_incoming via type-indexed secondary index (graph.py) - Fix find_containing_symbol missing deeply nested symbols (symbol_lookup.py) - Merge import symbols per file pair instead of dropping duplicates (imports.py) - Class-scoped self/this method resolution, path-prefix proximity matching, per-file import cache, and >5 candidate guard on global fuzzy (calls.py) - CSV bulk-load with PARALLEL=false and cleanup on fallback (kuzu_backend.py) - Persist arbitrary node properties via properties_json column (kuzu_backend.py) - Walker uses git ls-files with os.walk() fallback and dir pruning (walker.py) - Shared name index across calls/heritage/types phases (pipeline.py) - Pre-built class→methods index for protocol conformance (dead_code.py) - Community detection includes heritage edges at 0.5 weight (community.py) - TS entry point detection refined to index/entry files only (processes.py) - Watch mode skips communities/processes for small changes (watcher.py) - Remove dead `full` param, merge structure/coupling passes, deduplicate FTS
…ncurrency Extract pure resolve_file_*() functions from imports, calls, heritage, types, and coupling phases that return ResolvedEdge/NodePropertyPatch instead of mutating the graph directly. Pipeline now runs calls/heritage/ types resolution concurrently (3 threads) and overlaps coupling git I/O with community/process/dead_code phases. All graph writes remain sequential.
- Enhanced KuzuBackend's initialize method to support retry logic on lock contention, allowing for a specified number of retries with exponential backoff. - Updated the serve function to fall back to read-only mode if the write lock is held by another process, enabling the MCP server to run without file watching. - Introduced a context manager for short-lived read-only connections, ensuring fresh data access while releasing locks promptly after use.
- Modified the `process_heritage` function to return a tuple of `ResolvedEdge` and `NodePropertyPatch` lists when `collect` is True, allowing for deferred application of property patches. - Updated the ingestion pipeline to handle the new return type, ensuring property patches are applied after edges are written to the graph. - Cleaned up the symbol lookup documentation and removed unnecessary start_lines handling in `FileSymbolIndex` for improved clarity and performance. - Refactored storage access in the MCP server to utilize a new `_with_storage` function for better readability and maintainability.
- Removed unnecessary docstring content and comments in various ingestion modules to enhance clarity and maintainability. - Updated function docstrings to be more concise while retaining essential information. - Improved overall readability of the codebase by eliminating redundant explanations and comments that cluttered the logic. - Ensured consistency in documentation style across different files.
…n modules - Enhanced the `serve` function to properly manage storage lifecycle during read-only fallback, ensuring resources are released after use. - Updated type annotations in various ingestion functions to utilize `FileSymbolIndex`, improving code clarity and type safety. - Refactored the `resolve_coupling` function to conditionally retrieve file nodes, optimizing performance and readability. - Adjusted the ingestion pipeline to utilize a filtered heritage name index, enhancing the resolution of relationships while maintaining concurrency.
- Added four new tools: `axon_coupling`, `axon_communities`, `axon_explain`, and `axon_review_risk` to provide advanced code intelligence features. - Updated the server to register these tools and handle their respective requests. - Refactored the `handle_detect_changes` function for improved clarity and functionality. - Enhanced test coverage for the new tools, ensuring robust functionality and reliability.
- Introduced five new tools: `axon_call_path`, `axon_file_context`, `axon_test_impact`, and `axon_cycles` to enhance code intelligence capabilities. - Updated the MCP server to register these tools and handle their respective requests. - Enhanced the `handle_context` function to include heritage and imported-by information for symbols. - Improved test coverage for the new tools and related functionalities, ensuring robust performance and reliability.
…gement - Added support for a shared host in the Axon CLI, allowing multiple sessions and UI integration via `axon host --watch`. - Introduced `AxonRuntime` class to manage shared state across host processes, including storage and event listeners. - Updated the web application to support host metadata retrieval and improved API routing for host-related functionalities. - Enhanced documentation and README to reflect new features and usage instructions. - Added tests for new host command and UI behavior to ensure reliability and performance.
- Implemented an update notification system in the Axon CLI to inform users of available updates. - Introduced caching for the latest version check to minimize network requests. - Added tests to ensure the update notice functionality works correctly, including conditions for skipping notifications on specific commands. - Updated `pyproject.toml` to include a marker for running tests with the update notice enabled.
…stance between nodes
Update and refactoring of graph rendering in the UI
…community layout support - Added a new `setsMatch` function to compare highlighted node sets. - Refactored `TreeNode` to utilize `targetNodeIds` for active state management. - Updated styles for active nodes and badges to improve visual feedback. - Introduced community layout calculations in `GraphCanvas` for better cluster representation. - Enhanced edge rendering based on highlighted nodes for clearer graph interactions.
- Introduced Axon logo as a new asset in the project. - Updated README to include the logo centered at the top. - Modified the HTML header to link the logo as a favicon. - Replaced the Hexagon icon in the Header component with the Axon logo for improved branding.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.