BS-PR-702 - Content validation, dependency manifest, and release gate #45
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#45
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
Provide one authoritative preflight that decides whether a project is safe to build and ship.
Scope
Acceptance criteria
Implemented the first authoritative validation slice locally.
Evidence:
scene::validate_projectnow owns a deterministicProjectValidationReportconsumed by both editor Diagnostics andcargo validate-levels.ActorId, referenced path, message, repair action, and dependency manifest entries.--project <path>,--json, and nonzero exit on blocking errors.6 dependencies, 0 findings, 0 blocking errorsin text and JSON modes.scenetests (24 passed, 1 ignored migration helper), formatter, andgit diff --check.Remaining acceptance work is intentionally open: registry-wide/material-document/project-settings dependencies, unsupported/platform capability and invalid collider/brush classification, complete valid/missing/cyclic/incompatible project fixtures, and release-package enforcement through #44.
Expanded the authoritative validator to project-wide coverage.
New coverage:
assets/project.ron: schema/template compatibility, default scene, asset roots, duplicate capability tags, and explicit Solari fallback QA.Regression matrix now directly exercises valid, owner-attributed missing, cyclic composition, and incompatible project/collider cases.
The validator exposed a genuinely broken, unreferenced
metal_stool_01_2k.gltf: its 216 KB external geometry buffer was never committed and its texture URIs pointed at a nonexistent directory. The orphaned model, registry record, and generated manifest were removed; valid standalone textures remain.Verification:
scene: 27 passed, 1 ignored migration helper30 dependencies, 1 informational finding, 0 blocking errorsFour of five acceptance criteria are now complete. The remaining packaging-refusal criterion is the integration boundary with #44.
Final acceptance completed through the #44 packaging boundary.
cargo package-projectinvokesscene::validate_projectbefore any Cargo build, binary lookup, output creation, or asset copy. A direct packager regression supplies an owner-attributed missing model and proves packaging fails before binary lookup with the source document and missing reference in the error.Release package smoke evidence:
dist/release/blacksitelaunched from the package directory, stayed alive cleanly for the runtime window, and stopped normally.All #45 acceptance criteria are now satisfied.