-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCHANGELOG.json
More file actions
178 lines (178 loc) · 14.5 KB
/
Copy pathCHANGELOG.json
File metadata and controls
178 lines (178 loc) · 14.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
{
"irVersion": "1.0",
"project": "graphize",
"repository": "https://github.com/plexusone/graphize",
"versioning": "semver",
"commitConvention": "conventional",
"releases": [
{
"version": "v0.4.0",
"date": "2026-06-13",
"highlights": [
{ "description": "Full-text search using bleve with fuzzy matching and faceted results" },
{ "description": "Code reuse tracking to identify refactoring opportunities" },
{ "description": "Architectural pattern detection with anti-pattern warnings" }
],
"added": [
{ "description": "`graphize search <query>` command for full-text search across node labels, docstrings, packages, and signatures", "commit": "dc283f5" },
{ "description": "Fuzzy matching with configurable edit distance (`--fuzzy 1-2`)", "commit": "dc283f5" },
{ "description": "Type filtering for search results (`--type function,class,struct`)", "commit": "dc283f5" },
{ "description": "Highlighted search fragments and faceted results by node type", "commit": "dc283f5" },
{ "description": "Search index statistics and reindex capability (`--stats`, `--reindex`)", "commit": "dc283f5" },
{ "description": "`graphize reuse` command to identify code reuse patterns and refactoring opportunities", "commit": "4343efe" },
{ "description": "Similar function signature detection for interface extraction candidates", "commit": "4343efe" },
{ "description": "Duplicate name detection across packages", "commit": "4343efe" },
{ "description": "Shared dependency analysis for service extraction candidates", "commit": "4343efe" },
{ "description": "`graphize patterns` command for architectural pattern detection", "commit": "106ce11" },
{ "description": "Architectural patterns: factory, singleton, handler, repository, builder", "commit": "106ce11" },
{ "description": "Structural patterns: hub nodes, layered architecture, clusters", "commit": "106ce11" },
{ "description": "Anti-pattern detection: god objects, circular dependencies, dead code", "commit": "106ce11" },
{ "description": "Health score calculation based on anti-pattern severity", "commit": "106ce11" },
{ "description": "`pkg/search/` package using bleve v2.6.0 for full-text indexing", "commit": "dc283f5" },
{ "description": "`pkg/reuse/` package for code similarity analysis", "commit": "4343efe" },
{ "description": "`pkg/patterns/` package for pattern detection algorithms", "commit": "106ce11" }
],
"changed": [
{ "description": "TOON formatter now properly handles struct types via JSON marshaling", "commit": "dc283f5" }
],
"dependencies": [
{ "description": "`github.com/blevesearch/bleve/v2` v2.6.0 for full-text search", "commit": "dc283f5" },
{ "description": "`golang.org/x/tools` bumped to v0.46.0", "commit": "d8480e2" },
{ "description": "`golang.org/x/text` bumped to v0.38.0", "commit": "3adbf80" },
{ "description": "`github.com/grokify/mogo` bumped to v0.74.6", "commit": "0d6c88c" }
]
},
{
"version": "v0.3.0",
"date": "2026-05-09",
"highlights": [
{ "description": "Semantic Go analysis with go/types for type-resolved call graphs" },
{ "description": "Interface implementation detection across packages" },
{ "description": "Framework detection for Gin, Echo, Chi, Fiber, and more" },
{ "description": "Comprehensive analyzer development documentation" }
],
"added": [
{ "description": "`SemanticExtractor` in `pkg/extract/golang/semantic.go` using `golang.org/x/tools/go/packages`", "commit": "0e47b0e" },
{ "description": "Type-resolved call graph extraction via `go/types`", "commit": "0e47b0e" },
{ "description": "Interface implementation detection (`implements` edges)", "commit": "0e47b0e" },
{ "description": "Framework detection for Gin, Echo, Chi, Fiber, Gorilla, httprouter", "commit": "0e47b0e" },
{ "description": "HTTP handler detection for entry point identification", "commit": "0e47b0e" },
{ "description": "Method receiver tracking with type information", "commit": "0e47b0e" }
],
"documentation": [
{ "description": "`docs/analyzers/index.md`: Architecture overview and built-in analyzers", "commit": "ae40837" },
{ "description": "`docs/analyzers/creating-analyzers.md`: Step-by-step implementation guide", "commit": "ae40837" },
{ "description": "`docs/analyzers/go-analyzer.md`: Go analyzer reference (basic + semantic)", "commit": "ae40837" },
{ "description": "`docs/analyzers/semantic-analysis.md`: Adding type information to analysis", "commit": "ae40837" },
{ "description": "Analyzers section added to MkDocs navigation", "commit": "ae40837" }
],
"dependencies": [
{ "description": "`golang.org/x/tools` for go/packages type checking", "commit": "0e47b0e" },
{ "description": "`golang.org/x/mod` and `golang.org/x/sync` (indirect)", "commit": "0e47b0e" }
]
},
{
"version": "v0.2.0",
"date": "2026-04-19",
"highlights": [
{ "description": "Multi-language extraction: Go, Java, TypeScript, Swift" },
{ "description": "External provider interface for adding language support" },
{ "description": "Watch mode for auto-rebuild on file changes" },
{ "description": "Git hooks for automatic analysis on commit/checkout" },
{ "description": "Neo4j Cypher and Obsidian vault export formats" },
{ "description": "Node explanation with community and centrality context" },
{ "description": "Platform installers for Claude, Cursor, Copilot, Codex, Gemini, Aider" }
],
"added": [
{ "description": "`provider` package with `LanguageExtractor` interface for external language support", "commit": "0485b04" },
{ "description": "Priority-based provider registry (Default, Thick, Custom levels)", "commit": "0485b04" },
{ "description": "Go language extractor using native `go/ast` parser", "commit": "fc839bf" },
{ "description": "Java language extractor with Spring framework detection", "commit": "fc839bf" },
{ "description": "TypeScript/JavaScript extractor using tree-sitter", "commit": "fc839bf" },
{ "description": "Swift extractor with protocol and extension support", "commit": "fc839bf" },
{ "description": "`WithCustomExtractor` option for direct extractor injection", "commit": "45afd67" },
{ "description": "`graphize path <from> <to>` command to find shortest path between nodes using BFS", "commit": "bba6c5e" },
{ "description": "`graphize benchmark` command showing token reduction statistics (raw vs TOON)", "commit": "5fedf29" },
{ "description": "`graphize watch` command for auto-rebuild on file changes with debouncing", "commit": "e54fda5" },
{ "description": "`graphize hook install/uninstall/status` commands for git hook management", "commit": "655860a" },
{ "description": "`graphize export cypher` command for Neo4j CREATE statements", "commit": "6c073e4" },
{ "description": "`graphize export obsidian` command for wiki-style vault with wikilinks", "commit": "c5d180d" },
{ "description": "`--directed` flag for `graphize analyze` to control edge directionality", "commit": "67b264d" },
{ "description": "`--html` and `--report` flags for watch mode to auto-regenerate outputs", "commit": "e54fda5" },
{ "description": "`--debounce` flag for watch mode to configure delay (default 500ms)", "commit": "e54fda5" },
{ "description": "post-commit hook: auto-run `graphize analyze` after commits", "commit": "655860a" },
{ "description": "post-checkout hook: check if graph is stale after checkout", "commit": "655860a" },
{ "description": "`graphize explain <node>` command with community membership, centrality scores, and neighbor details", "commit": "fa54ac1" },
{ "description": "`graphize install <platform>` command for 6 AI assistant integrations (claude, cursor, copilot, codex, gemini, aider)", "commit": "b54f61a" },
{ "description": "`graphize report --health` flag for corpus health assessment with actionable verdicts", "commit": "3282209" },
{ "description": "`graphize enhance --include-docs` and `--docs-only` flags for markdown/text extraction", "commit": "57f998f" },
{ "description": "Markdown extractor in `pkg/extract/markdown/` for documentation-to-code linking", "commit": "57f998f" },
{ "description": "Platform installers in `pkg/platform/` for Claude Desktop, Cursor, Copilot, Codex, Gemini CLI, and Aider", "commit": "b54f61a" },
{ "description": "Corpus health check in `pkg/analyze/health.go` with token reduction metrics", "commit": "3282209" },
{ "description": "Node explanation in `pkg/query/explain.go` with community and centrality context", "commit": "fa54ac1" }
],
"changed": [
{ "description": "`extract` package now uses `provider` types with backward compatibility aliases", "commit": "45afd67" },
{ "description": "CLI commands use `NewMultiExtractor(DefaultRegistry)` pattern", "commit": "c598ebe" },
{ "description": "Composite surprise scoring weights cross-file edges higher (2.5x) and adds code-doc bonus (+1.5)", "commit": "6380cbb" }
],
"documentation": [
{ "description": "CLI reference updated with explain and install commands", "commit": "d4ff86f" },
{ "description": "Getting started guide with watch mode and git hooks", "commit": "06ba95c" },
{ "description": "Export formats table updated with Cypher and Obsidian", "commit": "06ba95c" },
{ "description": "Phase 6 implementation archived in docs/plans/v0.2.0-plan.md", "commit": "85ce643" }
]
},
{
"version": "v0.1.0",
"date": "2026-04-09",
"highlights": [
{ "description": "LLM-powered tool to turn Go codebases into queryable knowledge graphs" },
{ "description": "Two-step extraction: deterministic AST + optional LLM semantic analysis" },
{ "description": "TOON export format with 98% token reduction vs JSON for AI agents" },
{ "description": "MCP server for AI agent integration with 5 graph query tools" }
],
"added": [
{ "description": "`graphize init` command to create graph database directory structure", "commit": "13dd837" },
{ "description": "`graphize add <repo>` command to track repositories with git commit hashes", "commit": "13dd837" },
{ "description": "`graphize status` command to show sources with staleness detection", "commit": "13dd837" },
{ "description": "`graphize analyze` command to extract AST graph from Go sources", "commit": "13dd837" },
{ "description": "`graphize query` command with BFS/DFS traversal, depth control, and edge filters", "commit": "13dd837" },
{ "description": "`graphize export html` command with Cytoscape.js interactive visualization", "commit": "13dd837" },
{ "description": "`graphize export json` command in Cytoscape JSON format", "commit": "13dd837" },
{ "description": "`graphize export toon` command for token-efficient agent output", "commit": "13dd837" },
{ "description": "`graphize summary` command for Markdown summary in AGENTS folder", "commit": "13dd837" },
{ "description": "`graphize report` command with god nodes, communities, surprises analysis", "commit": "13dd837" },
{ "description": "`graphize enhance` command to prepare files for LLM semantic extraction", "commit": "13dd837" },
{ "description": "`graphize merge` command to merge LLM-extracted semantic edges into graph", "commit": "13dd837" },
{ "description": "Go AST extraction: packages, files, functions, methods, types, imports, calls", "commit": "2dd2c98" },
{ "description": "SHA256-based per-file caching in `pkg/cache/cache.go`", "commit": "627c840" },
{ "description": "`--no-cache` flag for analyze command to bypass cache", "commit": "627c840" },
{ "description": "Cache hit/miss statistics reporting", "commit": "627c840" },
{ "description": "God nodes analysis: most connected entities excluding file-level hubs", "commit": "4f844d6" },
{ "description": "Community detection: package-based grouping with cohesion scores", "commit": "4f844d6" },
{ "description": "Surprising connections: cross-file, cross-community edge detection", "commit": "4f844d6" },
{ "description": "Isolated nodes detection for potential documentation gaps", "commit": "4f844d6" },
{ "description": "Package statistics: files, functions, types, imports per package", "commit": "4f844d6" },
{ "description": "Edge confidence breakdown: EXTRACTED vs INFERRED vs AMBIGUOUS", "commit": "4f844d6" },
{ "description": "Semantic edge types: inferred_depends, rationale_for, similar_to, implements_pattern, shared_concern", "commit": "2dd2c98" },
{ "description": "`pkg/extract/merge.go` for parsing and validating LLM semantic JSON output", "commit": "2dd2c98" },
{ "description": "`skills/enhance.md` Claude Code skill for semantic extraction workflow", "commit": "acbc8f6" },
{ "description": "`agents/specs/semantic-extractor.yaml` multi-agent-spec definition", "commit": "acbc8f6" },
{ "description": "`graphize serve` MCP server using official Go SDK (github.com/modelcontextprotocol/go-sdk)", "commit": "13dd837" },
{ "description": "MCP tool: `query_graph` for BFS/DFS graph traversal from search terms", "commit": "13dd837" },
{ "description": "MCP tool: `get_node` for node details by ID or label", "commit": "13dd837" },
{ "description": "MCP tool: `get_neighbors` for adjacent nodes with edge info", "commit": "13dd837" },
{ "description": "MCP tool: `get_community` for listing community members", "commit": "13dd837" },
{ "description": "MCP tool: `graph_summary` for stats, god nodes, and suggested questions", "commit": "13dd837" },
{ "description": "Suggested questions generation: ambiguous edges, bridges, inferred verification, isolated nodes, low cohesion", "commit": "4f844d6" }
],
"documentation": [
{ "description": "PRD.md: Product requirements document", "commit": "0a83f55" },
{ "description": "TRD.md: Technical requirements document", "commit": "0a83f55" },
{ "description": "TASKS.md: Implementation task tracking", "commit": "0a83f55" },
{ "description": "PLAN.md: Architecture and design decisions", "commit": "0a83f55" }
]
}
]
}