Skip to content

Latest commit

 

History

History
192 lines (154 loc) · 16.2 KB

File metadata and controls

192 lines (154 loc) · 16.2 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.

v0.4.0 - 2026-06-13

Highlights

  • Full-text search using bleve with fuzzy matching and faceted results
  • Code reuse tracking to identify refactoring opportunities
  • Architectural pattern detection with anti-pattern warnings

Added

  • graphize search <query> command for full-text search across node labels, docstrings, packages, and signatures (dc283f5)
  • Fuzzy matching with configurable edit distance (--fuzzy 1-2) (dc283f5)
  • Type filtering for search results (--type function,class,struct) (dc283f5)
  • Highlighted search fragments and faceted results by node type (dc283f5)
  • Search index statistics and reindex capability (--stats, --reindex) (dc283f5)
  • graphize reuse command to identify code reuse patterns and refactoring opportunities (4343efe)
  • Similar function signature detection for interface extraction candidates (4343efe)
  • Duplicate name detection across packages (4343efe)
  • Shared dependency analysis for service extraction candidates (4343efe)
  • graphize patterns command for architectural pattern detection (106ce11)
  • Architectural patterns: factory, singleton, handler, repository, builder (106ce11)
  • Structural patterns: hub nodes, layered architecture, clusters (106ce11)
  • Anti-pattern detection: god objects, circular dependencies, dead code (106ce11)
  • Health score calculation based on anti-pattern severity (106ce11)
  • pkg/search/ package using bleve v2.6.0 for full-text indexing (dc283f5)
  • pkg/reuse/ package for code similarity analysis (4343efe)
  • pkg/patterns/ package for pattern detection algorithms (106ce11)

Changed

  • TOON formatter now properly handles struct types via JSON marshaling (dc283f5)

Dependencies

  • github.com/blevesearch/bleve/v2 v2.6.0 for full-text search (dc283f5)
  • golang.org/x/tools bumped to v0.46.0 (d8480e2)
  • golang.org/x/text bumped to v0.38.0 (3adbf80)
  • github.com/grokify/mogo bumped to v0.74.6 (0d6c88c)

v0.3.0 - 2026-05-09

Highlights

  • Semantic Go analysis with go/types for type-resolved call graphs
  • Interface implementation detection across packages
  • Framework detection for Gin, Echo, Chi, Fiber, and more
  • Comprehensive analyzer development documentation

Added

  • SemanticExtractor in pkg/extract/golang/semantic.go using golang.org/x/tools/go/packages (0e47b0e)
  • Type-resolved call graph extraction via go/types (0e47b0e)
  • Interface implementation detection (implements edges) (0e47b0e)
  • Framework detection for Gin, Echo, Chi, Fiber, Gorilla, httprouter (0e47b0e)
  • HTTP handler detection for entry point identification (0e47b0e)
  • Method receiver tracking with type information (0e47b0e)

Dependencies

  • golang.org/x/tools for go/packages type checking (0e47b0e)
  • golang.org/x/mod and golang.org/x/sync (indirect) (0e47b0e)

Documentation

  • docs/analyzers/index.md: Architecture overview and built-in analyzers (ae40837)
  • docs/analyzers/creating-analyzers.md: Step-by-step implementation guide (ae40837)
  • docs/analyzers/go-analyzer.md: Go analyzer reference (basic + semantic) (ae40837)
  • docs/analyzers/semantic-analysis.md: Adding type information to analysis (ae40837)
  • Analyzers section added to MkDocs navigation (ae40837)

v0.2.0 - 2026-04-19

Highlights

  • Multi-language extraction: Go, Java, TypeScript, Swift
  • External provider interface for adding language support
  • Watch mode for auto-rebuild on file changes
  • Git hooks for automatic analysis on commit/checkout
  • Neo4j Cypher and Obsidian vault export formats
  • Node explanation with community and centrality context
  • Platform installers for Claude, Cursor, Copilot, Codex, Gemini, Aider

