Skip to content

feat(pipeline): version tag on indexed nodes + diff_versions MCP tool#1064

Open
isc-tdyar wants to merge 1 commit into
DeusData:mainfrom
isc-tdyar:feat/version-diff
Open

feat(pipeline): version tag on indexed nodes + diff_versions MCP tool#1064
isc-tdyar wants to merge 1 commit into
DeusData:mainfrom
isc-tdyar:feat/version-diff

Conversation

@isc-tdyar

Copy link
Copy Markdown
Contributor

Adds version tagging on all indexed nodes and a diff_versions MCP tool for cross-version change detection.

Closes #1062. Depends on #467 (ObjectScript language support) merging first — the Storage node inline-JSON change targets ObjectScript Storage nodes.

New API

cbm_pipeline_set_version(cbm_pipeline_t *p, const char *version_tag)

Sets a version label (e.g. "28.0") on a pipeline instance. When set, the tag is written as a "version" property on every node. Also bypasses the incremental-index path so versioned indexing always does a full pass — the graph accumulates both versions side-by-side.

index_repository tool: new version parameter

{ "repo_path": "/repos/myproject-28.0", "version": "28.0" }

When omitted, a version-like segment (digits and dots) is auto-derived from the repo path. No behavior change for projects that don't use versioning.

diff_versions MCP tool

{
  "project":      "myproject",
  "from_version": "28.0",
  "to_version":   "30.0",
  "label":        "Class"
}

Returns {"added": [...], "removed": [...], "from_version": "28.0", "to_version": "30.0"}. Default label Class, limit 500 per side.

Files changed

  • src/pipeline/pipeline.hcbm_pipeline_set_version() declaration
  • src/pipeline/pipeline_internal.hversion_tag field on ctx
  • src/pipeline/pipeline.c — setter, free, skip-incremental guard, ctx wiring
  • src/pipeline/pass_definitions.cversion property on all nodes; Storage nodes with structured docstring have fields merged inline as raw JSON rather than escaped
  • src/pipeline/pass_parallel.c — same changes mirrored; version_tag threaded through parallel worker
  • src/mcp/mcp.ccbm_derive_version_from_path() helper, version param on index_repository, diff_versions tool registered and handler implemented

…ntifier node types

Signed-off-by: Thomas Dyar <tdyar@intersystems.com>
@isc-tdyar isc-tdyar requested a review from DeusData as a code owner July 12, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Version tags on indexed nodes + diff_versions tool for cross-version change detection

1 participant