Artifact c892c7a622b06b1ae87e88476a511b1b0eff97fc99463ba15d75769afe37cc7f:
* fix: never parse a compressed body as cards (#104)
A clone served by libfossil failed in libfossil's own client with
xfer: decode card 16303: xfer: empty line after split
on a response that contained 202 cards. The index, the card, and the fault were all fictional.
xfer.Decode tried three body framings in order -- raw zlib, the §4.1 4-byte-length container, then uncompressed card text -- and treated any decompression failure as "this is not that framing". decompressBounded failed a well-formed container purely because its decompressed length passed a 50 MB bound, so the fallback chain handed the still-compressed bytes to the card parser. The parser read compressed noise as cards for sixteen thousand iterations before one of them split into no fields, and reported that as the fault. Captured at offset 15,084,752 of the failing body, the "card" the parser was reading is DEFLATE output:
"...\xd9\x34\x50\xe7\xcf\xa0\xf8\xd5\xd5\x87l\xff\t\xde\xfb\xe3..."
Two changes. Once a body is recognized as a zlib stream, a failure to decode it is reported rather than reinterpreted -- oversize, truncated, or corrupt, the error now names the transport failure instead of an arbitrary card position. Both compressed framings are still attempted, since a length prefix can coincidentally parse as a zlib header, and uncompressed bodies still reach the card parser; only compressed ones no longer can.
The bound itself was also wrong, and is the reason this was reachable at all. §4.1 places no limit on the decompressed size of the container; the 50 MB was a local memory guard that sat below what this implementation's own server emits in one clone round, so two libfossil peers could not clone from each other even though each could clone from fossil. It is now 64 MiB and coupled to sync.DefaultCloneBatchBytes by a compile-time guard that fails the build, rather than the clone, if the budget is raised past half of it.
The defect predates the size-bounded clone batching of #100. #100 shrank rounds enough to hide it on the corpus that exposed it; it did not touch the decoder.
Regression coverage, in two layers. internal/xfer pins the decode behaviour directly: an oversize container, a truncated one, a large in-bounds one, and an uncompressed body. internal/sync adds the configuration no existing test covered -- libfossil serving and libfossil cloning across a real HTTP encode/decode, on a corpus of multi-megabyte incompressible artifacts that crosses the server's per-round budget. Every prior clone test was either served by fossil or wired through MockTransport, which passes *xfer.Message values across untouched and never encodes a wire body at all. Artifact size is the other half of the reproduction: this failed on wapp, whose artifacts are large, and not on pikchr, whose artifacts are small.
Verified against the wapp corpus: the round trip that failed now completes with 1038 of 1038 artifacts on both ends.
* fix: make the #104 fixture reach the bound, and pin the bound from both sides
Review found the flagship regression test passed against pre-fix code. It did. Its corpus was 21.6 MB spread over twelve artifacts, and pagination keeps every round near the 16 MB budget however large such a corpus grows, so the round never came near the 50 MiB bound it was supposed to cross. The 25-line rationale reasoned about crossing DefaultCloneBatchBytes, which is not the quantity that matters and never was; a permanent comment asserting a mechanism that does not exist is worse than no comment.
The quantity that matters is one artifact. A round is charged against the budget before each artifact and sends whole the artifact that crosses it, so a round carries budget plus one entire artifact of unbounded size. A single artifact larger than bound-minus-budget is the only corpus that can exceed the bound, and it is also the one path by which a round can still exceed the current bound -- so the fixture guards the live risk and reproduces the historical one with the same bytes. It is now one incompressible artifact of 7/8ths of MaxDecompressedBytes, sized against the constant so it tracks it, behind testing.Short.
Verified against a pre-fix tree with both test files dropped in:
TestCloneSelfRoundTripOversizeArtifact FAIL Clone: handleFile aad935c2...: UUID mismatch for received file: expected aad935c2..., got 501b4814...
which is the sharper end of this defect: pre-fix did not merely misreport, it accepted the compressed bytes as cards and produced an artifact whose content did not hash to its name.
The cheap end-to-end round trip is kept as a separate test and described honestly as a coverage plank -- the first test anywhere here to have libfossil decode a body libfossil produced -- rather than as a guard on anything.
Second finding, message.go: the claim that format 1 is the "Fossil HTTP sync wire format" is false. Every application/x-fossil body carries the §4.1 length prefix, request side and reply side, both through blob_compress. Format 1 matches nothing canonical emits and is kept as a tolerance, now labelled as one.
Its safety was also load-bearing on a constant with no stated relationship to it. For a container of decompressed length N, prefix byte 0 is N>>24, and a zlib CMF requires CM==8 in the low nibble, so no container under 128 MiB can present a valid header at offset 0. Raising MaxDecompressedBytes past that point would leave decompressContainer's prefer-what-decodes ordering as the only remaining defense -- a narrower margin than this code was written against, and #98 is exactly the change that might want a different bound. That is now a build failure rather than a trap, matching the guard already on the other side. Verified to fire at 0x08000000 and to permit 0x07FFFFFF.
Also: the MaxDecompressedBytes doc claimed to stop a hostile body from exhausting an embedding process's memory. It does not -- the transport reads the body whole before Decode sees it. It bounds expansion only, and now says so.
Test hygiene: the server handshake polls for a live listener instead of sleeping 200ms and dropping ServeHTTP's error, and the 32 MiB and 64 MiB xfer allocations skip under -short like their sync counterpart.
* fix: correct three claims about what the #104 guards cover
The fix is unchanged. Three statements about it were wrong, and a comment that misstates a mechanism is worse than no comment because the next reader trusts it.
The ordering claim was the serious one. decompressContainer was described as "preferring whichever framing actually decodes, so a spurious header match still loses to a real container". It does not. Format 1 returns immediately on success and format 2 is reached only when format 1 fails; the error comparison at the end selects which failure to report when both have already failed, and protects nothing when format 1 spuriously succeeds. Probed: a bare zlib body returns from format 1 with format 2 never attempted.
That makes the aliasing guard weaker than its comment claimed, and in a direction neither review had reached: the aliasing byte is the top byte of the length the PEER declared, and this decoder never reads that field -- it slices past it and counts bytes actually inflated. No value of MaxDecompressedBytes constrains what a peer declares. A container declaring 0x081D0000 while carrying 46 bytes presents a parsing zlib header at offset 0, measured.
What actually saves a real container in that case is the stream, not arithmetic: after two prefix bytes are eaten as a header, inflate must still parse the remaining two plus the real stream as DEFLATE and match its Adler-32. Measured `flate: corrupt input` at all three aliasing lengths probed, so format 1 fails, format 2 runs, and the container decodes correctly.
The guard is kept because it states something true and useful -- Encode writes uint32(len(raw)) as the prefix, so holding the bound below the threshold means no body libfossil emits can carry an aliasing prefix -- but it is now documented as an invariant on our output, not a defence of our input, with the airtight alternatives named and left to their own issues.
Second, "a single artifact larger than this bound cannot be cloned" is true but not the operative threshold. A round already holding bytes has that much less room, so the ceiling is the bound minus what the round accumulated first. Measured on this branch with a 58,720,256-byte artifact: 8, 12 and 15 MB of filler ahead of it all fail, and 17 MB passes because it exhausts the budget and pushes the artifact into a round of its own. Non-monotonic in the filler, which is worth knowing. That is #109, a defect this fix exposes rather than causes; the fixture's claim to guard it is withdrawn and it now says plainly that it covers the leading-artifact case only.
Third, the changelog's "pin the bound from both sides" overclaimed. The guards pin the bound against the batch budget and against the aliasing threshold. Neither certifies a round.
Rebased onto 8b6da9a. The internal/content -race failure reported last round was not a flake and not unrelated -- this branch predated #107, which rewrote available.go. TestIsAvailable_CyclicChainTerminates goes from exceeding its 30s budget to 0.06s across that rebase.
---------
Co-authored-by: Dan Mestas <[email protected]> by [email protected] on 2026-07-20 03:33:23.
C fix:\snever\sparse\sa\scompressed\sbody\sas\scards\s(#104)\s(#111)\n\n*\sfix:\snever\sparse\sa\scompressed\sbody\sas\scards\s(#104)\n\nA\sclone\sserved\sby\slibfossil\sfailed\sin\slibfossil's\sown\sclient\swith\n\n\s\s\s\sxfer:\sdecode\scard\s16303:\sxfer:\sempty\sline\safter\ssplit\n\non\sa\sresponse\sthat\scontained\s202\scards.\sThe\sindex,\sthe\scard,\sand\sthe\nfault\swere\sall\sfictional.\n\nxfer.Decode\stried\sthree\sbody\sframings\sin\sorder\s--\sraw\szlib,\sthe\s§4.1\n4-byte-length\scontainer,\sthen\suncompressed\scard\stext\s--\sand\streated\sany\ndecompression\sfailure\sas\s"this\sis\snot\sthat\sframing".\sdecompressBounded\nfailed\sa\swell-formed\scontainer\spurely\sbecause\sits\sdecompressed\slength\npassed\sa\s50\sMB\sbound,\sso\sthe\sfallback\schain\shanded\sthe\sstill-compressed\nbytes\sto\sthe\scard\sparser.\sThe\sparser\sread\scompressed\snoise\sas\scards\sfor\nsixteen\sthousand\siterations\sbefore\sone\sof\sthem\ssplit\sinto\sno\sfields,\sand\nreported\sthat\sas\sthe\sfault.\sCaptured\sat\soffset\s15,084,752\sof\sthe\sfailing\nbody,\sthe\s"card"\sthe\sparser\swas\sreading\sis\sDEFLATE\soutput:\n\n\s\s\s\s"...\\xd9\\x34\\x50\\xe7\\xcf\\xa0\\xf8\\xd5\\xd5\\x87l\\xff\\t\\xde\\xfb\\xe3..."\n\nTwo\schanges.\sOnce\sa\sbody\sis\srecognized\sas\sa\szlib\sstream,\sa\sfailure\sto\ndecode\sit\sis\sreported\srather\sthan\sreinterpreted\s--\soversize,\struncated,\nor\scorrupt,\sthe\serror\snow\snames\sthe\stransport\sfailure\sinstead\sof\san\narbitrary\scard\sposition.\sBoth\scompressed\sframings\sare\sstill\sattempted,\nsince\sa\slength\sprefix\scan\scoincidentally\sparse\sas\sa\szlib\sheader,\sand\nuncompressed\sbodies\sstill\sreach\sthe\scard\sparser;\sonly\scompressed\sones\sno\nlonger\scan.\n\nThe\sbound\sitself\swas\salso\swrong,\sand\sis\sthe\sreason\sthis\swas\sreachable\sat\nall.\s§4.1\splaces\sno\slimit\son\sthe\sdecompressed\ssize\sof\sthe\scontainer;\sthe\n50\sMB\swas\sa\slocal\smemory\sguard\sthat\ssat\sbelow\swhat\sthis\simplementation's\nown\sserver\semits\sin\sone\sclone\sround,\sso\stwo\slibfossil\speers\scould\snot\nclone\sfrom\seach\sother\seven\sthough\seach\scould\sclone\sfrom\sfossil.\sIt\sis\snow\n64\sMiB\sand\scoupled\sto\ssync.DefaultCloneBatchBytes\sby\sa\scompile-time\sguard\nthat\sfails\sthe\sbuild,\srather\sthan\sthe\sclone,\sif\sthe\sbudget\sis\sraised\spast\nhalf\sof\sit.\n\nThe\sdefect\spredates\sthe\ssize-bounded\sclone\sbatching\sof\s#100.\s#100\sshrank\nrounds\senough\sto\shide\sit\son\sthe\scorpus\sthat\sexposed\sit;\sit\sdid\snot\stouch\nthe\sdecoder.\n\nRegression\scoverage,\sin\stwo\slayers.\sinternal/xfer\spins\sthe\sdecode\nbehaviour\sdirectly:\san\soversize\scontainer,\sa\struncated\sone,\sa\slarge\nin-bounds\sone,\sand\san\suncompressed\sbody.\sinternal/sync\sadds\sthe\nconfiguration\sno\sexisting\stest\scovered\s--\slibfossil\sserving\sand\slibfossil\ncloning\sacross\sa\sreal\sHTTP\sencode/decode,\son\sa\scorpus\sof\smulti-megabyte\nincompressible\sartifacts\sthat\scrosses\sthe\sserver's\sper-round\sbudget.\nEvery\sprior\sclone\stest\swas\seither\sserved\sby\sfossil\sor\swired\sthrough\nMockTransport,\swhich\spasses\s*xfer.Message\svalues\sacross\suntouched\sand\nnever\sencodes\sa\swire\sbody\sat\sall.\sArtifact\ssize\sis\sthe\sother\shalf\sof\sthe\nreproduction:\sthis\sfailed\son\swapp,\swhose\sartifacts\sare\slarge,\sand\snot\son\npikchr,\swhose\sartifacts\sare\ssmall.\n\nVerified\sagainst\sthe\swapp\scorpus:\sthe\sround\strip\sthat\sfailed\snow\ncompletes\swith\s1038\sof\s1038\sartifacts\son\sboth\sends.\n\n*\sfix:\smake\sthe\s#104\sfixture\sreach\sthe\sbound,\sand\spin\sthe\sbound\sfrom\sboth\ssides\n\nReview\sfound\sthe\sflagship\sregression\stest\spassed\sagainst\spre-fix\scode.\sIt\ndid.\sIts\scorpus\swas\s21.6\sMB\sspread\sover\stwelve\sartifacts,\sand\spagination\nkeeps\severy\sround\snear\sthe\s16\sMB\sbudget\showever\slarge\ssuch\sa\scorpus\ngrows,\sso\sthe\sround\snever\scame\snear\sthe\s50\sMiB\sbound\sit\swas\ssupposed\sto\ncross.\sThe\s25-line\srationale\sreasoned\sabout\scrossing\nDefaultCloneBatchBytes,\swhich\sis\snot\sthe\squantity\sthat\smatters\sand\snever\nwas;\sa\spermanent\scomment\sasserting\sa\smechanism\sthat\sdoes\snot\sexist\sis\nworse\sthan\sno\scomment.\n\nThe\squantity\sthat\smatters\sis\sone\sartifact.\sA\sround\sis\scharged\sagainst\sthe\nbudget\sbefore\seach\sartifact\sand\ssends\swhole\sthe\sartifact\sthat\scrosses\sit,\nso\sa\sround\scarries\sbudget\splus\sone\sentire\sartifact\sof\sunbounded\ssize.\sA\nsingle\sartifact\slarger\sthan\sbound-minus-budget\sis\sthe\sonly\scorpus\sthat\ncan\sexceed\sthe\sbound,\sand\sit\sis\salso\sthe\sone\spath\sby\swhich\sa\sround\scan\nstill\sexceed\sthe\scurrent\sbound\s--\sso\sthe\sfixture\sguards\sthe\slive\srisk\sand\nreproduces\sthe\shistorical\sone\swith\sthe\ssame\sbytes.\sIt\sis\snow\sone\nincompressible\sartifact\sof\s7/8ths\sof\sMaxDecompressedBytes,\ssized\sagainst\nthe\sconstant\sso\sit\stracks\sit,\sbehind\stesting.Short.\n\nVerified\sagainst\sa\spre-fix\stree\swith\sboth\stest\sfiles\sdropped\sin:\n\n\s\s\s\sTestCloneSelfRoundTripOversizeArtifact\s\sFAIL\n\s\s\s\s\s\sClone:\shandleFile\saad935c2...:\sUUID\smismatch\sfor\sreceived\sfile:\n\s\s\s\s\s\sexpected\saad935c2...,\sgot\s501b4814...\n\nwhich\sis\sthe\ssharper\send\sof\sthis\sdefect:\spre-fix\sdid\snot\smerely\smisreport,\nit\saccepted\sthe\scompressed\sbytes\sas\scards\sand\sproduced\san\sartifact\swhose\ncontent\sdid\snot\shash\sto\sits\sname.\n\nThe\scheap\send-to-end\sround\strip\sis\skept\sas\sa\sseparate\stest\sand\sdescribed\nhonestly\sas\sa\scoverage\splank\s--\sthe\sfirst\stest\sanywhere\shere\sto\shave\nlibfossil\sdecode\sa\sbody\slibfossil\sproduced\s--\srather\sthan\sas\sa\sguard\son\nanything.\n\nSecond\sfinding,\smessage.go:\sthe\sclaim\sthat\sformat\s1\sis\sthe\s"Fossil\sHTTP\nsync\swire\sformat"\sis\sfalse.\sEvery\sapplication/x-fossil\sbody\scarries\sthe\n§4.1\slength\sprefix,\srequest\sside\sand\sreply\sside,\sboth\sthrough\nblob_compress.\sFormat\s1\smatches\snothing\scanonical\semits\sand\sis\skept\sas\sa\ntolerance,\snow\slabelled\sas\sone.\n\nIts\ssafety\swas\salso\sload-bearing\son\sa\sconstant\swith\sno\sstated\nrelationship\sto\sit.\sFor\sa\scontainer\sof\sdecompressed\slength\sN,\sprefix\sbyte\n0\sis\sN>>24,\sand\sa\szlib\sCMF\srequires\sCM==8\sin\sthe\slow\snibble,\sso\sno\ncontainer\sunder\s128\sMiB\scan\spresent\sa\svalid\sheader\sat\soffset\s0.\sRaising\nMaxDecompressedBytes\spast\sthat\spoint\swould\sleave\sdecompressContainer's\nprefer-what-decodes\sordering\sas\sthe\sonly\sremaining\sdefense\s--\sa\snarrower\nmargin\sthan\sthis\scode\swas\swritten\sagainst,\sand\s#98\sis\sexactly\sthe\schange\nthat\smight\swant\sa\sdifferent\sbound.\sThat\sis\snow\sa\sbuild\sfailure\srather\nthan\sa\strap,\smatching\sthe\sguard\salready\son\sthe\sother\sside.\sVerified\sto\nfire\sat\s0x08000000\sand\sto\spermit\s0x07FFFFFF.\n\nAlso:\sthe\sMaxDecompressedBytes\sdoc\sclaimed\sto\sstop\sa\shostile\sbody\sfrom\nexhausting\san\sembedding\sprocess's\smemory.\sIt\sdoes\snot\s--\sthe\stransport\nreads\sthe\sbody\swhole\sbefore\sDecode\ssees\sit.\sIt\sbounds\sexpansion\sonly,\sand\nnow\ssays\sso.\n\nTest\shygiene:\sthe\sserver\shandshake\spolls\sfor\sa\slive\slistener\sinstead\sof\nsleeping\s200ms\sand\sdropping\sServeHTTP's\serror,\sand\sthe\s32\sMiB\sand\s64\sMiB\nxfer\sallocations\sskip\sunder\s-short\slike\stheir\ssync\scounterpart.\n\n*\sfix:\scorrect\sthree\sclaims\sabout\swhat\sthe\s#104\sguards\scover\n\nThe\sfix\sis\sunchanged.\sThree\sstatements\sabout\sit\swere\swrong,\sand\sa\scomment\nthat\smisstates\sa\smechanism\sis\sworse\sthan\sno\scomment\sbecause\sthe\snext\nreader\strusts\sit.\n\nThe\sordering\sclaim\swas\sthe\sserious\sone.\sdecompressContainer\swas\sdescribed\nas\s"preferring\swhichever\sframing\sactually\sdecodes,\sso\sa\sspurious\sheader\nmatch\sstill\sloses\sto\sa\sreal\scontainer".\sIt\sdoes\snot.\sFormat\s1\sreturns\nimmediately\son\ssuccess\sand\sformat\s2\sis\sreached\sonly\swhen\sformat\s1\sfails;\nthe\serror\scomparison\sat\sthe\send\sselects\swhich\sfailure\sto\sreport\swhen\sboth\nhave\salready\sfailed,\sand\sprotects\snothing\swhen\sformat\s1\sspuriously\nsucceeds.\sProbed:\sa\sbare\szlib\sbody\sreturns\sfrom\sformat\s1\swith\sformat\s2\nnever\sattempted.\n\nThat\smakes\sthe\saliasing\sguard\sweaker\sthan\sits\scomment\sclaimed,\sand\sin\sa\ndirection\sneither\sreview\shad\sreached:\sthe\saliasing\sbyte\sis\sthe\stop\sbyte\nof\sthe\slength\sthe\sPEER\sdeclared,\sand\sthis\sdecoder\snever\sreads\sthat\sfield\n--\sit\sslices\spast\sit\sand\scounts\sbytes\sactually\sinflated.\sNo\svalue\sof\nMaxDecompressedBytes\sconstrains\swhat\sa\speer\sdeclares.\sA\scontainer\ndeclaring\s0x081D0000\swhile\scarrying\s46\sbytes\spresents\sa\sparsing\szlib\nheader\sat\soffset\s0,\smeasured.\n\nWhat\sactually\ssaves\sa\sreal\scontainer\sin\sthat\scase\sis\sthe\sstream,\snot\narithmetic:\safter\stwo\sprefix\sbytes\sare\seaten\sas\sa\sheader,\sinflate\smust\nstill\sparse\sthe\sremaining\stwo\splus\sthe\sreal\sstream\sas\sDEFLATE\sand\smatch\nits\sAdler-32.\sMeasured\s`flate:\scorrupt\sinput`\sat\sall\sthree\saliasing\nlengths\sprobed,\sso\sformat\s1\sfails,\sformat\s2\sruns,\sand\sthe\scontainer\ndecodes\scorrectly.\n\nThe\sguard\sis\skept\sbecause\sit\sstates\ssomething\strue\sand\suseful\s--\sEncode\nwrites\suint32(len(raw))\sas\sthe\sprefix,\sso\sholding\sthe\sbound\sbelow\sthe\nthreshold\smeans\sno\sbody\slibfossil\semits\scan\scarry\san\saliasing\sprefix\s--\nbut\sit\sis\snow\sdocumented\sas\san\sinvariant\son\sour\soutput,\snot\sa\sdefence\sof\nour\sinput,\swith\sthe\sairtight\salternatives\snamed\sand\sleft\sto\stheir\sown\nissues.\n\nSecond,\s"a\ssingle\sartifact\slarger\sthan\sthis\sbound\scannot\sbe\scloned"\sis\ntrue\sbut\snot\sthe\soperative\sthreshold.\sA\sround\salready\sholding\sbytes\shas\nthat\smuch\sless\sroom,\sso\sthe\sceiling\sis\sthe\sbound\sminus\swhat\sthe\sround\naccumulated\sfirst.\sMeasured\son\sthis\sbranch\swith\sa\s58,720,256-byte\nartifact:\s8,\s12\sand\s15\sMB\sof\sfiller\sahead\sof\sit\sall\sfail,\sand\s17\sMB\npasses\sbecause\sit\sexhausts\sthe\sbudget\sand\spushes\sthe\sartifact\sinto\sa\nround\sof\sits\sown.\sNon-monotonic\sin\sthe\sfiller,\swhich\sis\sworth\sknowing.\nThat\sis\s#109,\sa\sdefect\sthis\sfix\sexposes\srather\sthan\scauses;\sthe\sfixture's\nclaim\sto\sguard\sit\sis\swithdrawn\sand\sit\snow\ssays\splainly\sthat\sit\scovers\sthe\nleading-artifact\scase\sonly.\n\nThird,\sthe\schangelog's\s"pin\sthe\sbound\sfrom\sboth\ssides"\soverclaimed.\sThe\nguards\spin\sthe\sbound\sagainst\sthe\sbatch\sbudget\sand\sagainst\sthe\saliasing\nthreshold.\sNeither\scertifies\sa\sround.\n\nRebased\sonto\s8b6da9a.\sThe\sinternal/content\s-race\sfailure\sreported\slast\nround\swas\snot\sa\sflake\sand\snot\sunrelated\s--\sthis\sbranch\spredated\s#107,\nwhich\srewrote\savailable.go.\sTestIsAvailable_CyclicChainTerminates\sgoes\nfrom\sexceeding\sits\s30s\sbudget\sto\s0.06s\sacross\sthat\srebase.\n\n---------\n\nCo-authored-by:\sDan\sMestas\s<[email protected]> D 2026-07-20T03:33:23 F .githooks/pre-commit ce134a33b0e8b1a0017110de2ef0553e052378e048b461102282edd72bea5fb9 x F .github/RELEASE_TEMPLATE.md 8732d1e0c367cefb3a1e0ac8fbdf191f2816fc3469d4680dfdf14eac2dec9a1d w F .github/workflows/release.yml b651c1197277c56316e08ec92fd16112b35aa94a2aeabe2b58a3011475b968da w F .github/workflows/test.yml fab3db709b05f1d8772de29a7f17a29da02eb2438b0aa5f5f1cde748175d9508 w F .gitignore bc81256c11f6f6390eb365029ca72b000c5bd5be345d294bdd0a7a69d698d4e3 w F CHANGELOG.md e3adc369baca611196f754533c4e0fc779a2193db359c22e840c2fbb6b788a2d w F CONTRIBUTING.md 357da160ac28784199ba7bbe59b4a15333818edb56ffabb5d057da36588ebabd w F LICENSE d967ce740201ba31025b108fe9b0a21ceec2f6570153814f3446901d05ff0dbc w F Makefile f531d9a1976fd760d502faf2e8c19b6dbc014ed49eea3ec35a96b539eda1ac37 w F README.md 43b4d1867b49a5f854d4fe235944b35e8c7c098cd3eae3ef0b359f420ae74103 w F assets/logo.png 6742c6519f88a82f8861a8151eba4e08f7e4e66a496465014a5bb728811542f3 w F checkout.go 63837f1f6061a65c89a3d120096b0187ea9ff2ff7798ec90ad540919aebbe3ce w F checkout_test.go 36d3cae47028e0718468ef412bfb65041da4eb020fdf4a7c9b2bfef81e79315c w F checkout_update_test.go eab514bb61f6e4e56711ae78245762b81b9a38c522d1cc91fedf82e5cc09d3b6 w F cli/repo.go ed815010cc42627a2aae8720fe0d0f02e0262d3e9516a36d2a037f250968578f w F cli/repo_add.go 62ac014a3a2fc45e27f3a496a804f9c35a54c978db3fe88d14e6828947075a1f w F cli/repo_annotate.go 837ad520aa294a047ea0d1adf5ef54150b7707ad948db0818fd89cf72524c552 w F cli/repo_bisect.go 343e4afe01f9e36a1a321256e4f66399e50510ed46b690de12d0a3e3c381137e w F cli/repo_branch.go d3479393bb477abd1792418a7cf23d4660db4bfd585fc77e2b5ff3b00041ead9 w F cli/repo_cat.go a9cb373d044d58538241ff340302598ab429ffcdf378dcc1ea6bfa79e094d51f w F cli/repo_ci.go 071e8151afb681c57600da2a38859707f0a2d6f506fa80fec41f5644dd620755 w F cli/repo_clone.go 29cdd2e744e81e574a177f954b00f28bbd48bd4175dbad264783b2bbe10a1bf5 w F cli/repo_co.go c023f29ec9423f56c1ee46f00db83adcc02aa93e080ab51ff72427282c2dbeb2 w F cli/repo_config.go d23ea737bfe951b12c73666e51876b2a378ce33c90a27198610e0d0aba50eb74 w F cli/repo_conflicts.go a174d9ffd91120662c7ebc876f02d9717a1e8179b46474d7a4be0efb70d2f109 w F cli/repo_delta.go 20f5a211e98895b472cea2b1b3585889b5f7283fd0466422ccebdc82fe2a05f2 w F cli/repo_diff.go 941f62756321b259bb2592791b0a2df8ead81b259ce913b4518fcb2f0b24cd77 w F cli/repo_extract.go d9e52f90187030fb0be177a7893416446046b903e4381deedf9deeac3b27d916 w F cli/repo_hash.go 5d319b5458793a901ca3a641eb7b8db42e973b3ab7746d8081c50960ffeaa0ce w F cli/repo_info.go 486f59013b564f79c7977acf5728af170c04fb0f52dfb5fdc461d5db3faff09c w F cli/repo_invite.go 9e7fa0f6d7ee501c950d964e3f4954dc03f8ea71ee5f8362022588bd4c349052 w F cli/repo_ls.go 6f57d45721dadd48b5ce35deb2192a87c5b4c2584091e258921eedfc26c87ed4 w F cli/repo_merge.go 3271511a9544f2664b40d2e69ef2b3d746fd96afe2fdbb3f78b94b8b190d8a31 w F cli/repo_merge_resolve.go 5a15271fd422bf4d3ab33b1e5a33e0cd670a4aa91291a282c6e9de9c966ae854 w F cli/repo_new.go 4acffbcbc4c2b9f23b816c72b2ee0c528ff12ed8a7c3f4cc2ff7be2100c4830e w F cli/repo_open.go 510bfed1fab03fc40bca575c5c086f97217e3686ea9424269623d4db482d6702 w F cli/repo_query.go 16d553d1040d17b5a0d82f936ae59ca95c8859231311a9297b4386b0586930f3 w F cli/repo_rename.go f275ff6c93ce380ed6c1e3cad2b9eb5a48ec8695c06b8ef1373788593961a046 w F cli/repo_resolve.go 3259d2e30f889b9c45e007fd8619d9f30e9bb54e845ae0a0b9e146776bd5d3fa w F cli/repo_revert.go 5e1530b5b9d960c17b0894f5f00217b75b451571e0e528a730f101e4e1f715ff w F cli/repo_rm.go a8b12a6d533c2f670d2ec73d51a9ca505ec1314d4d7609b3d5edff1721f25fa6 w F cli/repo_schema.go 4565288636dc8f9a355f31b0700cb5d38a916944a29f169fa20febacca871ae9 w F cli/repo_serve.go e13e6ac8f14c30fb10e7d636ca4d79efcb8571eb0c334767b7e4ba273c936580 w F cli/repo_serve_test.go c4ff6f2035cd7820b94f210384d6dbfaa2486e1b19924a9561c9a8fa903e59e1 w F cli/repo_stash.go d6d9bc90338180edd7c4df89898f464cbf8a574322ac8645dc19cf8b717607a9 w F cli/repo_status.go 6d3fdb3d467b0794508c8f93c3031c07c9e5b45b66dacbcb56b834b64de7c82b w F cli/repo_tag.go f551674ba5cd8e6a9bd48d71e7592e528ca72689cff22be9145f80ad0f549646 w F cli/repo_timeline.go 9c4052baf9eca1aecb4d98ef6f8ac4480386231cbc9245faaa495e75a93df939 w F cli/repo_undo.go 3be586f6b329663982e714d9e24d898c2b3f70a33020013b89ef4078ff2683e5 w F cli/repo_user.go ed498afdf4127acc4e3a4182e379bdad869612d7a8ceec3b01d21bab02ea84e9 w F cli/repo_uv.go 583d0d28111093f00d0c1c189c7114bcdba2e30ec7b19a3c17a2b63406367d99 w F cli/repo_verify.go ee5e7ed1f92447c9029f632d04403a037850320061b25d6f527ea4a0ef533bea w F cli/repo_wiki.go 1a0d81a9ebe9944ef870c6214723299f6aceffd921a9b9f5722e8c8f48f3e349 w F cli/shared.go 828f715872d0333745cb0a71bc5c54b9586d6d23781af66c00e02bcd736c6fb6 w F cli/shared_test.go a810935355f2c4143ca846d65545788acc4cec2dbfeefff188b0ebc9f15c6aad w F cli/version.go fd88a6c14032b12b0188bdbdf7e76d18d6bfba7e7356cca687ae22804ef38c21 w F cli/version_test.go 666328d73abb80cf3afbf0586007e33b31dde5f0f90230ad9306346978d91fee w F cmd/libfossil/main.go 61cae01647670d52c69e9735d4ba7e44eb5d0d699809c14f1508a363be00b65f w F cmd/libfossil/main_test.go 8a60201179065d722145e5bbb7d8aee987b4428c90c0a5cf0a7ac7b4ba8c7b0d w F db/checkpoint_test.go 59dc3adc3404189216b255be53e6d548264ded4d5a0d385203108e5ae591cd18 w F db/config.go f4bccb5a5b4c997df30f5d88c9fc3cec2903955a71b3cc78f209b20889a67ea9 w F db/config_default.go b75fe2adb424dff71e063a3a54dec54ed3bba22e75f11e9f4e7500664ee75598 w F db/config_wasm.go 41fc170a2d1f0283355d83640217db708ca8f7e4d8ba18a8b91db95ed79ff9b8 w F db/db.go a3cd654b4b5c7e21dba2c4fabd85bbe45f0397d86ce5bc219cbbfcc8d1fd29a8 w F db/db_test.go 6416c0f289c1a7f6aaad82b61d4d5da52ac1c62f16d935c66b85384d54fe4851 w F db/doc.go 693ccc535c5796a4c1fc4001d6fbb23f30690647f694a6e8b816df1ab962d074 w F db/driver/modernc/go.mod 29dc10a0d231ffacd6ee941ba6d72dfd123b6d957425bce177fde167f6394e6f w F db/driver/modernc/go.sum a36002d6878503f3024971b2c2e5f2c2f54d2268a0dc5e04504f0abd25b5e425 w F db/driver/modernc/modernc.go 4e57b0e3e9327e161d0b932efa97b91ab9fec199d2581385c52a425aa98250de w F db/driver/modernc/modernc_test.go 44ce1c37c1bbca3ca84cecd90318133e8ae1a4ee4c49a22d0f86a6d0f2ec62da w F db/driver/ncruces/go.mod 48326e2b053ad0d9057d5e8eca50860ad82c648bb601d5344d5069bac0378a47 w F db/driver/ncruces/go.sum 4971ca697b8b0705153a4952987bd47fa1ee118ad5aa30ae8bff9be88debf90b w F db/driver/ncruces/ncruces.go d2fea1686496618d3b793352f7ca98e950011eb37f00cf2ac91e205f5de8a2aa w F db/driver/ncruces/ncruces_js.go 3d0dbd75c9b599e49826c997abfea7a08148b1174b14c22cc75588a3121c320a w F db/driver/ncruces/ncruces_test.go cd23760fe6584df2cd779f81eb22333e7f0c2ab4c4882e3a6fe5e2979ac9f469 w F db/querier.go 51ef51c04404ba191c9778aa9fb28d779cf9d9a0c54f23626825e92d72ca827c w F db/register.go 2ee97983aa3fa7a3d592c277efcd4a8af515bad2d1bf88aedb0e4eb91e2b54fd w F db/scan.go 4a29b35a035f0b7c2b7cd9e4bca9a7919eeeb9ffedd3123a7d890b61a8c3ce04 w F db/schema.go d75d3ec19fa00ee0ec96ba265addd43610801f81575d46afbc327a01e199873c w F db/schema_test.go 2c2b7ed8b28907bf71680f2665b11f356b59261fb1fda5a49965889ec6c6700e w F docs/site/content/_index.md dffc2080d8c8cee259d3f72d11262521e9378f07b3852db21ad008ada60ebd04 w F docs/site/content/docs/_index.md 2956787a9e30e5b9191bfad9c03926aa165ad1adbb3c734060c6c8b5c8f69455 w F docs/site/content/docs/architecture.md f3999483bd1384101171cecd33ed45bf6ac136407cdc8b3c7f137418dc9c6e70 w F docs/site/content/docs/extension-points.md 2e24ea270d9de5776d601bf6b832cf9daefdfa8fb9ac3c50949125858da85204 w F docs/site/content/docs/migration-from-fossil.md 7a513bd080009fc198fd1f9fd8ff1d746c759e72d9584c7725ac3f45fbc2a3d7 w F docs/site/content/docs/production.md ce27694f4f53f025d4118b6c536d1d80c029d0930dba8c3585234b404d7f29cf w F docs/site/content/docs/quickstart.md baf7e1dbdfd4fc7dba58422c36c71f0c938a01e6cb094c4aecbc3e831d397a07 w F docs/site/content/docs/reference/_index.md 5502a4e209de4ac27b2768a7cb794d5d98c1b4ca643fa327ddb7e6f41c5db3e6 w F docs/site/content/docs/reference/sdk/_index.md 8f20bd1bccacaa0a492a793a8bce2b90cc0ab63cd09585e3db5bf7669171d235 w F docs/site/content/docs/reference/sdk/cli/api.md d212ad07742a667363eff42701bc03c19048e9f6112047970487111fc8bd495c w F docs/site/content/docs/reference/sdk/db/api.md 3824fba956019dbf5297c119273b9d1b10a48789bc2c8b85680d86f8bfd5addf w F docs/site/content/docs/reference/sdk/db/driver/modernc/_index.md 70c0129fcf3556d41a9d9302daa1d6b3ebdc072896125b2b7989cba2deeeffe1 w F docs/site/content/docs/reference/sdk/db/driver/ncruces/_index.md f4e0bad8b978da0601bf72cee1043a65b5a595046a23df6e0f405a32dbebd230 w F docs/site/content/docs/reference/sdk/dst/api.md c4e4bcdaaa77c1d41ac92c32a0a93f814148219f8303ce9b8b32c7eb22efacc2 w F docs/site/content/docs/reference/sdk/libfossil/api.md 67af4f947c9171c64f8e9a53ebc6b4545ce81b435b8e74d91371a9e6ad2ee82e w F docs/site/content/docs/reference/sdk/observer/otel/api.md d1866dad3ed13031423bcc969a694f887e4494c29616295fc82df55ec7b86d89 w F docs/site/content/docs/testing.md 10c1b397df20e524af118fa08b09779e0d259587f53a50d013bc3baefc30724d w F docs/site/content/examples/_index.md 37f41cda9387b9e788212fbff2525842961420eb253e692362a25afd0ca2a525 w F docs/site/go.mod 7707c86c97262d9af31458e1d27e3bf68860fcf8acac762569bacf14dda4e7be w F docs/site/go.sum 4572deee1c4c7304d39b73c3317685665590bbbb66a064d9dce58a52606fc15f w F docs/site/hugo.yaml 47a8f04ce9371f63f4ecfbece11cf5dbd5e003a7d466bab1dedbe429f91f4fc3 w F docs/site/layouts/_partials/navbar-title.html 26ad6fb61226a941ec6fc41723a0e4e797f2b1fdb8469299923f5f31204c35ac w F docs/site/layouts/index.html 31315f919ccae62bb3e1befa495daf7a384f24278e7546e60c7b38d4d041c6f6 w F docs/superpowers/plans/2026-04-26-docs-site-cf-deploy.md 68de04e4745460c05e0416942148d1a176a50b21eb761cc8772e63cf0392aff8 w F docs/superpowers/plans/2026-04-30-cross-repo-release-automation.md 66883fb764db705482ec6ed240dd3c3558a3df6455fe5cb9c48df8966fd57504 w F docs/superpowers/specs/2026-04-25-docs-site-cf-deploy-design.md 0d7a4266955ed729d9cb262dd58e43eee6e95e4b5c0d7cec7175a28263f04ddf w F docs/superpowers/specs/2026-04-30-cross-repo-release-automation-design.md 560e82af42c7b8021b57e6a7d8c3b4f091eda480b36d89b218fc58147bd0a0a4 w F dst/clone_test.go fb96e964cbfcbf456332bfc5716d0125d7d986f83a1cd52b55d27ba5324e74b0 w F dst/crosslink_completeness_test.go 9804764395b619cea76286c718e149f67537a06b7e4d6823cd4cfe30e8602e1f w F dst/e2e_test.go 2650345bbbe8c00a6f070de84d1f3b8e0ad3943959b0aeb125417bf7b1020aa4 w F dst/event.go bf634507299f3e9ca68f7843245d255d81d41678ec8d4dcefe4c16e71b786675 w F dst/invariants.go 9de56c0ce016159d1bd8d289a8b1316c8a28b50652114952491fa638e800c876 w F dst/invariants_test.go 4cc751b93b7c5c38ab7fe8e1a2540ca11786d7715061e69ecc1351d7a2ef523b w F dst/mock_fossil.go 27d9502fbd2764d84b062ff3d5b0407ac9396c06038f8373e8eb3467b179399a w F dst/mock_fossil_test.go f1867c6629318097d4e117fd850581a5ce8c2d89d20ab24a9e303c634e9d0576 w F dst/network.go 3ec5f29ee991c845c979d17770e9416543b43b2838497949fddc66d0fc3c905d w F dst/node.go ddbfbe9a535a0fae55947caf73a65898a56b3111338bd142694bf50431279391 w F dst/peer_network.go 7ae0de40388efdc5c1f2c9b0ea5e65f54d8ac5b65e18c48ed1be802d2bdc8490 w F dst/scenario_test.go 836c1bf6b760bf9b342a669712fa8a37cbcfdca3d483702f9395225a7b8648dd w F dst/shun_private_test.go 704f7aada4066cfbb33d7f7833d037ed3bb5b1219288a39e04b8b86fda04d33e w F dst/simulator.go 15e4e6b2c8f66d89551db4f17ebe057be9da2ced2392d6f0940b66dda1cc2631 w F dst/simulator_test.go a3e6bc7b577fc937967a60f5e014a1c7f694b451061a7dd7d8035ab501938162 w F dst/tablesync_test.go c7497b3b48a68e9ae38fec8791c4e3cbc0e3cc4ab40be17a3661c5281defa844 w F dst/tag_branch_test.go 06ec30e07d2039d4fa0b1b34aef58dd086b5bc729905b23f7da8f11aeeddf1f6 w F errors.go 08302b6fef3b1aa0ff242e891ffb94439fa8184fbe43b58f42dd664a3ca7bc2d w F errors_test.go 4e1346a43f0be34d6e2de643319306453bddc58ef8943a7e113a61874b22904f w F examples/embed-repo-api/README.md e643ad263a8a1649e8c86e029e180a0fd0f1624f1e2665508a5a99f5649b6bcd w F examples/embed-repo-api/main.go 329d76ab77a00f82d4fcba461ba7858b1471de6bb9e47bb94cda380460d4035a w F examples/wasm/README.md 13210050c160b6295ec4d9694ac8f83a4f5e0fb2f31439738d1957054472fd4a w F examples/wasm/main.go f0e9ce09bc0317d4b654cc4b5933f2a88f87c5c992d3403e32002f60a1ac78da w F fossil.go df78caff2219d1bfc026342b5e7b154e2d2b983904200104d06c2c75dd48857e w F fossil_test.go 9c0b09dc039c1dddf44984995b3e65f8d4170aa336071d097291cc19c11906ee w F go.mod 88957707b16cfda11dc03a6d4c29f98896ec8850be2bfaaa2b13b5884054a0ca w F go.sum 4a3a92b9ce620fe92900ecc4e2a3d72c5ced5a54ae494640fa6b794807af527a w F go.work 8b3d9a07dbf8042509ed2f1db6cff10fb97a0cb73e3fb0db054cac033c095236 w F go.work.sum 0884400df2af51c2166a06aa83d858f1935d299d00bea0502b77387930fc621d w F integration_cli_test.go 4ae9883f26c6da3043e1fc8efdd2fc8780c4f2b94b8c0e538d755d7b3495e731 w F integration_test.go 1efde18e8a0c451d3e03902d17361b2796c24395bcd9086f6948c87e2e2e646b w F internal/annotate/annotate.go e8e1ff1b8d87e1fb96d4c6ddd010b3c7a62415655d4ca6a9b7ae46d16852cd51 w F internal/annotate/annotate_test.go 2d511c81ee58a673c25bf87b9542b0d03e458fdb04d1061ef619eed50f3b1f74 w F internal/auth/auth.go 043888f5dc60e9420a3bf94116c86e756bd6897d46bfa53cd46c0b36d7af49f3 w F internal/auth/auth_test.go f137d59e7b01b89ebd79f5ca2e11249307447783e270e7c1b9668c9d2da0b3d3 w F internal/auth/invite.go 365921b3da8a7f7fd2b50d58dfe21168a98e57376ea36681aa2fff51b3c17e59 w F internal/auth/invite_test.go b664afdff63359eaac4b5b33be833fd774247fafb5fb5931434d9e69bd35fc55 w F internal/auth/user.go 5560f880247954b9ae766278cfe5913abd0dbf906a21c932ac1213f57097f1d9 w F internal/auth/user_test.go c2c39d9442435582fcf5b7f2123742385b11889b3f77bbee54c597afeed0b37a w F internal/auth/verify.go 67c358d62bed400d76c87665b6e6a18131a5d2faddb35664554ee155d76a89ca w F internal/auth/verify_test.go 220607b5ac7e6c62036465f2f7b4359d9447ec047e0bac5b3fa7ac39afce920d w F internal/bisect/bisect.go ea65da5cdd9e94a9562bf6d57020444984ed8089916138db7123de8a01364310 w F internal/bisect/bisect_test.go 87875cd9d7dc945a03f98f16fa0c081031d77bd24f4d80b09f54618c04673226 w F internal/blob/assert_test.go 88e527088574d435671eb4ecef3d0c3afe802e20bc2a535a801ef3a52e8caf34 w F internal/blob/blob.go 625357fa4caa928f9a3349ee83c2c8835445d6a0774b7def11d113a17abb3583 w F internal/blob/blob_test.go 5e64641bb3d69ee976b12ff6cc8ff25a70c986e93a4a8f8be6e4eb076f10fe02 w F internal/blob/compress.go dc7b90e535b7654ac49fb41f71291ca647c8898520bc41440454e1024c56d53b w F internal/blob/doc.go 81b3e86a564e26a1598993046b2e3c9a4024b38cc22a5b47cb81fc56bec2bfa2 w F internal/branch/branch.go dd564eabf7817fda04930d1fa612b1845c40097a628d5253befc1574c438032f w F internal/branch/branch_test.go bd164dee5ec5a9ef93707800e139ccf7d29e9f067d63597b93305f76f98a3aa4 w F internal/checkout/checkin.go 124395bb4b16dc0069626d109859ffef5d9862ffd6b2723c77637fe0780ee89c w F internal/checkout/checkin_test.go 26838278424c9fc7376e5af16f1a4090f1b91d7be91a4c0468f9b02205fb8983 w F internal/checkout/checkout.go 1527ff80ad65e977605b29537feacc20279b93ecd57a180f26359ebc6b5b7e71 w F internal/checkout/checkout_test.go 3d3e0e33656440376001d2640f75d76772056c661fb916cab005cbdefe4e24fc w F internal/checkout/executable_test.go 00120a05e47b1eb81203395f25ce3b11df2fa41debab1f4e4aabc4e8b587081c w F internal/checkout/extract.go a79ddf8bb08a45adba15dbfeaf826a04c29114fb1ec47365792b7564ac035b82 w F internal/checkout/extract_test.go f2e89ece2347ba89e001b9be009d4e96995255c9a95547c50907ba2af0f5bc89 w F internal/checkout/fork.go cd32cce1d175c4d21219e513c6590de89a890495c65ade506080b2e20b0898be w F internal/checkout/fork_test.go 89a5929981e159cd4ae7766ccdcc8e8b334fd3468a73dba19f40a74620a638f9 w F internal/checkout/helpers_test.go abc64d14cea9453f28592792cf129533485934cdd8d8e88708f504fd7ce2ff19 w F internal/checkout/manage.go 266a2a80c5343d2c7597498787c8347570c84a26b61d9ad366c447f9cf4c4935 w F internal/checkout/manage_test.go ed6b5044b0c6ec13dac92f168d20ec7d33589605da5da363cb7a38fc894526fb w F internal/checkout/observer.go 6880f6507cd931ebd2317ff60311a725d52270b557c182b0a4a05b835e574d9a w F internal/checkout/observer_test.go 2466300cb07dd6adced781ad6c059572250f77b88002d16d308e9da53de86f19 w F internal/checkout/rename.go f1256c1fd85b69d32ce5cbb4ce8df7793e08cb735cfd2f8fd05d9a7c0d02f8bf w F internal/checkout/rename_test.go ead80855efe9cd15cfa8c0038f9ebabf79171b43084c8dc613551095b0cfdb77 w F internal/checkout/revert.go 6ee0f93d732ccd5cb1c285f0382e4d8f7f8fa5846034ff5bdb58365f6fad8380 w F internal/checkout/revert_test.go 387ad7b249f694e4b0a5c0f55f67ab68a2f1808a45c004d9014d6683a075f092 w F internal/checkout/schema.go c8056525affb72ab0df263120a969169206472c40967401d454ecc28c58cc60d w F internal/checkout/schema_test.go 919b97436fefe2120004933a2747dc7dcc013dceadfc50f76e766ba729c4f70f w F internal/checkout/status.go a40d92d14f465067c13e70ee279d7cd4f009bd5ad2115edc64bfba06c8cacf5f w F internal/checkout/status_test.go 3526ec2a6c90c5fe90ba4f2fc6656419f09499088288bb37383b90e7dc3e7984 w F internal/checkout/types.go 719e055748cbacaf22f4740c05186e0bde612ede94ba82aed446765db5998f87 w F internal/checkout/update.go 3a696242ac34b643c6a8964bf60f085bc7680df35116ca2977e94d20b71de28c w F internal/checkout/update_test.go 98891ac33dc190678e096fd93d0b444f7fcbdd41d87f572c8d32c9e5795901d9 w F internal/checkout/util.go b295ade97080c206713c7ae8b38433dd4e8251b91c72a80299430e012b416d38 w F internal/checkout/util_test.go f7c7a34540730c428dd65b51c52808c7301902bd63d6f54b4ddc2f95c9196edb w F internal/checkout/vfile.go c84068b5bec146a234684215d495cbf84a02838399712ec12e5775a2d6863771 w F internal/checkout/vfile_test.go 3cf35c6c4dc995cc84de73e8af62aa4335a47ac702eb56278c7d83dc242e3e31 w F internal/content/assert_test.go 03f9dedb5eb91524f9001de16c4b78ef03ced75683dbbd42a0a1eb29631e7038 w F internal/content/available.go 715f4384ac9f5261e2a59e74f488a6e40d66c68c7f098520f0a7490e42bcd102 w F internal/content/available_test.go b159d880d18f82bd1f44751a50ba12a6be185330294adbe4419de27dca7b09df w F internal/content/cache.go a9c1f33c003b8fb2c2f00e0955e6f2538cde6030f48ae660478fef97f9364963 w F internal/content/cache_chain_test.go f63757db3e447cfe072028ab5bd6969932c61fc1b05af3ccd2d024b8dc695df2 w F internal/content/cache_test.go f252b26abcb418feb5a542c35fa9553093811f63d15a4e41485bf8a014680278 w F internal/content/chain_bound_test.go d013db9538de0aa50c3e24f3b086a8310950e37c9540765aa626f30525be5377 w F internal/content/cluster.go 1087598118acb5f77cff5a34d91b4881cf6e6880e4eca2f9044cfadcd4ce6986 w F internal/content/cluster_test.go e9a809f7b57b7e91820c13164f3566efcbb4b26b8bcb7b6496d137124cd8500d w F internal/content/content.go 49a385a58af4a40ce7e00985d4b3c8b244ac09121e673a268e0f3f146610eebc w F internal/content/content_test.go f8da2bd0e263022be13abf41c65477dd495f5be55d733e12486c567a9c63c8e1 w F internal/content/corpus_expand_test.go bdff652764a2cca0efde91fe51ac6715a71156385aca043aeab8c215ac2f1817 w F internal/content/deltify.go e78fb960e0f8c6a1add822221f1eac7857824c652aa909ef38c17cff0c87ae85 w F internal/content/deltify_test.go e8fe5df043456d8edafa68990257622e0db2a3ca0d5123d03fbafc9d513e4542 w F internal/content/doc.go d4e65971ef0661ebbd6fac54854309f1c3bddde01642e6a9ec2fe214c8e1a1d7 w F internal/content/private.go 904122f7502fab57b3909de837488b29eddc4427de1d83d44eb65201747d630f w F internal/content/private_test.go ae796c652852db45a6f5ccd6cd52a856ee72bc0b1a58c8134f8056c38c40e2ef w F internal/deck/assert_test.go 01cf720efe83a18194b0afaeffffa66067db35fe720ba4211888c3022852256a w F internal/deck/deck.go 7a7af9578851cdf2021dd98da60c22a897cd5c12f491395bb6d8abf3e7ed4b09 w F internal/deck/deck_test.go 971e8b111626095a2efbb4e13d3003283a46e6d08590c16e255465ed7f0012e3 w F internal/deck/encode.go 6e39b68aea29c5ecd315f1eff21de67b73acc17826a3863cce041b7ed0dcbfac w F internal/deck/marshal.go c8423602616f9d7e49178222ae305b8f5a1cab45e8676fa95a66f36001099d2e w F internal/deck/occurrence.go e6a8b5be3b2fcb54b4d0b920192fab24f6e7344dd450fed11dc10ff8d5c34809 w F internal/deck/occurrence_test.go e147b2897f226c8c05b5d3e1c05ddece9851bcddc70b52113f65cd7d9e7fd537 w F internal/deck/parse.go a1d98c71babb9f8b6af7abc0713657771a4ded1f84cad74c4787bd0072d92d2b w F internal/deck/rcard.go 6c76222c26d9c89016ddf401b41205fd80e420b9a640a2ad3eb8fcb7cb13353a w F internal/deck/zcard.go f1065892e28cb370210f7ed5899a644d6d7b1c13e2e4330f7ac4c91abaaedd24 w F internal/delta/assert_test.go cf31f1117d52d13fd280f117b0f7a74245a3a07f602fa2763c376f2643b5a501 w F internal/delta/delta.go f39ff7515c3a0de525d463fe6c62ed8b4672137325fcb529e85667d0e7656b46 w F internal/delta/delta_test.go 0a0d8ac5367a0827eb09109e1a01f7a8ffe1e1499841b46695514ef752595c33 w F internal/delta/example_test.go e9e5d6f067c5f93c0e06825f99894e0a32e78f0d51ebefd65efd882e7ab495c5 w F internal/delta/fossil_compat_test.go 9ffee783a28e06230ab780212e4ac078320d3ef97e269c8b16cf357280de844d w F internal/diff/diff.go baa33325fd804d701128aa15220175e48d5dbf841d7de542fb4d5481b6de37f8 w F internal/diff/diff_fuzz_test.go 9e573bd1faf7d9e85d530285889bb23ae365fe274d420790d387679c8bbd2488 w F internal/diff/diff_test.go f26103eca4e3de71760a39653173b36f4ccc9db882581392a0e8d689dab5c692 w F internal/fsltype/fsltype.go 6dd741dd4d81106042e6f8055992a262c374c8b369374c69c4b9b01424380057 w F internal/hash/assert_test.go f1fc842bc553b641a0fb5ca2e6df94d4a156b8d1f6b5b28f0e2c78808e3ac08f w F internal/hash/example_test.go 30bc4b10018b0e9f9875d2be9b66efaf757ed4fd135a57189e994a3de1cf4f12 w F internal/hash/hash.go adde80f5613398e8368a081c4b782c2314b48eed0e8cd16562354e6983fdee20 w F internal/hash/hash_test.go 26bfc26d2a0972b080b8e2a78480cf134122aca0b3183a3979bbd7bcb6641268 w F internal/manifest/bounds_test.go 253e0e0672a14c46e459c3db0a4131740d2edc3b16e485fc20320f560f0cb991 w F internal/manifest/crosslink.go 6f2974235e476edd5cad908ae4ca5bb2f1d734543534ae54f57eb06feec95f60 w F internal/manifest/crosslink_corpus_test.go 75ab66f253a6bbba8fecf97899291d4cda5ad6dd482fcaaf4a5feb68ba6af0f0 w F internal/manifest/crosslink_defer_test.go 50ce0de522736a2aba34c7d58943adae673c4998c26842a0173408b3a30ca6af w F internal/manifest/crosslink_fossilbin_test.go 38c3939a5d1af7d1302d0dd8364152bf7694c0779735ccd5c9f2dedeeeeeeead w F internal/manifest/crosslink_test.go d9f54add3520fe33f3d23deba5ccbeacf09da6ce204b9b0a3e20f373a54893d6 w F internal/manifest/deltify_test.go 8d8ea5c982f6403bba217ecb45afe2623a76f40ac39dae4771ec5fdc93c3f974 w F internal/manifest/dephantomize.go 77dbfc474a52fbda2d3551b05c34dbd43d74535fbbe9f3143db0c270a287f8d6 w F internal/manifest/dephantomize_test.go 5c0fcb177e2ec1539cf1bd52a9a65969f33bdfd0afa67759312f1db9462609d4 w F internal/manifest/files.go 14124be0092edea45928971b6226179aa4e57d109f64a5b4a750c93e8dc006b7 w F internal/manifest/finfo.go fb050861cf354227dd53ced1f0b86212ef2a73c283739588f74b308fd86c5660 w F internal/manifest/finfo_test.go 793964b48d263a3a5b0d14449e44becdb8209f5827a8b10802f199e8f2a672c9 w F internal/manifest/fossilbin_test.go 30c8f10d4760ebfaf7ba98d585ed97f54ad81827dc25dab502501cc1916b57f4 w F internal/manifest/log.go d96087f10aacef0e0637ea963f97ff0f5c8444a16184db47aa7a88e1d0bf45ba w F internal/manifest/manifest.go 2d60e48a70781ff2a29817bfb6f6a897ef47e4e7e4235c8511b6bbb85c3aafe9 w F internal/manifest/manifest_test.go 4d636899cdeed4c0c684529993968e6558f332c0db419efa4477b235eab2e813 w F internal/manifest/mlink.go 0bcaa404065ef2ed6b446525a47b3de42d099328aa6a408243606bbdd78221c3 w F internal/manifest/mlink_test.go e2dfb3008a5d6ab5ac2571357cf69ae9d37771bf1fd1a310bd3678aaf2ffdd0e w F internal/manifest/timeline.go 388b339a1a5b30506d3a52fb7f5a39fb2872abb8e2783398ff1eb6215fa20494 w F internal/manifest/timeline_test.go d8a715e073c6b0281e49649672394b528a0787d4f4d5d38b0de84697ba742a92 w F internal/manifest/ucard_presence_test.go cf5cce4d6b5eb3042dcafd4a79e67f29170fbc48f2a81d056b15df3d16e76f19 w F internal/merge/ancestor.go b06ad25c684a1737b79e353a1b71708a4da6a773cc718e95d9f41c810a2383de w F internal/merge/binary.go d11808769e1dce87c77aff56c0d1d700137574f809f69b3667f6519f215ea711 w F internal/merge/detect.go fcb4bd6886fb02e8f506dc1151b763d8713509bf1b6e59176c8406658d31986e w F internal/merge/doc.go 42df37cabd38d36af29e4c86be1c96f794988e6cf31a86bb976bbed02face5ee w F internal/merge/example_test.go 979a4eb47eb24cad6702d185f7f5a3d9fd40ffd3a4d02b6d911ed2e9af5f48be w F internal/merge/fork.go c02ecbea8698a7df2d0a509dfbe14451fca83f387bd7e7d7b64a59756805110b w F internal/merge/lastwriter.go c9c1e433b40e7c8afd86292c9afd21513c19dd1abb757f4d84e1d08b98d9e7ac w F internal/merge/merge_test.go c32cd79a0b3f4babae33720726a593fd10b01ce277a301478f26db9723cbfcea w F internal/merge/resolve.go 12dc9dca8f6666722cbde17f0511955881fd669d9e9383f1b3a38ea5d75c962c w F internal/merge/strategy.go 05215b0c50e46be400e15c661a92b5ec8fb7f4035b227ac5d4c01fbdcbc486fc w F internal/merge/threeway.go 7dd2f3fb4e3b93463feff3865d873160379291717a4025aa860c9a059a276d36 w F internal/merge/threeway_test.go 8044a7e9384860f12d96f123cc055bf56e1f2b8fa24e731433dbbe35351f0043 w F internal/path/path.go 34ce3811874556ff7a23df99e44e3a7b02b753d1bb1172bd62889211ab1650a5 w F internal/path/path_test.go f435bd21b38b16f58e3ebc9bd15c54bae04a9336c8fd01d6325c3dced38c293c w F internal/repo/doc.go 108b1f68f19fb95e3b565a9273625ebe1529ddbe7f7bd92027a1d6a198658442 w F internal/repo/repo.go 2e707db1e84538010f72e513ae1d344f924f9ad08d60ea991b433c3f3477e2f5 w F internal/repo/repo_test.go c84225e2e40eded5db4963fe8e9406fbba512ff85e654db712bdcd230805bfe4 w F internal/repo/stat_default.go 40de143f088783a61eaebce2352030752672f14daa1a47569f6622a6dfe6f83e w F internal/repo/stat_js.go 78cdd7a120f16a9927d7666b9935785293276625b77f91b6e929d15296e7d072 w F internal/repo/tablesync.go b3c2e3581c8df2b734807049749554945ec8390189f7cd015460deb836f4f5b2 w F internal/repo/tablesync_test.go 27ed67725637281423ec80207383005757aebab7cc7e023637c44e09bc724e21 w F internal/search/index.go 4590f2f5c84740c1b53fe4f802552352ae4aa1258e820dd7394052bb2b1763c9 w F internal/search/query.go 8568cd4049db9b2d7213c593cefd8350e8204d2ddb34241c5d9c23ce15bfcdbc w F internal/search/search.go 099776002c6c6d29d8681a388d492bbb1c09d7e5cc322faab880eb09191297aa w F internal/search/search_test.go 5dfec0e963c7ea9e45b52d4d8276484f9b2bb8cd934b88ea7a21143429073bea w F internal/search/trunk.go 8a828cb6103dee875fca2acf3ff6fee46035c790f7eec3e943b3f722c7518e53 w F internal/shun/purge.go e218dfe5b55b8b59c6eed735f2d89b511a0295c255c1be8253050a1d0eef856a w F internal/shun/shun.go eef8d64c743e7bb2595002fc4e56e903c4e1a7c791979fa8d05b1fb00b31e1c8 w F internal/shun/shun_test.go 2ebe5a003fb80dbfb85c18fd27646860312ad8b22b15aeab50f9672fb05662e3 w F internal/stash/stash.go 3dc526259fb0c9205e8384910b9ad5fdf5de59e649dc6c74ba665c1174cf9048 w F internal/stash/stash_test.go b3c81cb0d3673114d953edf9a0860fad264ffddcd6043ae9cb51321eb3c3f382 w F internal/sync/auth.go 75b38460fcf09012c653cbee856f07c5a7a3062e8db3dd561b7c40b41b3b399a w F internal/sync/ckin_lock.go fed9a00a552e4537c0c8ddcb7719fd7075f06240a4628c4031cde1e27c38c463 w F internal/sync/ckin_lock_test.go 6d3ea39da8f059e14961d7ed13690e28b48c88777614cba2efc73f719a611e24 w F internal/sync/client.go 406569e5d5bd229353a946a6b59bf8aaa8fed54f518cd2a52638758265fa76a3 w F internal/sync/client_tablesync.go 4fe87f283a46a3fd57941cb484d81ea3b31d1952ec874de1f05e1325440dfbbd w F internal/sync/client_tablesync_test.go 8f3dfd26668f17520ef1def831ee85bcc288386b2aeab765930232f7538224b6 w F internal/sync/client_uv_test.go da4715b311cce4a8255c971f2ad684a4dbe8643f1f733b4360902ed32330ab89 w F internal/sync/clone.go 2d6945391fe8c61c0cf673ff2b968a1493b4bf7b8bbe09ccdc8756cf1a41509f w F internal/sync/clone_selfroundtrip_test.go 9d800c656b77f2388cb5081035180f58e7228dfe980c2859e80e30dc24af3a2b w F internal/sync/clone_test.go 4c3c6a030f40c39235cab7f78452f5e22e409149291da3c1350d065273c3158d w F internal/sync/cluster_integration_test.go 6a1f62b6f8f47eda15183448206c6df44782385d85e36a3892dd354d6e4f4aac w F internal/sync/doc.go 1bfe570fa95c6818d00e788d5868ccc98919eeb4e839e125a6158b3873d1f095 w F internal/sync/handler.go 7175c947a25500cb2ace29bf49d8b1862066455b45adc59c70ccb8cb659c69b2 w F internal/sync/handler_crosslink_test.go c0114683aa96b3ed49fd1035f28dfa2f086c7f7b5210d9f7491f8aab9f6355a1 w F internal/sync/handler_tablesync.go e8b1808f24a8d30af5d68f71bcfd68d1353865ddd384af582e813695401760ee w F internal/sync/handler_tablesync_test.go 615c54ee4b2ae118eba3173c7e3c2d6c0771e7d21db2eb32b943386cb4effb50 w F internal/sync/handler_test.go 3d0203f90c5efc770a665aa4a39a6d20cc71e8061ee6b19a3780ea0dcab030c2 w F internal/sync/handler_uv.go 537901157b7a35af627b9bf550156f36a6f94cf355145621d9ed346f64a47491 w F internal/sync/handler_uv_test.go 5fd81e71593dcd6aacd4f9c4c5ab43bcd47a3d8db763bb2010cf7f97cd1af288 w F internal/sync/integration_test.go 65c6db288aa48febe21175c6b5a3351612d4880db488d7070428e6d18c7301b9 w F internal/sync/observer.go f14b94f4ce60925b295779fe897b036e085897b4c869011421eaa6c03df8fed8 w F internal/sync/observer_test.go ab58eb804e7fa8ac81dbf518873dfddd2b6ebcccf90c80ea8ea6f4cb0f920926 w F internal/sync/private_test.go d5e71ee4db67c7ade2ca48dcd8a763efe5120d113da8408e6080ee0aec35bcc1 w F internal/sync/serve_http.go e5b9721a8e2b6e7b4271ee990299add9d998621fd55c69cf36e1c58e5c704507 w F internal/sync/serve_http_test.go 62852489da4a40deb2381995bbf8bab033e8939b989200f3f56b27dd8fac1ee9 w F internal/sync/session.go 449d484d95ab1d5992de9f6283814d22816b8b9aec811b40729f694e6c41fad2 w F internal/sync/storereceivedfile_test.go d0b204e6d7c6f1fd5f56e7a2a4d041f8801bcd8c59dd694f774a51325775eb85 w F internal/sync/stubs.go 3aa8e17d7112ac7d9f7ef8a460f190d871035b446260caad4f6b29034e3afb38 w F internal/sync/sync_test.go 45282433eae9d93b2c52fae24e0e3deddf291f7d25468c496fba04cd856143b1 w F internal/sync/transport.go 9658cace791c904a43235fff107d4fed421558dd0e39cfc00e1d7d9fa784b2c4 w F internal/sync/xdelete.go f0d07e359f07e8007785f50cf47f39e19edb49917431e8ff56681c362237e325 w F internal/tag/propagate.go 6322131f155037e598908f1199046a08c2b6f222b17044af18698d0733781479 w F internal/tag/tag.go 4a643b56999a45106e89615f7c19f7c13e3be9d11958f6e3f5166f695bc9d1e5 w F internal/tag/tag_test.go 60b0bfd9a8ddc0cbbc9003bacae5e2179c97d08156a4bfbf4a21aa8df95ec678 w F internal/testdriver/modernc.go 3f5fab78a35aec71a9ecf43616fde7708e77608415f58d890206574607cc6803 w F internal/testdriver/ncruces.go 4ebbfe1f48ddc92a8e7eaabcce3187edc6ac88c425e832ee12c43a8ab0c7903a w F internal/undo/undo.go ee2d8a12aee06cc21fe5a059dd2abd736f4266ea2ff35b33cfef2569513115a6 w F internal/undo/undo_test.go b36aec578818a0027be94adf502aba9a7ae5cda5bb7c1b347f977dcef7a22a78 w F internal/uv/status.go 585384ea2e1e0b39f21202015245b06a221e88b2d2176e06e4d002bf20559b8d w F internal/uv/status_test.go 16cbe804eea490a562206261a3944e202b8b78e187508ab31c7f2f6b092a9056 w F internal/uv/uv.go 5833cfb13ec38500b4337b09c6285e334a8ad3ee990ca1ab402b1335c9597f9a w F internal/uv/uv_test.go 522bc4c5849554646758269027fea8ce4bb33d0f948dd0da58a47648e0de694c w F internal/verify/check_blobs.go 058e24341c37bfc73260bf12cefb108facbe970dac5229a945282341106a1150 w F internal/verify/check_derived.go d3cf7d6355f157349a0e27e027d3bde8a6c95f6ba05fbf5876a49556e3b9797a w F internal/verify/check_structure.go 3e84c0372f731d8be4964aa226c4cee5b7d2c0c534e1208e75896b1791c1f85f w F internal/verify/rebuild.go 083c590d36c34b1a01291e799282c48f5a1ef53c89e9f574c9c9a49da371f8da w F internal/verify/rebuild_leaves.go 9496044142037f4e5db6b9da589625be6b321ff7419dfe0753f6511f8bf1f177 w F internal/verify/rebuild_manifest.go b835a7bef53881d0bb22149285c50dc1358a5f14aac067cd709f9a39e60b1d80 w F internal/verify/rebuild_tags.go f5f0ebab1655e90770def744b685ccfa7e92bac3b5d2461a676621af9833a3c2 w F internal/verify/ucard_presence_test.go 137f15897dceaf9c11148eb42ed7cf6089dd56302ca65977e3712bd6d7e98ea9 w F internal/verify/verify.go 981e99428f063acd7ff47d597a2225f7bf2b9f83cf4166cb11891daeda3c9ccb w F internal/verify/verify_test.go 4911500307f8a1d05ec76af4223059222aa07b8242b270aec1e4b72703d51a90 w F internal/xfer/card.go 2157ef2c596e314fbf49c121f2cf5c04dfb2996c88b7d9ee75394b23dc456fee w F internal/xfer/card_tablesync.go fabb29eb54d5bf72280d9e5739845af39501f3f94da505ddd05c4961e52434ef w F internal/xfer/card_tablesync_test.go 976738f67cef781151fde6f1a6b981c4439467d75b5f528cfe9bb893e3fd6e58 w F internal/xfer/card_test.go b6ea8f2b45d5ac37f0b46186cc7183763d7d037555309848b85582e52a7e7e31 w F internal/xfer/codec_test.go 9762a145e1d4fa5ee9fdcb7df55a840aa5cd6e0c01ae4c57c5dfe16bf9fb8664 w F internal/xfer/decode.go 23788d4faeaac7ac55f65a12d311c4fb9c4ff8236b0e3243e8a658061c368550 w F internal/xfer/encode.go d110836fcff52ada165bfd4d4108c7357f5ff445bd5dabb968b7dd21023eb351 w F internal/xfer/example_test.go 5051fa33496a5eaf6e6102b442391cb6f280d265eea3e9b1f228a083d5c6a88a w F internal/xfer/message.go 2a67594223b5b803522be8d22bfa0f9748aa19d07d46cb05a7b23f2f7e31a4f7 w F internal/xfer/message_oversize_test.go 2e1278a05bdfeb01cba904d908ffb82ddfddad7a5c3aab9986148fe08eab847b w F internal/xfer/message_test.go f53f47f581e38698241f825e4848f4be1f683df1a713c0f91bec6052144658be w F julian.go 3644e82a37176d5db154ca111241bdb2f25e76f343a7a26b243e959a52e59a76 w F julian_test.go 5ac50dd9942524841975f586d38dd8bcf82c7f0bda3cc43201e2710950268b62 w F ls_branch_tip_repro_test.go 132ecbc1bcd4d6a89d40b1fea6748c81fe99fe93bc457eaf117e6c1d25dbf9fd w F observer.go 43fc547a68bc1ca5b6e742a666e90c6d58dc7aa2e7a90bf28dff7cc54fafb6f3 w F observer/otel/go.mod 39a99ef4d980f532779a71910473a26660bac8d72983c1b0a97174d7f426ef9b w F observer/otel/go.sum 91ccc3129d5bc401b484be48398a395ea7749f955f86666bc3b55dc52d440c42 w F observer/otel/otel.go 38337615dd3b5af4d000f477e3badb6dc0580032d3e58d1ed446f05d6092d020 w F observer/otel/otel_test.go f31d8187bcd45ca13d2d664d6f543c3baed96f6bf66b94837c07aa1c8f8526b0 w F observer_test.go 8811bbc50bb75cf382843d02df96f50926d13e8a4fafbe038b6d9183b46a555b w F repo.go 71c36ed16fc006a66a0f09be62456861cf5c27232f133532ca7684a1427fd49d w F repo_admin.go c0d1cf6f525832f4c75b5f2770624ee447cd287def3f928fc59487c5823b98d6 w F repo_checkout.go a3309c2c08711b8186f940df03bebe905ed156786b817b829c0de50260e2da70 w F repo_checkout_test.go 4b46b1dbcc47e8d5de8852ea3bddf8fa9df64f76280aee54033eb75a30c395e8 w F repo_extras.go 9879abbdf4a07cef8d4759007f46153947a58f99343dc8bed256dae8a9536fc0 w F repo_extras_test.go d7de3e8afbfc59bc3ed54d7c72abc1810a1fc7e97a8d37933994787553ae07e8 w F repo_history.go 2132cc832c184995e6fe8813b733bf2005088c6b001a8bb25f17deead5769459 w F repo_history_test.go d739710c73a3c2c30e9c6259dddc2c6e6f7c9b475366300552b240306cc64c8c w F repo_ids.go b306110e69c5d1c83033ee3ab012fd0699e1f06f0c5b7e5d9cf1538d68825523 w F repo_ids_test.go 0b4272f2b87048a914f3493b3f1471e96571005ec0d664f9b01df62d9e2c5e8c w F repo_merge.go 3f91726a69cd70574f08721dd5fc6a4dec0e7f9de3e57fb12306fc2e8356afa6 w F repo_merge_test.go 86039f09774628f3944a2fd16bdc7291f2ffcbeca43a8e0514ea43cd1197c75a w F repo_pull.go 3566654c2d28275a29478587a3dd8a273e945c6d1b9b1f2fb882f82fcbdf77d8 w F repo_pull_test.go bb10cf4188114bf94ea13fcb2d80894184b4cfe237ce8603aae5586f6e95cd2e w F repo_resolve_test.go 8d3bae06c828bc7f8390520d70c8b7022748df621a2f9e0e114bc90cb1d9b5ef w F repo_sync.go 4aa0f49ba429632056a89d3832bfbbac6da4eb0f93bc215197985676fb06c5ad w F repo_timeline_test.go 2c0861bc15e59393fa8b6a0b86965149bfbca2ce5faa5d076b8efe45002cc731 w F scripts/gen-llms-txt.sh 318fb0437e1087ba1a0fbc04c6e39ba8063f1238836216d81185f9cab5d323f2 x F scripts/prepend-sdk-frontmatter.sh 0fb9f191ccc1ba6460c5d447f4f3f01edde396e7ddf2178f582f47cf62373b05 x F scripts/sync-version.sh d747a91302d128ce66f9bc8ec17624a70b0205f5a65641c5b9d3e71b17cfe62f x F simio/buggify.go b508a447ae1af2e242fb4e425dbccc0891731b210220a913ca6e83c2935e1484 w F simio/buggify_test.go 1985b98aeb0e055e3e081b5939606c217b7ab35c524b5620dc0a8300ba1d1bb6 w F simio/clock.go 6a6e8d410cfc5da6102c95d17ea2dadc9008f968c38a1aab07533008e8b484e0 w F simio/env.go 572df6dd05de503e4add227442f6204b586ef32faf9ed45ff86f632029771def w F simio/env_test.go c6627e422538bdd49b39d2f608e9d3a83536fb102046394f013a4ab86a1a78dc w F simio/rand.go 9af404eba1cd668bffdf95a28660b785353605412900359c615864c2bd5a2127 w F simio/rand_test.go e3a32c8d746fd2d6f7f20c126eb70f320e8a4f6909640d8a69472cb07ab38042 w F simio/simclock.go 48034a8b2e7f9e54c1d4480501a14b35005dbcb599a1d5ab525600e408bb49a5 w F simio/simclock_test.go e21ca0fd4b8566ad69fd6a36ba8867ef56464b5927038a5daad8ce31031d8616 w F simio/storage.go 9eb28b17dddd191c361cc55cc5f015f0584a4b1621eee12aa9fbe383cd61214c w F simio/storage_mem.go fe96a8aace77dc3379d12452dfea1b2c7737ef105fedf7c953b258e428bdeab0 w F simio/storage_test.go 7a1dfb458a69a1b2851a4246b3aa4637f1c3094054ea6a68cb718290dccb2e25 w F testutil/testutil.go c71090c89cddbb07cbba5d148de5c5189ee3a9cea7ce9cb3560c228d51bea676 w F testutil/testutil_test.go f522d077f2f2e736f644196dd87564eb4245d5528f412ed7457461ad8da4e543 w F transport.go 91e6d6e3d19649ba1e9fc2a88046129fb3f073b7a6413bd00dd37e02b39e1274 w F transport_test.go 30e0c5e29f58a9afd7197930d5d85f59f72244b6cfc41ed6f068ffbf5f5bceab w F types.go 74dd3154ae8ffa2630d82f31b366362fdc9c5f2b4560992fcb24c6deb41242c5 w F types_test.go 144c2b033546e1c4a09de9a5cc3c9937608a14c7bcd38db5e48bdfb152d61f1e w F wrangler.jsonc f19630509e536b24e89ad26e84fb4ab33ee3723daf96e2c300779fa8e8228b2f w P 9864120a32e06ad2e3e103ee99b0c8bae7de73e035e2c60c0e30efb82ac31bf5 U [email protected] Z 432c66d98943e0cd96d05dd433435af2