Cursor

Cursor history: answering an audit or security questionnaire

A customer asks how AI-generated code is reviewed and retained. What do we show them?

Why this is hard

The question has stopped being hypothetical: customer security questionnaires now ask about prompt logging and retention directly. The answer has to be a system rather than a description of good intentions, and it has to cover a period that already happened.

What Cursor specifically does to you here

There is no retention policy at all, which sounds better than it is: nothing expires, but nothing is backed up either, and a corrupted database is routinely resolved by deleting it. An audit trail whose failure mode is total loss is hard to describe as a control.

See it on your own machine
sqlite3 -readonly "$HOME/Library/Application Support/Cursor/User/globalStorage/state.vscdb" "SELECT COUNT(*) FROM cursorDiskKV WHERE key LIKE 'composerData:%';"

Where Cursor keeps this in the first place: ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb. One SQLite file holds every conversation. Corruption, an upgrade, or a cleanup takes all of it at once.

What a working answer looks like

A working answer means a retained, timestamped record you can point at — with a retention policy you chose rather than inherited from a tool's default.

Start by measuring what you have. npx promptwake doctor reports what every AI tool on the machine is holding and how much of it sits inside a deletion window — no account, writes nothing, sends nothing anywhere. If the conclusion is that the record should not depend on one laptop, that is what PromptWake captures: prompt, response and the resulting diff, local by default and synced into a shared timeline on the paid tiers.