Skip to content
zit Timeline
Login

Timeline

25 ancestors of b9d6aba516ec205f

2026-07-09
19:19
Implement G/H/I card parsing per section 4.7.7, J card per 4.7.8, K card per 4.7.9, and L card per 4.7.10, enforcing raw-hash validation on G/I/K, the wiki-name predicate on L, and the empty-string-not-null absent-value rule on J. check-in: b9d6aba516 user: dmestas tags: trunk
18:50
Implement B, C, D/E, and F card parsing per sections 4.7.3-4.7.6, validating each raw hash and timestamp field, escape-decoding comment and filename positions, and classifying F-card permissions into regular, executable, and symlink modes per section 4.7.6. check-in: 680d9db167 user: dmestas tags: trunk
18:09
Implement A-card parsing per section 4.7.2, retaining only the final path component of the filename, accepting a hash- or wiki-name-shaped target, and validating an optional source as a raw never-decoded artifact hash. check-in: 4590e5647e user: dmestas tags: trunk
17:39
Implement the §4.7.1 hash-token validation map, gating artifact-hash, K ticket-id, and R/Z checksum tokens on their distinct length and case-sensitivity rules without escape-decoding the raw wire bytes. check-in: 48a1de436d user: dmestas tags: trunk
17:03
Implement classifyTimestamp/isWriterTimestamp per artifact §4.6.4, accepting the five D/E card timestamp forms (date-time, date, time, relative, Julian) and enforcing the JD>0 gate at the resolved -4713-11-24 date-granularity boundary, with one test per enumerated §4.6.4 rule (p1, m1-m9, r1, r3, s1, w1). check-in: 38c40f99ec user: dmestas tags: trunk
15:53
Add seeded deterministic fuzz tests for the delta layer (apply robustness, create/apply round-trip, decodeInt bounds) check-in: b4023330c6 user: dmestas tags: trunk
15:29
Implement the section 4.6.3 reserved-filename predicate and F-card admission sequencing, silently dropping _FOSSIL_/.fslckout matches (whole-string, slash-preceded, or sidecar-stripped) per the three-step procedure while running the section 4.5.2 sort check first so a dropped name never becomes the comparison anchor. check-in: 3d2f9c8f39 user: dmestas tags: trunk
14:57
Implement the section 4.6.2 wiki-name predicate, rejecting each of the five enumerated byte-level violations (leading control/space, subsequent control byte, consecutive spaces, trailing space, length outside 1-100) while leaving bytes >= 0x21 and UTF-8 validity out of the acceptance decision per the spec's note. check-in: c055e511e7 user: dmestas tags: trunk
14:41
Implement the section 4.6.1 simple-pathname predicate, rejecting each of the seven enumerated separator-structure violations while leaving byte content and the writer profile out of the acceptance decision. check-in: 8f699c9878 user: dmestas tags: trunk
14:26
Enforce section 4.5 card occurrence classes and intra-run ordering check-in: 94aaf76a22 user: dmestas tags: trunk
14:26
Re-sync the artifact-format draft to adopt the section 4.3 trailing-backslash resolution check-in: 7524665230 user: dmestas tags: trunk
13:47
Implement §4.4 card-type ordering as a per-letter admit state machine, enforcing non-decreasing lexicographic order and the sole N-after-P exception gated on a prior valid E card, rejecting every other out-of-order sequence including anything following Z. check-in: 3551b12e54 user: dmestas tags: trunk
13:20
Decode the eight §4.3 escape pairs plus the unrecognized-escape fallback, treating a lone trailing backslash as a literal byte per the resolved trailing-backslash ambiguity. check-in: e77d0b5900 user: dmestas tags: trunk
11:35
Tokenize card lines and close the 21-letter card alphabet per section 4.2 and 4.2.2, rejecting out-of-range letters, the five in-range gaps O S V X Y, and any non-SP/LF byte after the letter while splitting arguments on space only per the m1-m3 rules. check-in: f64b9a31bc user: dmestas tags: trunk
11:11
Add section 4.1 artifact framing: the four well-formedness gates, with the trailing-bytes rule deferred to the card loop check-in: 667c55f690 user: dmestas tags: trunk
10:28
Replace the literal-only create() with a hash-indexed encoder that emits copy segments for shared source runs check-in: 97866c6bf6 user: dmestas tags: trunk
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
01:12
Reject the masked-high-bit anti-pattern per section 6: treat bytes 0x80-0xFF as unconditional integer terminators in decodeInt, matching conformant encoders that never emit them, and cover the terminator, masking-divergence, opcode-rejection, and encoder-range cases with table-driven tests. check-in: 1fac5484d6 user: dmestas tags: trunk
00:46
Implement create() per section 5 as a minimal conforming producer, emitting the target as a single literal segment plus checksum trailer and rejecting targets at or above 2^32 bytes per section 3.1's integer bound. check-in: d0340902e9 user: dmestas tags: trunk
00:18
Add a header-only target-size query for section 4.1, document apply()'s resident-source requirement for section 4.2, and test section 4 segmentation independence across delta encodings. check-in: bff6c4bbfe user: dmestas tags: trunk
2026-07-08
23:30
Implement delta apply() per section 4, walking header, copy, and literal segments to the trailer and rejecting every malformed-delta case the spec's matrix enumerates. check-in: 5efe913db2 user: dmestas tags: trunk
22:45
Remove placeholder tests and note the sync client is sans-IO check-in: 0f8ce0f0b8 user: dmestas tags: trunk
22:45
Reject base-64 delta integers that reach 2^32 rather than wrapping check-in: 798ee3372a user: dmestas tags: trunk
22:45
Say the RFCs, not fossil, are the source of expected test values check-in: a82aedc9df user: dmestas tags: trunk
21:53
Scaffold zit: Zig project + RFC references + module layout

Fossil-in-Zig, ported from the four RFC drafts (docs/rfcs/). Layout mirrors the RFC layering: delta -> artifact -> repostate -> sync. delta int codec + checksum and artifact naming/Z-card implemented with RFC-derived test vectors; everything else stubbed against its section. Builds clean; zig build test green. See docs/HANDOFF.md. check-in: 0ae7fb2622 user: dmestas tags: trunk

21:43
initial empty check-in check-in: da85dd4acf user: dmestas tags: trunk