gitnexus 1.6.6-rc.131 → 1.6.6-rc.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/core/ingestion/utils/ast-helpers.js +40 -9
  2. package/package.json +1 -1
  3. package/web/assets/{agent-Dn6FYhTz.js → agent-EkX7webX.js} +86 -86
  4. package/web/assets/{architectureDiagram-UL44E2DR-PLLrYbn8.js → architectureDiagram-UL44E2DR-BoczH8cv.js} +1 -1
  5. package/web/assets/{chunk-LCXTWHL2-92caKtfH.js → chunk-LCXTWHL2-By5HB3b-.js} +1 -1
  6. package/web/assets/{chunk-RG4AUYOV-C-sakyh5.js → chunk-RG4AUYOV-BQE_DkpL.js} +1 -1
  7. package/web/assets/{classDiagram-KGZ6W3CR-CCPRO_fZ.js → classDiagram-KGZ6W3CR-Dj_02GUH.js} +1 -1
  8. package/web/assets/{classDiagram-v2-72OJOZXJ-DjwcwGwL.js → classDiagram-v2-72OJOZXJ-D-NArMpf.js} +1 -1
  9. package/web/assets/{diagram-3NCE3AQN-qacGQhYr.js → diagram-3NCE3AQN-VXtXDO95.js} +1 -1
  10. package/web/assets/{diagram-GF46GFSD-Cow1NWUQ.js → diagram-GF46GFSD-B1qab2Ah.js} +1 -1
  11. package/web/assets/{diagram-QXG6HAR7-CdoHgN9O.js → diagram-QXG6HAR7-BSCHGzzT.js} +1 -1
  12. package/web/assets/{diagram-WEQXMOUZ-CeTAe_78.js → diagram-WEQXMOUZ-DHtknmNT.js} +1 -1
  13. package/web/assets/{erDiagram-L5TCEMPS-C7Md4B_p.js → erDiagram-L5TCEMPS-Db-IYTmm.js} +1 -1
  14. package/web/assets/{flowDiagram-H6V6AXG4-B4i2kRp5.js → flowDiagram-H6V6AXG4-BHDoyVoW.js} +1 -1
  15. package/web/assets/{index-CTE-KR7b.js → index-BR0IhgbR.js} +9 -9
  16. package/web/assets/{infoDiagram-3YFTVSEB-DiiwWjLx.js → infoDiagram-3YFTVSEB-6h8wbWEe.js} +1 -1
  17. package/web/assets/{ishikawaDiagram-BNXS4ZKH-Bjdu0R5v.js → ishikawaDiagram-BNXS4ZKH-Dx2OkPk1.js} +1 -1
  18. package/web/assets/{kanban-definition-75IXJCU3-BwzP88gz.js → kanban-definition-75IXJCU3-CIIEZfqV.js} +1 -1
  19. package/web/assets/{mindmap-definition-2TDM6QVE-CqDUnYoO.js → mindmap-definition-2TDM6QVE-DUAqydRq.js} +1 -1
  20. package/web/assets/{pieDiagram-CU6KROY3-BBRqBgKU.js → pieDiagram-CU6KROY3-BntYuYZa.js} +1 -1
  21. package/web/assets/{requirementDiagram-JXO7QTGE-PwMFxMKU.js → requirementDiagram-JXO7QTGE-QCD6I29n.js} +1 -1
  22. package/web/assets/{sequenceDiagram-VS2MUI6T-rpwpZdlM.js → sequenceDiagram-VS2MUI6T-DScFwLz2.js} +1 -1
  23. package/web/assets/{stateDiagram-7D4R322I-BxV0xf0i.js → stateDiagram-7D4R322I-AkRAm6Hl.js} +1 -1
  24. package/web/assets/{stateDiagram-v2-36443NZ5-DPtqNTSt.js → stateDiagram-v2-36443NZ5-BCK1vigR.js} +1 -1
  25. package/web/assets/{timeline-definition-O6YCAMPW-Dr74bGqt.js → timeline-definition-O6YCAMPW-BvpIVXjX.js} +1 -1
  26. package/web/assets/{vennDiagram-MWXL3ELB-DgoJI9UE.js → vennDiagram-MWXL3ELB-BYGWk6dK.js} +1 -1
  27. package/web/assets/{wardleyDiagram-CUQ6CDDI-fpDdFdbe.js → wardleyDiagram-CUQ6CDDI-Dk1z7H2T.js} +1 -1
  28. package/web/assets/{xychartDiagram-N2JHSOCM-DyarviyC.js → xychartDiagram-N2JHSOCM-2N6NCSWN.js} +1 -1
  29. package/web/index.html +1 -1
