# Erratum — draft-fossil-submanifests-00 §1.3 / §8 / §8.2 / §10

| | |
|---|---|
| **Document** | `draft-fossil-submanifests-00` |
| **Section** | 1.3 — Status of This Specification; 8 — Deployment; 8.1 — Emission Gate; 8.2 — Provisional-Phase Rules; 10 — Security Considerations |
| **Type** | Technical (the provisional phase is over; its rules retire, and the one permanent rule among them moves to §8.1) |
| **Status** | Applied in `draft-fossil-submanifests-00` (2026-10-19) |
| **Reported** | 2026-09-22 |
| **Submitter** | Dan Mestas |
| **Found via** | Sub-manifests shipped in zit and go-libfossil while the draft and the CLI still told operators the format was provisional |

## 1. Summary

§8.2 declared every repository holding an S-bearing artifact a disposable
test fixture, forbade syncing one with anything that was not, and told
implementers to expect any element of the format to change without
migration. That was the cost of an unstable format. Two implementations
now write, read and exchange sub-manifests, and the errata of this
document record the format settling rather than changing. The blanket
rules retire. One of them is not provisional at all: because the card
alphabet is closed, a reader that does not announce sub-manifest support
sees its history stop at the first tree manifest, so the setting must
not be enabled on a repository such a reader serves. That rule moves to
§8.1 as a permanent deployment fact. §1.3's forward reference to a -01
revision of [FossilArtifact], §8's "three layers" and §10's closing
paragraph all leaned on §8.2 and are reworded.

## 2. The text in error

§1.3: "This document folds into a -01 revision of [FossilArtifact] only
after further implementation experience; until then [FossilArtifact]
remains authoritative for deployed behavior, and the provisional-phase
rules of Section 8.2 apply to every repository containing an S-bearing
artifact."

§8: "Deployment is therefore gated at three layers: emission
(Section 8.1), transfer (Section 7.2), and, during the provisional phase,
an outright prohibition on synchronization (Section 8.2)."

§8.2, the whole section.

§10: "during the provisional phase the prohibition of Section 8.2 removes
the exposure entirely."

## 3. Corrected text

§1.3, in place of the quoted sentence:

> This document is authoritative for sub-manifests and the S card;
> [FossilArtifact] remains authoritative for everything this document
> does not amend. The two fold into one text when [FossilArtifact] is
> next revised.

§8: "Deployment is therefore gated at two layers: emission (Section 8.1)
and transfer (Section 7.2)."

§8.1, appended:

> The setting MUST NOT be enabled on a repository that any
> implementation not announcing sub-manifest support (Section 7.2)
> serves. The card alphabet is closed, so such a reader rejects the first
> tree manifest as structural and its view of the history stops there,
> visibly; the gates of Section 7.2 refuse it the artifact but cannot
> give it the check-in. Enabling is therefore a decision for every reader
> of a repository at once, not for one writer.

§8.2 is deleted, and its entry leaves the table of contents. §8.1's
"pre-S client" becomes "a client that does not read sub-manifests".

§10: "The gates of Section 7.2 and Section 8 keep readers that do not
announce sub-manifest support from encountering S-bearing artifacts in
normal operation."

## 4. Implementations

zit's help, enable warning and export-git notice repeated §8.2's claims
to operators; they change with this erratum. The export-git notice
retires, since a Git mirror carries no S card and the only thing the
notice warned of was the format changing. go-libfossil carries no
provisional-phase text.
