Skip to content

Bug: Save and reopen the complete canvas as a durable project #104

Closed

Description

@BerryUIKI

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, dev at c1c5dbe. The remote dev matched 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

  1. Open Berry with a disposable data directory.
  2. Add a Text Input canvas item and change its position/content.
  3. Reload the browser and return to the canvas.
  4. 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

  1. added
    bugSomething isn't working
    criticalCritical priority issues that block core functionality or cause vulnerabilities
    backendBackend Python / FastAPI / Engine issues
    frontendFrontend React / TypeScript / UI issues
    on Oct 4, 2026
  2. added a commit that references this issue on Oct 7, 2026
  3. BerryUIKI commented on Oct 7, 2026

    @BerryUIKI
    OwnerAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendBackend Python / FastAPI / Engine issuesbugSomething isn't workingcriticalCritical priority issues that block core functionality or cause vulnerabilitiesfrontendFrontend React / TypeScript / UI issues

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions