Skip to content

History and revisions

Every change to every page, and how to compare two of them.

Every page keeps its revisions. Nothing is erased.

FieldMeaning
EditorWho or what made the change.
TimestampWhen.
SourceHow it arrived.
ContentThe state of the page at that point.

The source field says which surface produced the revision:

SourceMeaning
editorSomebody typed it in the writer.
gitIt arrived as a commit on a branch.
importIt came from an import job.
apiIt came through the API.
aiIt was drafted with assistance.
rollbackIt restores an earlier state.

Knowing the source is what makes an agent’s work reviewable months later. A page whose last three revisions are ai is a page nobody has read.

Compare any two revisions of a page. The diff is per block, so it shows what a reader would see change.

The writer autosaves. Autosave does not create a visible revision per keystroke: operational history is kept internally, and meaningful snapshots are taken periodically, at session boundaries, and on publish.

Note

The platform never silently discards editing work. If the network fails, unsynced content is preserved locally and retried. The writer shows one of four states: Saving, Saved, Offline, or Sync failed.

Restoring an earlier revision creates a new revision. The history between them stays.

A restored page goes back where it sat in the navigation. If its slug now conflicts with another page, you are asked for a new one rather than having the other page overwritten.

A deleted page goes to Trash first. From Trash you can restore it. Deleting a page shows its inbound internal references and the redirect implications before anything happens.

History is per page and holds content. The audit log is per workspace and holds sensitive operations: who was invited, whose role changed, which token was minted, which domain was connected. Use history to answer “what did this page say”; use the audit log to answer “who did that”.