# Operator Invariants Evaluation Date: 2026-07-12 Gitea issue: [`#33`](https://git.spacetrainclubhouse.com/Falling-Metal-Interactive/Blacksite/issues/33) This acceptance record covers the source-level production operator contract. It does not nominate a release candidate or replace the clean-checkout rerun required by production-readiness gate G3. ## Accepted Coverage - Registered commands distinguish immediate completion from modal Preview ownership; validation failures terminate with their stable command ID. Palette execution and cancellation fully dismiss the palette instead of leaving an empty title bar. - Group Selection is one history transaction and preserves unrelated hierarchy rows through repeated undo/redo even though the transient group entity is respawned. Newly spawned and redone group actors own their visibility hierarchy before viewport icon children attach. - Reset Lighting and Project Sun changes are grouped, undoable light transactions. - Asset/sub-asset placement; material/texture/audio/animation assignment; and exact viewport material drops cover commit, block/failure, cancel where applicable, and semantic undo/redo projections. - Draw Brush, CSG, clip, and element-gizmo paths exercise production modal finalizers and helper cleanup. - Terrain sculpt/paint cover multi-dab commit, failure rollback, cancel, clean-view interruption, and resource cleanup. - Physics placement covers prerequisite block, exact cancel, real settle commit, multi-selection grouping, helper cleanup, undo, and redo. - The transform tracker covers continuous multi-target grouping and no-op release termination. ## Verification The publication worktree passed: - `cargo test -p editor --lib --no-fail-fast`: 245 passed, 0 failed. - `cargo clippy -p editor --lib --tests -- -D warnings`. - `cargo fmt --all -- --check`. - `cargo test --workspace --all-targets --no-fail-fast`. - `cargo clippy --workspace --all-targets -- -D warnings`. - `cargo validate-levels --project .`: 62 dependencies, 5 expected non-blocking findings, 0 blocking errors. The Gitea closure comment records these results with the exact publication commit. ## Native Editor Follow-up A native-editor replay on 2026-07-13 loaded the collider diagnostics scene, exercised Draw Brush Preview/cancel, and grouped two hierarchy actors through undo/redo. The replay exposed two issues that source-only checks did not make visible: command execution left a collapsed palette title bar, and the viewport icon child briefly inherited from a group actor without Bevy visibility hierarchy components. Both paths now have focused regression assertions; a rebuilt replay dismissed the palette completely and emitted no hierarchy warning. No screenshot is required for this ticket: the accepted surface is lifecycle, rollback, cleanup, and history behavior exercised through headless production entry points. Live command/status checks add confidence but are not substituted for semantic assertions. Packaged-runtime testing remains deferred by project-owner request.