Skip to content

Releases: ardelperal/codegraph-vba

v1.15.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 17:56

[1.15.0] - 2026-07-20

New Features

  • External integrations now have a stable headless CLI contract and a generated index-schema reference, making it safer to build tools on CodeGraph without depending on undocumented internals. (#200)

v1.14.0

Choose a tag to compare

@github-actions github-actions released this 20 Jul 07:12

[1.14.0] - 2026-07-20

Fixes

  • Projects built with an older engine are now correctly flagged for re-indexing instead of silently going stale, and codegraph status --json exposes a reindexReasons array so scripts can detect a missed update without parsing the prose warning. (#189)
  • VBA intrinsic constants such as vbCrLf, vbTab, vbYesNo, and vbExclamation, plus DAO option flags such as dbFailOnError, dbSeeChanges, dbReadOnly, and dbAppendOnly, no longer appear as failed references when they appear as bare identifiers; user-defined symbols that happen to share one of these names still resolve normally. (#188)
  • VBA statement-form built-in calls such as MsgBox "…", DoEvents, and Shell "calc.exe" are now classified as runtime calls instead of failing, while user-defined symbols that happen to share a built-in name still resolve normally. (#192)
  • VBA array parameters declared with ByRef name() As Type or ByVal name() As Type, including continued declarations, no longer flag indexed accesses inside their procedure as unresolved calls, while same-named genuine calls elsewhere still surface normally. (#190)
  • The human-readable codegraph status output no longer reports an index as healthy when a re-index is recommended; the clean-health sentence now reads "No source changes detected" and the re-index hint names the structured reasons, matching the existing JSON contract. (#193)

Documentation

  • The seven reference_kind literals that appear in VBA unresolved_refs (unqualified-ident, calls, qualified-call, member-with, property-get, property-set, references) are now documented in one place alongside the declined-runtime semantics and the v1.13.0 noise-ratio benchmarks on the 00_VBA_TOOLKIT_BENCH corpus, so audit scripts can filter actionable "missing callees" without re-reading the resolver source. Reference: docs/vba-reference-kinds.md. (#191)

v1.13.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 19:23
2932bfa

[1.13.0] - 2026-07-18

New Features

  • VBA standard-library calls such as CStr, CLng, Nz, and IsNull are now classified as runtime calls instead of missing user-defined callees. (#181)

Fixes

  • VBA control-flow keywords are no longer emitted as unresolved unqualified identifiers. (#179)
  • Unresolved VBA function and procedure calls now use the single canonical calls reference kind. (#180)
  • VBA array index expressions such as values(index) are no longer mistaken for function calls. (#182)

v1.12.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 12:04

[1.12.0] - 2026-07-18

New Features

  • A new codegraph stats vba-rules [--json] command exposes the VBA extractor's available rules for debugging and automated health checks. (#168)
  • VBA extraction rules can now explicitly inspect masked source, original source, or both while preserving procedure, type-block, and enum-block boundaries. (#165)
  • The VBA extraction pipeline now has a published performance report on the real 00_VBA_TOOLKIT_BENCH corpus. Set CODEGRAPH_VBA_TIMING=2 codegraph index to capture per-stage timings (preprocess / classifiers / walk) for every .cls and .bas, and compare across runs to spot slow files. docs/vba-extraction-perf.md shows the medians across three runs for the named fixtures, a corpus-level breakdown by stage, and an honest note on the v1.6.2 baseline. (#166)

Fixes

  • VBA extraction now refuses to load if any per-concern rule table is empty, so an accidentally-emptied classifier fails the import instead of silently dropping an entire symbol family. (#164)
  • VBA Public Const and Private Const symbols now retain their declared As type alongside the value, with untyped constants reported as Variant. (#167)

v1.11.0

Choose a tag to compare

@github-actions github-actions released this 18 Jul 05:32

[1.11.0] - 2026-07-18

New Features

  • VBA extraction is now driven by a declarative rule table. Every Sub / Function / Property, Implements, Dim, Const, Enum, Event, Type, and Declare declaration is matched by an explicit VbaExtractionRule with a stable id, plain-English description, and isolated emit body — no more giant inline if/else cascades inside the per-concern sweepers. The new test suite enforces the table shape and a non-empty invariant per concern, so an accidentally-emptied rule set fails loudly at module load instead of silently dropping a whole symbol family. Pure structural refactor: zero behavior change, the full existing VBA test suite passes unchanged. (#153)
  • The VBA extraction pipeline now reports per-stage wall-clock timing on demand, gated by the CODEGRAPH_VBA_TIMING env var. Set CODEGRAPH_VBA_TIMING=1 for a per-file block on stderr (preprocess / classifier / walk stages, plus the inner conditional-compilation lexer+parser), or =2 to add a per-process aggregate across the whole index run. With the env var unset the default path stays at zero overhead — no Map allocations, no Map writes — so existing codegraph index runs are unaffected. Useful for diagnosing why a particular .bas or .cls is slow to extract, or for tuning the extraction budget on a large Access project. (#156)
  • VBA event-handler relationships are now materialized in the graph at index time. A WithEvents m_X As ClassName binding in a form combined with a matching m_X_<EventName> handler Sub is now connected to the RaiseEvent <EventName> site via a single event-handler edge, so codegraph_explore reaches the handler in one call instead of the three-hop walk the vba-event-tracer skill used to repeat on every query. Projects with no WithEvents bindings are unaffected; the FORMS-* test suite reports zero new edges. (#150)
  • The Dysflow-specific VBA extractors — form/report SaveAsText, test manifests, and test sequences — are now opt-out-able. If your .bas/.cls files happen to live next to legacy .form.txt/.report.txt files (or test-manifest JSON from a different system) that you don't want expanded into the graph, set vba.dysflowExport: false in your project's codegraph.json; the Dysflow file types are then tracked as just a file node, while the rest of the VBA pipeline keeps behaving exactly as before. The Dysflow extractors also now live behind a FrameworkResolver you can discover alongside the other frameworks. (#154)
  • A spike report on using the tree-sitter-vbnet grammar as a primary parser for VBA is now available. It classifies the per-construct failure modes of a representative Dysflow-exported corpus against the grammar (probes cover procedures, classes, Dim, Implements, WithEvents, RaiseEvent, DoCmd, With, control flow, and string-literal SQL), and includes a go/no-go recommendation for the next phase. (#155)

v1.10.0

Choose a tag to compare

@github-actions github-actions released this 16 Jul 17:41

[1.10.0] - 2026-07-16

New Features

  • Code that reads or writes form controls via Me. now shows up in control impact analysis. (#140)
  • Form events that call a function directly (=MyFunction()) are now part of the graph, so those flows no longer dead-end. (#137)
  • Subforms now link to the forms they embed, so parent-to-subform flows and "who embeds this form" queries work. (#136)
  • Access form controls now link to the table columns they display, so column-rename impact reaches the control level. (#135)
  • Access form and report controls now expose their section membership and direct layout containment, making UI structure available to graph queries. (#134)

Fixes

  • Helper Subs with underscores in form code-behind no longer appear as phantom form controls. (#139)
  • Following DoCmd.OpenForm now reaches the opened form's code instead of stopping at a placeholder. (#138)
  • Access controls with long property blocks are now indexed reliably, and report layouts use the same dedicated kind as opened-report references. (#134)

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 09:32

[1.9.0] - 2026-07-15

Added

  • Added codegraph_uninit MCP tool (CLI subprocess wrapper around codegraph uninit). Destructive; off by default; enable via CODEGRAPH_MCP_TOOLS=explore,uninit.

New Features

  • Added codegraph_affected MCP tool (CLI subprocess wrapper around codegraph affected). Off by default; enable via CODEGRAPH_MCP_TOOLS=explore,affected. (#127)
  • Added codegraph_index MCP tool (CLI subprocess wrapper around codegraph index). Idempotent rebuild; off by default; enable via CODEGRAPH_MCP_TOOLS=explore,index. (#129)

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 20:31

[1.8.0] - 2026-07-14

New Features

  • Added the opt-in codegraph_init MCP lifecycle tool (CLI subprocess wrapper around codegraph init). Off by default; enable via CODEGRAPH_MCP_TOOLS=explore,init. (#121)
  • Added the opt-in codegraph_sync MCP lifecycle tool for synchronizing a project's full index, including project selection, quiet mode, process output, and exit-code reporting. (#122)
  • Added the opt-in, read-only codegraph_query MCP tool for structured CLI symbol queries. (#123)

v1.7.3

Choose a tag to compare

@github-actions github-actions released this 13 Jul 17:17

[1.7.3] - 2026-07-13

Fixes

  • Orphan npm staging dirs from any previous npm install -g failure (including pre-fix-era upgrades) are now cleaned automatically on every install via a postinstall script. No more EPERM noise on the next upgrade; no more manual cleanup of .codegraph-vba-<HASH> leftovers.

v1.7.2

Choose a tag to compare

@github-actions github-actions released this 13 Jul 16:59

[Unreleased]