Skip to content

chore(release): version packages v2.9.0#347

Merged
1pxone merged 1 commit into
mainfrom
changeset-release/main
Jul 7, 2026
Merged

chore(release): version packages v2.9.0#347
1pxone merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@rushdb/javascript-sdk@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

@rushdb/mcp-server@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

Patch Changes

  • Updated dependencies [d05e56c]
    • @rushdb/javascript-sdk@2.9.0

@rushdb/skills@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

rushdb-docs@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

rushdb-core@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

rushdb-dashboard@2.9.0

Minor Changes

  • d05e56c: Add variable-length (multihop) traversal and cycle detection to SearchQuery

    $relation.hops — traverse a relationship pattern up to N hops in a single where block, without naming intermediate records:

    db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        EMPLOYEE: {
          $alias: '$manager',
          $relation: { type: 'REPORTS_TO', direction: 'out', hops: { min: 1, max: 4 } },
          name: { $contains: 'Alice' }
        }
      }
    })

    hops accepts an exact count (hops: 3) or a range ({ min?, max? }, min defaults to 1). type and direction apply to every hop; the nested label and its criteria constrain only the endpoint record. Omitting type traverses any relationship — RushDB's internal property metadata edges are automatically excluded, so untyped traversal never leaves the user's data model.

    $cycle — find records sitting on a closed path back to themselves (fraud rings, circular ownership, dependency cycles):

    db.records.find({
      labels: ['ACCOUNT'],
      where: {
        RING: {
          $cycle: true,
          $relation: { type: 'TRANSFERRED_TO', direction: 'out', hops: { min: 2, max: 6 } }
        }
      }
    })

    A $cycle block requires $relation with hops (min ≥ 2, the default) and accepts no other keys; its label key is a display name. Combine with $not to select records not on a cycle.

    Traversal depth policyhops.max is capped per deployment via RUSHDB_MAX_TRAVERSAL_HOPS (default 25) on the shared cloud connection. Self-hosted deployments (RUSHDB_SELF_HOSTED=true) and projects with a custom external Neo4j allow unbounded traversal (max omitted), guarded by the existing transaction timeout.

    Also in this release:

    • New SDK types: TraversalHops and TraversalRelationOptions (TypeScript); matching TypedDicts in the Python SDK.
    • NL→query (smart search), the MCP server spec/tools, and the query-builder/data-modeling skills all understand hops and $cycle.
    • Docs: full operator reference in Where Operators, updated hierarchy-modeling tutorial, and a new "Detecting Fraud Rings" tutorial.

Patch Changes

  • Updated dependencies [d05e56c]
    • @rushdb/javascript-sdk@2.9.0

@1pxone 1pxone merged commit d6f36d8 into main Jul 7, 2026
4 checks passed
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.

1 participant