10 check-ins that include changes to files matching 'src/rfc_vectors/*'
|
2026-10-11
| ||
| 20:57 | rfc vectors: the A.1.2 technote is the draft's 655 bytes, checked against its published name check-in: 5b89639228 user: dmestas tags: trunk | |
|
2026-08-25
| ||
| 21:19 | merge rfc-vector-guard: vectors inert on disk check-in: ca7453995e user: dmestas tags: trunk | |
| 21:09 |
rfc vectors: keep them inert on disk
An unguarded vector parses as a real artifact, so Fossil crosslinks it into every clone -- two check-ins, a technote, twelve sub-manifest slices and a phantom pair that sync chases forever. Each vector now carries a leading # block; rfc_vectors.zig strips it at comptime so callers still see the exact RFC bytes. Background and the cleanup that follows: see wiki page 'rfc-vector-ledger'. closed check-in: 32ef56aaf4 user: dmestas tags: rfc-vector-guard | |
|
2026-08-14
| ||
| 12:21 | merge sub-manifest: delta-manifest dialect, R cards, diff hunks, server identity, stash, open/log resolution, clone remote+progress, timestamp names; e2e expectations updated check-in: 8a45a021f9 user: dmestas tags: trunk | |
|
2026-07-28
| ||
| 03:31 |
Sub-manifest: complete the conformance corpus
Sub-manifests have no reference implementation to check against, so the corpus is the oracle and had to be built rather than assumed. Adds the eleven vectors Appendix A.5 requires that were missing, among them the three-level tree whose absence is why the step-5 cursor contradiction survived into an implementation: no published artifact carried an interior node, so nothing exercised that path. Every authored vector is generated by the implementation and then rechecked along a path that shares no code with it, and each derived name is compared against the constant the test pins, so no hash in the corpus is hand-written. Two fuzz targets cover S-card classification and the tree walk. One A.5 bullet is not satisfiable as written: the re-tune vector asks for two parameters over the A.1 name list that yield trees sharing no sub-manifest, but that list's single qualifying boundary falls in the same place for the first three values and is suppressed above them. No vector was invented for it; an erratum is drafted and a test pins the finding so it stays visible. check-in: 72bba34ada user: dmestas tags: sub-manifest | |
|
2026-07-27
| ||
| 19:29 |
Sub-manifest: card alphabet, artifact type, and the specification's vectors
Adds S as the twenty-second card letter and SUBMANIFEST as the ninth artifact type, per draft-fossil-submanifests-00 sections 3 and 4. Type determination reassigns after the card scan rather than during it, so no type is committed while cards are still being read (section 9.1). Reading and classification only: no tree walk, no emission. The draft's seven appendix vectors ship alongside, each named by the SHA3-256 the draft states and checked by a test that recomputes it. check-in: 9b8bad477a user: dmestas tags: sub-manifest | |
|
2026-07-11
| ||
| 06:43 | Consume a sync reply body as a sans-IO state machine per section 3.2, dispatching each card to maintain the client phantom set per section 3.3, record peer-lacks, dephantomize on arriving content per section 3.7(a), advance the section 3.8 state, and reject every malformed, request-initiation, or out-of-scope reply card the spec enumerates. check-in: 28a50e81b6 user: dmestas tags: trunk | |
|
2026-07-10
| ||
| 15:23 | Merge the sync protocol layer onto trunk: transport, content transfer with chained-delta completion, authentication, clone, and unversioned-file sync, taking trunk's data-carrying artifact reader and tracking the sync round-2 file-cards test vector check-in: 233d7f03d7 user: dmestas tags: trunk | |
| 14:06 | Add create() per section 6/4 as the writer inverse of parse, serializing a Manifest to canonical bytes in strict card-lexical order with a trailing computed Z checksum, and round-trip it against the section A.1.1, A.1.2, and A.3 worked examples plus a seeded fuzz target. check-in: 94386de816 user: dmestas tags: trunk | |
|
2026-07-09
| ||
| 01:41 | Implement artifact naming per section 3.1-3.6: length-dispatched SHA-1/SHA3-256 name computation, lowercase-only ABNF validation and verify, and case-folding prefix resolution with cross-algorithm ambiguity detection, covering each with the SHA-1 and SHA3-256 worked examples from appendix A. check-in: 310b6b560d user: dmestas tags: trunk | |