Extract app document session decisions

This commit is contained in:
2026-06-02 22:21:08 +02:00
parent 9dd53f9212
commit 76808d60e3
11 changed files with 225 additions and 17 deletions

View File

@@ -168,9 +168,12 @@ targets.
`pp_app_core` now owns tested app-level document-open routing for project
files, ABR imports, and PPBR imports without UI, filesystem, platform, or
renderer dependencies; `App::open_document` and `pano_cli classify-open`
consume this route contract while legacy canvas/project loading remains in
place. `panopainter_app` is now a real static target that owns app
orchestration sources, app version metadata, and version-header generation.
consume this route contract. It also owns tested unsaved-document decisions for
project-open and app-close flows; `App::open_document`, `App::request_close`,
and `pano_cli simulate-app-session` consume those contracts while legacy
canvas/project loading remains in place. `panopainter_app` is now a real
static target that owns app orchestration sources, app version metadata, and
version-header generation.
`pp_panopainter_ui` now owns app-specific modal, dialog, panel, canvas,
viewport, color-picker, stroke-preview, and tool UI workflow nodes outside
`pp_legacy_app`; base `Node` controls and layout plumbing remain in the legacy
@@ -283,11 +286,11 @@ Status: in progress. `tests/` exists, `desktop-fast`, `fuzz`, and `stress`
CTest presets run headlessly, and
PowerShell/bash wrappers exist for
configure/build/test/analyze/platform-build/package-smoke. `pano_cli` exists
with JSON automation commands for app document-open routing, creating a
`pp_document` model, metadata-only PPI project loading, and inspecting image
signatures, PPI headers, and layout XML; full document/app integration is
debt-tracked as DEBT-0010 and full PPI body parsing is debt-tracked as
DEBT-0013.
with JSON automation commands for app document-open routing, app session
dirty-state decisions, creating a `pp_document` model, metadata-only PPI
project loading, and inspecting image signatures, PPI headers, and layout XML;
full document/app integration is debt-tracked as DEBT-0010 and full PPI body
parsing is debt-tracked as DEBT-0013.
Implementation tasks:
@@ -419,9 +422,11 @@ the applied stroke payload survives inspect/load round-trip automation, with a
rejection smoke test for unsafe tiny canvas dimensions.
`pano_cli classify-open` exposes the pure `pp_app_core` document-open route
contract for project files, ABR imports, PPBR imports, and malformed path
rejection. `pano_cli parse-layout` exercises the XML layout path. Continue
expanding document behavior toward legacy Canvas parity and then port OpenGL
classes behind the renderer boundary.
rejection. `pano_cli simulate-app-session` exposes the pure `pp_app_core`
unsaved-document decisions used by project-open and app-close flows.
`pano_cli parse-layout` exercises the XML layout path. Continue expanding
document behavior toward legacy Canvas parity and then port OpenGL classes
behind the renderer boundary.
Implementation tasks: