BS-JD-210 - Resolve external FBX texture dependencies without repeated load errors #58
Labels
No Label
area:animation
area:assets
area:audio
area:brushes
area:build-release
area:extensions
area:governance
area:hierarchy
area:inspector
area:navigation
area:operators
area:physics
area:project-ux
area:quality
area:rendering
area:runtime
area:scene-io
area:terrain
area:viewport
priority:P0
priority:P1
priority:P2
priority:P3
roadmap:jackdaw
roadmap:production
type:architecture
type:docs
type:epic
type:feature
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Falling-Metal-Interactive/Blacksite#58
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Make FBX external-texture discovery, import, validation, and editor preview deterministic and actionable. A committed FBX must either resolve its referenced textures or report one stable dependency error before Bevy repeatedly attempts the missing paths.
Native QA finding
During #56 native acceptance at
e1b2f86a495496da83947777d332d00a15a1779d, selectingassets/models/painted_wooden_chair_02_2k.fbxrendered its Asset Browser entry but produced six Bevy asset-server load errors for three absent files:assets/models/textures/painted_wooden_chair_02_diff_2k.jpgassets/models/textures/painted_wooden_chair_02_nor_gl_2k.exrassets/models/textures/painted_wooden_chair_02_rough_2k.exrThe paths were requested more than once. The previous dependency extraction was limited to
.fbmsidecar discovery, while this source references a siblingtextures/layout.Original finding: imported model browser and selected FBX details
Acceptance criteria
.fbmrelative layouts..fbm, sibling relative texture folders, missing dependencies, and path traversal/sandbox rejection.Scope note
This defect was exposed while validating deterministic fingerprints but is independent of #56. The #56 registry and generated artifacts remained byte-stable and its clean-checkout gate passed.
Exact-commit native evidence
Normalized chair at implementation commit
3e30c61:Deliberately broken Source Materials fixture at implementation commit
3e30c61:codex/deterministic-asset-fingerprintsto codex/fbx-external-texturesCloseout
Implemented in
3e30c61and documented in931f561, now published onmain.Shipped behavior:
AuthoringOverride.Verification:
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace --all-targets(editor 309 passed; scene 103 passed, 1 manual migration ignored).fbm, missing files, traversal, and destination symlinkscargo validate-levels --project .: 84 dependencies, 6 findings, 0 blockerscargo validate-samples --project .: 5 samples, 89 dependencies, 6 findings, 0 blockersbevy_asset/bevy_ufbxmissing-path outputThe versioned evidence record contains the attachment hashes and full acceptance matrix.
Packaged acceptance remains explicitly owner-deferred. This closes #58 at feature level; it does not nominate a release candidate or change #50 from Not ready.
codex/fbx-external-texturesto codex/fbx-external-textures