50 descendants and 50 ancestors of 00c9bfbeb985e998
|
2026-07-15
| ||
| 12:49 | Merge the out-of-band cov step onto trunk so merged kcov line coverage is available via zig build cov, outside the commit gate. check-in: 629b041148 user: dmestas tags: trunk | |
| 12:45 | Add a tick-stepped two-endpoint network simulator with seeded delay, drop, dup, and payload-derived corruption, so a retried delivery corrupts identically and the sync sweep can replay any fault schedule from its seed. check-in: 7d1ec5b267 user: dmestas tags: cli | |
| 12:42 | Add an out-of-band zig build cov step running merged kcov line coverage over the unit-test binaries filtered to src, so untested code surfaces mechanically without entering the commit gate closed check-in: 0059783eff user: dmestas tags: kcov | |
| 12:31 | Merge trunk back onto cli after integrating A0, keeping the branch aligned for the next transport step. check-in: ff95ec1f7f user: dmestas tags: cli | |
| 12:31 | Merge transport A0 onto trunk: the sans-IO Client.buildRequest and stateless Server.respond, so a client and server converge over buildRequest/respond/consumeReply per sync 3.7/3.8 — the send/answer halves the network transport and simulator will drive without owning IO. check-in: ccfb360f59 user: dmestas tags: trunk | |
| 12:28 | Answer a sync request from ArtifactStore state with the stateless Server.respond, verifying login, ingesting pushed files, satisfying gimmes with content, and announcing holdings and phantoms, so a client and server converge over buildRequest/respond/consumeReply per sync 3.7/3.8 without either owning IO check-in: e4eb6ea8e7 user: dmestas tags: cli | |
| 12:05 | Compose sync requests from client and store state so the transport and simulator can drive the send half without owning IO: buildRequest emits the version pragma, an optional body login, the operation cards, an igot per holding, a gimme per phantom, and a file per queued send per sync 3.2. check-in: e6975d1870 user: dmestas tags: cli | |
| 11:08 | Merge the store count primitive onto cli so the sync request/response composer can enumerate the store. check-in: 76bf611f9d user: dmestas tags: cli | |
| 11:07 | Add a count query to the ArtifactStore boundary returning the entry total, so a sync peer can walk the dense 1..=count rids and classify each as held or phantom to announce its holdings and request what it lacks per sync sections 3.2 and 3.3. check-in: 4c38e8fbd6 user: dmestas tags: trunk | |
| 07:00 | Merge trunk back onto cli after integrating the query slice, so follow-on transport work builds on the aligned tip. check-in: e791084496 user: dmestas tags: cli | |
| 06:59 | Merge the repo-state query slice onto trunk: the leaves, branch, tag, and info commands over a shared read-only repo-view loader, exposing the finished repostate engine through the CLI so a user can inspect leaves, branches, tags, and resolve names without a write path. check-in: 366ee2d629 user: dmestas tags: trunk | |
| 06:54 | Add the info command, resolving NAME through the repo-state section 8.3 procedure and describing the check-in it names — its full artifact ID, its branch per section 6.1 with the configured main-branch of section 6.4 as the fallback, its leaf status per sections 7.1 and 7.4, its primary parent per section 3.2, and each merge parent per section 3.3 — with selection recency-based per section 8.2, so per section 8.5 a name can name a closed or non-leaf check-in that leaves omits. check-in: 6252eda2e6 user: dmestas tags: cli | |
| 05:56 | Add the tag command listing the repository's active symbolic tag names in use with no CHECKIN, or the active tags and their values visible on a resolved CHECKIN, deriving both over the crosslinked repo-view rather than storing them, per repo-state sections 5.1, 5.2, and 2, resolving CHECKIN through the section 8.3 procedure and surfacing sym- names with the reserved prefix stripped. check-in: 45f5ac644f user: dmestas tags: cli | |
| 04:48 | Add the branch command to list the repository's branches name-ascending, marking the checked-out check-in's branch with a leading "*" and closed representatives "(closed)", per repo-state sections 6.1, 6.3, and 6.4, resolving the default branch through the configured main-branch rather than a literal, and lift the shared read-only repo-view loader out of leaves so both verbs open the repository, resolve the checkout, and report failures identically. check-in: a6e2c0fd01 user: dmestas tags: cli | |
| 03:44 | Add the leaves command to enumerate the check-in DAG's open leaves, most-recent first with the current checkout marked, per repo-state sections 7.1, 7.4, and 7.5, over a shared repo-view loader that resolves branch state from the configured main-branch with the section 6.1 trunk fallback. check-in: 0b9d217bfe user: dmestas tags: cli | |
|
2026-07-14
| ||
| 12:16 | Merge trunk into cli with Artifact A.1.2 correction check-in: 01b124075c user: dmestas tags: cli | |
| 12:11 | Integrate Artifact A.1.2 vector correction check-in: 17e0841c30 user: dmestas tags: trunk | |
| 11:53 | Update Artifact A.1.2 SHA3-256 technote vector closed check-in: ead3630a7d user: dmestas tags: artifact-a12-vector-fix | |
| 10:01 | Merge trunk into cli: the uvfile payload bit-gating fix (sync §7.3), so verb work builds on the current integrated state. check-in: 98a0f2c85c user: dmestas tags: cli | |
| 09:54 | Frame the uvfile payload from the FLAGS 0x0001 and 0x0004 bits per sync §7.3, not from the HASH-based deletion test, so a non-compliant card that carries the deletion bit with a real hash and a positive SIZE reads no payload and the receiver stays byte-aligned with the reference; delete-vs-update still keys on HASH. check-in: 7912172df2 user: dmestas tags: trunk | |
| 02:18 | Merge trunk into cli to bring the recovered tree onto the branch: the correctness and RFC-alignment fixes, the sibling test-file layout, and the Ousterhout de-duplication, so follow-on verb and coverage work builds on the integrated state. check-in: 2ce67c9598 user: dmestas tags: cli | |
| 02:13 | Drop two tautological assertions in the push-intent and inbound-gimme predicates: each merely restates the boolean defined on the line directly above it and so can never fail, leaving them as noise rather than a check of any invariant a bug could violate. check-in: eea9f66041 user: dmestas tags: trunk | |
| 01:39 | Cite the flat repostate §8.3 name-resolution procedure on its resolution tests instead of §8.3.N subsection numbers, since §8.3 is a numbered list of forms rather than a set of subsection headings and the per-form intent is already in each test name. check-in: 3d154570ab user: dmestas tags: trunk | |
| 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 | |
| 12:13 | Gate private content on the receiver's grant so an unauthorized client discards it instead of storing it, keep a private igot from re-requesting content that will never arrive, and only offer to pull private content when the client holds the capability. closed check-in: 8014f49fbc user: dmestas tags: harden | |
| 11:31 | Add the sync login sender and gate each request's login transport so the client emits a login only when the peer requires it and never on clone's first round. check-in: 06b938cd87 user: dmestas tags: harden | |
| 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 | |
| 19:08 | Add the capability union rule so a successful login only widens a user's established permissions on top of the session baseline and can never clear a granted bit. check-in: 5a5d0517b4 user: dmestas tags: harden | |
| 18:38 | Merge the sync private-card receiver pending-marker onto trunk. check-in: c072cf17dc user: dmestas tags: trunk | |
| 18:34 | Track the client receive-side private marker per sync section 7.5: a bare private card sets a per-session pending flag that the next file or cfile card consumes at handler entry to mark its delivered content private, tolerating intervening comment and non-content cards, leaving a repeat set, carrying it across reply bodies within a session but never across the session boundary, and rejecting an argument-bearing private card as a fatal card-arity abort. check-in: 6b69bb3437 user: dmestas tags: harden | |
| 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:50 | Dispatch the full-content cfile reply card per sync section 7.2, framing its payload strictly by the declared CSIZE byte count, container-decoding the section 4.1 stored blob exactly once, storing the reconstructed bytes under HASH to dephantomize versioned content, and rejecting each malformed-header, over-long-span, and corrupt-container case the spec enumerates while staging the delta form. check-in: 3832e7f7a3 user: dmestas tags: harden | |
| 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 | |
| 17:11 | Dispatch the cookie, login, reqconfig, and config reply cards per sync sections 3.6, 6.1, and 10.3, storing a received cookie's defossilized opaque value in place of any held one, aborting a login or reqconfig card that only a client may legally send, and framing a config payload strictly by its declared SIZE byte count with its mandatory trailing newline consumed. check-in: 8d70304766 user: dmestas tags: harden | |
| 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:15 | Merge the sync section 11.2 client message-card dispatch onto trunk. check-in: 1e54837822 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 | |
| 16:11 | Dispatch the received message card per sync section 11.2, defossilizing TEXT then clearing the latched SYNC_PUSH intent only while push is live and the payload matches the case-sensitive "pull only " prefix, treating every other payload as an advisory that changes no per-session flag and never aborts the exchange. check-in: 0bfc058ee3 user: dmestas tags: harden | |
| 15:28 | Merge trunk into harden to stay current with the managed-path set and merged fuzz targets. check-in: fab84e5ebd user: dmestas tags: harden | |
| 15:26 | Merge the sync and logstore fuzz targets onto trunk so the out-of-band runner can exercise them. check-in: 35826e6a0e user: dmestas tags: trunk | |
| 15:22 | Move the sync protocol (§3.6-§11) and log-store seeded fuzz generators into parameterized sibling targets so each never-crash and round-trip invariant is defined once and runs both as a fixed-seed smoke test and an out-of-band seeded sweep. check-in: c9434d6291 user: dmestas tags: harden | |
| 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 | |