Route prepared file saves through platform services

This commit is contained in:
2026-06-03 04:29:58 +02:00
parent e10e16f491
commit 2ea850cbcc
10 changed files with 109 additions and 27 deletions

View File

@@ -475,9 +475,10 @@ Windows installs an injected `WindowsPlatformServices` implementation from
`src/platform_windows/windows_platform_services.*` in `pp_platform_windows`;
other platforms still route through the debt-tracked legacy fallback adapter
now isolated in `src/platform_legacy/legacy_platform_services.*`, so behavior
is preserved while their platform shell implementations are extracted. The iOS/Web
save-with-writer overload remains separate because it writes a
temporary/exported file before handing control to the platform.
is preserved while their platform shell implementations are extracted.
Prepared-file save/download handoff is now also part of the service contract,
so iOS/Web export completion routes through `PlatformServices` after the app
writes the temporary/exported payload.
`pano_cli plan-cloud-upload` exposes the app-core cloud upload decision used by
the live cloud upload command for missing-canvas, new-document warning, publish
prompt, and dirty-document save-before-upload states before legacy UI, canvas,
@@ -991,11 +992,11 @@ Results:
- `pp_platform_api_tests` passed, covering the SDK-free `PlatformServices`
interface for clipboard read/write, empty clipboard writes, cursor
visibility dispatch, virtual-keyboard visibility dispatch, external file
display dispatch, file sharing dispatch, and picker callback dispatch. The
live Windows app now consumes this interface through an injected
`WindowsPlatformServices` instance isolated in
`src/platform_windows/windows_platform_services.*`; other platforms still
use the legacy fallback adapter, now isolated in
display dispatch, file sharing dispatch, picker callback dispatch, and
prepared-file save/download callback dispatch. The live Windows app now
consumes this interface through an injected `WindowsPlatformServices`
instance isolated in `src/platform_windows/windows_platform_services.*`;
other platforms still use the legacy fallback adapter, now isolated in
`src/platform_legacy/legacy_platform_services.*` instead of being owned by
`app_events.cpp`.
- `panopainter_validate_shaders` passed, validating 25 shader programs and 7