Skip to content

fix(watch): keep update outputs project-relative#434

Open
takeItIzzy wants to merge 1 commit intosafishamsi:v4from
takeItIzzy:codex/fix-update-relative-paths
Open

fix(watch): keep update outputs project-relative#434
takeItIzzy wants to merge 1 commit intosafishamsi:v4from
takeItIzzy:codex/fix-update-relative-paths

Conversation

@takeItIzzy
Copy link
Copy Markdown

Summary

Fixes #433.

graphify update should keep generated paths project-relative for code-only rebuilds, matching the rest of the pipeline.

Root cause

graphify.watch._rebuild_code() resolved the requested path before detection and report generation. That changed a relative invocation such as graphify update . into an absolute rebuild root, which then leaked absolute paths into:

  • graphify-out/graph.json source_file fields
  • graphify-out/GRAPH_REPORT.md title and path-bearing sections
  • graphify-out/graph.html title and node metadata
  • graphify-out/cache/*.json AST cache entries

What changed

  • keep the cache root absolute, but run detection against the user-provided path so extractor inputs stay project-relative for normal graphify update . usage
  • normalize merged rebuild payloads back to project-relative source_file values before report/JSON/HTML export
  • render a non-absolute report root label for the common . case
  • add watch rebuild regression tests for repo-root and subdirectory invocations

Validation

  • .venv/bin/python -m pytest -q tests/test_watch.py
  • .venv/bin/python -m pytest -q tests/test_pipeline.py
  • manual smoke test: .venv/bin/python -m graphify update . in a temporary repo, verifying no absolute project paths in graph.json, GRAPH_REPORT.md, graph.html, or graphify-out/cache/*.json

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.

graphify update writes absolute paths into generated artifacts

1 participant