| Document | draft-fossil-sync-protocol-01 |
| Section | 9 — Pragmas (the defined-name lists and the extension-pragma production) |
| Type | Editorial (the extension documents' pragma names are nowhere listed where a reader of this draft looks for pragma names) |
| Status | Applied in draft-fossil-sync-protocol-01 (2026-10-17) |
| Reported | 2026-10-17 |
| Submitter | Dan Mestas |
| Found via | Writing draft-fossil-horizon-00 §6, which defines six pragmas and relies on this section's ignore rule |
1. Summary
§9 lists the pragma names the reference implementation defines in each
direction and reserves the extension-pragma production for any other
name. Two extension documents, draft-fossil-sparse-cone-00 and
draft-fossil-horizon-00, define pragmas and rely on the ignore rule for
their degradation story, but a reader of this draft has no way to learn
that those names exist or where they are specified.
2. Location
§9, after the first paragraph ending "and link."
3. The reference behavior
Unchanged. Fossil ignores every name outside its own lists, which is exactly what the extension documents depend on. This erratum lists the names; it defines nothing.
4. Impact
Editorial. No behavior changes. A reader implementing only this draft is unaffected; a reader implementing an extension finds the pointer.
5. Correction
§9, new second paragraph:
version, uv-push-ok, uv-pull-only, ci-lock-fail, avoid-delta-
manifests, and link.
+
+ Extension documents define further names, which a receiver that does
+ not implement them takes down the ignore path above: cone and cone-
+ not (draft-fossil-sparse-cone, client-to-server); horizon, horizon-
+ structural, horizon-seed, and horizon-mergebase (draft-fossil-
+ horizon, client-to-server); horizon-below, horizon-seed, horizon-
+ mergebase, and horizon-served (draft-fossil-horizon, server-to-
+ client). Each is an extension pragma in the sense of the production
+ below and is specified by the document that names it.
6. Rationale
The defined-name lists are where an implementer looks to learn which
pragmas exist. Keeping the extension names out of the "defined" lists
preserves the reference behavior exactly; naming them in a separate
paragraph tells the reader where to go. horizon-seed and
horizon-mergebase appear in both directions by design: the request
names what the client holds or asks, the reply names what the origin
sends or found.
7. Verification
draft-fossil-sparse-cone-00§6.1 defines cone and cone-not.draft-fossil-horizon-00§6.1 through §6.2.5 define the eight horizon cards under six names.