Skip to content

v0.2.0 — the code-graph release

Choose a tag to compare

@johnford2002 johnford2002 released this 06 Jul 02:42
· 44 commits to main since this release
d9f988a

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 persistent SqliteGraphStore;
    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-subprocess ParserPool. (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 Language dispatch 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 --watch file-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
    composing Store + 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) — and HnswVectorIndex, an approximate
    ANN backend, behind the existing Embedder/VectorIndex traits.
    (ADR 0013, ADR 0014; #97, #9)
  • Daemon substrate selection & health: env-driven fs|s3 store selection
    with a native S3 BlobStore, 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)
  • gonzalod container image — the release artifact, published on a v* tag.
    (#51, #65)

Changed

  • Store sync — true 3-way merge: AncestryStore retains each version's body
    by revision hash so sync can 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-aware merge() into a two-parent
    merge commit, surfacing unresolved records instead of erroring. (ADR 0017; #7)
  • S3 native conditional writes: If-Match/If-None-Match close 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