feat(editor): resume past recordings from the empty-state dashboard#21
Merged
Conversation
Recording manifests (*.session.json) were write-only: only the in-memory current session could be reopened, so any take not saved as a .openscreen project was stranded once another recording replaced it (importing the .mp4 manually loses the webcam sidecar and cursor telemetry the manifest references). - list-recording-sessions: scans RECORDINGS_DIR manifests, skips stale ones (video deleted), drops missing webcam sidecars, newest first. - open-recording-session: validates the path and re-sets the chosen session as current, reusing the existing manifest loader. - EditorEmptyState shows a Recent recordings list (date, webcam badge, size) that opens straight into the editor. - VideoEditor: session-apply logic extracted into applyRecordingSession, shared by startup load and the new dashboard path. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recordings write a
*.session.jsonmanifest, but nothing ever read them back as a list — only the single in-memory current session could be reopened. Any take not explicitly saved as a.openscreenproject was stranded once another recording replaced it: the files sat on disk with a valid manifest and no UI could open them (importing the.mp4manually loses the webcam sidecar and cursor telemetry).What's new
list-recording-sessions(main): scansRECORDINGS_DIRfor manifests, validates each (skips stale ones whose video was deleted; drops a missing webcam sidecar but keeps the session), returns newest-first with file size.open-recording-session(main): path-validated; reuses the existingloadRecordedSessionForVideoPathloader and sets the chosen session as current.loadInitialDatais extracted intoapplyRecordingSessionand shared by the startup path and the new dashboard path (no behavior change on startup).Flow
Fresh launch with no current session → dashboard lists past takes. Otherwise: New Project (clears current session) → dashboard → pick a take.
Verification
tsc --noEmit0 errors,biome checkclean,vitest225/225,i18n-checkall 12 locales, vite build OK🤖 Generated with Claude Code