Project file lifecycle #25
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
needs-info
needs-triage
question
ready-for-agent
ready-for-human
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
crowmaki/ai-studio#25
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#24
What to build
The tracer bullet for the whole app. A filmmaker can create a new Project, close it, and open it again from a
.studiofile. This ticket sets up the Cargo workspace with a thickstudio-corecrate (no Tauri) and a thinsrc-tauriadapter overtaurpc.ProjectSessionis the public API and the test seam. A minimal SvelteKit screen offers New / Open and shows the Project's title and aspect ratio. Follows ADR-0001 and ADR-0003, and spec section "Project file". This ticket writes the DDL for the tables it creates.Acceptance criteria
studio-corecrate exists with aProjectSessionthat creates, opens and closes a.studioSQLite file with a fixedapplication_id;src-taurionly maps DTOs and wraps commands that return a typed error enumPRAGMA user_version, are embedded in the core, and run in one transaction after copying the file to<name>.studio.bak-v<N>journal_mode=DELETE, leaving a single file at rest<name>.studio.lockfile with PID and host stops a second running instance from opening the same Project<name>.media/folder is created; ULID keys and the content-addressedblobtable (BLAKE3, media type, size, pixel dimensions) exist, with an unused-blob sweep on openprojectrow and list tables at creation, and are never read again by that ProjectProjectSessionagainst real files in a temp directory (create, reopen, migrate with backup, refuse newer, lock conflict, single file after close); the adapter has a smoke testBlocked by