Releases: ardelperal/codegraph-vba
Releases · ardelperal/codegraph-vba
Release list
v1.15.0
[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
[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 --jsonexposes areindexReasonsarray so scripts can detect a missed update without parsing the prose warning. (#189) - VBA intrinsic constants such as
vbCrLf,vbTab,vbYesNo, andvbExclamation, plus DAO option flags such asdbFailOnError,dbSeeChanges,dbReadOnly, anddbAppendOnly, 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, andShell "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 TypeorByVal 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 statusoutput 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_kindliterals that appear in VBAunresolved_refs(unqualified-ident,calls,qualified-call,member-with,property-get,property-set,references) are now documented in one place alongside thedeclined-runtimesemantics and the v1.13.0 noise-ratio benchmarks on the00_VBA_TOOLKIT_BENCHcorpus, so audit scripts can filter actionable "missing callees" without re-reading the resolver source. Reference:docs/vba-reference-kinds.md. (#191)
v1.13.0
[1.13.0] - 2026-07-18
New Features
- VBA standard-library calls such as
CStr,CLng,Nz, andIsNullare now classified as runtime calls instead of missing user-defined callees. (#181)
Fixes
v1.12.0
[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_BENCHcorpus. SetCODEGRAPH_VBA_TIMING=2 codegraph indexto capture per-stage timings (preprocess / classifiers / walk) for every.clsand.bas, and compare across runs to spot slow files.docs/vba-extraction-perf.mdshows 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 ConstandPrivate Constsymbols now retain their declaredAstype alongside the value, with untyped constants reported asVariant. (#167)
v1.11.0
[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, andDeclaredeclaration is matched by an explicitVbaExtractionRulewith a stableid, plain-English description, and isolatedemitbody — no more giant inlineif/elsecascades 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_TIMINGenv var. SetCODEGRAPH_VBA_TIMING=1for a per-file block on stderr (preprocess / classifier / walk stages, plus the inner conditional-compilation lexer+parser), or=2to 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 existingcodegraph indexruns are unaffected. Useful for diagnosing why a particular.basor.clsis 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 ClassNamebinding in a form combined with a matchingm_X_<EventName>handler Sub is now connected to theRaiseEvent <EventName>site via a singleevent-handleredge, socodegraph_explorereaches 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/.clsfiles happen to live next to legacy.form.txt/.report.txtfiles (or test-manifest JSON from a different system) that you don't want expanded into the graph, setvba.dysflowExport: falsein your project'scodegraph.json; the Dysflow file types are then tracked as just afilenode, while the rest of the VBA pipeline keeps behaving exactly as before. The Dysflow extractors also now live behind aFrameworkResolveryou can discover alongside the other frameworks. (#154) - A spike report on using the
tree-sitter-vbnetgrammar 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
[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.OpenFormnow 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
[1.9.0] - 2026-07-15
Added
- Added
codegraph_uninitMCP tool (CLI subprocess wrapper aroundcodegraph uninit). Destructive; off by default; enable viaCODEGRAPH_MCP_TOOLS=explore,uninit.
New Features
- Added
codegraph_affectedMCP tool (CLI subprocess wrapper aroundcodegraph affected). Off by default; enable viaCODEGRAPH_MCP_TOOLS=explore,affected. (#127) - Added
codegraph_indexMCP tool (CLI subprocess wrapper aroundcodegraph index). Idempotent rebuild; off by default; enable viaCODEGRAPH_MCP_TOOLS=explore,index. (#129)
v1.8.0
[1.8.0] - 2026-07-14
New Features
- Added the opt-in
codegraph_initMCP lifecycle tool (CLI subprocess wrapper aroundcodegraph init). Off by default; enable viaCODEGRAPH_MCP_TOOLS=explore,init. (#121) - Added the opt-in
codegraph_syncMCP 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_queryMCP tool for structured CLI symbol queries. (#123)
v1.7.3
[1.7.3] - 2026-07-13
Fixes
- Orphan npm staging dirs from any previous
npm install -gfailure (including pre-fix-era upgrades) are now cleaned automatically on every install via apostinstallscript. No more EPERM noise on the next upgrade; no more manual cleanup of.codegraph-vba-<HASH>leftovers.