Releases: Fengrru/honestcode
Releases · Fengrru/honestcode
Release list
v0.2.0
Changed
- Project renamed to HonestCode — the package, CLI, and environment
variables were renamed for a distinct brand identity (no longer riding on
the "CodeGraph" family name):- PyPI package
repograph-honest-mcp→honestcode - Python module
repograph_honest→honestcode - CLI commands
repograph-honest/repograph-honest-mcp→
honestcode/honestcode-mcp - Environment variables
REPOGRAPH_*→HONESTCODE_* - Project binding directory
.repograph/→.honestcode/ - GitHub repository
Fengrru/repograph-honest-mcp→Fengrru/honestcode
- PyPI package
Fixed
- Pin
mcp>=1.6.0,<2.0—mcp2.0 removedmcp.server.fastmcp, breaking
the server import in fresh environments; the constraint keeps the 1.x API
until the code is adapted. - Align pre-commit hooks with ruff —
ruff-pre-commitbumped to
v0.16.1(fromv0.11.13), removing the stale UP038 rule drift that failed
the lint job. - Sandbox: best-effort resource limits — each
setrlimitcall in the
POSIXpreexec_fnis now guarded individually. Some platforms (e.g. macOS
CI runners) reject certain limits, and a single failure inside
preexec_fnkilled the child before it could run, breaking all sandbox
tests on macOS.
Added
- Persistent call graph (SQLite) —
graph/graph_store.pypersists the
project-wide definitions/references graph next to the symbol index, keyed by
content hashes of every source file.explore_call_graphand
find_dead_codenow read from disk instead of re-parsing on every call:
measured ~1 ms hot (was ~285 ms / ~340 ms). - FTS5 full-text search —
search_codenarrows regex scans to candidate
files via an FTS5 virtual table. explore_impacttool — blast radius of a symbol: transitively impacted
symbols/files via bidirectional call-graph BFS.affected_filestool — trace agit diffthrough the call graph to
find affected files and tests (CI-friendly).- File watcher — zero-dependency polling watcher with debounce;
index_project(watch=True), CLIwatch, andstop_watching. - Project binding & client install —
honestcode init/uninit/
install/root:.honestcode/binding plus auto-configuration of
Cursor, VS Code and Claude Code MCP configs. - Multi-language support (optional) —
honestcode[multi-language]
extras with tree-sitter symbol extraction for JS/TS/Go/Rust/Java. - External-repo benchmarks —
scripts/benchmark.pygains--repo,
--repos,--format markdown|json. - CLI (
honestcodecommand) with a 1:1 subcommand for every MCP tool,
JSON output, non-zero exit codes for CI. HONESTCODE_TOOLSenvironment variable now actually controls which
tools the MCP server exposes.- SSE transport —
honestcode-mcp --transport sse --host 0.0.0.0 --port 8000. - False-positive regression tests and
explore_call_graphcallees tests.
Fixed
scan_filefalse positives — defined-symbol set now includes
parameters/self/cls,from X import Y/import X as Ynames, loop
targets, walrus assignments, and the fullbuiltinsmodule.explore_call_graphcallees — reference contexts now use
module-qualified names so queries actually return callees.check_apidead branch,StructureExtractorno longer requires
tree-sitter-python, MCPindex_project(watch=True)now works,
affected_fileshonorsmax_depth.- Environment variables actually read —
HONESTCODE_TIMEOUT,
HONESTCODE_MEMORY_MB,HONESTCODE_INDEX_DIRnow honored. install --client cursorwrites the rightmcpServerskey.- Call-graph reference lines, true cache status reporting, multi-language
false positives, file-aware callee matching, Poetrydictdependencies,
sandbox secret scrubbing, SQLite connection leak, module-path matching,
tree-sittertype_identifiernodes, CLIexecute --known-names. - Dead code removed and
SandboxExecutor(timeout=0, ...)fixed.
Changed
- Dropped
tree-sitterandtree-sitter-pythonruntime dependencies — the
extractor parses with the standard-libraryastmodule. [project.scripts]now declares two entry points:honestcode-mcp(MCP
server) andhonestcode(CLI).- README architecture diagram and module layout updated.