Skip to content

Releases: ctxrs/graf

Graf 0.6.0

Choose a tag to compare

@willsmanley willsmanley released this 22 Sep 16:36
34f1ab4

Graf 0.6 makes large repositories much faster to search and update.

  • On the full VS Code repository, Graf searches in 13 ms and updates an unchanged graph in 880 ms.
  • The new compact storage layout cuts database and journal growth while preserving the richer graph.
  • Incremental updates now reuse prepared SQLite state and touch only changed files.
  • Source changes during an update are detected before the new generation is published.
  • The README now has a shorter setup, a plain-English Graphify comparison, and a one-command migration flow.

Existing databases upgrade automatically on the next successful write. Install or upgrade with the command in the README.

Graf 0.5.0

Choose a tag to compare

@willsmanley willsmanley released this 21 Sep 15:36
42fc268

Graf 0.5 improves incremental indexing, source-grounded navigation and persistent graph storage.

  • Resolve more local callable values. In JavaScript and TypeScript, follow ordinary factories with one final return of a known, unchanged function. Keep declaration links separate when the runtime implementation is unknown.
  • Use scoped qualified-name endings to find symbols while retaining explicit errors for genuinely ambiguous identities.
  • Update affected bindings transactionally with less duplicated storage and repeated SQL work. Ordinary queries read the saved index without rebuilding it.
  • Reclaim reusable database pages explicitly with graf compact; it does not scan source files or change graph contents.
  • Analyze communities with native Leiden by default, retain --community-algorithm louvain, and use --community-starts 4 for additional modularity search within the shared work budget. More search costs more work and does not guarantee meaningful groups or convergence.

Existing indexes: Graf 0.5 reads older indexes. A successful refresh upgrades storage atomically; afterward use Graf 0.5 or later to open that database. Portable JSON snapshots remain compatible. Compaction is explicit, and an upgrade can leave reusable space until it runs.

Install or upgrade using the verified installer. See the usage guide for supported cases, limits and commands.

Graf 0.4.0

Choose a tag to compare

@willsmanley willsmanley released this 20 Sep 15:02
7ea4463

Graf 0.4.0 adds explicit local learning workflows, broader source navigation, and offline graph exploration.

  • Save answers with save-result, generate lessons with reflect, and opt into memory annotations in CLI, MCP, and exports. Native source hashes distinguish verified observations from stale or unverified records.
  • Inspect GitHub pull requests with prs; GitHub access occurs only when requested. Optional project tool hooks suggest graph navigation while allowing ordinary source reads.
  • Discover supported literal SwiftPM targets automatically, resolve more explicit Python/TypeScript/Go/Rust relationships, and retain uncertainty for ambiguous or dynamic calls.
  • Select Leiden analysis alongside the default Louvain algorithm, preserve imported community identities, and explore offline HTML graphs with clickable neighbors and group outlines.
  • Detect and configure semantic providers explicitly, with bounded usage, recovery, and usage receipts.

See the usage guide for commands, supported cases, and limits. Graphify snapshots can be imported with graf switch graphify; Graf has its own CLI and is not a Python API replacement.

Re-run the installer to upgrade. Downloads cover Linux x64/ARM64, macOS Intel/Apple Silicon, and Windows x64, with signed manifests, per-platform SBOMs, and license notices.

Graf 0.3.0

Choose a tag to compare

@willsmanley willsmanley released this 17 Sep 19:25

Graf 0.3 adds native language and document indexing, richer graph navigation, and offline analysis while keeping ordinary queries on the saved SQLite graph.

  • Index code with explicit project context, including local imports, package relationships, templates, and source evidence. Unsupported or ambiguous targets remain visible as unresolved references.
  • Add Markdown, PDF, Office, and other documents; opt into media converters and model enrichment with explicit budgets and caches.
  • Search, trace paths and impact, analyze communities, save labels, and export offline HTML, GraphML, Cypher, Mermaid, SVG, Markdown, Canvas, or Obsidian notes.
  • Merge project snapshots, query a saved global graph, and connect agents through reversible setup and stdio or HTTP MCP.
  • Migrate an existing Graphify project with graf switch graphify. Graphify snapshots and selected tools are supported; Python internals and compiler-level analysis are outside this compatibility contract.

See the usage guide for language limits, provider configuration, and examples.

Install on macOS/Linux:

curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | sh

Install on Windows:

irm https://raw.githubusercontent.com/ctxrs/graf/main/install.ps1 | iex

Downloads are gzip archives containing the signed executables. Follow the download verification guide for manual extraction and verification. Every platform includes a dependency inventory and third-party notices; the signed manifest authenticates both compressed and executable bytes.

Graf 0.2.0

Choose a tag to compare

@willsmanley willsmanley released this 17 Sep 05:41
c752325

Graf 0.2 adds a one-command switch from a Graphify snapshot to Graf's persistent graph and MCP server:

curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | sh -s -- --from graphify

Already installed? Run graf switch graphify in your project, then restart your agent client. Graf imports the snapshot, changes the selected MCP connection, and verifies it over MCP. It preserves unrelated settings and the original graph. graf switch --undo restores the saved configuration and refuses to overwrite later edits. Global configurations require explicit --config selection.

Graphify export imports now preserve logical direction and parallel facts, including raw no-cluster exports. Use graf --db imported.db import graphify graphify-out/graph.json --format export for an import without changing MCP configuration. The default import mode retains Graf 0.1's strict node-link interpretation. Unreadable or invalid ignore rules now stop native indexing updates instead of silently dropping exclusions; the previous graph generation remains intact.

Graf has its own CLI and MCP tools. Keep Graphify for generating graphs from languages and documents Graf does not index natively; native Graf indexing currently covers Python. Migration does not refresh snapshots or remove Graphify's generation tools.

Downloads cover Linux x64/ARM64, macOS Intel/Apple Silicon, and Windows x64. Installers verify the signed release manifest and asset hashes. macOS binaries are signed and notarized; Windows binaries are Authenticode signed. Target-specific SBOMs and third-party notices accompany the binaries.

Validation passed 85 Rust tests on current stable and Rust 1.90, 17 additional Graphify regressions, and 16 acceptance cases on each of the five shipping platforms. Native checks include migration, configuration permissions, Unicode/deep paths, and undo.

Graf 0.1.0

Choose a tag to compare

@willsmanley willsmanley released this 17 Sep 03:26
c619b43

Graf's first release provides a persistent local code graph, written in Rust.

Install the latest Graf release on Linux or macOS:

curl -fsSL https://raw.githubusercontent.com/ctxrs/graf/main/install.sh | sh

On Windows x64, in PowerShell:

irm https://raw.githubusercontent.com/ctxrs/graf/main/install.ps1 | iex

The installers verify the signed release manifest, executable and license notices. See installation options for prerequisites, PATH setup, version selection and custom directories.

  • Index Python definitions, imports and call sites; update only changed files.
  • Find symbols, inspect callers/callees, trace impact and follow paths through the graph.
  • Import supported Graphify node-link JSON snapshots.
  • Use the same read-only query engine through the CLI or seven MCP tools.

Graphs and search indexes live in SQLite. Queries do not reload graph JSON or rebuild the graph. Indexing and querying need no API keys, model calls or background service.

Download the executable for Linux x64/ARM64, macOS Intel/Apple Silicon or Windows x64 below. Each has an SBOM and license notices. See download verification and installation for platform requirements, signatures and checksums.

Native indexing currently supports Python. Call resolution is conservative, so dynamic or ambiguous calls may remain unresolved. Graphify imports are snapshots; Graf has its own CLI and MCP API. See the README for the supported behavior and limitations.