# Erratum — draft-fossil-submanifests-00 §7.2
| | |
|---|---|
| **Document** | `draft-fossil-submanifests-00` |
| **Section** | 7.2 — Peer Capability Gate (where the server places the avoid-submanifests pragma) |
| **Type** | Technical (the placement is given by reference to a pragma whose own placement is unspecified) |
| **Status** | Applied in `draft-fossil-submanifests-00` (2026-10-19) |
| **Reported** | 2026-10-17 |
| **Submitter** | Dan Mestas |
| **Found via** | Implementing the pragma in go-libfossil from the draft text and comparing with zit's replies |
## 1. Summary
§7.2 places avoid-submanifests "in the same reply positions as
avoid-delta-manifests". [FossilSync] gives avoid-delta-manifests a
production but no position in the reply, and Fossil sends it on some
replies only. Two readings follow: every reply, or only the replies on
which Fossil would send avoid-delta-manifests. zit chose the first; an
implementation following the second produces different replies from the
same sentence. The text must fix one position.
## 2. The text in error
§7.2, last paragraph:
> A server whose enable-submanifests setting (Section 8.1) is false
> sends the pragma avoid-submanifests, in the same reply positions as
> avoid-delta-manifests; a client receiving it MUST NOT emit S cards in
> commits created during the session.
## 3. What the implementations do
zit's server sends the pragma on every reply, normal and clone, in the
leading pragma run immediately after server-version where that is
emitted (`appendAvoidSubmanifests` in `src/sync.zig`). Its own comment
records that the draft fixes no ordinal. go-libfossil followed the
draft's wording and recorded it as requirement SM-7.2-2, to be aligned
with whatever the draft settles.
## 4. Corrected text
Replace the paragraph with:
> A server whose enable-submanifests setting (Section 8.1) is false
> sends the flag pragma avoid-submanifests in every reply, in the
> leading pragma run, after server-version when that is emitted, on a
> clone reply as on any other. A client receiving it MUST NOT emit S
> cards in commits created during the session (Section 8.1). A peer that
> does not implement this specification ignores it ([FossilSync],
> Section 3.5).
## 5. Observable consequence of the uncorrected text
A client of an implementation that sends the pragma only where Fossil
sends avoid-delta-manifests can complete a session with a server whose
setting is false without ever receiving the pragma, and commits S cards
against it. The corrected text makes the pragma present on the first
reply of every session.
## 6. Implementations
zit already does this; no change. go-libfossil will follow the corrected
text.