Repository navigation
Bug: Save and reopen the complete canvas as a durable project #104
Description
Summary
A text item disappeared after browser reload. useCanvasStore.ts:48 initializes an in-memory canvas, and the frontend does not connect this state to the backend project CRUD API. Database project tests exercise storage primitives rather than saving and reopening the actual application canvas.
Environment and evidence
- Review finding: F04 (2026-10-05 product/technical review).
- Baseline: Windows,
devat c1c5dbe. The remotedevmatched this commit when filing. - Evidence: Reproduced + Code.
- Priority recommendation: P1 - proposed first-release blocker. This is review triage, not a production-incident severity declaration.
- No real credentials, paid inference, engine installation, or unrelated process termination were used for review probes. Mocked observations establish the stated code behavior, not live-provider/GPU acceptance.
Reproduction or validation
- Open Berry with a disposable data directory.
- Add a Text Input canvas item and change its position/content.
- Reload the browser and return to the canvas.
- Observe that the item and layout are gone.
The frontend canvas store initializes in memory and does not call the backend project CRUD routes.
User impact
Users can lose layout, selections, relationships, and their working context on restart. This directly fails R15.
Proposed approach
Create/open/save/autosave a versioned project containing canvas layout, asset references, lineage, and generation history. Test restart recovery and missing-file handling through the UI.
Acceptance criteria
- Users can create, save, open, and autosave a versioned project.
- Restart restores layout, asset references, lineage, and generation history.
- Missing imported files produce an actionable recovery state.
- An end-to-end restart test exercises the actual frontend project flow.
Verification scope
Real GPU inference, paid-provider compatibility, and a clean-machine packaged desktop journey remain unverified. Any follow-up implementation should target dev under the repository's contribution/branching rules.
Activity
Merge pull request #165 from BerryUIKI/bugfix/durable-canvas-project-104
BerryUIKI commentedon Oct 7, 2026
Resolved by #165 in commit d6fdd11. Full canvas layout, viewport pan/zoom, asset references, lineage, and generation history are now durably persisted, autosaved, and restored upon restart, with actionable recovery states provided for missing asset files.