LabKit MATLAB Workbench

history

Managed image interactions and diagnostic tracing

id: LK-20260604-managed-image-interactions
date: 2026-06-04
sequence: 4
type: feat
compatibility: compatible
scope: historical project evolution

Context

Image and ECG apps had made the workbench broader, but they also revealed a class of GUI failures that did not appear in parser or calculation tests. An anchor editor could re-enter a callback, a scale bar could lose ownership, an axes popout could stop reflecting the source, and a long operation could leave controls in an ambiguous state.

Decision and rationale

Move repeatable interaction mechanics into the UI foundation while leaving image-specific geometry and workflow state in each app. Give long-running actions an explicit busy-state guard, make image axes and tools managed resources, and record callback progress in diagnostic traces that could be inspected after a failure.

Changes

User and data impact

Users gained Focus Stack and more predictable image editing. Popout views, anchors, scale bars, and long operations provided clearer feedback and were less likely to leave an app in a broken intermediate state. Debug traces made it possible to distinguish a slow or failed callback from an unresponsive window.

The changes affected UI state and presentation; they did not intentionally alter existing scientific results.

Compatibility and migration

Apps gradually moved from direct axes and interaction setup to the managed UI facades. App-private geometry helpers remained private, so the framework did not promise a public API for every interaction detail.

Validation

The period added public API option documentation, app-private helper tests, interaction regression coverage, and focused checks for UI layout ownership. No single historical validation command covers the complete stage.

Evidence

Known limitations and follow-up

The interaction layer was still evolving and the test infrastructure mixed custom runners with newer MATLAB tests. The v1.0 stabilization pass addressed test entry points, package ownership, and remaining compatibility aliases.