Stabilize startup and cloud dialog runtime

This commit is contained in:
2026-06-17 22:41:25 +02:00
parent 90e828bca1
commit e808018e53
10 changed files with 510 additions and 277 deletions

View File

@@ -77,6 +77,18 @@ agent or engineer to remove them without reconstructing context from chat.
through `AppRuntime::canvas_async_task` instead of a file-static worker
singleton, while retained prompt/progress lifetime, OpenGL context guards,
thumbnail loading, and transfer execution still remain in the cloud bridge.
- 2026-06-17: `DEBT-0038` was narrowed again. The retained cloud-browse dialog
in `src/node_dialog_cloud.cpp` no longer mutates the legacy UI tree directly
from its thumbnail loader worker; file-list population, error text updates,
and thumbnail attachment now queue onto `AppRuntime`'s UI task path and drop
safely when the dialog is already closed, reducing a cancel-time deadlock
risk while the broader retained cloud dialog and transfer flow still remain.
- 2026-06-17: `DEBT-0031`/`DEBT-0030` were narrowed again.
`src/legacy_file_menu_binding_services.cpp` no longer stores File-menu popup
callbacks that capture a stack-local binding service object through `this`;
retained File-menu and export-submenu actions now capture explicit `App&`,
popup root, and overlay handles, removing a startup/runtime lifetime hazard
while retained file/export execution still lives in the app shell.
- 2026-06-17: `DEBT-0048` was narrowed again. The retained ABR/PPBR import path
in `src/legacy_brush_package_import_services.cpp` now uses
`AppRuntime::canvas_async_task` instead of a file-static worker singleton,