Added

  • provider package with LanguageExtractor interface for external language support (0485b04)
  • Priority-based provider registry (Default, Thick, Custom levels) (0485b04)
  • Go language extractor using native go/ast parser (fc839bf)
  • Java language extractor with Spring framework detection (fc839bf)
  • TypeScript/JavaScript extractor using tree-sitter (fc839bf)
  • Swift extractor with protocol and extension support (fc839bf)
  • WithCustomExtractor option for direct extractor injection (45afd67)
  • graphize path <from> <to> command to find shortest path between nodes using BFS (bba6c5e)
  • graphize benchmark command showing token reduction statistics (raw vs TOON) (5fedf29)
  • graphize watch command for auto-rebuild on file changes with debouncing (e54fda5)
  • graphize hook install/uninstall/status commands for git hook management (655860a)
  • graphize export cypher command for Neo4j CREATE statements (6c073e4)
  • graphize export obsidian command for wiki-style vault with wikilinks (c5d180d)
  • --directed flag for graphize analyze to control edge directionality (67b264d)
  • --html and --report flags for watch mode to auto-regenerate outputs (e54fda5)
  • --debounce flag for watch mode to configure delay (default 500ms) (e54fda5)
  • post-commit hook: auto-run graphize analyze after commits (655860a)
  • post-checkout hook: check if graph is stale after checkout (655860a)
  • graphize explain <node> command with community membership, centrality scores, and neighbor details (fa54ac1)
  • graphize install <platform> command for 6 AI assistant integrations (claude, cursor, copilot, codex, gemini, aider) (b54f61a)
  • graphize report --health flag for corpus health assessment with actionable verdicts (3282209)
  • graphize enhance --include-docs and --docs-only flags for markdown/text extraction (57f998f)
  • Markdown extractor in pkg/extract/markdown/ for documentation-to-code linking (57f998f)
  • Platform installers in pkg/platform/ for Claude Desktop, Cursor, Copilot, Codex, Gemini CLI, and Aider (b54f61a)
  • Corpus health check in pkg/analyze/health.go with token reduction metrics (3282209)
  • Node explanation in pkg/query/explain.go with community and centrality context (fa54ac1)

Changed

  • extract package now uses provider types with backward compatibility aliases (45afd67)
  • CLI commands use NewMultiExtractor(DefaultRegistry) pattern (c598ebe)
  • Composite surprise scoring weights cross-file edges higher (2.5x) and adds code-doc bonus (+1.5) (6380cbb)

Documentation

  • CLI reference updated with explain and install commands (d4ff86f)
  • Getting started guide with watch mode and git hooks (06ba95c)
  • Export formats table updated with Cypher and Obsidian (06ba95c)
  • Phase 6 implementation archived in docs/plans/v0.2.0-plan.md (85ce643)

v0.1.0 - 2026-04-09

Highlights

  • LLM-powered tool to turn Go codebases into queryable knowledge graphs
  • Two-step extraction: deterministic AST + optional LLM semantic analysis
  • TOON export format with 98% token reduction vs JSON for AI agents
  • MCP server for AI agent integration with 5 graph query tools

Added

  • graphize init command to create graph database directory structure (13dd837)
  • graphize add <repo> command to track repositories with git commit hashes (13dd837)
  • graphize status command to show sources with staleness detection (13dd837)
  • graphize analyze command to extract AST graph from Go sources (13dd837)
  • graphize query command with BFS/DFS traversal, depth control, and edge filters (13dd837)
  • graphize export html command with Cytoscape.js interactive visualization (13dd837)
  • graphize export json command in Cytoscape JSON format (13dd837)
  • graphize export toon command for token-efficient agent output (13dd837)
  • graphize summary command for Markdown summary in AGENTS folder (13dd837)
  • graphize report command with god nodes, communities, surprises analysis (13dd837)
  • graphize enhance command to prepare files for LLM semantic extraction (13dd837)
  • graphize merge command to merge LLM-extracted semantic edges into graph (13dd837)
  • Go AST extraction: packages, files, functions, methods, types, imports, calls (2dd2c98)
  • SHA256-based per-file caching in pkg/cache/cache.go (627c840)
  • --no-cache flag for analyze command to bypass cache (627c840)
  • Cache hit/miss statistics reporting (627c840)
  • God nodes analysis: most connected entities excluding file-level hubs (4f844d6)
  • Community detection: package-based grouping with cohesion scores (4f844d6)
  • Surprising connections: cross-file, cross-community edge detection (4f844d6)
  • Isolated nodes detection for potential documentation gaps (4f844d6)
  • Package statistics: files, functions, types, imports per package (4f844d6)
  • Edge confidence breakdown: EXTRACTED vs INFERRED vs AMBIGUOUS (4f844d6)
  • Semantic edge types: inferred_depends, rationale_for, similar_to, implements_pattern, shared_concern (2dd2c98)
  • pkg/extract/merge.go for parsing and validating LLM semantic JSON output (2dd2c98)
  • skills/enhance.md Claude Code skill for semantic extraction workflow (acbc8f6)
  • agents/specs/semantic-extractor.yaml multi-agent-spec definition (acbc8f6)
  • graphize serve MCP server using official Go SDK (github.com/modelcontextprotocol/go-sdk) (13dd837)
  • MCP tool: query_graph for BFS/DFS graph traversal from search terms (13dd837)
  • MCP tool: get_node for node details by ID or label (13dd837)
  • MCP tool: get_neighbors for adjacent nodes with edge info (13dd837)
  • MCP tool: get_community for listing community members (13dd837)
  • MCP tool: graph_summary for stats, god nodes, and suggested questions (13dd837)
  • Suggested questions generation: ambiguous edges, bridges, inferred verification, isolated nodes, low cohesion (4f844d6)

Documentation

  • PRD.md: Product requirements document (0a83f55)
  • TRD.md: Technical requirements document (0a83f55)
  • TASKS.md: Implementation task tracking (0a83f55)
  • PLAN.md: Architecture and design decisions (0a83f55)