Overview
Currently, the lyric editor supports versioning via manual commits to the database. However, if a user refreshes the browser or closes the application without committing, all unsaved progress is lost because the "active" state is not stored on the server. This task is to implement a Backend Persistence Layer that saves the current state of the editor to the database independently of the commit history.
Problem
- Data Loss: Refreshing the app or a crash wipes the current editor buffer because it only exists in the frontend memory.
- Commit Pressure: Users feel forced to perform a formal "Commit" action just to save their progress, which creates "junk" entries in the version management history.
- Lack of Continuity: Because changes aren't saved to the backend until a commit, a user cannot start writing on one device and see their uncommitted changes on another.
Acceptance Criteria
- Uncommitted text typed in the editor is saved to the backend and survives a page refresh (F5).
- Uncommitted changes are visible even if the user logs in from a different browser or device.
- The "Commit" history remains clean and is only populated when the user explicitly clicks "Commit."
Overview
Currently, the lyric editor supports versioning via manual commits to the database. However, if a user refreshes the browser or closes the application without committing, all unsaved progress is lost because the "active" state is not stored on the server. This task is to implement a Backend Persistence Layer that saves the current state of the editor to the database independently of the commit history.
Problem
Acceptance Criteria