Artifact 64d51fe54bfe299263b531d2326e31ae9476681bfb76af48057e3ba2e9b56238:
- File
src/smoke.zig
-
2026-07-20 03:49:44
— part of check-in
[a2672203c0]
on branch h4-interop
— Smoke: push-direction fossil interop and a recorded fossil version
Every smoke scenario drove pull/clone only -- fossil pulling from zit, zit pulling from fossil -- so zit's push wire (its igot/gimme ordering and capability negotiation as the sync client uploading to a server) never met the reference implementation.
Two scenarios in src/smoke.zig close that gap under the file's standing policy: every compared byte is zit-authored, fossil only confirms. S7 has zit push a grown check-in to a live fossil server, then reads it back from a fossil checkout byte-for-byte (sync 3.3/3.7). S8 lets a fossil commit extend the shared repo with our bytes, has zit pull it, and confirms convergence through the library reader -- Repository.blob re-verifying content against its artifact name (sync 3.2/3.7, artifact 7.2). Both share a prelude that seeds a zit repo, has fossil clone it for a common project-code, grants the anonymous loopback sync user check-in, and disables the autosync the clone inherits.
Smoke also prints the fossil version verbatim at the head of its log, so the exact reference implementation the scenarios confirmed against is recorded wherever smoke runs. (user: dmestas, size: 55028) [annotate] [blame] [check-ins using]
-
2026-07-20 03:53:56
— part of check-in
[3ad0bf90da]
on branch trunk
— Merge h4-interop: bidirectional fossil interop smoke, push side included
The interop smoke only ever went one way -- fossil confirming what zit authored, always pull or clone direction. The push side of the wire, where capability negotiation and igot/gimme ordering live, was never exercised against the reference. Two scenarios close it, same policy as before (zit authors every byte; fossil only confirms; a mismatch prints the diff and its RFC citation, exits nonzero, and is a ledger decision). zit pushes a grown check-in to a live fossil server and a fresh fossil checkout must reconstruct the file byte for byte; then fossil commits a zit-authored blob that zit pulls and reads back through the library, re-verifying content against its artifact name. The smoke log now opens with the exact fossil version each run, so the conformance claim always names what it was confirmed against. (user: dmestas, size: 55028) [annotate] [blame] [check-ins using]
-
2026-07-20 03:49:44
— part of check-in
[a2672203c0]
on branch h4-interop
— Smoke: push-direction fossil interop and a recorded fossil version