50 descendants and 50 ancestors of 8d8746e8072f3ea3
|
2026-07-14
| ||
| 01:26 | Cite artifact §6.2 on the empty-content self-checksum test so the expected MD5 of empty input follows from the self-checksum definition instead of standing without a section reference. check-in: 7ca4474047 user: dmestas tags: trunk | |
| 01:12 | Compile the end-to-end test binary under `zig build test` so a type error in the subprocess-driven e2e file breaks the build instead of rotting undetected, while keeping its ~150-spawn run out of the unit gate. check-in: 7cb4c1b861 user: dmestas tags: trunk | |
| 01:02 | Reject any stored log version this reader never wrote, set the append watermark to the true file length after an extending truncate, honor the read-past-EOF-returns-zero contract in the simulated file, and fold the duplicated frame-header validation into one shared check so the content reader and the open-time scan cannot diverge. check-in: 7fb8e33f9c user: dmestas tags: trunk | |
| 00:04 | Drive the init, add, rm, and commit argument grammars through one table-driven flag scanner so the four near-identical parsers cannot drift apart. check-in: 2487264643 user: dmestas tags: trunk | |
|
2026-07-13
| ||
| 23:17 | Derive the verb vocabulary, dispatch, help routing, and did-you-mean suggestions from a single cli.Verb enum so the dispatched, helpable, and suggestable command sets cannot drift apart. check-in: 4b7f777d92 user: dmestas tags: trunk | |
| 23:01 | Fold commit's checkout- and managed-read failures into the verb-parameterized checkoutFail and managedFail mappers so one mapper renders the B-commit-15 messages shared with the read-only working-tree verbs. check-in: fd76e90b60 user: dmestas tags: trunk | |
| 22:53 | Move the public-surface artifact and repostate tests into their sibling test files, citing the repo-state §4.2 crosslink and §8.3 date-form clauses the repostate cases exercise, so each module keeps only its file-private tests. check-in: cc4cbd9cd9 user: dmestas tags: trunk | |
| 22:35 | Move the update rollback-retention test and its fixtures into the sibling test file, leaving update.zig with only its file-private declarations. check-in: bbdc988561 user: dmestas tags: trunk | |
| 22:14 | Move the §C test asserting persisted RID order follows frame order after a phantom upgrade into the logstore sibling test file, leaving logstore.zig with only its file-private and fuzz-corpus declarations. check-in: f59234f6f1 user: dmestas tags: trunk | |
| 21:28 | Relocate the consumeReply public-surface tests — the Appendix A worked exchanges and the §7.5 private-marker state machine — to the sibling test file so sync.zig holds only its file-private and fuzz-corpus declarations. check-in: 42140c77cd user: dmestas tags: trunk | |
| 20:58 | State the storage engine's framing and crash-recovery invariants directly in the logstore and storage-capability module doc comments so each native storage test carries its oracle in-tree rather than citing an out-of-tree design note. check-in: e4cd62c7a3 user: dmestas tags: trunk | |
| 20:45 | Give the update and diff failure mappers closed error sets so a rolled-back or cleanup-failed update reports its own diagnostic instead of collapsing to a generic input/output error and hiding that the previous working-tree state was retained for recovery. check-in: 133127529a user: dmestas tags: trunk | |
| 20:22 | Capture the working-tree executable bit into each file's F card per §4.7.6 so a chmod +x commits as an x-permission entry and quiesces, instead of reporting M on every diff yet never committing. check-in: eea0c068d1 user: dmestas tags: trunk | |
| 20:05 | Poison the log store when a rollback truncate itself fails so no later append lands at an offset that has diverged from the physical file end, rather than swallowing the error and letting in-memory bookkeeping drift from disk. check-in: 2cebd9179d user: dmestas tags: trunk | |
| 19:45 | Accept a non-canonically fossilized unversioned NAME instead of aborting the exchange, since sync §7.3 licenses no such receiver rejection and artifact §4.3 defines the defossilize decoder as error-free, and parse a cookie login value strictly by the §B.4 url-login-value grammar so fields split only on the literal + separator, escapes are lenient solely under HEXDIG-CI, and a %20 standing in for a separator is rejected. check-in: 3fd2c0ca4c user: dmestas tags: trunk | |
| 19:18 | Abort the exchange on a message card whose visible arity is not the exactly two whitespace-separated tokens sync §11.2 mandates, since a bare or three-to-six-token form is a defined-operator arity failure under §5.2 rather than a silently continued card. check-in: e0535646dc user: dmestas tags: trunk | |
| 19:03 | Gate the private igot no-phantom disposition on the receiver lacking private-content authorization so a granted client interns the hash and creates a phantom to pull the content, per sync §7.5 L2476-2483. check-in: 28a19941cd user: dmestas tags: trunk | |
| 18:41 | Merge trunk into the CLI branch to track the integrated tip for follow-on work check-in: bf454fa2ee user: dmestas tags: cli | |
| 18:39 | Merge the CLI branch onto trunk: the update check-in verb and the private storage/logstore/checkout/update module boundary that keeps the public zit surface narrow, plus the managed working-tree diff check-in: f8a8e02832 user: dmestas tags: trunk | |
| 18:28 | Route the DST fault-injection and storage-sweep modules through the shared zit_storage and zit_logstore modules, completing the private-module wiring so every storage consumer shares one module instance check-in: 779321bc41 user: dmestas tags: cli | |
| 18:26 | Add the update check-in verb as a transactional working-tree replacement: staged materialization with pre-commit rollback, clean-worktree and path/reserved-name/symlink rejection, wired as private storage/logstore/checkout/update modules so the public zit surface stays narrow, with component-contract tests and public end-to-end coverage check-in: d6fed71184 user: dmestas tags: cli | |
| 10:51 | Merge current trunk into CLI branch check-in: efbe075667 user: dmestas tags: cli | |
| 10:14 | Integrate CLI branch into trunk check-in: 43ebdc3cf5 user: dmestas tags: trunk | |
| 04:11 | Merge trunk into CLI branch check-in: 8dab8daae4 user: dmestas tags: cli | |
| 04:09 | Merge managed working-tree diff into trunk check-in: 43599d6694 user: dmestas tags: trunk | |
| 04:02 | Implement managed working-tree diff check-in: 422f25e492 user: dmestas tags: cli | |
| 02:48 | Merge E2E SHA-1 traversal repair into CLI branch check-in: fd39a27ee3 user: dmestas tags: cli | |
| 02:44 | Merge E2E SHA-1 traversal repair into trunk check-in: 00c9bfbeb9 user: dmestas tags: trunk | |
| 02:41 | Cover SHA-1 log parent traversal and clarify synthetic fixtures closed check-in: ed9ad33af1 user: dmestas tags: e2e-tigerstyle | |
|
2026-07-12
| ||
| 22:34 | Merge trunk into CLI branch check-in: b1eb63dd32 user: dmestas tags: cli | |
| 22:31 | Merge unversioned sync card validation into trunk check-in: cad04c1bb2 user: dmestas tags: trunk | |
| 22:28 | Validate unversioned sync cards before returning unsupported closed check-in: a273011c3e user: dmestas tags: sync-uvfile | |
| 21:16 | Create new branch named "sync-uvfile" check-in: 0a9f2d603b user: dmestas tags: sync-uvfile | |
| 20:57 | Merge trunk into the CLI branch. check-in: 36dcb09fdc user: dmestas tags: cli | |
| 20:45 | Merge CLI log checkpoint into trunk. check-in: 17a643759d user: dmestas tags: trunk | |
| 20:37 | Add RFC-backed CLI log ancestry traversal. check-in: b93a63c772 user: dmestas tags: cli | |
| 12:20 | Merge the sync auth and capability layer onto trunk: capability model, login sender, and private-content receive gates. check-in: 7e8f3e59ec user: dmestas tags: trunk | |
| 04:20 | Record a check-in from the current contents of the tracked working-tree files — hash and store each blob, mint the manifest on the current branch (a root check-in establishes trunk; a child carries its parent), and advance the checkout to the new check-in. check-in: c174783af9 user: dmestas tags: cli | |
|
2026-07-11
| ||
| 19:14 | Merge trunk into cli to stay current. check-in: de525f832a user: dmestas tags: cli | |
| 19:13 | Merge the status verb onto trunk: report tracked, modified, and untracked working-tree state. check-in: ac1d714f82 user: dmestas tags: trunk | |
| 19:10 | Report the working-copy state under `zit status`: current branch, current check-in (or unborn), and each tracked file as added or missing, without mutating the checkout. check-in: b5d94fcbcf user: dmestas tags: cli | |
| 18:38 | Merge the sync private-card receiver pending-marker onto trunk. check-in: c072cf17dc user: dmestas tags: trunk | |
| 17:59 | Merge trunk into cli to stay current with the sync reply-dispatch and cfile work. check-in: 3693e0ee0f user: dmestas tags: cli | |
| 17:58 | Merge the rm verb onto trunk: untrack paths, with honest --hard disk-removal reporting. check-in: ec96046fcb user: dmestas tags: trunk | |
| 17:54 | Key the rm --hard "deleted from disk" line to each file's real unlink outcome, printing it only for files actually removed and routing unlink failures to stderr so stdout never claims a deletion that did not happen. check-in: 6b4ebc6970 user: dmestas tags: cli | |
| 17:53 | Merge the full-content cfile reply-dispatch onto trunk so pulled content is decoded, stored, and dephantomized. check-in: 3c4f0fd7ed user: dmestas tags: trunk | |
| 17:18 | Add the rm verb: untrack named paths, with optional --hard working-tree deletion. check-in: 9d1cea6386 user: dmestas tags: cli | |
| 17:14 | Merge the sync client reply-dispatch (cookie record, strict-accept aborts, config framing) onto trunk. check-in: 33e45a9b5b user: dmestas tags: trunk | |
| 16:18 | Merge trunk into cli to stay current with the sync message-card dispatch. check-in: ca2e0c3082 user: dmestas tags: cli | |
| 16:17 | Merge the add verb onto trunk so working-tree files can be marked for versioning. check-in: afd1cbd7f0 user: dmestas tags: trunk | |
| 16:13 | Track named working-tree files for the next check-in, normalizing each argument to a repo-relative key and rejecting directories, non-regular files, control files, and paths outside the checkout, idempotent on re-adds, persisting the managed set atomically, with dry-run and quiet modes and per-path partial-success exit codes. check-in: 8d8746e807 user: dmestas tags: cli | |
| 15:14 | Merge trunk into cli to pick up the managed-path set that the add/rm/status verbs consume. check-in: 69ff6362db user: dmestas tags: cli | |
| 15:11 | Merge the per-checkout managed-path set onto trunk so files can be tracked before commit. check-in: f3f18fd6dd user: dmestas tags: trunk | |
| 15:08 | Add a per-checkout managed-path set so paths can be marked for versioning before commit. closed check-in: afdf028f78 user: dmestas tags: lib-managed-set | |
| 14:33 | Add the `init` verb: create an empty zit repository in the target directory (creating it if absent), writing a fresh `.zit` content log and an unborn-trunk `.zit-checkout`, defaulting artifact naming to SHA3-256, and refusing when a repository already exists. check-in: 6c591ef91f user: dmestas tags: cli | |
| 14:29 | Merge the sync send-queue fix onto trunk: persist a per-session outbound send queue so the client records which hashes a gimme requested and can drive a push, per section 3.7(b) and 3.3 check-in: 598c026c11 user: dmestas tags: trunk | |
| 14:23 | Queue held content for upload on a peer gimme per sync §3.2 and §3.1, resolving the held hash without minting a phantom and driving §3.7(b) continuation from the per-round file-send count instead of the peer-lacks proxy. closed check-in: 2d300e174c user: dmestas tags: sync-fix | |
| 13:26 | Re-sync the sync-protocol draft: adopt the per-session outbound send queue and the expanded section 9.4 gimme eligibility filters, plus the accompanying pagination check-in: f0befe03c6 user: dmestas tags: trunk | |
| 13:05 | Merge the test-extraction refactor onto trunk: relocate each module's public-API unit tests to sibling _test.zig files, keeping private-touching tests inline, so implementations read at about half their former length check-in: 6324fcb781 user: dmestas tags: trunk | |
| 12:59 | Move sync unit tests to a sibling sync_test.zig, keeping the private-touching tests inline closed check-in: ab188817f0 user: dmestas tags: refactor | |
| 12:26 | Move artifact unit tests to a sibling artifact_test.zig, keeping the private-touching tests inline check-in: 55245f7f60 user: dmestas tags: refactor | |
| 12:14 | Move repostate's public-API unit tests to a sibling repostate_test.zig, keeping the private-touching tests inline check-in: ed8a93809c user: dmestas tags: refactor | |
| 12:03 | Move logstore's public-API unit tests to a sibling logstore_test.zig, keeping the private-touching tests inline check-in: 070f1690e0 user: dmestas tags: refactor | |
| 11:45 | Move delta unit tests to a sibling delta_test.zig, keeping implementation in delta.zig check-in: fb19e3574a user: dmestas tags: refactor | |
| 06:47 | Merge the completed storage engine onto trunk: zlib and delta frames with bounded chain resolution, repo-local config and checkout state, and the shippable single-file .zit container with versioned format and copy-plus-derive cloning check-in: e2c8132559 user: dmestas tags: trunk | |
| 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 | |
| 06:05 | Clone a repository by byte-copying the frozen .zit log into an empty destination and then re-deriving its index and recovering its config from the copy with no network, per storage-track-plan section E, so a copied file is a complete self-verifying repository and a damaged copy degrades through the shared open path that truncates the torn tail. closed check-in: bbaa47fc49 user: dmestas tags: storage | |
| 05:27 | Store repo-local config in the log as a distinguished, non-content-addressed singleton frame whose latest scan-order instance wins and which is rejected as a delta base, and hold per-checkout working state in an atomically-replaced file outside the log, per storage-track-plan section E. check-in: bc88457d28 user: dmestas tags: storage | |
| 04:39 | Pin the section 12 security-considerations clauses as named tests: neither the user password nor the shared secret ever appears in the login body card or the x-f-l-c cookie, a byte-identical login verifies twice because the server keeps no nonce cache and applies no freshness check, and the 65535-byte line bound is a fatal resource-exhaustion guard that aborts before card dispatch while leaving declared byte-counted payloads governed by their own SIZE. check-in: d35c429604 user: dmestas tags: trunk | |
| 04:03 | Wire the zit module into the benchmark build so the standalone bench binary resolves the delta import the LogStore now uses for delta-chain resolution check-in: c842f4a613 user: dmestas tags: storage | |
| 03:55 | Store LogStore payloads raw, as a fossil zlib container per sync §4.1, or as a delta against an earlier frame per delta §4, decoding each back to its uncompressed content-addressed bytes on read. check-in: 7810501796 user: dmestas tags: storage | |
| 03:51 | Cover sync section 11 error and message cards: pin the error-card wire form and its fatal handling and the informational message-card that is never a wire-level error, with a named test per section 11.1 and 11.2 rule check-in: 88cd9b09f1 user: dmestas tags: trunk | |
| 03:20 | Cover the sync section 3.9 robustness posture and section 3.10 round message layout by binding each restated clause onto the classifier and state machine that already own it, asserting the four liberal-tolerance points against a fatal strict complement and the canonical Table 4 request order against the unordered Table 5 reply combination. check-in: 0cf3d5e616 user: dmestas tags: trunk | |
|
2026-07-10
| ||
| 23:33 | Merge the LogStore benchmark step and the phantom-to-content upgrade coverage from the storage branch onto trunk check-in: b9bc673b65 user: dmestas tags: trunk | |
| 23:27 | Exercise the phantom-upgrade path of LogStore.put per §C, where content arriving for a hash already interned as a phantom reuses its rid and appends its first frame, adding a reopen round-trip test, an allocation-failure test, and a phantom-upgrade operation in the storage sweep. check-in: 5c53bf6ee8 user: dmestas tags: storage | |
| 23:09 | Bind the §3.4 clone loop to the operation-agnostic round dispatch and termination primitives so no round can branch by operation, and cover the §3.5 pragma round-order dispatch with its unknown-name-ignored versus unknown-operator-fatal split. check-in: dc535a335c user: dmestas tags: trunk | |
| 22:46 | Add a real benchmark step for the LogStore: a ReleaseFast harness with put, read, and open subcommands over a seeded deterministic corpus, routing every clock and file effect through injected IO and reporting throughput and p50/p99 latency, replacing the placeholder failing bench step check-in: 7f8ee58eea user: dmestas tags: storage | |
| 22:33 | Derive §3.3 content-received at the sync layer so a dangling-delta HASH whose basis delta is retained drops out of gimme while its DELTASRC stays a genuine phantom, and bind the §9.3-9.5 round loop over the §3.3 igot/gimme/eligibility surface and the §3.7 per-round termination rule. check-in: a76b63c00f user: dmestas tags: trunk | |
| 22:01 | Merge the native storage engine onto trunk: the StorageFile capability, the deterministic fault simulator, and the append-only content-addressed LogStore with crash-recovery, all driven by the storage simulation sweep check-in: 37dafb3048 user: dmestas tags: trunk | |
| 21:53 | Add the LogStore: a framed append-only content-addressed object log with a 64-byte header and per-frame length, kind, hash, and crc, exposing intern, put, content, hash lookup, and commit over the storage capability, rebuilding its hash-to-offset index by scanning on open and truncating a torn tail, and driven through the fault simulator by the storage sweep check-in: c1e15637a3 user: dmestas tags: storage | |
| 21:35 | Implement the section 6.6 capability model, mapping assigned o/i/g/x letters to read/write/clone/private capabilities and gating each pull/push/clone card on whether the user's established set holds the capability that operation requires. check-in: 1b09edd75f user: dmestas tags: trunk | |
| 20:38 | Select login transport per section 6.5, gating the x-f-l-c cookie header on a peer's recorded release and timestamp clearing both thresholds and falling back to a body-embedded login card otherwise, and flag a cookie login paired with a body login as the section 11.1 duplicate_login error. check-in: e566bfecae user: dmestas tags: trunk | |
| 19:58 | Strip trailing /xfer path segments from a sync redirect Location per section 4, replacing the suffix-match heuristic against the original repository path with repeated exact-segment removal that never consults the origin URL. check-in: 51e1193aa6 user: dmestas tags: trunk | |
| 19:38 | Re-sync the sync-protocol draft: apply the section 4 redirect erratum (strip a trailing /xfer segment and reparse, matching the reference implementation, superseding the repository-path-segment rule) and the section 1 informative-scope note check-in: ebf5f6f86b user: dmestas tags: trunk | |
| 19:31 | Add the storage capability seam and its deterministic fault simulator: a narrow StorageFile interface (append/pread/sync/size/truncate), an in-memory FaultyFile that injects torn and short writes, lost fsync tails, crash-restart, and payload-derived bitflips from the run seed, and a simulation sweep asserting crash-recovery truncates a torn tail to the last valid frame and never reads corruption as data check-in: 328bc72b78 user: dmestas tags: storage | |
| 19:27 | Make the README durable: drop the volatile status section, describe zit as a library-first spec port with the spec-as-oracle and determinism design notes, and remove the stale scaffold handoff doc check-in: f6cd3e0da5 user: dmestas tags: trunk | |
| 19:25 | Split build.zig into one builder function per artifact and thread the storage-engine DST sweep through dst.zig's test aggregation, per the repo layout's per-artifact-builder rule and storage-track-plan section B. check-in: 39e12f9da4 user: dmestas tags: storage | |
| 19:23 | Rework section 4.1 decode to cap output by capacity, not exact length, and fix ci-lock-fail gating and uvfile deletion to match precise RFC citations. check-in: 94d04ae9f1 user: dmestas tags: trunk | |
| 18:29 | Cover sync section 9.2.1 announcement and derived-view cards: the nine clause rules for igot/uvigot echo suppression and phantom-free announcement handling, with a named test per rule check-in: 5713138800 user: dmestas tags: trunk | |
| 18:28 | Re-sync the artifact-format and sync-protocol RFC drafts to the amended cleanroom-verified package: the filed §4.3, §4.6.4, §4 redirect, and §7.4 errata plus the new cleanroom findings (zlib length-field capacity, DATETIME emission form, x-f-l-c cookie login, uvfile deletion discriminator) check-in: 0b8829c917 user: dmestas tags: trunk | |
| 17:50 | Gate inbound artifact names on hash policy per section 7.7, rejecting SHA1-length names under shun-sha1 before storage while keeping commit-time content verification a separate, unconditional check. check-in: 501c2c7f9c user: dmestas tags: trunk | |
| 17:27 | Extend section 7.6 SHA3 peer-version-gate coverage to the append-only error path, clone-round-0 discard exception, per-site independence, and the Appendix A.2 worked example. check-in: 19a0981b27 user: dmestas tags: trunk | |
| 16:54 | Implement sync section 7.5 private-content rules: gate private-card pairing and artifact receipt on the Private capability, force full content when a public artifact's delta basis is private and the peer is unauthorized, and handle private igot HASH 1 replies per section 9.2 without creating phantoms. check-in: f26cb704b6 user: dmestas tags: trunk | |
| 16:15 | Parse the uvfile/uvigot/uvgimme card grammar and FLAGS bit field per section 7.3, frame uvfile payloads against SIZE with the deletion and omitted-content cases, verify landed content against HASH, and implement the section 9.1.1 uvgimme reply choice and write-permission/status recheck-on-landing for unversioned file sync. check-in: 1cdf73d79f user: dmestas tags: trunk | |
| 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 | |
| 15:18 | Merge the completed repostate derivation layer onto trunk: tag cross-references and propagation, name and branch resolution, and the section 8.3 resolver, with the grown deterministic-simulation oracle and a gate-sized sweep check-in: 93ecd64c47 user: dmestas tags: trunk | |
| 15:17 | Shrink the pre-commit DST gate to 6 seeds x 1000 steps so it runs in seconds; the per-step oracle recompute made the former 25x10000 sweep take minutes, so deep coverage now runs out-of-band via --seeds closed check-in: 51a4a56825 user: dmestas tags: repostate | |
| 15:10 | Classify unversioned files per section 9.1.1: compute the name-sorted SHA-1 catalog hash, derive the five-way status from mtime/hash comparison, map status 4/5 under revert, and drive local-store and send-table effects (including dry-run suppression) from the mapped status. closed check-in: e91acbe762 user: dmestas tags: sync | |
| 15:04 | Wire the milestone interop smoke check: confirm zit-produced manifests and deltas against fossil via test-parse-manifest, sha1/sha3sum, content round-trip, and delta-apply, with fossil confirming RFC-cited expectations only check-in: a2e74e5547 user: dmestas tags: trunk | |
| 15:04 | Implement section 8.3's full name-resolution dispatch (rid:, tag:, tip, root:/start:/merge-in: via the section 8.4 branch-walk, date:/utc:/local: timestamps, hash-prefix matching, and trailing-punctuation retry), section 6.3's branch enumeration, and section 7.5's ambiguous-leaf test and open-leaf listing, then extend the DST oracle with brute-force checks for all four against every replay order. check-in: 79b37fd3b9 user: dmestas tags: repostate | |
| 14:30 | Implement clone per section 8: version-3 clone/clone_seqno cards, NEXT-driven request continuation, and round-0 suppression of login and uv-hash, then wire push/pull/sync project-code cards and the date-gated private-igot suppression from section 9.1/9.2. check-in: 20fa53bd79 user: dmestas tags: sync | |