Skip to main content

Module syncstate

Module syncstate 

Source
Expand description

P5 — the tool-owned ** Sync State block.

Under * GDOC_METADATA, ** Sync State holds a single s-expression (A5 — not JSON) in a #+begin_src emacs-lisp block. It is pure machine state, fully regenerated on every sync: the projection position map (crate::project) plus a cache of the reviewers (collaborators) seen on pulled comments. The operator never hand-edits it.

§Block shape

** Sync State
#+begin_src emacs-lisp
(gdoc-sync-state 1
 (positions (pos "sec-intro" 1 heading) (pos "sec-intro/paragraph-1" 5 paragraph))
 (collaborators (collab "alice@example.com" "Alice Smith")))
#+end_src

Parsing is total (EI-4): a missing block decodes to an empty-but-valid state, while a present-but-corrupt block surfaces a typed Error::Sexp — never a panic.

Structs§

Collaborator
A reviewer cached from pulled comments, so pull can show a name for an email without re-deriving it (the position map and this cache are the only state the tool keeps between runs — DI-3).
PostedReply
A reply already posted to Google, recorded so push does not post it again.
SyncState
The decoded ** Sync State contents.