Skip to content

Commit 51c829e

Browse files
authored
Merge pull request #13 from optave/release/v1.4.0
release: v1.4.0 — Phase 2 Foundation Hardening
2 parents b2c533f + 2e4193c commit 51c829e

File tree

5 files changed

+62
-25
lines changed

5 files changed

+62
-25
lines changed

CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4+
5+
## [1.4.0](https://github.com/optave/codegraph/compare/v1.3.0...v1.4.0) (2026-02-22)
6+
7+
8+
### Features
9+
10+
* **config:** add apiKeyCommand for secure credential resolution ([f3ab237](https://github.com/optave/codegraph/commit/f3ab23790369df00b50c75ae7c3b6bba47fde2c6))
11+
* **mcp:** expand MCP server from 5 to 11 tools ([510dd74](https://github.com/optave/codegraph/commit/510dd74ed14d455e50aa3166fa28cf90d05925dd))
12+
13+
14+
### Bug Fixes
15+
16+
* add napi-rs package.json for build-native workflow ([b9d7e0e](https://github.com/optave/codegraph/commit/b9d7e0e58dcf3e2a54645d87fdf1a5a90c7c7b98))
17+
* align native platform package versions with root ([93c9c4b](https://github.com/optave/codegraph/commit/93c9c4b31c7c01471c37277067fd095214a643b1))
18+
* **ci:** add --provenance to platform package publishes for OIDC auth ([bc595f7](https://github.com/optave/codegraph/commit/bc595f78ab35fe5db3a00711977ab2b963c4f3ef))
19+
* **ci:** add allowed_tools to Claude Code review action ([eb5d9f2](https://github.com/optave/codegraph/commit/eb5d9f270b446c2d2c72bb2ee7ffd0433463c720))
20+
* **ci:** grant write permissions to Claude workflows for PR comments ([aded63c](https://github.com/optave/codegraph/commit/aded63c19375ede0037ac62736c6049f6b77daba))
21+
* **ci:** prefix platform package path with ./ for npm 10 compatibility ([06fa212](https://github.com/optave/codegraph/commit/06fa212bba55b11d77e689c8d5e91faca4eef5a4))
22+
* **ci:** skip version bump when override matches current version ([df19486](https://github.com/optave/codegraph/commit/df19486ff30724791c71e49b130417e30281b659))
23+
* handle null baseUrl in native alias conversion, skip flaky native cache tests ([d0077e1](https://github.com/optave/codegraph/commit/d0077e175446fc27619b767d8fcf06b91d3a042c))
24+
* repair build-native workflow ([67d7650](https://github.com/optave/codegraph/commit/67d7650235e6291b002224a31dfc765df666a36a))
25+
* reset lockfile before npm version to avoid dirty-tree error ([6f0a40a](https://github.com/optave/codegraph/commit/6f0a40a48cbb589e672ea149ee5f920fb258e697))
26+
* **test:** make normalizePath test cross-platform ([36fa9cf](https://github.com/optave/codegraph/commit/36fa9cfa3a084af173c85fca47c5f5cd2ed3d700))
27+
* **test:** skip native engine parity tests for known Rust gaps ([7d89cd9](https://github.com/optave/codegraph/commit/7d89cd957c7cda937c4bc8a1e9d389e76807ceb2))
28+
29+
30+
### Refactoring
31+
32+
* add LANGUAGE_REGISTRY for declarative parser dispatch ([cb08bb5](https://github.com/optave/codegraph/commit/cb08bb58adac8d7aa4d5fb6ea463ce6d3dba8007))

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ const { results: fused } = await multiSearchData(
467467
See **[ROADMAP.md](ROADMAP.md)** for the full development roadmap. Current plan:
468468

469469
1. ~~**Rust Core**~~**Complete** (v1.3.0) — native tree-sitter parsing via napi-rs, parallel multi-core parsing, incremental re-parsing, import resolution & cycle detection in Rust
470-
2. **Foundation Hardening**~~parser registry~~, complete MCP server, test coverage, enhanced config
470+
2. ~~**Foundation Hardening**~~**Complete** (v1.4.0) — parser registry, 11-tool MCP server, test coverage 62%→75%, `apiKeyCommand` secret resolution
471471
3. **Intelligent Embeddings** — LLM-generated descriptions, hybrid search
472472
4. **Natural Language Queries**`codegraph ask` command, conversational sessions
473473
5. **Expanded Language Support** — 8 new languages (12 → 20)

ROADMAP.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Codegraph Roadmap
22

3-
> **Current version:** 1.3.0 | **Status:** Active development | **Updated:** February 2026
3+
> **Current version:** 1.4.0 | **Status:** Active development | **Updated:** February 2026
44
55
Codegraph is a strong local-first code graph CLI. This roadmap describes planned improvements across seven phases — closing gaps with commercial code intelligence platforms while preserving codegraph's core strengths: fully local, open source, zero cloud dependency by default.
66

@@ -13,7 +13,7 @@ Codegraph is a strong local-first code graph CLI. This roadmap describes planned
1313
| Phase | Theme | Key Deliverables | Status |
1414
|-------|-------|-----------------|--------|
1515
| [**1**](#phase-1--rust-core) | Rust Core | Rust parsing engine via napi-rs, parallel parsing, incremental tree-sitter, JS orchestration layer | **Complete** (v1.3.0) |
16-
| [**2**](#phase-2--foundation-hardening) | Foundation Hardening | Parser registry, complete MCP, test coverage, enhanced config | Planned |
16+
| [**2**](#phase-2--foundation-hardening) | Foundation Hardening | Parser registry, complete MCP, test coverage, enhanced config | **Complete** (v1.4.0) |
1717
| [**3**](#phase-3--intelligent-embeddings) | Intelligent Embeddings | LLM-generated descriptions, hybrid search | Planned |
1818
| [**4**](#phase-4--natural-language-queries) | Natural Language Queries | `ask` command, conversational sessions | Planned |
1919
| [**5**](#phase-5--expanded-language-support) | Expanded Language Support | 8 new languages (12 → 20), parser utilities | Planned |
@@ -101,7 +101,9 @@ Ensure the transition is seamless.
101101

102102
---
103103

104-
## Phase 2 — Foundation Hardening
104+
## Phase 2 — Foundation Hardening ✅
105+
106+
> **Status:** Complete — shipped in v1.4.0
105107
106108
**Goal:** Fix structural issues that make subsequent phases harder.
107109

@@ -119,32 +121,33 @@ Replace scattered parser init/selection logic with a single declarative registry
119121

120122
**Affected files:** `src/parser.js`, `src/constants.js`
121123

122-
### 2.2 — Complete MCP Server
124+
### 2.2 — Complete MCP Server
123125

124126
Expose all CLI capabilities through MCP, going from 5 → 11 tools.
125127

126128
| New tool | Wraps | Description |
127129
|----------|-------|-------------|
128-
| `fn_deps` | `fnDepsData` | Function-level dependency chain |
129-
| `fn_impact` | `fnImpactData` | Function-level blast radius |
130-
| `diff_impact` | `diffImpactData` | Git diff impact analysis |
131-
| `semantic_search` | `searchData` | Embedding-powered search |
132-
| `export_graph` | export functions | DOT/Mermaid/JSON export |
133-
| `list_functions` || List functions in a file or by pattern |
130+
| `fn_deps` | `fnDepsData` | Function-level dependency chain |
131+
| `fn_impact` | `fnImpactData` | Function-level blast radius |
132+
| `diff_impact` | `diffImpactData` | Git diff impact analysis |
133+
| `semantic_search` | `searchData` | Embedding-powered search |
134+
| `export_graph` | export functions | DOT/Mermaid/JSON export |
135+
| `list_functions` || List functions in a file or by pattern |
134136

135137
**Affected files:** `src/mcp.js`
136138

137-
### 2.3 — Test Coverage Gaps
139+
### 2.3 — Test Coverage Gaps
138140

139141
Add tests for currently untested modules.
140142

141143
| New test file | Coverage |
142144
|---------------|----------|
143-
| `tests/mcp/mcp.test.js` | All MCP tools (mock stdio transport) |
144-
| `tests/config/config.test.js` | Config loading, defaults, invalid configs |
145-
| `tests/integration/cli.test.js` | End-to-end CLI smoke tests |
145+
|`tests/unit/mcp.test.js` | All MCP tools (mock stdio transport) |
146+
|`tests/unit/config.test.js` | Config loading, defaults, env overrides, apiKeyCommand |
147+
|`tests/integration/cli.test.js` | End-to-end CLI smoke tests |
148+
|`tests/unit/*.test.js` | Unit tests for 8 core modules (coverage 62% → 75%) |
146149

147-
### 2.4 — Enhanced Configuration
150+
### 2.4 — Enhanced Configuration
148151

149152
New configuration options in `.codegraphrc.json`:
150153

@@ -155,14 +158,16 @@ New configuration options in `.codegraphrc.json`:
155158
"provider": "openai",
156159
"model": "gpt-4o-mini",
157160
"baseUrl": null,
158-
"apiKey": null
161+
"apiKey": null,
162+
"apiKeyCommand": "op read op://vault/openai/api-key"
159163
},
160164
"search": { "defaultMinScore": 0.2, "rrfK": 60, "topK": 15 },
161165
"ci": { "failOnCycles": false, "impactThreshold": null }
162166
}
163167
```
164168

165-
Environment variable fallbacks: `CODEGRAPH_LLM_PROVIDER`, `CODEGRAPH_LLM_API_KEY`, `CODEGRAPH_LLM_MODEL`
169+
- ✅ Environment variable fallbacks: `CODEGRAPH_LLM_PROVIDER`, `CODEGRAPH_LLM_API_KEY`, `CODEGRAPH_LLM_MODEL`
170+
-`apiKeyCommand` — shell out to external secret managers (1Password, Bitwarden, Vault, pass, macOS Keychain) at runtime via `execFileSync` (no shell injection). Priority: command output > env var > file config > defaults. Graceful fallback on failure.
166171

167172
**Affected files:** `src/config.js`
168173

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@optave/codegraph",
3-
"version": "1.3.0",
3+
"version": "1.4.0",
44
"description": "Local code graph CLI — parse codebases with tree-sitter, build dependency graphs, query them",
55
"type": "module",
66
"main": "src/index.js",
@@ -61,10 +61,10 @@
6161
"optionalDependencies": {
6262
"@huggingface/transformers": "^3.8.1",
6363
"@modelcontextprotocol/sdk": "^1.0.0",
64-
"@optave/codegraph-darwin-arm64": "1.3.0",
65-
"@optave/codegraph-darwin-x64": "1.3.0",
66-
"@optave/codegraph-linux-x64-gnu": "1.3.0",
67-
"@optave/codegraph-win32-x64-msvc": "1.3.0"
64+
"@optave/codegraph-darwin-arm64": "1.4.0",
65+
"@optave/codegraph-darwin-x64": "1.4.0",
66+
"@optave/codegraph-linux-x64-gnu": "1.4.0",
67+
"@optave/codegraph-win32-x64-msvc": "1.4.0"
6868
},
6969
"devDependencies": {
7070
"@biomejs/biome": "^2.4.4",

0 commit comments

Comments
 (0)