Skip to content
zit Artifact [78d7c8d735]
Login

Artifact [78d7c8d735]

Artifact 78d7c8d735934e911555703a488debc8d76000ecf12f62966530931aaca676cd:


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.