Skip to content

fix(core): survive dependency graph plugin updates - #338

Merged
shafty023 merged 1 commit into
mainfrom
fix/prd-graph-helper-plugin-update
Oct 22, 2026
Merged

shafty023 merged 1 commit into
mainfrom
fix/prd-graph-helper-plugin-update

Conversation

@shafty023

Copy link
Copy Markdown
Collaborator

Summary

  • make prd-graph-helper resolve the newest usable Codex or Claude plugin cache at execution time instead of pinning a versioned cache path
  • let an already-running graph helper keep using its loaded renderer when an update removes its source cache
  • add command-level and HTTP regression coverage, update the skill contract, and bump closedloop-core to 1.5.2

Root cause

The launcher embedded the exact cache path of the plugin version that created it, while the live helper unconditionally reloaded render_graph.py from that same versioned directory. Removing the old cache during an update therefore broke both the launcher and the running refresh endpoint.

Validation

  • uv run pytest plugins/closedloop-core/tools/python/ -q (89 passed)
  • uv run ruff check .
  • uv run pyright
  • npm test in tools/plugin-manifests (6 passed)
  • git diff --check

Prevention

  • Class: pinned a durable launcher and live module reload to an ephemeral versioned plugin cache, causing both recovery paths to fail when an update removed that cache
  • Instances: fixed plugins/closedloop-core/skills/prd-dependency-graph/scripts/refresh_server.py; no parallel launcher or reload instances found in the plugin tree
  • Search: rg -n "LAUNCHER_MARK|install_launcher\\(|importlib\\.reload\\(|\\.local/bin|plugin.*cache|cache.*plugin" plugins tools
  • Rung: architecture plus guard tests via the runtime cache resolver, in-memory renderer fallback, and deleted-cache command and HTTP tests
  • Proof: both regression tests failed on unmodified main; the launcher executed stale source and the HTTP endpoint returned 500 with ModuleNotFoundError: spec not found for the module render_graph
  • Why not higher: the runtime resolver and fallback remove the invalid cache-lifetime assumption directly; tests protect both public surfaces
  • Follow-up: none
  • Event recorded: no correction-event log is defined in this repository

Make prd-graph-helper resolve the newest usable plugin cache at runtime and let a live helper keep using its loaded renderer after its cache is removed.

Add command-level and HTTP regression tests for both update failure modes, document the behavior, and bump closedloop-core to 1.5.2.
@shafty023
shafty023 merged commit ea3176b into main Oct 22, 2026
10 checks passed
@shafty023
shafty023 deleted the fix/prd-graph-helper-plugin-update branch October 22, 2026 16:15
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