Move layout reload policy into platform api
This commit is contained in:
@@ -583,6 +583,11 @@ Known local toolchain state:
|
||||
while non-Windows platforms still reach retained platform bridges through
|
||||
the debt-tracked adapter isolated in
|
||||
`src/platform_legacy/legacy_platform_services.*`.
|
||||
- `pp_platform_api` also owns `plan_asset_file_load`, the SDK-free file-load
|
||||
policy consumed by `LayoutManager` for XML layout reload decisions. The
|
||||
helper preserves desktop mtime-based reload behavior and non-desktop
|
||||
already-loaded skip behavior while keeping direct platform guards out of the
|
||||
shared layout parser.
|
||||
- `pp_renderer_gl` owns the tested `OpenGlInitialState` startup depth/blend
|
||||
policy and dispatch application consumed by `App::init`, tested runtime
|
||||
version/vendor/renderer/GLSL string query dispatch, tested default clear
|
||||
@@ -660,8 +665,8 @@ Known local toolchain state:
|
||||
split persistence/runtime dispatch, and malformed startup-plan rejection.
|
||||
- `pp_platform_api_tests` covers service dispatch for clipboard read/write,
|
||||
empty clipboard writes, cursor visibility, virtual-keyboard visibility,
|
||||
external file display, file sharing, VR lifecycle, and picker callbacks
|
||||
without platform SDK headers or a window.
|
||||
external file display, file sharing, VR lifecycle, layout/asset file load
|
||||
policy, and picker callbacks without platform SDK headers or a window.
|
||||
- `pp_app_core_document_cloud_tests` covers cloud upload no-canvas,
|
||||
new-document warning, clean publish prompt, and dirty save-before-upload
|
||||
decisions, plus cloud browse no-canvas/show-browser and selected-download
|
||||
|
||||
@@ -71,6 +71,7 @@ agent or engineer to remove them without reconstructing context from chat.
|
||||
| DEBT-0051 | Open | Modernization | Document browser search roots and Browse dialog working-directory picker visibility/path formatting now dispatch through `PlatformServices`, but iOS `Inbox` inclusion and macOS directory picker/display-path behavior still live in `src/platform_legacy/legacy_platform_services.*` | Preserve current iOS document import/browse and desktop browse picker behavior while Apple platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; Apple package smoke once root Apple builds exist | Document browse roots and browse-directory picker/display formatting are owned by injected Apple and desktop `pp_platform_*` services with no legacy adapter branch |
|
||||
| DEBT-0052 | Open | Modernization | Native UI/window state saving now dispatches through `PlatformServices`, but macOS execution still lives in `src/platform_legacy/legacy_platform_services.*` and forwards to the retained Objective-C app bridge | Preserve current Windows/macOS UI persistence while platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; Windows app build; Apple package smoke once root Apple builds exist | UI/window state persistence is owned by injected platform services with no legacy adapter branch |
|
||||
| DEBT-0053 | Open | Modernization | Prepared-file writable target selection and prepared-file export-dialog policy now dispatch through `PlatformServices`, but iOS/Web target selection still lives in `src/platform_legacy/legacy_platform_services.*` | Preserve mobile/Web export handoff behavior while platform shells are extracted incrementally | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug`; Windows app build; Apple/Web package smoke once root package builds exist | Prepared-file target selection, export-dialog policy, and save/download handoff are owned by injected platform services with no legacy adapter branch |
|
||||
| DEBT-0054 | Open | Modernization | Layout XML file read/reload decisions now consume `pp_platform_api::plan_asset_file_load`, but that helper still encodes the retained compile-time platform policy: Windows/macOS use `stat` mtime reload checks, while other platforms treat already-loaded layouts as successful no-op loads | Preserve current layout hot-reload and mobile/Web single-load behavior while removing platform guards from the shared `LayoutManager` parser | `pp_platform_api_tests`; `ctest --preset desktop-fast --build-config Debug -R pp_platform_api_tests`; Windows app build | Layout reload decisions are owned by injected platform storage/file-watch services or an asset manager boundary with platform-specific file watching removed from compile-time helpers |
|
||||
|
||||
## Closed Debt
|
||||
|
||||
|
||||
@@ -650,6 +650,9 @@ file display, file sharing, recording file cleanup, live asset/layout reload
|
||||
policy, diagnostic stacktrace/crash hooks, SonarPen availability/startup,
|
||||
VR mode start/stop,
|
||||
image/file/save-file pickers, and directory pickers.
|
||||
It also owns the SDK-free layout/asset file load policy helper used by
|
||||
`LayoutManager`, so XML layout hot-reload timestamp checks no longer live in
|
||||
the shared UI parser.
|
||||
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
|
||||
@@ -786,6 +789,9 @@ guards from `App::rec_clear`.
|
||||
The UI loop now asks `PlatformServices` whether live shader/layout reloading
|
||||
should run, preserving the previous Windows/macOS reload behavior while removing
|
||||
the direct `(_WIN32 || __OSX__)` guard from `App::ui_thread_main`.
|
||||
Layout XML reload read/skip decisions now go through `pp_platform_api` as well,
|
||||
preserving desktop mtime-based reloads and non-desktop single-load behavior
|
||||
while removing the direct Windows/macOS guard from `LayoutManager::load`.
|
||||
`App::stacktrace` and `App::crash_test` now dispatch through `PlatformServices`,
|
||||
with Windows retaining the debug-break crash hook and the legacy adapter
|
||||
preserving Apple stacktrace/crash and Android crash-test behavior.
|
||||
@@ -1766,6 +1772,7 @@ Results:
|
||||
collection policy dispatch, network TLS verification policy dispatch,
|
||||
default network TLS policy coverage, PPBR export data-directory policy
|
||||
dispatch, SonarPen availability/startup dispatch, VR lifecycle dispatch,
|
||||
layout/asset file load policy coverage,
|
||||
live asset/layout reload policy dispatch,
|
||||
diagnostic hook dispatch, per-frame platform hook dispatch, picker callback
|
||||
dispatch, and prepared-file save/download callback dispatch. The live Windows
|
||||
|
||||
Reference in New Issue
Block a user