Skip to content

v0.3.6

Choose a tag to compare

@raykuonz raykuonz released this 14 Jun 11:02
· 26 commits to main since this release

Fixed

  • Cross-type node merges eliminated. deduplicate_by_label no longer conflates distinct components that normalise to the same label (e.g. an ApexClass and a similarly-named LWCComponent, or a CustomObject and its CustomTab/Settings/PermissionSet). It wrongly merged 83 node pairs on a real 9k-node org and rewrote their edges onto the wrong survivor. Merging is now gated on sf_type; the intended chunked-duplicate case still works.
  • Self-referencing lookup fields keep their object→field contains edge. Previously the contains and the field→object references edge shared an undirected node-pair and one overwrote the other, orphaning the field. The build now keeps the higher-priority relation on collision (contains outranks references).
  • Together, object→field attachment on the test org went from 99.4% to 100% (18 orphaned fields → 0).
  • The post-scan log printed the raw skipped list object instead of a count.

Added

  • .gitignore / .forceignore are honored by default to cut graph noise, using full gitignore semantics (negation, anchored, **) via pathspec. Ignore files are discovered by walking up from the scanned directory, so graphify-sf force-app still picks up the project-root files.
  • --include-ignored flag to scan everything regardless, plus an honest per-source skip summary after each scan.

Full multi-relation edge preservation (read+write on the same object, both edges on self-lookups) is the planned 0.4.0 MultiGraph work.