Move project save post-commit planning to app core

This commit is contained in:
2026-06-06 12:16:19 +02:00
parent f3834827b1
commit c8b55b36f7
8 changed files with 176 additions and 28 deletions

View File

@@ -307,7 +307,10 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
the app-core commit plan for direct saves, successful temporary swaps,
target-remove failures, and rename-after-remove failures. It is covered by
forward-slash, Windows backslash, existing-target, remove-failure,
rename-failure, and invalid-path smokes.
rename-failure, and invalid-path smokes. The same command now reports the
app-core post-commit side-effect plan for clean/new-document metadata
updates, timelapse sidecar gating, platform flush, progress cleanup, and
title refresh.
- 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.
@@ -1191,7 +1194,10 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
delegating to retained `Canvas::project_save`. Direct save, successful
temporary swap, remove-failure, and rename-after-remove commit outcomes are
now classified by the same app-core planner before retained success metadata
mutation.
mutation. Post-commit clean/new-document metadata, timelapse sidecar,
platform flush, progress cleanup, and title-refresh decisions also come from
`pp_app_core`, while retained code still performs the mutations and sidecar
serialization.
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

@@ -559,6 +559,15 @@ agent or engineer to remove them without reconstructing context from chat.
Actual PPI serialization, filesystem remove/rename execution,
progress/threading, timelapse sidecar serialization, and app metadata
mutation remain retained.
- 2026-06-06: DEBT-0040/DEBT-0042 were narrowed again. `pp_app_core` now owns
the retained project-save post-commit side-effect policy: successful saves
mark the document clean, commit new-document state, flush platform storage,
optionally write a timelapse sidecar when an encoder exists, and always
dismiss visible progress UI plus refresh the title. Live
`Canvas::project_save_thread` consumes that plan, and
`pano_cli plan-canvas-project-save-target` reports it in JSON. Actual state
mutation, progress UI destruction, platform flush execution, title update,
and timelapse sidecar serialization 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

@@ -715,8 +715,11 @@ and preserving the legacy direct-write fallback when the temporary file cannot
be opened. The same app-core boundary now also classifies the post-write
commit result for direct writes, successful temporary swaps, remove failures,
and rename-after-remove failures before retained save metadata mutation
continues. The same automation now feeds payload-complete snapshots through the
shared
continues. Post-save side effects are now planned there too: mark-clean,
new-document commitment, timelapse sidecar gating, platform flush, progress
cleanup, and title refresh are reported before retained execution performs the
actual mutations and sidecar serialization. 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
@@ -2326,6 +2329,9 @@ Results:
The command now reports the app-core commit plan for direct saves, successful
temporary swaps, target-remove failures, and rename-after-remove failures,
including whether the target may be missing after a failed swap.
It also reports the app-core post-commit side-effect plan, including
clean/new-document metadata updates, timelapse sidecar gating, platform
flush, progress cleanup, and title refresh.
- 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,