From 62fd76ff79404ff1c474248f6ce4c13494b52866 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 12 Nov 2026 02:07:21 +0000 Subject: document file: say which versions read a file, and the Opened record The document file's format names itself in its first line (continuum-document/2) and each record's kind in its first byte. A record of a kind the reading version doesn't know makes the file unusable: the node doesn't start on it unless told to move it aside (--force badDocumentFile). lifecycle.md says so: a file one version wrote is read only by versions knowing every kind of record in it. The format's comment names the Opened record a node appends as it starts on the file, which undoes the clean stop's mark. --- docs/lifecycle.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/lifecycle.md b/docs/lifecycle.md index 900349d..3843646 100644 --- a/docs/lifecycle.md +++ b/docs/lifecycle.md @@ -90,7 +90,9 @@ document file holding a document is an error with no override. own writes. It is appended to every `--document-append` (default 5s) and rewritten after an epoch change, a restart, or when the appended part outgrew the full save (at most every `--document-rewrite`, default 1h); a record cut short - by a crash is dropped when reading. A node starting from it is ready at once; sync + by a crash is dropped when reading. A file is read only by a version that knows + every kind of record in it: one a later version wrote is unusable to an earlier one, + which doesn't start on it unless told to move it aside (`--force badDocumentFile`). A node starting from it is ready at once; sync merges what it missed, or it rejoins a newer epoch. A node writes as a fresh actor each start, unless `--keep-actor` and it stopped cleanly (the file marks a clean stop, and the mark is undone as the node starts on it, before it decides its actor): -- cgit v1.3.1