10 most recent check-ins occurring on or after 2026-07-16 13:23:38.
More ↑
|
2026-07-16
| ||
| 16:15 | Add a manifest-transform projection to the bench harness (zig build bench -- storage --probe-manifest): read-only, it estimates the compressed win from replacing resolvable 40/64-hex manifest hashes with rid-ordinal varints, so survey 2.5 is decided on a real zlib delta rather than a guess. closed check-in: 64fd19938f user: dmestas tags: probeman | |
| 15:32 |
Add a read-only --probe-dict projection to the storage bench to gate dictionary-frame work.
Before building dictionary-compressed full-form frames, measure the win. The new 'zig build bench -- storage --probe-dict' mode (optional .zit path) samples a deterministic content-addressed dictionary from the corpus: up to 64 evenly spaced other-class artifacts plus 16 manifests, capped at 256 KiB. For every full-form zlib frame it then projects storing the artifact as a fossil delta against that dictionary: it deltas the content, verifies delta.apply reconstructs the bytes exactly, zlib-wraps the delta as a section 4.1 container, and keeps the projection only when it strictly beats the current frame. The one-time dictionary cost is included and every non-reconstructing or unprofitable frame is counted at its current size, so the number is honest, not a best case. It stays read-only: the store is opened through openReadOnly and never written. A clear PROCEED/DEFER line reports the projected reduction against a 15 percent gate. Technique after Yann Collet's zstd dictionary training (https://github.com/facebook/zstd) and the RFC 1950 section 2.2 FDICT preset- dictionary concept (https://www.rfc-editor.org/rfc/rfc1950), with results validated by Chrome's shared-dictionary transport deployment (https://developer.chrome.com/blog/shared-dictionary-compression). The matcher is Fossil's own delta format, so the projected bytes at rest stay a section 4.1 zlib container and no new codec is introduced. closed check-in: c9bea85ebc user: dmestas tags: probedict | |
| 14:54 | Add a storage measurement mode to the bench harness (zig build bench -- storage): report bytes at rest by frame kind and artifact type, per-frame overhead, full-form compression headroom, and serve CPU, so storage-efficiency work is chosen on measured data rather than guesses. check-in: a48a0010ef user: dmestas tags: trunk | |
| 14:51 | Add a storage bench mode reporting bytes at rest by frame-kind and artifact-type plus serve CPU, so the storage-efficiency ideas can be weighed against measured numbers before any claim. closed check-in: e782228b2d user: dmestas tags: sbench | |
| 14:25 | Add a zit pack command that repacks the store into a compact new-generation log: whole-frame-verify the source read-only, re-ingest every artifact in offset order re-deltaing full-form frames against lineage bases, then atomically swap via a fsynced temp — a crash before the rename leaves the original byte-identical, and it doubles as an integrity scrub. check-in: de49e67c9f user: dmestas tags: trunk | |
| 14:16 | Add a zit pack verb that repacks the store into a compact new generation: re-ingest every artifact in offset order through a parent-manifest and same-path-blob lineage hint so full-form frames re-delta against their basis, recompute each reconstruction's hash against its name before writing it (repo-state §7.7), and swap the rewritten log in with an atomic rename so a crash before the swap leaves the original store byte-identical. closed check-in: 43dccab01c user: dmestas tags: pack | |
| 13:38 | Store cloned artifacts as compact delta frames: retain fossil's reverse-delta containers through the dangling queue and persist each basis before the delta that points at it, so a clone from a fossil origin keeps the server's deltas instead of re-inflating every artifact to full form — cutting on-disk size to roughly 0.6x of the full-form store, matching fossil's own delta count. check-in: 9853f8b93e user: dmestas tags: trunk | |
| 13:28 | Keep fossil's reverse-delta containers through the dangling queue and persist each basis frame before the delta that points at it, so a clone from a fossil origin stores compact delta frames instead of re-inflating every artifact to full form. closed check-in: 0ebc7991f0 user: dmestas tags: storage | |
| 13:26 | Merge the sync-protocol re-sync onto trunk: ratify the container-capacity and clone-igot clarifications that match the reference implementation and zit's own behavior. check-in: 61fde8dec1 user: dmestas tags: trunk | |
| 13:23 | Re-sync the sync-protocol draft: the container length field is a receiver capacity, so a decoded stream shorter than the advertised value must not be rejected (4.1), and igot is never applicable during clone rounds (8.2 / Table 2) — both aligning the text with the reference implementation. closed check-in: d708b4a2f2 user: dmestas tags: rfc-resync | |