Skip to content

Releases: galimar/veridge

v0.7.5 — respect .gitignore, full no-arg help, hooks docs

Choose a tag to compare

@galimar galimar released this 28 Jun 10:12

Veridge 0.7.5

Indexing now respects .gitignore, the CLI is friendlier, and there's a documented way to
enforce Veridge usage in Claude Code. Engine/graph unchanged.

New

  • Indexing honours .gitignore. In a git repo, the file set comes from git itself
    (git ls-files), so .gitignore (including nested ones), .git/info/exclude and global
    excludes are all respected — no pattern parsing of our own. Veridge's built-in vendor/binary
    skips and an optional .veridgeignore still apply; outside git it falls back to a filesystem
    walk. On a real monorepo this dropped indexed files 513→476 (coverage, *.js.map,
    *.tsbuildinfo, .turbo, … no longer indexed). (Behaviour change: gitignored files are now
    excluded by default. A tracked file is always indexed; to index an untracked-but-ignored file,
    git add it.)
  • veridge with no command prints the full help instead of a terse argparse error; the help
    epilog documents the .gitignore/.veridgeignore exclusion behaviour.
  • Enforcement docs. docs/AGENT_PLAYBOOK.md now shows
    .claude/settings.json hooks that make the rules stick in Claude Code (the steering note is
    only a nudge): rebuild on edit, remind each turn, or hard-block edits while the index is stale.

Fixed

  • Non-ASCII filenames are no longer dropped. git ls-files -z emits raw UTF-8; decoding it
    with the locale codec (cp1252 on Windows) mojibaked accented names and silently excluded them
    from the graph and the freshness manifest. Git output is now read as bytes and os.fsdecode-d,
    round-tripping to the real on-disk name. Tracked dangling symlinks are kept too (parity with the
    filesystem walk). (Both caught by an adversarial review before release.)

v0.7.4 — veridge doctor (setup check)

Choose a tag to compare

@galimar galimar released this 24 Jun 15:39

Veridge 0.7.4

A setup diagnostic. No engine changes — the graph, queries and zero-dependency core are identical
to 0.7.3.

New

  • veridge doctor — a read-only check that answers "is Veridge wired up correctly here?" in
    one command: index built, the [mcp]/[treesitter] extras present, and the MCP server + steering
    note registered for Claude and Codex. It prints the exact next command for anything missing
    (e.g. run veridge integrate codex), and exits non-zero only when there's no index — so it's
    scriptable. --json for machine-readable output.

    It checks the project files that configure MCP, not the assistant's running client (Veridge
    can't see that), and reminds you that the veridge CLI is always the fallback — every MCP tool
    has a CLI twin. Handy onboarding for repos where Claude and Codex work together.

v0.7.3 — gate --summary/--json, in-place integrate refresh

Choose a tag to compare

@galimar galimar released this 20 Jun 14:21

Veridge 0.7.3

Integration & CI ergonomics. No engine changes — the graph, queries and zero-dependency core are
identical to 0.7.2.

New

  • veridge gate --summary — counts + verdict only, without the per-reference detail list.
    Handy for large repos and CI logs.
  • veridge gate --json — machine-readable result (ok, broken, stale, orphans, plus the
    full broken_refs list) for wiring gate into CI. Exit code is unchanged: 0 clean, 1 drift.

Fixed

  • veridge integrate refreshes the steering note in place. Re-running it on an already-wired
    project replaces the <!-- veridge:start -->…<!-- veridge:end --> block in CLAUDE.md/
    AGENTS.md with the current directive, instead of skipping because the marker was already
    present. Surrounding content is preserved and the operation stays idempotent. Previously,
    projects wired with an older version kept a stale note — now veridge integrate claude|codex
    brings them up to date.

The gate --summary mode comes from a real evaluation of Veridge on a large TypeScript monorepo.

v0.7.2 — agent playbook, prompts, richer steering note

Choose a tag to compare

@galimar galimar released this 20 Jun 13:46

Veridge 0.7.2

Onboarding & multi-agent guidance — no engine changes. The graph, queries and zero-dependency
core are identical to 0.7.1.

New

  • docs/AGENT_PLAYBOOK.md — the canonical protocol for AI coding agents (Claude Code and
    Codex) using Veridge: setting up a new project, evaluating-first then installing on an
    existing one, multi-agent use (Claude + Codex on one shared graph), and how to route
    feedback (project issues vs Veridge bugs/stats/fixes).
  • docs/PROMPTS.md — ready-to-paste human prompts for each flow, per assistant.
  • Richer steering note. veridge integrate claude|codex now writes the golden rules into
    CLAUDE.md/AGENTS.md — read-only, never a project dependency, rebuild after changes, don't
    send anything outside the repo on your own — plus a link to the playbook. Both assistants get the
    same etiquette so they hand off cleanly.
  • Evaluation-report issue template that keeps Veridge feedback separate from a project's own
    issues.

Existing integrations are unaffected; re-run veridge integrate … to refresh the note.

v0.7.1 — accurate doc references (HTML attrs + directory links)

Choose a tag to compare

@galimar galimar released this 19 Jun 19:59

