Repository navigation
Plumbgraph v1.0.3
Fixes for false positives and install problems found by running 1.0.2 on a real Unity project (Assets/UYF).
Fixed
- Unity: message methods (
LateUpdate,FixedUpdate,OnDisable, ...) on apartialclass are entry points when any part declares a Unity base (MonoBehaviour,ScriptableObject,NetworkBehaviour,EditorWindow, ...), even when the base is declared in another file. Parts are merged per type within oneAssets/root; the other parts of the type are then live too. Indirect bases (Hero : CharacterBase : MonoBehaviour) are resolved through classes in the index.dead-code --verboseprintsunity-message@partial-merged ...for every suppressed message. - Unity: a message-named method on a class whose Unity base cannot be decided (base type not in the index) under
Assets/is now reported as MEDIUM at most, with the reasonunity-message-name-but-host-type-unresolved, instead of being silently live (partial classes) or HIGH. A class whose bases all resolve to non-Unity classes (DerivedState : PlainBase) is no longer treated as a component, so itsUpdate(float dt)stays reportable. - Unity:
ScriptableWizardis an editor base;OnWizardCreate,OnWizardUpdate,OnWizardOtherButtonare messages.
Added
dead-codeprints two notes when C# files underAssets/are indexed (Unity pack active; do not mass-delete HIGH findings) and--helplinks the Unity pack limitations.docs/PACKS.mddocuments the Unity gaps (scenes/prefabs/UnityEvents, string-based invocation, animation events, Addressables/Resources, scip-dotnet, multiple asmdefs).plumb mcpstartup line on stderr includes the version and pid.plumb doctorwarns (Windows) when it cannot overwrite its own executable, e.g. because an MCP host still runsplumb mcp.- Docs: stop MCP hosts before
cargo installon Windows (or use--root);plumb mcp --rootshould point at the workspace you are working on.
Changed
- Index schema 4 / extractor 9 (new
unitycolumn on symbols): existing indexes are rebuilt once. DeadCodeResult(JSON) has an optionalnotesarray.
Already correct in 1.0.2 (regression tests added only)
- A plain class with
Update(float dt)and no base class is not an engine callback; ordinary methods that merely contain "Update" are not entry points; same-fileMonoBehaviour.Updateis suppressed; a private unreferenced helper on a MonoBehaviour is reported;[MenuItem],[InitializeOnLoad],[InitializeOnLoadMethod],[RuntimeInitializeOnLoadMethod],EditorandEditorWindowhandling; MCPinitializealready carriedserverInfo.version(now asserted).