fix(niagara): validate create/duplicate/template destinations before source load - #108
fix(niagara): validate create/duplicate/template destinations before source load#108kunkunGames wants to merge 3 commits into
Conversation
…ite count
SPEC_MonolithCore.md and the MonolithPackagePathValidator.h header carried
two different stale numbers for the same backlog ("~24 of 80 guarded" vs
"the other ~77 remain unguarded"), and both go stale on every PR that wires
a new owner.
Replaces the counts with a routed-owner list plus a named remaining backlog,
and points the header at the spec so there is one place to update. Adds the
Blueprint struct handlers (tumourlove#106), Material creation families (tumourlove#107), and the
Niagara entry points (tumourlove#108) as routed owners.
The shared line is updated only here, not in tumourlove#106 and tumourlove#107, because all three
would otherwise edit the same single line and conflict on merge.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Conflict/merge-order note for my six open PRs is in #104 (comment #104 (comment)). Short version: a pairwise trial merge shows these PRs conflict only in |
|
Shipped in v0.21.3 — thanks. Seven Niagara entry points validate the destination before loading a source asset, touching AssetTools, or creating a package, and the hand-rolled Two changes from the branch: I dropped the On the shared backlog line: you were right that it was inconsistent on master and right to flag the merge-order coupling. I went further and deleted the count rather than fixing it — bookkeeping that three separate changes have to edit in lockstep is bookkeeping that ends up wrong. It is now a pointer to grep Thanks for the ordering note in the description, incidentally — it is the reason I did not end up with three conflicting edits to one line. I land contributor fixes as my own commits rather than merging the branch — shipped history stays single-author, reporter credited in the release notes. |
Goal
Reject malformed Niagara create, duplicate, and template-save destinations before loading source assets, invoking AssetTools, or calling
CreatePackage.Plain-English summary
The destination should be validated before looking up a source asset or template. Invalid input now returns a normal tool error without loading the source, creating an empty package, or entering the duplicate/save flow.
Improvements
create_systemdestinations before template lookup and load.create_systemowner guard fromcreate_system_from_specinstead of adding a duplicate validation layer.CreatePackagepath.FPackageNamehelpers consistently after validation.Before → After
CreatePackageowners are protectedSide-effect analysis
create_system_from_spec: parses the spec and delegates to the validated owner; it has no separate package owner./Game/...destination: preserves existing factory initialization, Asset Registry, dirtying, and save behavior.EditorScriptingUtilitiesdependency is private and is used only by the automation fixture cleanup.Implementation
Shared backlog bookkeeping (read before merging out of order)
Docs/specs/SPEC_MonolithCore.mdtracked this work as~24 of 80 CreatePackage call sites guarded; remaining ~56 ... follow-up backlog, whileMonolithPackagePathValidator.hseparately claimed~77 sites remain unguarded. Both numbers were already inconsistent onmasterand go stale every time an owner is wired.This PR replaces both with a routed-owner list plus a named remaining backlog, and points the header at the spec so there is a single place to update.
That shared line is updated only in this PR, not in #106 or #107. All three would otherwise edit the same single line and conflict on merge. The list therefore names #106, #107, and #108 as routed owners — if any of those is dropped or deferred, say so and I will trim the line in one commit.
Verification
MonolithPRHostEditor Win64 Developmentbuild: passed (11 actions after dependency invalidation).Monolith.Niagara.PackagePath.*: 2/2 passed.NS_ValidPackagePath_*.uassetresidue count: 0.git diff --check: passed.