Export captured canvas snapshots through document writer

This commit is contained in:
2026-06-05 18:24:58 +02:00
parent 9a75782891
commit ba5c3069e1
8 changed files with 115 additions and 13 deletions

View File

@@ -671,8 +671,11 @@ now builds the same metadata snapshot from live `Canvas` state and has an
opt-in dirty-face payload snapshot path backed by retained `Layer::snapshot()`
readback. Live Save, Save As, Save Version, and save-before-workflow paths now
prepare and log a payload-completeness report from that snapshot before
delegating to retained `Canvas::project_save`; pure PPI writer replacement,
export adoption, and renderer-owned readback remain under
delegating to retained `Canvas::project_save`; the app-core snapshot boundary
also has a tested pure PPI export helper, and
`pano_cli plan-canvas-document-snapshot` runs that helper for payload-complete
snapshots and reports generated byte/dirty-face summaries. Live save writer
replacement, export adoption, and renderer-owned readback remain under
`DEBT-0010`/`DEBT-0013`/`DEBT-0036`.
`pano_cli plan-image-import` exposes app-core planning for File > Import image
route decisions, including wide equirectangular images, legacy vertical cube
@@ -2213,7 +2216,9 @@ Results:
retained `Canvas::project_save` writer, keeping behavior stable while moving
the app path onto the document/canvas boundary.
- `pano_cli plan-canvas-document-snapshot` now emits the same save-readiness
report (`payloadComplete` and `canExportPpi`) used by the live save bridge.
report (`payloadComplete` and `canExportPpi`) used by the live save bridge,
and payload-complete snapshots now run the pure `pp_document` PPI exporter
and decoded-project summary before emitting `ppiExport` JSON.
- `pp_app_core_document_import_tests` passed, covering wide equirectangular,
legacy vertical cube strip, regular transform-placement, and invalid-dimension
import route decisions, equirectangular service dispatch, transform import
@@ -2485,6 +2490,13 @@ Results:
Version, and save-before-workflow now log payload completeness and PPI
readiness from `pp_app_core` while legacy `Canvas::project_save` still owns
the actual file write, progress/threading behavior, and compatibility quirks.
- `pp_app_core` now exposes
`export_document_canvas_save_snapshot_to_ppi`, which refuses snapshots that
still need renderer payload readback and exports payload-complete or
metadata-only snapshots through the pure `pp_document` PPI writer. The
document-canvas tests decode the generated bytes, and
`pano_cli plan-canvas-document-snapshot` reports `ppiExport` readiness,
byte count, and dirty-face count for agent automation.
- Snapshot creation now rejects invalid embedded RGBA8 face payloads before
document export or history can persist malformed state.
- Package-smoke wrappers validate the Windows CMake app executable/runtime