@openez-graph/cli 1.4.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/CHANGELOG.md +16 -0
- package/dist/cli.cjs +1453 -707
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ openez serve --mcp # start MCP server (auto-index; auto-sync opt-in
|
|
|
68
68
|
openez serve --web # start web dashboard (default port 17881)
|
|
69
69
|
openez serve --web --port 8080 # start web dashboard on custom port
|
|
70
70
|
openez status [path] # show workspace status
|
|
71
|
+
openez diff [ref] # review git diff with affected AST symbols & callers (--staged, --json)
|
|
71
72
|
openez list # list registered workspaces
|
|
72
73
|
openez setup claude # wire up Claude Code
|
|
73
74
|
openez setup codex # wire up Codex
|
|
@@ -79,6 +80,23 @@ openez config set <key> <value> # set embedding config value
|
|
|
79
80
|
openez config list # list all DB-stored config overrides
|
|
80
81
|
```
|
|
81
82
|
|
|
83
|
+
### Diff scopes
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
openez diff # tracked staged + unstaged changes
|
|
87
|
+
git diff HEAD # equivalent Git default: tracked staged + unstaged changes
|
|
88
|
+
openez diff --staged # staged changes only
|
|
89
|
+
openez diff HEAD~1 # diff against the supplied Git ref
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For the `diff_context` MCP tool, `path`/`paths` select registered workspace
|
|
93
|
+
roots, not changed files. Untracked files are not included in this Git-diff
|
|
94
|
+
phase. When a blob parser is provided, `diff_context` also returns
|
|
95
|
+
`oldSymbols` and `deletedSymbols` for modified and deleted files. Old source
|
|
96
|
+
is loaded with `git show <rev>:<path>` and parsed in memory — historical blobs
|
|
97
|
+
are never written to the workspace DB. Caller/callee edges for historical
|
|
98
|
+
symbols use the current graph only (a historical graph is not reconstructed).
|
|
99
|
+
|
|
82
100
|
Valid config keys: `embedding.provider`, `embedding.openai_api_key`, `embedding.openai_base_url`, `embedding.openai_model`, `embedding.ollama_base_url`, `embedding.ollama_model`, `embedding.local_model`. API keys are encrypted at rest with AES-256-GCM.
|
|
83
101
|
|
|
84
102
|
## MCP Tools
|
|
@@ -89,6 +107,7 @@ Valid config keys: `embedding.provider`, `embedding.openai_api_key`, `embedding.
|
|
|
89
107
|
| `code_outline` | Inspect file AST structure, functions, classes, and exported symbols with line numbers (~50 tokens) |
|
|
90
108
|
| `code_query` | Hybrid FTS/vector search + graph expansion over indexed code and docs |
|
|
91
109
|
| `code_context` | Get budgeted symbol context with callers, callees, and related files (limit: 50/workspace, max 200) |
|
|
110
|
+
| `diff_context` | Analyze git diff changes and retrieve affected AST symbols & caller/callee dependencies |
|
|
92
111
|
| `graph_neighbors` | Traverse graph edges from a node or label |
|
|
93
112
|
| `memory_recall` | Recall active memory entries and technical decisions |
|
|
94
113
|
| `memory_write` | Write a memory entry (notes, decisions, patterns) |
|
package/dist/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,20 @@ All notable changes to OpenEZ Graph are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.5.0] - 2026-08-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **CLI and MCP diff context** — `openez diff` and `diff_context` now report affected symbols, callers, callees, historical symbols, and deleted symbols across staged changes and Git refs.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- **Diff scope and workspace contracts** — supports default tracked staged + unstaged changes, staged-only changes, Git refs/ranges, workspace selectors, structured multi-workspace responses, and token-bounded MCP output.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Diff correctness and readiness** — normalizes staged hunk coordinates, reads staged symbols from Git index blobs, avoids leaking working-tree dependency context, validates Git refs, preserves deleted-symbol counts, and surfaces structured historical-blob warnings.
|
|
21
|
+
|
|
8
22
|
## [1.4.0] - 2026-08-19
|
|
9
23
|
|
|
10
24
|
### Added
|
|
@@ -14,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
28
|
|
|
15
29
|
### Changed
|
|
16
30
|
|
|
31
|
+
- **Git diff scope contract** — documented `openez diff` staged/ref behavior, clarified that MCP `path`/`paths` select registered workspace roots, and noted that untracked files are excluded from this Git-diff phase.
|
|
17
32
|
- **`getFileOutline` path resolution** — uses `path.isAbsolute()` instead of `startsWith("/")` so Windows absolute paths (`C:\foo\bar.ts`) receive the same symlink realpath fallback as Unix absolute paths.
|
|
18
33
|
- **`getFileOutline` async realpath** — replaced `fs.realpathSync` with `fs.promises.realpath` to avoid blocking the MCP event loop on absolute-path cache misses.
|
|
19
34
|
- **AGENTS.md MCP Expectations** — `code_outline` classified as a single-workspace tool alongside `memory_write`, `index_workspace`, and `remove_workspace`.
|
|
@@ -328,6 +343,7 @@ Remediation release — index/graph correctness, data protection, and web flow f
|
|
|
328
343
|
- Error handling and validation for import path extraction
|
|
329
344
|
- CLI npm packaging
|
|
330
345
|
|
|
346
|
+
[1.5.0]: https://github.com/asta-nguyen/openez-graph/compare/v1.4.0...v1.5.0
|
|
331
347
|
[1.4.0]: https://github.com/asta-nguyen/openez-graph/compare/v1.3.1...v1.4.0
|
|
332
348
|
[1.3.1]: https://github.com/asta-nguyen/openez-graph/compare/v1.3.0...v1.3.1
|
|
333
349
|
[1.2.0]: https://github.com/asta-nguyen/openez-graph/compare/v1.1.0...v1.2.0
|