Skip to content
go-libfossil Artifact [9864120a32]
Login

Artifact [9864120a32]

Artifact 9864120a32e06ad2e3e103ee99b0c8bae7de73e035e2c60c0e30efb82ac31bf5:

Manifest of check-in [9864120a32] - perf: memoize delta-chain interiors during crosslink (#107)

* perf: memoize delta-chain interiors during crosslink (#89)

manifest.Crosslink ran at roughly 1.4 events/sec on the Fossil SCM repository, which puts a 27,000-artifact clone at two and a half hours of CPU after the transfer has already finished. A CPU profile of a sweep over that corpus attributes 152.77s of Crosslink's 167.20s -- 91% -- to content.Expand, and 126.35s of that to the single blob.Load inside its delta-replay loop.

The cause is chain depth, not per-event overhead: not a transaction per event, not a missing index, not a full-table scan. content_deltify stores a file's older versions as deltas against its newer ones, so one file's history is a single chain -- 469 nodes deep on average across that repository, 1,032 for the blobs carrying artifacts, 2,546 at worst. Expand walked each chain from its root on every call and Crosslink calls it once per blob, so the sweep performed 31.7 million delta applications to expand 67,451 blobs.

Cache.Expand now stops the chain walk at the deepest ancestor it already holds and keeps every node it materializes on the way forward, and Crosslink runs one such cache for the sweep. Blob content is immutable once written and the candidate rids are snapshotted before the loop, so nothing a sweep does can invalidate an entry.

Every node handed to the cache is verified against the UUID its blob row is stored under before it is stored, because a cached interior is served later as if it had been expanded in its own right. The number of hash checks per sweep does not change: each blob is materialized once and verified once, where before each was expanded once and verified once. A plain Expand, with no cache, walks and verifies exactly as it did.

IsAvailable folds its two-statements-per-chain-node walk into one. It runs once per F-card of every check-in being crosslinked, over the same deep chains, and every SQL round trip there pays a WAL read-lock acquisition -- the round trips, not the work they do, are the cost.

No transaction boundary moves and no batching is introduced. A manifest that fails to crosslink still fails on its own, exactly where it did.

Measured on the Fossil SCM repository, 67,451 content blobs and 27,060 artifacts. Time for Crosslink to write its first 300 event rows: 221s before, 131s after. Over the expansion path in isolation, sweeping the same corpus in rid order: 22.9 blobs/sec with no cache, 50.1 at the 256 MiB budget set here, 414 at 1 GiB -- where the process needs 2.9 GB resident, which is why 1 GiB is not the number.

A bounded cache cannot close the gap on its own. Chains run from a high-rid root down to low-rid ancestors while the sweep visits rids ascending, so the first candidate of a chain materializes all of it and the remaining nodes are consumed arbitrarily far in the future; the working set of a whole-repository sweep in rid order is the whole repository expanded, 8 GiB for this corpus. Closing it means visiting candidates in delta-chain order, which is how Fossil's own rebuild avoids the cost, and which changes the order-sensitive state Crosslink writes -- leaf, tag propagation, tech-note event replacement, forum thread titles. That is a separate change.

TestFossilBinaryReadsCrosslinkedRepo covers the acceptance criterion this cannot self-certify: a repository whose relational tables were written through the accelerated path passes fossil 2.28's test-integrity, shows its tip in fossil timeline, survives fossil rebuild, and its event, plink, leaf and mlink rows match, column for column, what fossil derives from the same blobs.

* fix: bound and cycle-check the delta-chain walks (#89)

IsAvailable walked the delta chain with no cycle detection, to a bound of 100,000 against real chains whose deepest observed node count is 2,546. It is wire-reachable -- sync/clone.go, sync/handler.go, and once per F-card of every check-in Crosslink processes -- so a peer that plants a two-node delta cycle bought a 100,000-iteration query loop on every call, inside whatever process embeds this library.

Both halves are fixed. Each walk now carries a visited set and stops at the first repeat, which is the actual defence: a cycle costs its own length, not the bound. maxDeltaChainDepth replaces the old constant at 16,384, roughly six times the deepest chain measured on the Fossil SCM repository, and it is now a backstop for an acyclic-but-absurd chain rather than a number an attacker spends. walkDeltaChain, which the memoizing expansion path made hotter, previously had no bound at all and now shares the same one.

This is what made TestIsAvailable_CyclicChainTerminates sit at ~99% of its 30s budget on main and fail outright under -race here: the cyclic walk was running the full bound. It now finishes in about a second under -race, six runs out of six.

walkDeltaChain returns the content it stopped on instead of leaving expandChain to ask the store a second time. The truncation decision and the use of it were separate steps, so a concurrent eviction between them would send a delta row to blob.Load and hand raw delta bytes to the replay as full text. bindToName caught that and failed closed, but the caller saw a hash mismatch on an artifact that was not corrupt, and Crosslink's error path drops those silently. Unreachable while the cache is a single-goroutine local, but Cache is documented concurrency-safe and takes its mutex on every method, so the type promised something the expansion path did not deliver.

Cache entries are clipped to their length before being stored, so curSize is the bytes actually retained rather than an allocator-dependent approximation of them.

Test corrections: the corpus harness no longer closes the repository handle out from under the sweep goroutine when it returns at the event target; the sweep owns the handle and closes it. snapshotDerived now fails on an empty digest rather than comparing "" to "" and passing without examining a row. The fail-closed injector matches the merged chain-step statement specifically rather than any query mentioning delta, and says what it can and cannot prove now that the two lookups are one statement. The fossilbin comparison documents that it is not full-table equivalence, and which tables it leaves uncompared.

MEASUREMENTS, SUPERSEDING THOSE IN 2426591

The figures in the parent commit were taken before clipping, and its "221s -> 131s" pair predates the double-hash and IsAvailable fixes that landed in that same commit. Everything below was re-measured on the code as it ships, one run at a time on an idle machine, against the Fossil SCM repository (67,451 content blobs, 27,060 artifacts).

Crosslink to its first 300 event rows, cpuprofile on throughout:

original code 221.4s as shipped 103.9s 2.1x

Expanding the first 4,000 blobs, which isolates the expansion path:

budget throughput peak RSS entries held none 22.1 blobs/s 169 MB 0 0 256 MiB 52.0 blobs/s 1036 MB 543 255 MiB 1 GiB 468.3 blobs/s 2278 MB 15,842 1021 MiB

Clipping changed neither throughput nor memory. Crosslink to 300 events runs 103.9s clipped against 105.9s unclipped, peak RSS 1067 MB against 1050 MB, and the cache holds the identical 543 entries and 255 MiB at a 256 MiB budget either way -- at these sizes the buffers already arrive tightly sized. It is worth keeping as an accounting guarantee, not as a saving, and the comment on clip says so.

The earlier claim that capacity slack was why a 256 MiB cache reached nearly a gigabyte resident was wrong. Peak RSS tracks the no-cache baseline plus roughly twice the budget, because the cache is live data and the collector sizes the heap against it: 169 + 2x1021 = 2211 against 2278 observed at 1 GiB. That is why the budget stays at 256 MiB -- a gigabyte of cache costs over two gigabytes resident to clone a 72 MB repository. The shape of the curve did not move.

* docs: correct the claims around the chain bound and the RSS model (#89)

Three claims did not survive checking, and one bound was a node out.

maxDeltaChainDepth said it bounds "every delta-chain walk in this package". It does not: deltifyBreaksLoop is a third walk, under deltifyMaxChainWalk, which is 64 times larger. The rationale on the new constant applies to that walk just as well, but changing it would change deltify's shipped behaviour, so the sentence is narrowed to the two read-path walks it actually governs and points at the third rather than quietly covering it.

Two comments still named maxAvailabilityChainDepth, which no longer exists, and argued from IsAvailable having a bound "of its own" -- the framing of a world where the two walks had separate bounds. Against a shared constant that argument reads backwards. Both now name the shared bound, and the reason deltifyBreaksLoop keeps its own visited set and its own step cap is stated as the general rule it is: every walk over the peer-shaped delta graph carries both, and none of them relies on another walk's guard.

The retraction in the previous commit replaced one unsupported mechanism with another. "Peak RSS runs at roughly the baseline plus twice the budget" is a two-point fit whose worse point is the shipped one: it is 3% off at 1 GiB and 53% under at 256 MiB, where resident memory is four times the budget rather than twice. The measured table stays; the model is demoted to the direction the data supports, that peak RSS grows faster than the budget, with the fit's own weakness stated.

walkDeltaChain counted loop iterations where IsAvailable counts nodes visited, so the shared bound bit a node apart: a chain of exactly maxDeltaChainDepth+1 was unavailable to one walk and complete to the other. It now counts nodes, and TestChainBoundBitesAtSameLength pins the agreement at both boundaries -- nothing else ties the two loops together. by [email protected] on 2026-07-20 02:36:37.


C perf:\smemoize\sdelta-chain\sinteriors\sduring\scrosslink\s(#107)\n\n*\sperf:\smemoize\sdelta-chain\sinteriors\sduring\scrosslink\s(#89)\n\nmanifest.Crosslink\sran\sat\sroughly\s1.4\sevents/sec\son\sthe\sFossil\sSCM\nrepository,\swhich\sputs\sa\s27,000-artifact\sclone\sat\stwo\sand\sa\shalf\shours\sof\nCPU\safter\sthe\stransfer\shas\salready\sfinished.\sA\sCPU\sprofile\sof\sa\ssweep\nover\sthat\scorpus\sattributes\s152.77s\sof\sCrosslink's\s167.20s\s--\s91%\s--\sto\ncontent.Expand,\sand\s126.35s\sof\sthat\sto\sthe\ssingle\sblob.Load\sinside\sits\ndelta-replay\sloop.\n\nThe\scause\sis\schain\sdepth,\snot\sper-event\soverhead:\snot\sa\stransaction\sper\nevent,\snot\sa\smissing\sindex,\snot\sa\sfull-table\sscan.\scontent_deltify\nstores\sa\sfile's\solder\sversions\sas\sdeltas\sagainst\sits\snewer\sones,\sso\sone\nfile's\shistory\sis\sa\ssingle\schain\s--\s469\snodes\sdeep\son\saverage\sacross\nthat\srepository,\s1,032\sfor\sthe\sblobs\scarrying\sartifacts,\s2,546\sat\sworst.\nExpand\swalked\seach\schain\sfrom\sits\sroot\son\severy\scall\sand\sCrosslink\scalls\nit\sonce\sper\sblob,\sso\sthe\ssweep\sperformed\s31.7\smillion\sdelta\sapplications\nto\sexpand\s67,451\sblobs.\n\nCache.Expand\snow\sstops\sthe\schain\swalk\sat\sthe\sdeepest\sancestor\sit\salready\nholds\sand\skeeps\severy\snode\sit\smaterializes\son\sthe\sway\sforward,\sand\nCrosslink\sruns\sone\ssuch\scache\sfor\sthe\ssweep.\sBlob\scontent\sis\simmutable\nonce\swritten\sand\sthe\scandidate\srids\sare\ssnapshotted\sbefore\sthe\sloop,\sso\nnothing\sa\ssweep\sdoes\scan\sinvalidate\san\sentry.\n\nEvery\snode\shanded\sto\sthe\scache\sis\sverified\sagainst\sthe\sUUID\sits\sblob\srow\nis\sstored\sunder\sbefore\sit\sis\sstored,\sbecause\sa\scached\sinterior\sis\sserved\nlater\sas\sif\sit\shad\sbeen\sexpanded\sin\sits\sown\sright.\sThe\snumber\sof\shash\nchecks\sper\ssweep\sdoes\snot\schange:\seach\sblob\sis\smaterialized\sonce\sand\nverified\sonce,\swhere\sbefore\seach\swas\sexpanded\sonce\sand\sverified\sonce.\nA\splain\sExpand,\swith\sno\scache,\swalks\sand\sverifies\sexactly\sas\sit\sdid.\n\nIsAvailable\sfolds\sits\stwo-statements-per-chain-node\swalk\sinto\sone.\sIt\nruns\sonce\sper\sF-card\sof\severy\scheck-in\sbeing\scrosslinked,\sover\sthe\ssame\ndeep\schains,\sand\severy\sSQL\sround\strip\sthere\spays\sa\sWAL\sread-lock\nacquisition\s--\sthe\sround\strips,\snot\sthe\swork\sthey\sdo,\sare\sthe\scost.\n\nNo\stransaction\sboundary\smoves\sand\sno\sbatching\sis\sintroduced.\sA\smanifest\nthat\sfails\sto\scrosslink\sstill\sfails\son\sits\sown,\sexactly\swhere\sit\sdid.\n\nMeasured\son\sthe\sFossil\sSCM\srepository,\s67,451\scontent\sblobs\sand\s27,060\nartifacts.\sTime\sfor\sCrosslink\sto\swrite\sits\sfirst\s300\sevent\srows:\s221s\nbefore,\s131s\safter.\sOver\sthe\sexpansion\spath\sin\sisolation,\ssweeping\sthe\nsame\scorpus\sin\srid\sorder:\s22.9\sblobs/sec\swith\sno\scache,\s50.1\sat\sthe\n256\sMiB\sbudget\sset\shere,\s414\sat\s1\sGiB\s--\swhere\sthe\sprocess\sneeds\s2.9\sGB\nresident,\swhich\sis\swhy\s1\sGiB\sis\snot\sthe\snumber.\n\nA\sbounded\scache\scannot\sclose\sthe\sgap\son\sits\sown.\sChains\srun\sfrom\sa\nhigh-rid\sroot\sdown\sto\slow-rid\sancestors\swhile\sthe\ssweep\svisits\srids\nascending,\sso\sthe\sfirst\scandidate\sof\sa\schain\smaterializes\sall\sof\sit\sand\nthe\sremaining\snodes\sare\sconsumed\sarbitrarily\sfar\sin\sthe\sfuture;\sthe\nworking\sset\sof\sa\swhole-repository\ssweep\sin\srid\sorder\sis\sthe\swhole\nrepository\sexpanded,\s8\sGiB\sfor\sthis\scorpus.\sClosing\sit\smeans\svisiting\ncandidates\sin\sdelta-chain\sorder,\swhich\sis\show\sFossil's\sown\srebuild\navoids\sthe\scost,\sand\swhich\schanges\sthe\sorder-sensitive\sstate\sCrosslink\nwrites\s--\sleaf,\stag\spropagation,\stech-note\sevent\sreplacement,\sforum\nthread\stitles.\sThat\sis\sa\sseparate\schange.\n\nTestFossilBinaryReadsCrosslinkedRepo\scovers\sthe\sacceptance\scriterion\sthis\ncannot\sself-certify:\sa\srepository\swhose\srelational\stables\swere\swritten\nthrough\sthe\saccelerated\spath\spasses\sfossil\s2.28's\stest-integrity,\sshows\nits\stip\sin\sfossil\stimeline,\ssurvives\sfossil\srebuild,\sand\sits\sevent,\nplink,\sleaf\sand\smlink\srows\smatch,\scolumn\sfor\scolumn,\swhat\sfossil\sderives\nfrom\sthe\ssame\sblobs.\n\n*\sfix:\sbound\sand\scycle-check\sthe\sdelta-chain\swalks\s(#89)\n\nIsAvailable\swalked\sthe\sdelta\schain\swith\sno\scycle\sdetection,\sto\sa\sbound\sof\n100,000\sagainst\sreal\schains\swhose\sdeepest\sobserved\snode\scount\sis\s2,546.\nIt\sis\swire-reachable\s--\ssync/clone.go,\ssync/handler.go,\sand\sonce\sper\nF-card\sof\severy\scheck-in\sCrosslink\sprocesses\s--\sso\sa\speer\sthat\splants\sa\ntwo-node\sdelta\scycle\sbought\sa\s100,000-iteration\squery\sloop\son\severy\scall,\ninside\swhatever\sprocess\sembeds\sthis\slibrary.\n\nBoth\shalves\sare\sfixed.\sEach\swalk\snow\scarries\sa\svisited\sset\sand\sstops\sat\nthe\sfirst\srepeat,\swhich\sis\sthe\sactual\sdefence:\sa\scycle\scosts\sits\sown\nlength,\snot\sthe\sbound.\smaxDeltaChainDepth\sreplaces\sthe\sold\sconstant\sat\n16,384,\sroughly\ssix\stimes\sthe\sdeepest\schain\smeasured\son\sthe\sFossil\sSCM\nrepository,\sand\sit\sis\snow\sa\sbackstop\sfor\san\sacyclic-but-absurd\schain\nrather\sthan\sa\snumber\san\sattacker\sspends.\swalkDeltaChain,\swhich\sthe\nmemoizing\sexpansion\spath\smade\shotter,\spreviously\shad\sno\sbound\sat\sall\sand\nnow\sshares\sthe\ssame\sone.\n\nThis\sis\swhat\smade\sTestIsAvailable_CyclicChainTerminates\ssit\sat\s~99%\sof\nits\s30s\sbudget\son\smain\sand\sfail\soutright\sunder\s-race\shere:\sthe\scyclic\nwalk\swas\srunning\sthe\sfull\sbound.\sIt\snow\sfinishes\sin\sabout\sa\ssecond\sunder\n-race,\ssix\sruns\sout\sof\ssix.\n\nwalkDeltaChain\sreturns\sthe\scontent\sit\sstopped\son\sinstead\sof\sleaving\nexpandChain\sto\sask\sthe\sstore\sa\ssecond\stime.\sThe\struncation\sdecision\sand\nthe\suse\sof\sit\swere\sseparate\ssteps,\sso\sa\sconcurrent\seviction\sbetween\sthem\nwould\ssend\sa\sdelta\srow\sto\sblob.Load\sand\shand\sraw\sdelta\sbytes\sto\sthe\nreplay\sas\sfull\stext.\sbindToName\scaught\sthat\sand\sfailed\sclosed,\sbut\sthe\ncaller\ssaw\sa\shash\smismatch\son\san\sartifact\sthat\swas\snot\scorrupt,\sand\nCrosslink's\serror\spath\sdrops\sthose\ssilently.\sUnreachable\swhile\sthe\scache\nis\sa\ssingle-goroutine\slocal,\sbut\sCache\sis\sdocumented\sconcurrency-safe\sand\ntakes\sits\smutex\son\severy\smethod,\sso\sthe\stype\spromised\ssomething\sthe\nexpansion\spath\sdid\snot\sdeliver.\n\nCache\sentries\sare\sclipped\sto\stheir\slength\sbefore\sbeing\sstored,\sso\ncurSize\sis\sthe\sbytes\sactually\sretained\srather\sthan\san\sallocator-dependent\napproximation\sof\sthem.\n\nTest\scorrections:\sthe\scorpus\sharness\sno\slonger\scloses\sthe\srepository\nhandle\sout\sfrom\sunder\sthe\ssweep\sgoroutine\swhen\sit\sreturns\sat\sthe\sevent\ntarget;\sthe\ssweep\sowns\sthe\shandle\sand\scloses\sit.\ssnapshotDerived\snow\nfails\son\san\sempty\sdigest\srather\sthan\scomparing\s""\sto\s""\sand\spassing\nwithout\sexamining\sa\srow.\sThe\sfail-closed\sinjector\smatches\sthe\smerged\nchain-step\sstatement\sspecifically\srather\sthan\sany\squery\smentioning\sdelta,\nand\ssays\swhat\sit\scan\sand\scannot\sprove\snow\sthat\sthe\stwo\slookups\sare\sone\nstatement.\sThe\sfossilbin\scomparison\sdocuments\sthat\sit\sis\snot\sfull-table\nequivalence,\sand\swhich\stables\sit\sleaves\suncompared.\n\nMEASUREMENTS,\sSUPERSEDING\sTHOSE\sIN\s2426591\n\nThe\sfigures\sin\sthe\sparent\scommit\swere\staken\sbefore\sclipping,\sand\sits\n"221s\s->\s131s"\spair\spredates\sthe\sdouble-hash\sand\sIsAvailable\sfixes\sthat\nlanded\sin\sthat\ssame\scommit.\sEverything\sbelow\swas\sre-measured\son\sthe\scode\nas\sit\sships,\sone\srun\sat\sa\stime\son\san\sidle\smachine,\sagainst\sthe\sFossil\sSCM\nrepository\s(67,451\scontent\sblobs,\s27,060\sartifacts).\n\nCrosslink\sto\sits\sfirst\s300\sevent\srows,\scpuprofile\son\sthroughout:\n\n\s\s\s\soriginal\scode\s\s\s221.4s\n\s\s\s\sas\sshipped\s\s\s\s\s\s103.9s\s\s\s\s\s\s\s\s2.1x\n\nExpanding\sthe\sfirst\s4,000\sblobs,\swhich\sisolates\sthe\sexpansion\spath:\n\n\s\s\s\sbudget\s\s\s\s\sthroughput\s\s\s\s\s\speak\sRSS\s\s\sentries\s\s\sheld\n\s\s\s\snone\s\s\s\s\s\s\s\s22.1\sblobs/s\s\s\s\s\s169\sMB\s\s\s\s\s\s\s\s\s0\s\s\s\s\s\s0\n\s\s\s\s256\sMiB\s\s\s\s\s52.0\sblobs/s\s\s\s\s1036\sMB\s\s\s\s\s\s\s543\s\s255\sMiB\n\s\s\s\s1\sGiB\s\s\s\s\s\s468.3\sblobs/s\s\s\s\s2278\sMB\s\s\s\s15,842\s1021\sMiB\n\nClipping\schanged\sneither\sthroughput\snor\smemory.\sCrosslink\sto\s300\sevents\nruns\s103.9s\sclipped\sagainst\s105.9s\sunclipped,\speak\sRSS\s1067\sMB\sagainst\n1050\sMB,\sand\sthe\scache\sholds\sthe\sidentical\s543\sentries\sand\s255\sMiB\sat\sa\n256\sMiB\sbudget\seither\sway\s--\sat\sthese\ssizes\sthe\sbuffers\salready\sarrive\ntightly\ssized.\sIt\sis\sworth\skeeping\sas\san\saccounting\sguarantee,\snot\sas\sa\nsaving,\sand\sthe\scomment\son\sclip\ssays\sso.\n\nThe\searlier\sclaim\sthat\scapacity\sslack\swas\swhy\sa\s256\sMiB\scache\sreached\nnearly\sa\sgigabyte\sresident\swas\swrong.\sPeak\sRSS\stracks\sthe\sno-cache\nbaseline\splus\sroughly\stwice\sthe\sbudget,\sbecause\sthe\scache\sis\slive\sdata\nand\sthe\scollector\ssizes\sthe\sheap\sagainst\sit:\s169\s+\s2x1021\s=\s2211\sagainst\n2278\sobserved\sat\s1\sGiB.\sThat\sis\swhy\sthe\sbudget\sstays\sat\s256\sMiB\s--\sa\ngigabyte\sof\scache\scosts\sover\stwo\sgigabytes\sresident\sto\sclone\sa\s72\sMB\nrepository.\sThe\sshape\sof\sthe\scurve\sdid\snot\smove.\n\n*\sdocs:\scorrect\sthe\sclaims\saround\sthe\schain\sbound\sand\sthe\sRSS\smodel\s(#89)\n\nThree\sclaims\sdid\snot\ssurvive\schecking,\sand\sone\sbound\swas\sa\snode\sout.\n\nmaxDeltaChainDepth\ssaid\sit\sbounds\s"every\sdelta-chain\swalk\sin\sthis\npackage".\sIt\sdoes\snot:\sdeltifyBreaksLoop\sis\sa\sthird\swalk,\sunder\ndeltifyMaxChainWalk,\swhich\sis\s64\stimes\slarger.\sThe\srationale\son\sthe\snew\nconstant\sapplies\sto\sthat\swalk\sjust\sas\swell,\sbut\schanging\sit\swould\schange\ndeltify's\sshipped\sbehaviour,\sso\sthe\ssentence\sis\snarrowed\sto\sthe\stwo\nread-path\swalks\sit\sactually\sgoverns\sand\spoints\sat\sthe\sthird\srather\sthan\nquietly\scovering\sit.\n\nTwo\scomments\sstill\snamed\smaxAvailabilityChainDepth,\swhich\sno\slonger\nexists,\sand\sargued\sfrom\sIsAvailable\shaving\sa\sbound\s"of\sits\sown"\s--\sthe\nframing\sof\sa\sworld\swhere\sthe\stwo\swalks\shad\sseparate\sbounds.\sAgainst\sa\nshared\sconstant\sthat\sargument\sreads\sbackwards.\sBoth\snow\sname\sthe\sshared\nbound,\sand\sthe\sreason\sdeltifyBreaksLoop\skeeps\sits\sown\svisited\sset\sand\sits\nown\sstep\scap\sis\sstated\sas\sthe\sgeneral\srule\sit\sis:\severy\swalk\sover\sthe\npeer-shaped\sdelta\sgraph\scarries\sboth,\sand\snone\sof\sthem\srelies\son\sanother\nwalk's\sguard.\n\nThe\sretraction\sin\sthe\sprevious\scommit\sreplaced\sone\sunsupported\smechanism\nwith\sanother.\s"Peak\sRSS\sruns\sat\sroughly\sthe\sbaseline\splus\stwice\sthe\nbudget"\sis\sa\stwo-point\sfit\swhose\sworse\spoint\sis\sthe\sshipped\sone:\sit\sis\s3%\noff\sat\s1\sGiB\sand\s53%\sunder\sat\s256\sMiB,\swhere\sresident\smemory\sis\sfour\ntimes\sthe\sbudget\srather\sthan\stwice.\sThe\smeasured\stable\sstays;\sthe\smodel\nis\sdemoted\sto\sthe\sdirection\sthe\sdata\ssupports,\sthat\speak\sRSS\sgrows\sfaster\nthan\sthe\sbudget,\swith\sthe\sfit's\sown\sweakness\sstated.\n\nwalkDeltaChain\scounted\sloop\siterations\swhere\sIsAvailable\scounts\snodes\nvisited,\sso\sthe\sshared\sbound\sbit\sa\snode\sapart:\sa\schain\sof\sexactly\nmaxDeltaChainDepth+1\swas\sunavailable\sto\sone\swalk\sand\scomplete\sto\sthe\nother.\sIt\snow\scounts\snodes,\sand\sTestChainBoundBitesAtSameLength\spins\sthe\nagreement\sat\sboth\sboundaries\s--\snothing\selse\sties\sthe\stwo\sloops\stogether.
D 2026-07-20T02:36:37
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 a1526890e2072e02286d77425224bc234c8fd24884669ac5304f6e151e924173 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_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 fb8fb5f839c9586d3988b0a2060ba2242bbb8d2c6482119732bb8294ce3f624f 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 74a946854dd27b139410545ac5cf3d3be6b6af45bf957f3a4243580ae1e72791 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 37271d3f68e4467b66c915c63c67fbf19ff0100918bace18eceedb23cae668d3
U [email protected]
Z 343eb3b5c5710f7f9be8bc98b1c336c5