Problem
There is no way to get your data out of Caroline except by opening the SQLite file yourself.
For a tool whose pitch is self-hosted and private by design, that is a gap in the promise rather
than a missing convenience. "You own your data" is not true in any useful sense if the only way to
read it is to know SQL and the schema. It also leaves two ordinary questions unanswered: what
happens if you stop using Caroline, and how do you move an install to a new machine without
copying an opaque binary file and hoping the migrations line up.
It bites hardest on the data no external system holds a copy of: manually created tasks, project
notes, plan history, and the record of what was classified and corrected.
Expected outcome
A person can get everything Caroline holds about their work out of it, in a form something else
can read.
- One action produces a complete, human-readable export of the user's data: tasks, projects, tags,
plans and their entries, waiting items, classifications, chat history and settings.
- The format is self-describing and stable enough to be parsed by something that is not Caroline.
A dump of internal rows with no schema is not an export.
- What is included is stated, and so is what is deliberately not: an export is a claim about
completeness and the claim has to be checkable.
- Credentials and tokens are not in it. An export is data about work, not a copy of the keys.
- It is clear to the user that the file contains personal data once it leaves the data directory.
Context
npm run delete-data already walks the full shape of the user's data in order to erase it, so the
inventory of what counts as the user's data already exists in the codebase.
Problem
There is no way to get your data out of Caroline except by opening the SQLite file yourself.
For a tool whose pitch is self-hosted and private by design, that is a gap in the promise rather
than a missing convenience. "You own your data" is not true in any useful sense if the only way to
read it is to know SQL and the schema. It also leaves two ordinary questions unanswered: what
happens if you stop using Caroline, and how do you move an install to a new machine without
copying an opaque binary file and hoping the migrations line up.
It bites hardest on the data no external system holds a copy of: manually created tasks, project
notes, plan history, and the record of what was classified and corrected.
Expected outcome
A person can get everything Caroline holds about their work out of it, in a form something else
can read.
plans and their entries, waiting items, classifications, chat history and settings.
A dump of internal rows with no schema is not an export.
completeness and the claim has to be checkable.
Context
npm run delete-dataalready walks the full shape of the user's data in order to erase it, so theinventory of what counts as the user's data already exists in the codebase.