Move the project. Keep its contents together.
The problem
A growing gallery needs a stable way to group projects, scenes and panels without flattening every asset into one long list.
A recorded project move
A new home.
The same contents.
Move Pocket Gardens from Studio into Archive. Its two scenes, panel and uploaded image stay together, ready to find again.
- 01
Studio Archive
Change the project’s workspace.
- 02
Keep its contents together
Two scenes, one panel and one image remain.
- 03
Reload and find it there
The saved move appears in the gallery.
What the checks confirmed
Same records.
Unchanged image bytes.
The captured view shows the retained names, tree and image. Separate checks of the saved fixture confirmed the same project, scenes, panel, image and file records, with their relationships intact and the media bytes unchanged.
Source, checks and the unreleased fix
A workspace is the parent above Project, Scene and Panel. The move changes that parent while retaining the project’s existing contents. This example ran the real interface and server against a disposable database containing only fictional records.
The canonical destination picker did not load its choices on first mount. This recording uses one private watcher option, immediate: true, to load them when the dialog opens. That correction is unreleased; this is not a production capture or a claim that the unmodified picker works.
The actual move request and page reload supplied the persistence check for this fixture. Seventeen separate client UI tests passed with mocked requests; those tests do not establish server persistence or every hierarchy write path.
The observed saved changes were the project’s workspace and update timestamp, plus the image assignment’s workspace. The assignment timestamp remained unchanged. The scenes, panel, image and file records remained unchanged.
The uploaded still life uses procedural geometry. No image generation, live provider or production account was involved. The top-center icon is static Forge branding, supplied by HeaderBranding.vue and ForgeMascot.vue.
What this makes possible
A project can change workspace while its scenes, panels and assigned media stay together. The recorded local example checks that the saved hierarchy survives a reload.
Source information sheet
Evidence, implementation & history Implementation inspected
What I checked
Source and release record inspected. The recorded isolated move and reload use fictional data and one unreleased destination-dialog watcher option. Saved-row and file checks verify this fixture; mocked client tests are separate. No production availability is claimed.
Release anchor: web-v10.0.0.
Research cut: 15 October 2026. Source areas below are from panel-forge. Private conversation references are retained in the research ledger and are not published here.
Implementation decisions
A per-user Workspace root sits above Project, Scene and Panel and supports moving projects while preserving hierarchy-aware gallery and API assignment.
Add a protected root and backfill existing assignments so organization can grow without abandoning the old hierarchy.
A path through the feature
- The consequence
Add a protected root and backfill existing assignments so organization can grow without abandoning the old hierarchy.
Source areas
app/Models/Workspace.phpresources/js/composables/useGalleryTree.tsapp/Http/Controllers/GalleryController.phpdatabase/migrations/
The recorded showcase uses the actual isolated application with fictional data and an unreleased destination-dialog fix. Its proof receipt separates the actual persistence run from mocked client tests.
Recorded history
Dates describe the researched record, rather than today’s deployment.
web-v10.0.0