# Deterministic Imported-Asset Fingerprints Evaluation > **Evidence record — not current product guidance.** Use the [documentation index](../../../README.md) for current behavior and architecture. **Date:** 2026-07-13 **Issue:** [Gitea #56](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/issues/56) **Content-addressed implementation:** `e1b2f86a495496da83947777d332d00a15a1779d` **Stable publication ordering:** `cbd380a9413411667a83f74b66c5a2feda5e1af7` **Release-candidate commit:** Not nominated **Source validation:** **Pass** **Fresh-checkout acceptance:** **Pass** **Native acceptance:** **Pass** This record covers imported model, texture, and audio source identity plus the animation, static-mesh, and registry documents derived from those sources. The permanent contract is owned by [ADR 0043](../../../adr/0043-content-addressed-import-fingerprints.md). ## Automated Verification | Command or suite | Result | Evidence | |------------------|--------|----------| | `cargo fmt --all -- --check` | Pass | Formatting completed without changes. | | `git diff --check` | Pass | No whitespace errors. | | `cargo clippy --workspace --all-targets -- -D warnings` | Pass | Workspace and all targets completed with warnings denied. | | `cargo test --workspace --all-targets --no-fail-fast` | Pass | All workspace targets passed; editor reported 300 passing tests, scene reported 100 passing and one ignored manual-migration test, and shared reported 99 passing tests. | | Fingerprint regressions | Pass | Exact-byte BLAKE3 identity, same-size byte changes, mtime-only drift, legacy timestamp tolerance, stable move recovery, imported-source coverage, semantic RON equality, and read-only validation are covered. | | `cargo validate-levels --project .` | Pass | 81 dependencies, five known nonblocking import/platform findings, zero blocking errors. | | `cargo validate-samples --project .` | Pass | Five samples, 86 dependencies, the same five nonblocking findings, zero blocking errors. | | Packaged acceptance | Deferred | Explicitly deferred by project-owner direction; no packaged result is claimed. | ## Fresh Checkout The first exact-commit run at `e1b2f86` exposed one remaining nondeterministic path: native startup discovered catalog entries in filesystem order and rewrote `assets/.index/registry.ron`. That run failed the clean-checkout gate. Commit `cbd380a` sorts records by normalized project path before semantic comparison and adds a discovery-order regression test. A new detached, LFS-hydrated worktree at `cbd380a` then completed native startup, asset scan, `validate-levels`, and `validate-samples` with an empty `git status --short`. Touching `assets/models/RobotExpressive.glb` while the editor was live also left the worktree clean. Its original nanosecond timestamp was restored after the test. The following SHA-256 values were identical before startup, after startup, after the mtime-only change, and after both validators: | Artifact | SHA-256 | |----------|---------| | `assets/.index/registry.ron` | `5beb11fb708729fb024e2e671596876bcf31b3c3fd2cea51da777db1d343644e` | | `113f74df...static_mesh.ron` | `8d93e4d49c4f1d00ea8c482e8e1981f18d7a71224847c2b9f05f153982c5e80e` | | `3f63f359...static_mesh.ron` | `e47099d59ec4ce9dc977ba6a08ddee36f1d99c0f13d9278998f21cba72571585` | | `b98ef565...static_mesh.ron` | `edc77d61284c1010c8811d40bd7cedebfcbd6a3d88145e54d5c1ef7dc3a0a864` | | `113f74df...animation.ron` | `0e678584aca470b36afd14b75a950d84a87d445438ba9b0a1e3416e863dda92a` | | `3f63f359...animation.ron` | `45d3f9e9dcc64137f40a339c84512b6aba47102f7593aa6a9344891de68c0c07` | | `b98ef565...animation.ron` | `691eb70ff05b2a4d03f51766f4c682a4171f7c76721f453c434f8de6fd936408` | ## Native Acceptance | Workflow | Result | Evidence | |----------|--------|----------| | Main checkout startup | Pass | The exact debug editor at `e1b2f86` loaded the committed scene with populated hierarchy, viewport, Inspector, and Asset Browser, then exited with code 0. | | Imported model browser | Pass | Opening `assets/models` rendered all three model rows and thumbnails; selecting the FBX exposed its registry-backed details without destabilizing the editor. | | Fixed fresh checkout | Pass | The exact `cbd380a` editor launched from the detached worktree, rendered the complete editor frame, preserved every artifact byte, and exited with code 0. | | Metadata-only drift | Pass | A live source `touch` produced no registry or manifest change and no Git diff. | ## Native Evidence ![Fresh LFS checkout running the complete editor without rewriting imported artifacts](https://git.spacetrainclubhouse.com/attachments/df761c85-0b82-4a25-9d33-9cf8189539f0) - Gitea attachment asset 39: `blacksite-issue56-fresh-fixed-cbd380a.png`, 3426x1384 sRGB PNG, 1,787,700 bytes. - SHA-256: `2748ae3de31ff97933c9793b90475ffd38d54d7e9dd5d65937b699f81c73c9bc`. ![Imported model thumbnails and registry-backed FBX details in the live editor](https://git.spacetrainclubhouse.com/attachments/93da7803-de47-43fb-bb8c-f759970a2b5f) - Gitea attachment asset 40: `blacksite-issue56-models-e1b2f86.png`, 3426x1384 sRGB PNG, 1,940,210 bytes. - SHA-256: `064c0634ebac47b52516412b022247ba8aa6f155014db8f8d3cca86850509da7`. Both images are ordinary Gitea issue attachments. This record does not use repository raw or Git LFS pointer URLs. ## Separate Finding Selecting the painted-chair FBX exposed missing external texture dependencies in the committed fixture: `painted_wooden_chair_02_diff_2k.jpg`, `painted_wooden_chair_02_nor_gl_2k.exr`, and `painted_wooden_chair_02_rough_2k.exr`. The asset server reported six load errors because the paths were requested more than once. This is an FBX dependency/import-fixture defect, not a deterministic fingerprint failure, and is tracked separately in [Gitea #58](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/issues/58). ## Release Use The #56 source, fresh-checkout, and native feature-level acceptance record is complete. A future production candidate must rerun the clean-checkout protocol from the exact nominated commit. This record does not nominate a candidate or establish production readiness.