Skip to content

fix(extract): create json_config reference target nodes#1767

Closed
oleksii-tumanov wants to merge 2 commits into
Graphify-Labs:v8from
oleksii-tumanov:fix/json-config-dangling-targets
Closed

fix(extract): create json_config reference target nodes#1767
oleksii-tumanov wants to merge 2 commits into
Graphify-Labs:v8from
oleksii-tumanov:fix/json-config-dangling-targets

Conversation

@oleksii-tumanov

Copy link
Copy Markdown
Contributor

Summary

  • Create real concept nodes for json_config dependency and extends targets before emitting imports / extends edges.
  • Add regression coverage that the issue fixture has no dangling endpoints and that build_from_json keeps the edges.

Fixes #1764

Result

dangling_endpoint_edges: 0
kept_edges: [('extends', './tsconfig.base.json'), ('imports', 'bats'), ('imports', 'left-pad')]

Testing

  • pytest tests/test_extract.py -q -k 'json' (14 passed, 104 deselected)
  • pytest tests/test_manifest_ingest.py tests/test_extract.py -q -k 'manifest or json' (22 passed, 104 deselected)
  • ruff check graphify/extractors/json_config.py tests/test_extract.py (passed)
  • python -m tools.skillgen --check (passed)
  • pytest tests/ -q --tb=short (3136 passed, 3 skipped)
  • graphify update . (completed; graph.json and GRAPH_REPORT.md updated locally, no tracked graph output changes)

@safishamsi

Copy link
Copy Markdown
Collaborator

Merged on v8, authored to you. Verified: on package.json + tsconfig.json, the imports/extends edges previously dangled (build dropped them silently); with the fix the targets exist as concept nodes (left-pad, bats, ./tsconfig.base.json), zero dangling endpoints, no self-loops. Full suite 3138 passed. Good catch — this was invisible except via diagnose_extraction. Thanks.

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.

json_config extractor emits imports/extends edges to node IDs it never creates (package.json, tsconfig.json)

2 participants