50 descendants and 50 ancestors of bbdc988561bace49
|
2026-07-15
| ||
| 16:37 | Merge trunk back onto cli after multi-batch clone, aligning the branch for the clone reply compression check and pull/push. check-in: 0d14cb4f26 user: dmestas tags: cli | |
| 16:36 | Merge multi-batch clone continuation onto trunk: the client threads the section 8.2 clone_seqno cursor across successive cfile batches until exhaustion, so a repository larger than one batch clones in full. check-in: 378073c233 user: dmestas tags: trunk | |
| 16:33 | Continue a clone across multiple cfile batches by threading the section 8.2 clone_seqno cursor so the client requests successive batches until the server signals exhaustion, so a repository larger than one batch clones in full check-in: 8d249bc3a5 user: dmestas tags: cli | |
| 16:16 | Merge trunk back onto cli after the working clone, keeping the branch aligned for pull/push and the multi-batch clone continuation. check-in: 887b9b0859 user: dmestas tags: cli | |
| 16:15 | Merge the working sync client onto trunk: the round driver, the clone verb, and section 8 server-side clone, so a fresh zit client clones a full repository from a zit server over HTTP with the cloned store's artifacts equal to the origin's. check-in: 4ca4a718e8 user: dmestas tags: trunk | |
| 16:12 | Answer the sync clone operation in Server.respond by paginating the repository's artifacts by RID into cfile batches with the section 8.2 clone_seqno cursor to exhaustion, so a fresh client clones a full repository over HTTP check-in: d383eb0084 user: dmestas tags: cli | |
| 15:42 | Add the zit clone client — the clone verb driving the sync round loop over the HTTP transport and persisting received artifacts into a fresh repository — and fix transport.exchange to drop a read error the socket path cannot emit; the clone-against-itself e2e is present but skipped pending server-side section 8 clone support. check-in: 7d88a407ed user: dmestas tags: cli | |
| 15:03 | Add bounded sync round driver pumping buildRequest through a transport to consumeReply until section 3.7 termination, converging the local store against a peer under an explicit round-limit guard check-in: d9aebe9520 user: dmestas tags: cli | |
| 14:27 | Merge trunk back onto cli after zit serve, keeping the branch aligned for the clone/pull/push driver. check-in: 7e7c24630e user: dmestas tags: cli | |
| 14:26 | Merge zit serve onto trunk: a single-threaded HTTP server answering application/x-fossil sync requests by decoding the container, calling the stateless Server.respond over the repository store, and returning the framed reply. check-in: 55072db7c8 user: dmestas tags: trunk | |
| 14:24 | add a single-threaded zit serve that answers application/x-fossil sync requests over HTTP by decoding the request container, calling the stateless Server.respond over the repository store, and returning the framed reply, per sync section 4 check-in: ed3a558990 user: dmestas tags: cli | |
| 14:04 | Merge trunk back onto cli after the transport module, keeping the branch aligned for the sync driver and server. check-in: ea8dee72d5 user: dmestas tags: cli | |
| 14:03 | Merge the CLI-layer HTTP transport onto trunk: an open/exchange/close boundary carrying uncompressed sync bytes over the Fossil zlib container with section 4 redirect and downgrade handling, so a later ssh or file transport is a mechanical wrap. check-in: 1da24fb857 user: dmestas tags: trunk | |
| 14:01 | Add the CLI-layer HTTP transport that frames a sync request as the Fossil zlib container, POSTs it as application/x-fossil, decodes the reply, and honors the section 4 redirect and downgrade rules so the sans-IO client can exchange over the wire. check-in: 2d75dae647 user: dmestas tags: cli | |
| 13:41 | Merge trunk back onto cli after integrating the sync DST, keeping the branch aligned for the transport phase. check-in: 871d2f829c user: dmestas tags: cli | |
| 13:40 | Merge the sync SimNet DST onto trunk: the scenario generator and two-phase sweep proving buildRequest/respond/consumeReply converge and reach section 3.7 termination under injected network faults once the wire heals, with section 7.5 privacy held. check-in: 465f71abfe user: dmestas tags: trunk | |
| 13:37 | add the two-phase sync SimNet sweep driving buildRequest/respond/consumeReply through the fault-injecting network and asserting convergence, section 3.7 termination, and section 7.5 private-content invariants hold after the wire heals, wired into zig build dst check-in: 43f37d1f7f user: dmestas tags: cli | |
| 13:06 | add a seeded generator of two-endpoint sync scenarios: pre-seeded client and server stores with held, phantom, and shared artifacts plus a bounded per-link fault profile, so the sweep can replay any exchange from its seed check-in: 3c6945c120 user: dmestas tags: cli | |
| 12:52 | Merge trunk back onto cli, bringing the cov step so the branch carries the integrated tip for the next transport step. check-in: 8c3ef76441 user: dmestas tags: cli | |
| 12:51 | Merge the SimNet packet simulator onto trunk: a tick-stepped two-endpoint network with seeded delay, drop, dup, and payload-derived corruption, so the sync sweep can replay any fault schedule from its seed. check-in: ea810169a8 user: dmestas tags: trunk | |
| 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: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 | |