| .. | ||
| README.md | ||
Scoped UI Action Safety Evaluation
Evidence record — not current product guidance. Use the documentation index for current behavior and architecture.
Date: 2026-07-13
Issue: Gitea #57
Implementation commit: 9e23ae731f95dc351ecc744d6ca61f6bc4467317
Release-candidate commit: Not nominated
Source validation: Pass
Native acceptance: Pass
This record covers synchronous editor actions invoked while the egui host scopes UiState out of
the Bevy World. The implementation keeps callback-owned state in independently registered
resources, passes viewport data into toolbar/navigation actions, routes cross-panel selection and
tab requests through explicit APIs, and reconciles the complete selection slice so a direct UI
selection takes precedence over a stale deferred request.
Automated Verification
| Command or suite | Result | Evidence |
|---|---|---|
cargo fmt --all -- --check |
Pass | Formatting check 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; the editor crate reported 290 of 290 tests passing. |
| Scoped-action regressions | Pass | Six focused regressions cover history multi-selection, diagnostics selection, Inspector collapse and asset reveal state, primitive spawn, and navigation spawn while UiState is scoped out. |
| Selection precedence | Pass | Full-slice reconciliation preserves a direct primary or secondary UI selection over stale single- or multi-selection requests. |
| Independent re-review | Pass | The post-fix review found no remaining blockers. |
| Packaged acceptance | Deferred | Explicitly deferred by project-owner direction; no packaged result is claimed. |
Native Acceptance
The exact rebuilt debug binary from the implementation commit was launched as
target/debug/editor --project ..
| Workflow | Result | Evidence |
|---|---|---|
| Toolbar authoring actions | Pass | After File > New Scene, Cube, Ramp, Sphere, Point Light, and Navigation Bounds all spawned. Selection, transform gizmo, viewport overlay, hierarchy, and Inspector stayed synchronized. |
| Inspector state | Pass | Collapsing the Transform component persisted across subsequent UI rendering and selection work. |
| Cross-panel diagnostics action | Pass | Window > Brush Diagnostics > Select kept the editor live and synchronized the selected actor across hierarchy, viewport, and Inspector. |
| Guarded shutdown | Pass | The dirty native-close decision accepted Discard and the editor exited with code 0. |
Native Evidence
- Gitea attachment asset 37:
blacksite-issue57-scoped-ui-actions.png, 3426x1384 RGB PNG, 890,021 bytes. - SHA-256:
4225aca19268e4817148507e95cdad56a5f18734fd69e2fe5702df1dc304142e.
- Gitea attachment asset 38:
blacksite-issue57-diagnostics-select.png, 3426x1384 RGB PNG, 1,418,849 bytes. - SHA-256:
40422be59766a3e61005973c315d0fd6f663dd2d227aa92055fa2aa2e91320c3.
Both images were uploaded as ordinary Gitea issue attachments; this record does not use repository raw or LFS pointer URLs.
Release Use
The #57 source and native feature-level acceptance record is complete. A future production candidate must still rerun representative toolbar, Inspector, diagnostics, selection, and guarded-exit paths from the exact nominated commit. This record does not nominate a candidate or establish production readiness.