Parent
Goal
Route .pf and legacy JSON project imports through one service that creates a new durable library identity without replacing the active project.
Context
The File menu currently parses and loads files directly into the active singleton project. F8.2 needs the same behavior for File menu, drag-and-drop, and OS launches.
Risk and routing
Risk: low
Readiness: ready-for-agent
The change is local, reversible, and covered through public service/workspace behavior. It does not request new browser permissions.
Acceptance Criteria
Suggested Files
src/services/project-file-import.ts
src/services/project-library.ts
src/stores/workspace.ts
- focused service/store tests
Verification
- Focused Vitest coverage for valid, legacy, invalid, and tab-limit paths.
npm run test:run
npm run build
git diff --check
Dependencies
None.
Out of Scope
- Aseprite conversion.
- PWA launch registration.
- Writing changes back to the original OS file.
Parent
Goal
Route
.pfand legacy JSON project imports through one service that creates a new durable library identity without replacing the active project.Context
The File menu currently parses and loads files directly into the active singleton project. F8.2 needs the same behavior for File menu, drag-and-drop, and OS launches.
Risk and routing
Risk: low
Readiness: ready-for-agent
The change is local, reversible, and covered through public service/workspace behavior. It does not request new browser permissions.
Acceptance Criteria
.pffile creates a new project UUID and preserves its embedded project name.Suggested Files
src/services/project-file-import.tssrc/services/project-library.tssrc/stores/workspace.tsVerification
npm run test:runnpm run buildgit diff --checkDependencies
None.
Out of Scope