Skip to content

Add native skeletal asset structural diffs - #898

Draft
vaughn1990 wants to merge 4 commits into
db-lyon:mainfrom
vaughn1990:agent/skeleton-asset-diff
Draft

Add native skeletal asset structural diffs#898
vaughn1990 wants to merge 4 commits into
db-lyon:mainfrom
vaughn1990:agent/skeleton-asset-diff

Conversation

@vaughn1990

@vaughn1990 vaughn1990 commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Extend the native diff_asset bridge handler to compare exact USkeleton and USkeletalMesh assets.
  • Return compact, deterministic raw-bone additions/removals, reparenting, raw-index changes, declared virtual-bone deltas, and separate hierarchy/editor compatibility signals.
  • Source SkeletalMesh virtual-bone policy from each mesh's associated Skeleton and report that source explicitly.
  • Make the structural scope explicit: reference-pose transforms, export names, sockets, retarget sources, and other metadata are not compared.
  • Add read-only Unreal automation coverage for validation, identity, ordering, reparenting, virtual bones, UE 5.4-5.8 virtual-bone API compatibility, SkeletalMesh routing, and reverse compatibility policy.

Why

Issue #879 had to load mannequin SkeletalMesh assets through execute_python and manually compare hundreds of bone entries. This adds the compact native bridge operation needed to answer that structural compatibility question without custom Python or full bone dumps.

This PR is intentionally scoped to plugin/ue_mcp_bridge. The server-side asset(diff) description can be updated separately to advertise the newly supported classes.

Addresses #879.

Safety

  • Read-only handler; tests assert no package dirtying or save attempts.
  • Both inputs must resolve to the same exact supported class.
  • Missing paths, mixed classes, unsupported types, and malformed requests fail closed.
  • Delta collections are deterministically ordered.
  • Reference-pose and other out-of-scope metadata omissions are explicit in the result.

Validation

  • npx.cmd tsc --noEmit
  • npm.cmd run test:unit — 83 files / 840 tests passed
  • npm.cmd run audit:unity
  • git diff --check upstream/main...HEAD
  • Two independent static reviews, including UE 5.4-5.8 API compatibility

The guarded native build was attempted against the bundled tests/ue_mcp project with -NoEngineChanges. UnrealBuildTool stopped before compilation because the selected source engine's newer Build.version would rewrite existing engine binaries/module manifests. The guard was not bypassed.

Full npm run audit still reports unrelated baseline drift in asset.migrate documentation parameters and existing handler/caller inventory; focused unity and TypeScript/unit checks pass.

@vaughn1990 vaughn1990 changed the title Add native Skeleton asset diff Add native skeletal asset structural diffs Aug 11, 2026
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