Route startup storage paths through platform services

This commit is contained in:
2026-06-03 04:59:23 +02:00
parent beb7f717f1
commit 578b1f6082
10 changed files with 170 additions and 93 deletions

View File

@@ -469,10 +469,10 @@ cursor bridges continue.
app-core clipboard text decisions used by live clipboard get/set requests
before retained platform clipboard bridges continue.
`pp_platform_api` now owns a headless `PlatformServices` interface for
clipboard text, cursor visibility, virtual-keyboard visibility, UI-thread
lifecycle hooks, render-context acquire/release/present hooks, render-capture
frame hooks, external file display, file sharing, image/file/save-file
pickers, and directory pickers.
startup storage path preparation, clipboard text, cursor visibility,
virtual-keyboard visibility, UI-thread lifecycle hooks, render-context
acquire/release/present hooks, render-capture frame hooks, external file
display, file sharing, image/file/save-file pickers, and directory pickers.
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
@@ -504,6 +504,10 @@ shells are injected.
Windows RenderDoc frame capture hooks now also dispatch through
`PlatformServices`, keeping capture integration in the platform service while
leaving non-Windows adapters as no-ops.
Startup data/work/recording/temp path preparation now dispatches through
`PlatformServices`, with Windows creating the Documents/PanoPainter folder
tree in `WindowsPlatformServices` and Apple/Linux/Web behavior preserved in the
legacy adapter until platform shells are injected.
`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,
@@ -1015,13 +1019,13 @@ Results:
`pano_cli_plan_clipboard_write_empty_smoke` passed and expose app-core
clipboard decisions as JSON, including empty write text.
- `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, native app/window close dispatch,
UI-thread lifecycle dispatch, render-context lifecycle dispatch,
render-capture frame hook dispatch, per-frame platform hook dispatch, picker
callback dispatch, and prepared-file save/download callback dispatch. The
live Windows app now
interface for startup storage path preparation, clipboard read/write, empty
clipboard writes, cursor visibility dispatch, virtual-keyboard visibility
dispatch, external file display dispatch, file sharing dispatch, native
app/window close dispatch, UI-thread lifecycle dispatch, render-context
lifecycle dispatch, render-capture frame hook dispatch, per-frame platform
hook 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