Skip to content

Commit 5856401

Browse files
authored
refactor: extract app overlay logic into dedicated module (#59)
1 parent 207d788 commit 5856401

3 files changed

Lines changed: 811 additions & 791 deletions

File tree

DESIGN.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Its primary purpose is consistency during development, not full architecture cov
1919
- `src/renderer.rs`: pixel buffer to `egui::ColorImage` rendering helpers.
2020
- `src/logging.rs`: logging setup and log-level configuration.
2121
- `src/app.rs`: UI, application state, interactions, and worker orchestration.
22+
- `src/app/overlay.rs`: overlay reconciliation, authoritative overlay snapshots, and overlay availability/navigation.
2223
- `src/app/load.rs`: launch/open/load orchestration and DICOMweb/local load pipelines.
2324
- `src/app/history.rs`: history management and preload/orchestration.
2425
- `tools/benchmark`: development-only end-to-end benchmark tools and synthetic DICOM generation.
@@ -73,8 +74,10 @@ Its primary purpose is consistency during development, not full architecture cov
7374
- Run all UI-only checks above.
7475
- Run `cargo test --workspace --all-targets --all-features --locked`.
7576
- Run module-specific validations for decode and renderer output tests.
76-
5. Streaming/overlay/history/concurrency changes (`app.rs` GSPS/SR/Parametric Map attach helpers and overlay toggle/navigation, `app/load.rs` launch/load pipeline and worker channels, `app/history.rs` history/preload orchestration):
77+
5. Streaming/overlay/history/concurrency changes (`app/overlay.rs` GSPS/SR/Parametric Map attach helpers and overlay toggle/navigation, `app/load.rs` launch/load pipeline and worker channels, `app/history.rs` history/preload orchestration):
7778
- Run all launch/parsing checks above.
79+
- Run paired baseline vs refactor benchmark runs via `make benchmark` with identical `BENCH_*` environment settings.
80+
- Report median deltas for `total`, `startup`, `dicom_load`, and `render_ui`, and summarize any regressions before approving the PR.
7881
- Confirm SR-only open uses the dedicated SR parser/UI path and that `load_dicom` rejects SR objects.
7982
- Confirm Parametric Map-only open uses the dedicated parser/UI path and that `load_dicom` rejects Parametric Map objects.
8083
- Ensure mixed image+SR selections keep images in active viewports while staging SR documents as separate history entries, without regressing GSPS/SR/Parametric Map/history/streaming invariants.
@@ -84,4 +87,5 @@ Its primary purpose is consistency during development, not full architecture cov
8487
- Run `cargo fmt --all -- --check`.
8588
- Run `cargo clippy --workspace --all-targets --all-features -- -D warnings`.
8689
- Run `cargo test --workspace --all-targets --all-features --locked`.
90+
- Run paired baseline vs refactor benchmark runs via `make benchmark` with identical `BENCH_*` environment settings, and include a short summary of median deltas/regressions for `total`, `startup`, `dicom_load`, and `render_ui`.
8791
- If benchmark launch flow changed, build both `cargo build --release -p perspecta --bin perspecta` and `cargo build --release -p benchmark-tools --bin benchmark_full_single_open`.

0 commit comments

Comments
 (0)