@@ -452,15 +452,46 @@ getQualifiedOwnerName) => {
452
452
  // different mods own through DISTINCT nodes. The Impl-node
453
453
  // materialization (parsing-processor / parse-worker) mirrors this, so
454
454
  // the owner id == the Impl node id byte-for-byte (#1982).
455
- const firstType = children.find((c) => c.type === 'type_identifier' || c.type === 'scoped_type_identifier');
456
- if (firstType) {
457
- const ownerKey = firstType.type === 'type_identifier'
458
- ? qualifyRustImplTargetByModScope(current, firstType.text)
459
- : firstType.text;
460
- return {
461
- classId: generateId('Impl', `${filePath}:${ownerKey}`),
462
- className: firstType.text,
463
- };
455
+ // - GENERIC (`impl<T> Inner<T>`, generic_type): the @definition.impl
456
+ // node is materialized only when the generic base is a bare
457
+ // `type_identifier` (tree-sitter-queries.ts), qualified the same way —
458
+ // so drill into the base and mirror that gate, keeping the owner id ==
459
+ // the node id byte-for-byte (#1992). A generic over a SCOPED base
460
+ // (`impl<T> a::Inner<T>`) materializes NO node, so it must produce NO
461
+ // owner (the method orphans — scoped-generic deferred, #1992).
462
+ const implTarget = children.find((c) => c.type === 'type_identifier' ||
463
+ c.type === 'scoped_type_identifier' ||
464
+ c.type === 'generic_type');
465
+ if (implTarget) {
466
+ const baseType = implTarget.type === 'generic_type'
467
+ ? (implTarget.childForFieldName?.('type') ?? null)
468
+ : implTarget;
469
+ if (baseType?.type === 'type_identifier') {
470
+ // Bare target (`impl Inner` or `impl<T> Inner<T>`): qualify by mod scope.
471
+ // #1992 follow-up: qualify `className` too (not just `classId`). The
472
+ // method node id is keyed `${className}.${name}`, so a bare tail collapses
473
+ // two same-tail bare impls that ALSO share a method name (`a::Inner::m` +
474
+ // `b::Inner::m` both → `Inner.m`) onto one Method node (graph addNode is
475
+ // first-write-wins). Qualifying className → `a.Inner.m` / `b.Inner.m` keeps
476
+ // them distinct. Symmetric: the call-resolution fallback rebuilds the same
477
+ // `${className}.${name}` from the same enclosing-impl walk, so def and call
478
+ // ids still agree. Owner edge anchors on `classId` (already qualified).
479
+ const qualified = qualifyRustImplTargetByModScope(current, baseType.text);
480
+ return {
481
+ classId: generateId('Impl', `${filePath}:${qualified}`),
482
+ className: qualified,
483
+ };
484
+ }
485
+ if (baseType?.type === 'scoped_type_identifier' && implTarget.type !== 'generic_type') {
486
+ // Top-level scoped `impl a::Inner`: key by full raw text (#1975).
487
+ return {
488
+ classId: generateId('Impl', `${filePath}:${baseType.text}`),
489
+ className: baseType.text,
490
+ };
491
+ }
492
+ // generic-over-scoped (`impl<T> a::Inner<T>`) and any other base: fall
493
+ // through with no owner — no @definition.impl node exists, so attributing
494
+ // a method to a synthesized id would orphan it against a phantom owner.
464
495
  }
465
496
  }
466
497
  const nameNode = current.childForFieldName?.('name') ??
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitnexus",
3
- "version": "1.6.6-rc.131",
3
+ "version": "1.6.6-rc.133",
4
4
  "description": "Graph-powered code intelligence for AI agents. Index any codebase, query via MCP or CLI.",
5
5
  "author": "Abhigyan Patwari",
6
6
  "license": "PolyForm-Noncommercial-1.0.0",