Veridge 0.7.1

Two fixes to documentation-reference accuracy, so gate / health report real drift
instead of false positives. Deterministic, no behaviour change for code/import edges.

Fixed

  • HTML references come from href/src attributes, not the markdown/prose heuristics.
    A bundled doc page with inlined minified JS (e.g. t[s](i+1)) used to make the markdown
    link regex ](…) fire and record garbage like i+1 / "z","!!!!!" as broken references.
    HTML now uses a dedicated, extension-filtered attribute extractor (URLs dropped) — the noise
    is gone and genuine HTML links are resolved.
  • A link to a real project directory is no longer "broken." A markdown link whose target
    is an existing directory (e.g. [the web app](apps/web)) resolved to no file node and was
    reported broken; it is now treated as valid. Genuinely missing targets are still flagged.

No changes to the symbol / import / call graph; same zero-dependency core.

v0.7.0 — TS monorepo import resolution (ESM .js + workspace packages)

Choose a tag to compare

@galimar galimar released this 19 Jun 15:54

Veridge 0.7.0

Sharper JS/TS import resolution for real-world TypeScript monorepos. Deterministic and
regex/AST-based — works with or without the [treesitter] extra. Core stays zero-dependency.

New

  • TS/ESM .js.ts specifiers — NodeNext writes the runtime extension (import "./x.js"
    for an x.ts source); these now resolve to the TypeScript source instead of dropping.
  • Monorepo workspace packages — bare imports of in-tree packages (@scope/pkg,
    @scope/pkg/subpath) resolve via each package.json name to the package's source entry
    (src/index, index, …). npm / yarn / pnpm workspaces.

Impact

On a real TypeScript monorepo, file-import edges went 117 → 140 — the 23 new edges are
cross-package workspace imports that were previously invisible (0). impact on a shared core
package went from 2 to 53 dependents, so blast-radius queries now see across package boundaries.

Hardening

  • A package.json at the repo root resolves correctly (no more absolute /src/index candidates).
  • A malformed package.json is skipped, never aborting the index build.
  • Regression tests for both; 121 tests, ruff clean, dependency audit green.

v0.6.0 — Laravel + Vue + import aliases

Choose a tag to compare

@galimar galimar released this 16 Jun 16:01

Veridge 0.6.0

Framework- and front-end-aware indexing, all deterministic and behind the optional
[treesitter] extra. No new runtime dependencies in the core.

New

  • Laravel convention wiring — route files (routes/*.php) link to their controllers,
    and the EventServiceProvider links events to their listeners (resolved by X::class
    name to classes already in the graph). impact <Event> now surfaces its listeners.
  • PHP symbols + call graph via tree-sitter.
  • Vue SFCs — the <script> / <script setup lang="ts"> block is parsed as JS/TS.
  • JS/TS/Vue import aliases@/…, ~, and tsconfig/jsconfig paths resolve to
    real files, so cross-file import edges land where they belong.

Install

pip install "veridge[treesitter]"

118 tests, ruff clean.

Veridge v0.5.0

Choose a tag to compare

@galimar galimar released this 16 Jun 08:53

Veridge v0.5.0

Added

  • veridge integrate claude | codex — one command wires the MCP server into your assistant (project-local .mcp.json / .codex/config.toml) and adds a steering note (CLAUDE.md / AGENTS.md) so it prefers Veridge's ranked, budgeted queries over re-reading files. Idempotent; no global config touched.
  • Richer offline viewer — Barnes-Hut force layout, node size by PageRank, directed type-coloured edges, neighbourhood highlight on hover/select, colour/group by type / area / layer (with an optional cluster force), fit / re-layout, drag-to-pin. Still a hand-written, dependency-free canvas.

Fixed (correctness & accuracy)

  • call graph: a class no longer double-counts the calls inside its methods
  • budget: rows are costed as the JSON the assistant actually receives, so a token budget is honest
  • a single Graph.is_orphan, shared by the digest and the gate (no more divergence)
  • cached adjacency for repeated focus / impact; why BFS uses a deque; nanosecond mtime signatures

Docs

  • install from PyPI; a "Local, private, read-only" section (no network, no telemetry, nothing leaves your machine); a FAQ; an AGENTS.md.

Zero runtime dependencies in the core. 104 tests, ruff clean.

Install or upgrade: pip install -U veridge (or pip install "veridge[mcp,treesitter]").

Veridge v0.4.0

Choose a tag to compare

@galimar galimar released this 15 Jun 00:28

Veridge v0.4.0

Added — the open graph

  • Versioned schemagraph.json now carries a top-level schema_version, making it a stable public contract. Documented in docs/graph-format.md.
  • veridge export — emit the graph for other tools to build on:
    • jgf — JSON Graph Format (generic, tool-friendly),
    • dot — Graphviz (for rendering),
    • native — the canonical graph.json.

So an LLM-comprehension tool, agent, notebook or visualiser can consume Veridge's deterministic structural + ranking layer for free, and spend its own model only on semantics.

Zero runtime dependencies in the core. 93 tests, ruff clean.

Install: pip install -U veridge (or pip install veridge[treesitter]).