# Native Dialog Responsiveness Evaluation

Date: 2026-07-12
Branch: `codex/non-blocking-native-dialogs`
Implementation commits: `d038cf3` and the closing commit for Gitea #52

This record captures live acceptance for the non-blocking native-dialog broker. The permanent
workflow contract lives in the [native-dialog guide](../../native-dialogs.md).

## Live Editor Evidence

The native KDE portal Open dialog below was launched through the production `SceneIoRequest::Open`
path in a native Wayland debug editor and held open for 12 seconds.

![Native KDE Open dialog over the still-rendered Blacksite editor](native-open-dialog.png)

During the hold, Hyprland continued to report Blacksite as mapped, visible, input-capable, and native
Wayland. No application-not-responding client appeared. Cancel closed the picker without changing the
active scene, and the editor then stopped cleanly.

## Acceptance Results

| Area | Result | Evidence |
|------|--------|----------|
| Frame responsiveness | Pass | A blocked-dialog regression test advances eight Bevy frames before releasing the worker; live editor remained compositor-responsive during the 12-second picker hold |
| Shared coverage | Pass | Every `rfd::FileDialog` and `rfd::MessageDialog` construction is inside a `NativeDialogBroker::request` worker closure |
| Request exclusivity | Pass | Focused test rejects a second request while one is pending and permits work after one-shot completion |
| Cancellation | Pass | Live Open cancellation preserved the active scene; workflow callbacks retain explicit non-mutating cancel branches |
| Main-thread application | Pass | Paths/results cross the broker, while scene, asset, history, registry, project, and collaboration work remains in `&mut World` completions |
| Stale initiating state | Pass | Prefab/export completions reject missing initiating entities; composition validates against current state after selection |
| Packaged acceptance | Deferred | Explicitly deferred by project-owner direction; no packaged result is claimed here |

## Automated Verification

| Command/suite | Result |
|---------------|--------|
| `cargo fmt --all -- --check` | Pass |
| `cargo check --workspace --all-targets` | Pass |
| `cargo clippy --workspace --all-targets -- -D warnings` | Pass |
| `cargo test --workspace` | Pass |
| Focused native-dialog lifecycle and frame-progress tests | 2 passed |
| `git diff --check` | Pass |
