v0.2.0 — the code-graph release
The code-graph release. Gonzalo grows a full code-graph capability —
tree-sitter parsing across nine languages, content-addressed slices with
two-level keying, a persistent SQLite GraphStore, and structural queries over
both the daemon and an MCP server — alongside real semantic search (a local
Candle embedder feeding an approximate ANN index over per-kind-chunked
knowledge), namespace-scoped daemon auth, and correct content-aware 3-way merges
on both store-sync and git pull. Distributed as the gonzalod container image.
Added
- Code-graph capability (EPIC A–K): tree-sitter parsing into path-agnostic,
content-addressed slices with two-level keying (content+grammar hash for
storage, per-view manifest for resolution); a persistentSqliteGraphStore;
assembly-time name resolution; and structural queries — definitions,
references, callers, callees, transitive impact, and cross-view diff — served
over the daemon and a dedicated code-graph MCP server. Parsing is
crash-isolated behind a worker-subprocessParserPool. (ADR 0012;
#48, #50, #54, #56, #61, #64, #66, #70, #71, #74, #77, #88, #89, #90, #10, #30) - Language breadth for the code graph — a
Languagedispatch with grammars
for Rust, Python, JavaScript/TypeScript/TSX, Go, Java, C#, C, and C++. (#79,
#81, #83, #84, #85, #86) - CLI indexing (
gonzalo index): index a source tree into a code-graph view,
git-diff-driven incremental re-sync, a--watchfile-watcher for live
re-index, and opt-in mark-sweep GC of unreferenced slices. (#74, #93, #94,
#100, #104) - Knowledge store (
gonzalo-knowledge): a "what do we know about X" surface
composingStore+VectorIndex+Embedder, a vector⋈graph join
(semantically similar and structurally near), and per-kind chunking so
long records retrieve at turn/section granularity. (ADR 0011; #30, #29) - Real semantic vector search:
gonzalo-embed— a local CPU sentence
embedder (Candle + all-MiniLM-L6-v2) — andHnswVectorIndex, an approximate
ANN backend, behind the existingEmbedder/VectorIndextraits.
(ADR 0013, ADR 0014; #97, #9) - Daemon substrate selection & health: env-driven
fs|s3store selection
with a native S3BlobStore, and unauthenticated/healthz+/readyz
probes for k8s. (#62, #63) - Namespace-scoped daemon auth: a token→principal model with per-namespace
read/write scoping enforced on both transports, plus unforgeable author
stamping. (ADR 0015; #11) gonzalodcontainer image — the release artifact, published on av*tag.
(#51, #65)
Changed
- Store sync — true 3-way merge:
AncestryStoreretains each version's body
by revision hash sosynccan merge divergent structured records against their
real common ancestor instead of an empty base. (ADR 0016; #2) - Git pull — content-aware non-fast-forward merge: a diverged pull now
reconciles per-record through gonzalo's class-awaremerge()into a two-parent
merge commit, surfacing unresolved records instead of erroring. (ADR 0017; #7) - S3 native conditional writes:
If-Match/If-None-Matchclose the
optimistic-concurrency TOCTOU window in the S3 substrate. (#5)
Fixed
- CI: serialize GitHub Pages deploys with a concurrency group. (#107)
Internal
- ADRs 0010–0017 added (ticket capability layer, two-level code-graph keying,
local embedder, ANN backend, namespace auth, stored-ancestry 3-way merge,
content-aware non-FF pull). - Docs: an mdBook guide publishing the ADR log, changelog, and a synthesized
Guiding Principles & Invariants page; README status badges. (#103, #38)
Container: ghcr.io/caliban-ai/gonzalo:v0.2.0
Full changelog: v0.1.0...v0.2.0