Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 12 Apr 18:34

Added — codesteward-graph

  • Graph backend abstraction layer (engine/backends/): new GraphBackend ABC with a
    unified async interface for node/edge writes, named queries, and raw query passthrough.
    All tool functions are now backend-agnostic.
  • JanusGraph backend (backends/janusgraph.py): Apache 2.0 licensed alternative to Neo4j.
    Connects via Gremlin (Apache TinkerPop gremlinpython>=3.7). Named query templates
    (lexical, referential, semantic, dependency) reimplemented in Gremlin. Raw query
    passthrough uses Gremlin instead of Cypher.
  • GraphQLite backend (backends/graphqlite.py): embedded SQLite-based graph database
    (graphqlite>=0.4) — no server needed, ideal for local dev via uvx. Speaks Cypher
    (same templates as Neo4j). Database defaults to ~/.codesteward/graph.db; override with
    GRAPHQLITE_DB_PATH.
  • Neo4j backend extracted into backends/neo4j.py (same Cypher queries, now behind the
    GraphBackend interface).
  • get_backend() factory in backends/__init__.py dispatches by GRAPH_BACKEND value.
  • New optional dependency extras: janusgraph (gremlinpython) and graphqlite (graphqlite).

Added — codesteward-mcp

  • GRAPH_BACKEND environment variable to select the graph backend: neo4j (default),
    janusgraph, or graphqlite.
  • JANUSGRAPH_URL environment variable for the Gremlin Server WebSocket URL.
  • GRAPHQLITE_DB_PATH environment variable for the SQLite database file path.
  • gremlin raw query type in codebase_graph_query for JanusGraph raw Gremlin passthrough.
    Cypher/Gremlin mismatch is rejected with a clear error.
  • docker-compose.janusgraph.yml — drop-in JanusGraph stack (BerkeleyDB JE + Lucene,
    single-node, no external Cassandra/HBase required).
  • docker-compose.neo4j.yml — renamed from the previous docker-compose.yml for clarity.
  • Docker image now installs the janusgraph extra by default.
  • New optional dependency extras on codesteward-mcp: janusgraph and graphqlite
    (re-exported from codesteward-graph).
  • Global setup templates: Claude Code (templates/global-claude-code/) and OpenAI Codex
    (templates/global-codex/) with CLAUDE.md, skill file, settings snippet, and AGENTS.md.
  • codesteward-mcp setup subcommand — one-time global setup that auto-detects installed
    AI tools (Claude Code, Cursor, Cline, Codex CLI, Gemini CLI), registers the MCP server in
    each tool's global config, and merges workflow instructions into CLAUDE.md / AGENTS.md /
    GEMINI.md. Idempotent — safe to re-run. --uninstall reverses all changes cleanly.
    --backend flag accepts graphqlite (default), neo4j, or janusgraph.
  • Cline support: .clinerules template, Cline detection in setup command (cross-platform
    globalStorage path resolution), and Cline section in AGENT_SETUP.md with marketplace install
    instructions via llms-install.md.
  • docs/setup/ — per-tool setup guides (Claude Code, Cursor & Cline, Codex CLI, Gemini CLI,
    Windsurf / VS Code / Claude Desktop / Continue.dev, Docker + Neo4j / JanusGraph). Referenced
    from README.md Quick Start.

Changed — codesteward-mcp

  • GRAPH_BACKEND default changed from neo4j to auto — auto-detects the appropriate
    backend at startup: Neo4j if NEO4J_PASSWORD is set, JanusGraph if JANUSGRAPH_URL is
    non-default, otherwise GraphQLite. Existing deployments with explicit env vars are unaffected.
  • Tool response fields renamed: neo4j_connectedbackend_connected; new
    graph_backend field in graph_rebuild and graph_status responses.
  • _make_async_driver() replaced by _make_backend() — returns a GraphBackend instance
    (or None for stub mode) instead of a raw Neo4j driver.
  • GraphBuilder now accepts a backend parameter (the GraphBackend instance) instead of
    neo4j_driver.
  • Cypher query templates moved from inline constants in tools/graph.py into each backend's
    query_named() implementation.
  • Server instructions updated to describe all three backends and the gremlin query type.
  • README.md Quick Start rewritten: leads with uvx codesteward-mcp setup for zero-config
    global setup; manual setup simplified with GraphQLite as default.
  • llms-install.md rewritten for GraphQLite default and Cline compatibility.
  • All uvx args in templates and docs fixed to use the --from pattern
    (uvx --from "codesteward-mcp[graph-all,graphqlite]" codesteward-mcp) — the previous
    pattern failed on macOS where uvx cannot parse extras as a command name.
  • Global setup templates (templates/global-claude-code/, templates/global-codex/) updated
    to use GraphQLite as default backend.
  • License changed from BSD 3-Clause to Apache 2.0.

Docker image

docker pull ghcr.io/codesteward/codesteward-graph:0.4.0

Full setup guide: AGENT_SETUP.md