Documentation is work in progress and not completeEditor
FlashCC/Infrastructure/Section 22 of 29

Persistence

The localStorage keys, and the two load-bearing distinctions: saveDoc vs putDoc, and deleteDoc vs dropDoc.

KeyHolds
flashcc:v3:indexDocSummary[] — the grid and the search blob
flashcc:v3:doc:<id>One full Doc, media included as base64
flashcc:v3:index-versionRetires the one-shot summary backfill
flashcc:v3:fontsUploaded faces as data URLs
flashcc:v3:onboarded / :prefsOnboarding state and answers
flashcc:v1:postsThe entire pipeline in one key
flashcc:v1:tombstonesDeletions, both kinds
flashcc:v1:sync-cursorLast successful sync — read only for the "Synced 3m ago" label

saveDoc versus putDoc is the load-bearing distinction. saveDoc restamps updatedAt; putDoc writes verbatim. Sync applies remote records through putDoc, because restamping a record the moment it arrives makes the local copy look newer than the server’s — the next merge pushes it straight back and the two sides take turns overwriting each other forever.

deleteDoc versus dropDoc is the same shape of decision. deleteDoc removes and records a tombstone. dropDoc removes without one, for the only two cases that are not deletions: applying a remote delete, and clearing the machine on sign-out. Tombstoning either would push a delete back up for work that is very much alive on the account.