4.8 KiB
| id | ticket | title | status | created | completed | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0050 | studio-scene-workspace | Build Scene Workspace shell and project-state foundations | abandoned | 2026-04-14 |
|
Objective
Establish the shell, workspace registration, and project-state foundations required to mount Scene Workspace as a first-class Studio workspace.
Background
DEC-0026 requires Scene Workspace to exist as its own shell workspace and to own scene-authoring detail locally. The current shell and project-state code already support Assets, Code Editor, Debug, and Shipper, but no scene workspace entry exists yet.
Scope
Included
- Add a
Scene Workspaceentry to the Studio shell workspace model. - Mount a first implementation composition root for
Scene Workspace. - Extend project-local layout/state only where needed for accepted shell behavior.
- Keep workspace-local operational state out of shell-global ownership.
Excluded
- Full tilemap editor interactions.
- Asset creation workflows.
- Scene serialization and save internals.
Execution Steps
Step 1 - Extend workspace identifiers and shell selection
What:
Add Scene Workspace to the workspace identity model and shell-selection flow.
How:
Update the workspace enum/identifier, shell selection logic, and main window wiring so the shell can mount and switch to Scene Workspace like other first-class workspaces.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/WorkspaceId.javaprometeu-studio/src/main/java/p/studio/window/MainView.javaprometeu-studio/src/main/java/p/studio/workspaces/WorkspaceHost.java
Step 2 - Add a Scene Workspace composition root
What:
Create the initial workspace class and composition surface for Scene Workspace.
How: Introduce a new workspace package with a composition root that follows the Studio event-driven workspace framework and can initially host the wave-1 layout regions.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/scene/SceneWorkspace.java- supporting classes under
prometeu-studio/src/main/java/p/studio/workspaces/scene/
Step 3 - Wire workspace lifecycle and activity integration
What: Ensure the new workspace participates correctly in the shared workspace lifecycle model.
How: Use existing workspace lifecycle helpers and add any minimal shell-activity mapping needed for workspace open or scene-open events, without leaking scene-local detail into the shell.
File(s):
prometeu-studio/src/main/java/p/studio/workspaces/StudioWorkspaceLifecycleSupport.javaprometeu-studio/src/main/java/p/studio/controls/shell/StudioActivityEventMapper.javaif needed
Step 4 - Extend project-local shell state only as required
What:
Support accepted shell/layout restoration for Scene Workspace if the implementation needs persisted split/divider state in wave 1.
How: Introduce the smallest project-local state additions necessary for shell restoration and workspace layout proportions. Do not persist scene-editor document state here unless a separate accepted rule exists.
File(s):
prometeu-studio/src/main/java/p/studio/projectstate/ProjectLocalStudioState.javaprometeu-studio/src/main/java/p/studio/projectstate/ProjectLocalStudioStateService.java- related tests under
prometeu-studio/src/test/java/p/studio/projectstate/
Test Requirements
Unit Tests
- Workspace id / shell restoration tests for the new workspace entry.
- Project-local state normalization tests if new layout state is added.
Integration Tests
- Main-view or shell-focused tests that verify
Scene Workspacecan mount and become the active workspace.
Manual Verification
- Open a project and confirm
Scene Workspaceappears as a shell workspace. - Switch between
Assets,Scene Workspace, andCode Editorwithout losing shell stability. - Reopen the project and confirm accepted shell layout restoration still behaves safely.
Acceptance Criteria
Scene Workspaceis a selectable shell workspace.- The workspace mounts through the standard workspace host path.
- No scene-local editing detail is pushed into shell-global state.
- Any new project-local state is limited to accepted shell/workspace restoration concerns.
Dependencies
DEC-0026-studio-scene-workspace.mdPLN-0049-scene-workspace-spec-and-boundary-propagation.md
Risks
- Overloading shell state with scene-editor detail would violate the workspace boundary.
- Introducing restoration for unaccepted categories would outrun the decision.
- Wiring shortcuts through
MainViewwithout a clean package boundary would make later tilemap work harder.
Abandonment
Abandoned on 2026-04-15 because the parent decision DEC-0026 was explicitly abandoned by the user.