Move project save target planning to app core

This commit is contained in:
2026-06-06 11:52:49 +02:00
parent 9d9b93abb1
commit ed9709ade8
8 changed files with 217 additions and 7 deletions

View File

@@ -297,6 +297,12 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
1024x1024 draw/readback plan counts. It is covered by
`pano_cli_plan_canvas_document_snapshot_smoke` plus the payload-bearing
snapshot smoke.
- `pano_cli plan-canvas-project-save-target` exposes the app-core planner for
retained project-save target paths, including the requested PPI path,
temporary `.tmp.ppi` path, and timelapse `.pptl` sidecar path. The live
`Canvas::project_save_thread` consumes the same planner before retained
serialization, and the command is covered by forward-slash, Windows
backslash, and invalid-path smokes.
- Live equirectangular, layer, animation-frame, and cube-face export adapters
now prepare and log the same payload-bearing canvas document snapshot plus
shared paint-renderer export-readiness report.
@@ -1174,8 +1180,9 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
overwrite prompts, document field updates, title updates, and keyboard/dialog
cleanup. Existing Save, Save As, Save Version, and save-before-workflow
prepare and log a payload-bearing canvas document snapshot report, run the
app-core pure PPI save-writer route for payload-complete snapshots, and log
generated byte counts before delegating to retained `Canvas::project_save`.
app-core pure PPI save-writer route for payload-complete snapshots, log
generated byte counts, and derive project-save target/tmp/timelapse paths
through `pp_app_core` before delegating to retained `Canvas::project_save`.
Retained legacy UI/canvas
execution and actual live save serialization remain tracked by `DEBT-0040`,
`DEBT-0041`, and `DEBT-0042`; the pure snapshot-to-PPI export handoff is

View File

@@ -534,6 +534,13 @@ agent or engineer to remove them without reconstructing context from chat.
`Canvas::project_save` continues. The retained writer still owns actual save
serialization, app metadata mutation, progress/threading, and compatibility
quirks.
- 2026-06-06: DEBT-0040/DEBT-0042 were narrowed again. `pp_app_core` now owns
the retained project-save target path planner for the requested PPI path,
temporary `.tmp.ppi` path, and timelapse `.pptl` sidecar path; live
`Canvas::project_save_thread` consumes it and
`pano_cli plan-canvas-project-save-target` exposes it for automation. Actual
PPI serialization, temporary-file swap execution, progress/threading,
timelapse sidecar serialization, and app metadata mutation remain retained.
- 2026-06-05: DEBT-0010/DEBT-0013 were narrowed again. `pp_app_core` now
exports payload-complete or metadata-only canvas document snapshots through
the pure `pp_document` PPI writer and rejects snapshots that still require

View File

@@ -705,7 +705,11 @@ save-writer route/byte count before retained save continues. 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 plus the same
save-writer route JSON. The same automation now feeds payload-complete snapshots through the shared
save-writer route JSON. `pp_app_core` also owns the retained project-save target
path planner for target, temporary PPI, and timelapse sidecar paths; live
`Canvas::project_save_thread` consumes that planner and
`pano_cli plan-canvas-project-save-target` exposes it for automation. The same
automation now feeds payload-complete snapshots through the shared
`pp_paint_renderer::prepare_document_frame_export_readiness` report, which
records renderer-neutral six-face texture upload commands and encodes the
active document frame's six composited faces to PNG bytes. This gives CLI
@@ -2304,6 +2308,11 @@ Results:
the same save-writer route, and payload-complete snapshots now run the pure
`pp_document` PPI exporter and decoded-project summary before emitting
`ppiExport` JSON.
- `pano_cli plan-canvas-project-save-target` now exposes the app-core planner
for retained project-save target paths, including the target PPI path,
temporary `.tmp.ppi` path, and timelapse `.pptl` sidecar. The live
`Canvas::project_save_thread` consumes the same planner before retained
serialization, reducing inline path compatibility logic in the legacy writer.
- The same payload-complete snapshot automation now uploads the active document
frame through `pp_paint_renderer::upload_document_frame_faces` and the
`RecordingRenderDevice`, emitting `rendererUpload` JSON with texture,