Artifact 168e20fc918d0178d648e11d7916ca6180d2eddee328cdd127ce548e118c6608:
* fix: make Timeline pagination cursor an exact total order
#54 (merged as 95cbbb7) split Repo.Timeline into a repository-wide enumeration and Repo.Ancestry, the original first-parent walk under an honest name. Its pagination cursor predicate used a tolerance window around the caller-supplied Before/After pair to work around a lossy julian<->time.Time round trip:
mtime < (C - eps) OR (mtime <= (C + eps) AND rid < After)
This reintroduces exactly the defect the composite cursor existed to prevent, and makes it worse: rows within eps of the boundary that are not real ties get filtered by rid instead of tie-broken by it, which can skip a row, duplicate another, or fail to advance the cursor at all — unlike canonical fossil's own bare-timestamp slop, which repeats rows but still advances. A pagination test using only exact-tie and one-hour-apart fixtures could not exercise the 0 < delta < eps range where the defect lives, so it stayed green.
Fix: make the predicate an exact total order, with rid as a true tie-break only at exact mtime equality:
mtime < C OR (mtime = C AND rid < After)
and stop deriving C from a time.Time altogether. TimelineOpts.After is now an opaque Cursor (internal/fsltype.Cursor, re-exported as libfossil.Cursor): obtained only from a LogEntry the library already produced, carrying the exact float64 mtime read off that row rather than one reconstructed from a rounded timestamp. A cursor built from parts can silently drift from the row it claims to follow; a cursor that can only ever be handed back cannot.
That exactness depends on the row's scanned mtime being faithful to begin with, which surfaced a second bug: under the ncruces/WASM sqlite driver, event.mtime scans as a time.Time via the driver's own internal REAL conversion, carrying ~13us of noise that db.ScanJulianDay's time.Time branch then truncated (via UnixMilli()) into a full missed millisecond — independent of and in addition to the JulianToTime truncation bug #54 already fixed on the read-back side. Fixed db.timeToJulian to round to the nearest millisecond, the same class of fix, at the point where the driver-specific noise actually enters.
Also tightened the regression coverage: - Pagination tests now use a fixed loop bound of exactly ceil(n/pageSize) pages rather than an open "while non-empty" loop, so a non-advancing cursor fails the test immediately instead of hanging it. - Added a sub-millisecond-boundary fixture (events 3ms apart, well inside the old epsilon window) with rid order deliberately decoupled from mtime order — a monotonic fixture cannot expose this class of bug, since rid and mtime need not move together in general (backdated commits, imports). - TestJulianRoundTrip now asserts exact equality for values originating from TimeToJulian instead of a *1ms tolerance, which would have passed under both the old truncating JulianToTime and the current rounding one and so was not a regression guard for that fix.
No change to Ancestry, event-type filtering, NULL tolerance, or either loop bound; all were already correct.
* fix: assert pagination termination; mark Cursor change breaking
Both pagination tests (the pre-existing ones and the sub-millisecond regression) ran exactly ceil(n/pageSize) pages and asserted each event appeared once, but neither ever called Timeline one more time to confirm the next page comes back empty. The headline symptom of the epsilon-cursor defect these tests exist to catch was non-termination — a caller paginating until empty never stops — and that specific failure mode was going unguarded: a cursor that enumerates every row correctly but never signals exhaustion would have passed all four tests as they stood.
Added one more Timeline call after the last expected page in all four tests, asserting it returns zero entries. Verified this is not vacuous: reverted the tie-break to <= (non-strict) and confirmed the existing per-event count checks catch it; separately, made Timeline phantom-return one row only on an already-exhausted call (isolated from the real per-page counts, which stayed correct in that experiment) and confirmed only the new final-page assertion fails — proving it exercises a real, non-redundant path, not one already covered by the count checks. Both experiments reverted before commit.
Also corrected the CHANGELOG bullet describing the Cursor redesign: it described the new Cursor type but never stated that TimelineOpts.Before (time.Time) and TimelineOpts.After (FslID) were deleted outright, not deprecated. A reader diffing releases would have read it as an addition rather than a second compile-breaking change on top of #54. by [email protected] on 2026-07-19 16:30:58.
C fix:\smake\sTimeline\spagination\scursor\san\sexact\stotal\sorder\s(#62)\n\n*\sfix:\smake\sTimeline\spagination\scursor\san\sexact\stotal\sorder\n\n#54\s(merged\sas\s95cbbb7)\ssplit\sRepo.Timeline\sinto\sa\srepository-wide\nenumeration\sand\sRepo.Ancestry,\sthe\soriginal\sfirst-parent\swalk\sunder\san\nhonest\sname.\sIts\spagination\scursor\spredicate\sused\sa\stolerance\swindow\naround\sthe\scaller-supplied\sBefore/After\spair\sto\swork\saround\sa\slossy\njulian<->time.Time\sround\strip:\n\n\s\s\s\smtime\s<\s(C\s-\seps)\s\sOR\s\s(mtime\s<=\s(C\s+\seps)\sAND\srid\s<\sAfter)\n\nThis\sreintroduces\sexactly\sthe\sdefect\sthe\scomposite\scursor\sexisted\sto\nprevent,\sand\smakes\sit\sworse:\srows\swithin\seps\sof\sthe\sboundary\sthat\sare\nnot\sreal\sties\sget\sfiltered\sby\srid\sinstead\sof\stie-broken\sby\sit,\swhich\ncan\sskip\sa\srow,\sduplicate\sanother,\sor\sfail\sto\sadvance\sthe\scursor\sat\nall\s—\sunlike\scanonical\sfossil's\sown\sbare-timestamp\sslop,\swhich\srepeats\nrows\sbut\sstill\sadvances.\sA\spagination\stest\susing\sonly\sexact-tie\sand\none-hour-apart\sfixtures\scould\snot\sexercise\sthe\s0\s<\sdelta\s<\seps\srange\nwhere\sthe\sdefect\slives,\sso\sit\sstayed\sgreen.\n\nFix:\smake\sthe\spredicate\san\sexact\stotal\sorder,\swith\srid\sas\sa\strue\ntie-break\sonly\sat\sexact\smtime\sequality:\n\n\s\s\s\smtime\s<\sC\s\sOR\s\s(mtime\s=\sC\sAND\srid\s<\sAfter)\n\nand\sstop\sderiving\sC\sfrom\sa\stime.Time\saltogether.\sTimelineOpts.After\sis\nnow\san\sopaque\sCursor\s(internal/fsltype.Cursor,\sre-exported\sas\nlibfossil.Cursor):\sobtained\sonly\sfrom\sa\sLogEntry\sthe\slibrary\salready\nproduced,\scarrying\sthe\sexact\sfloat64\smtime\sread\soff\sthat\srow\srather\nthan\sone\sreconstructed\sfrom\sa\srounded\stimestamp.\sA\scursor\sbuilt\sfrom\nparts\scan\ssilently\sdrift\sfrom\sthe\srow\sit\sclaims\sto\sfollow;\sa\scursor\nthat\scan\sonly\sever\sbe\shanded\sback\scannot.\n\nThat\sexactness\sdepends\son\sthe\srow's\sscanned\smtime\sbeing\sfaithful\sto\nbegin\swith,\swhich\ssurfaced\sa\ssecond\sbug:\sunder\sthe\sncruces/WASM\ssqlite\ndriver,\sevent.mtime\sscans\sas\sa\stime.Time\svia\sthe\sdriver's\sown\sinternal\nREAL\sconversion,\scarrying\s~13us\sof\snoise\sthat\sdb.ScanJulianDay's\ntime.Time\sbranch\sthen\struncated\s(via\sUnixMilli())\sinto\sa\sfull\smissed\nmillisecond\s—\sindependent\sof\sand\sin\saddition\sto\sthe\sJulianToTime\ntruncation\sbug\s#54\salready\sfixed\son\sthe\sread-back\sside.\sFixed\ndb.timeToJulian\sto\sround\sto\sthe\snearest\smillisecond,\sthe\ssame\sclass\sof\nfix,\sat\sthe\spoint\swhere\sthe\sdriver-specific\snoise\sactually\senters.\n\nAlso\stightened\sthe\sregression\scoverage:\n\s\s-\sPagination\stests\snow\suse\sa\sfixed\sloop\sbound\sof\sexactly\n\s\s\s\sceil(n/pageSize)\spages\srather\sthan\san\sopen\s"while\snon-empty"\sloop,\n\s\s\s\sso\sa\snon-advancing\scursor\sfails\sthe\stest\simmediately\sinstead\sof\n\s\s\s\shanging\sit.\n\s\s-\sAdded\sa\ssub-millisecond-boundary\sfixture\s(events\s3ms\sapart,\swell\n\s\s\s\sinside\sthe\sold\sepsilon\swindow)\swith\srid\sorder\sdeliberately\n\s\s\s\sdecoupled\sfrom\smtime\sorder\s—\sa\smonotonic\sfixture\scannot\sexpose\n\s\s\s\sthis\sclass\sof\sbug,\ssince\srid\sand\smtime\sneed\snot\smove\stogether\sin\n\s\s\s\sgeneral\s(backdated\scommits,\simports).\n\s\s-\sTestJulianRoundTrip\snow\sasserts\sexact\sequality\sfor\svalues\n\s\s\s\soriginating\sfrom\sTimeToJulian\sinstead\sof\sa\s*1ms\stolerance,\swhich\n\s\s\s\swould\shave\spassed\sunder\sboth\sthe\sold\struncating\sJulianToTime\sand\n\s\s\s\sthe\scurrent\srounding\sone\sand\sso\swas\snot\sa\sregression\sguard\sfor\n\s\s\s\sthat\sfix.\n\nNo\schange\sto\sAncestry,\sevent-type\sfiltering,\sNULL\stolerance,\sor\seither\nloop\sbound;\sall\swere\salready\scorrect.\n\n*\sfix:\sassert\spagination\stermination;\smark\sCursor\schange\sbreaking\n\nBoth\spagination\stests\s(the\spre-existing\sones\sand\sthe\ssub-millisecond\nregression)\sran\sexactly\sceil(n/pageSize)\spages\sand\sasserted\seach\sevent\nappeared\sonce,\sbut\sneither\sever\scalled\sTimeline\sone\smore\stime\sto\nconfirm\sthe\snext\spage\scomes\sback\sempty.\sThe\sheadline\ssymptom\sof\sthe\nepsilon-cursor\sdefect\sthese\stests\sexist\sto\scatch\swas\snon-termination\s—\na\scaller\spaginating\suntil\sempty\snever\sstops\s—\sand\sthat\sspecific\nfailure\smode\swas\sgoing\sunguarded:\sa\scursor\sthat\senumerates\severy\srow\ncorrectly\sbut\snever\ssignals\sexhaustion\swould\shave\spassed\sall\sfour\ntests\sas\sthey\sstood.\n\nAdded\sone\smore\sTimeline\scall\safter\sthe\slast\sexpected\spage\sin\sall\sfour\ntests,\sasserting\sit\sreturns\szero\sentries.\sVerified\sthis\sis\snot\nvacuous:\sreverted\sthe\stie-break\sto\s<=\s(non-strict)\sand\sconfirmed\sthe\nexisting\sper-event\scount\schecks\scatch\sit;\sseparately,\smade\sTimeline\nphantom-return\sone\srow\sonly\son\san\salready-exhausted\scall\s(isolated\nfrom\sthe\sreal\sper-page\scounts,\swhich\sstayed\scorrect\sin\sthat\nexperiment)\sand\sconfirmed\sonly\sthe\snew\sfinal-page\sassertion\sfails\s—\nproving\sit\sexercises\sa\sreal,\snon-redundant\spath,\snot\sone\salready\ncovered\sby\sthe\scount\schecks.\sBoth\sexperiments\sreverted\sbefore\scommit.\n\nAlso\scorrected\sthe\sCHANGELOG\sbullet\sdescribing\sthe\sCursor\sredesign:\nit\sdescribed\sthe\snew\sCursor\stype\sbut\snever\sstated\sthat\nTimelineOpts.Before\s(time.Time)\sand\sTimelineOpts.After\s(FslID)\swere\ndeleted\soutright,\snot\sdeprecated.\sA\sreader\sdiffing\sreleases\swould\shave\nread\sit\sas\san\saddition\srather\sthan\sa\ssecond\scompile-breaking\schange\son\ntop\sof\s#54. D 2026-07-19T16:30:58 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 b3b131c5441682d96e0cd30861ec58fc716f3b9e1722c7cd25c1ed110fef6e80 w F .gitignore bc81256c11f6f6390eb365029ca72b000c5bd5be345d294bdd0a7a69d698d4e3 w F CHANGELOG.md 875a73d3d030065aaba9393b9954ac49a7bd2f94b6c2b174cae7b07cc731a5b1 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 4fd126f6b142e3a43f38265deae168d9a60e9866f3c06bea093cb1dc7a5cf270 w F checkout_test.go 36d3cae47028e0718468ef412bfb65041da4eb020fdf4a7c9b2bfef81e79315c w F checkout_update_test.go ffedef1792cd56a08a9ebe21a9ad97d9f7ed45f119483ca2f6117f7910fb1237 w F cli/repo.go 739d65a19d90dba31df07280744ece4b11567e265536838e355f18177f0a8b50 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_stash.go d6d9bc90338180edd7c4df89898f464cbf8a574322ac8645dc19cf8b717607a9 w F cli/repo_status.go 6d3fdb3d467b0794508c8f93c3031c07c9e5b45b66dacbcb56b834b64de7c82b w F cli/repo_tag.go f551674ba5cd8e6a9bd48d71e7592e528ca72689cff22be9145f80ad0f549646 w F cli/repo_timeline.go ce1f8d1a97f4349a63879e2e26d381eebda31152166071034b6a20bff538e712 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 cmd/libfossil/main.go 3d5e958eb2cf4649ee67346a42da60171f06fdfebf25bddabe4669dce7fce295 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 59fec8666c47c8a4c1bf629b1a76e3ae6a3dec27ed3043729b83a08a9b60c933 w F internal/blob/blob_test.go b8d970fc8ba47d3f67490853eac62d41ec9149ef3cff7ca7b2144cd5992b932c w F internal/blob/compress.go dc7b90e535b7654ac49fb41f71291ca647c8898520bc41440454e1024c56d53b w F internal/blob/doc.go 7b5ab28603e1e3f03a62cf15a3432ed35bdef884dfba7070e637d5a212fff5a8 w F internal/branch/branch.go dd564eabf7817fda04930d1fa612b1845c40097a628d5253befc1574c438032f w F internal/branch/branch_test.go bd164dee5ec5a9ef93707800e139ccf7d29e9f067d63597b93305f76f98a3aa4 w F internal/checkout/checkin.go 2e894135d5e299d22e1bca667ff71b24807d7b89efc440b988743e3d5e0dc6f1 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 0c600845b9deb04cdd3ae50542814fd2efbfe14e270b6fb7e9499742b4d94c13 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 c59ddc48a11661bbc0205413bc064924abbbf4ee2b3d267e3b94251f18ad9fc6 w F internal/checkout/update.go 5fc2a90f2977a3c3b6a0ba6ed4e10e1785d67f0622674a049b69f8fd5ec3762e w F internal/checkout/update_test.go a1e064fe11145c44e4fa2423b4c83f4ad7ad33098748b4ea8e8c21c6c54d2e65 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 60dd2f78ae6210d3720face7e352954ac26c08cf4ea11f593bd490af110d55e0 w F internal/content/available_test.go 1b6f34cb997652ce93fe134b35f0f14ebfe75447bf4ba335e1e125bfdabc955d w F internal/content/cache.go b6c8cf703b013f6deec17e275eaca4e051473debfbea9f9bd80d5bf28ab81214 w F internal/content/cache_test.go f252b26abcb418feb5a542c35fa9553093811f63d15a4e41485bf8a014680278 w F internal/content/cluster.go 1087598118acb5f77cff5a34d91b4881cf6e6880e4eca2f9044cfadcd4ce6986 w F internal/content/cluster_test.go e9a809f7b57b7e91820c13164f3566efcbb4b26b8bcb7b6496d137124cd8500d w F internal/content/content.go 1f88c0f61d00a2d62a0a6450090bccad2c010216cce6fe6652825617f88be266 w F internal/content/content_test.go f8da2bd0e263022be13abf41c65477dd495f5be55d733e12486c567a9c63c8e1 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 fc064f82d218b6276530412d51cb99d767667c94b5ba2c20ece365f079002fe4 w F internal/deck/deck_test.go 541202e06f51d9ddd6049b4796df8f9e8845bd97982176d0eda735595c1793cb w F internal/deck/encode.go 6e39b68aea29c5ecd315f1eff21de67b73acc17826a3863cce041b7ed0dcbfac w F internal/deck/marshal.go f4abe35e55403a111063d2bb5778f6293b104d15bacbdd066bac3eac4b7abd2d w F internal/deck/parse.go 9c60d424e73af5d904d3cbf85b6086614cf2b1edfe1fefc768b60f504e499600 w F internal/deck/rcard.go a7f9c1addcae6fd83474de2c971897eba5a787f4788973537deb13813d087268 w F internal/deck/zcard.go 04180a498ae67552819c8b933ae4555c202f7083ecfb79f58d4e05380943c8cb w F internal/delta/assert_test.go cf31f1117d52d13fd280f117b0f7a74245a3a07f602fa2763c376f2643b5a501 w F internal/delta/delta.go d0868495d9e30f75abd1f56e04c9aabad45831e207ae4d7a81bdf4c974e70bbe w F internal/delta/delta_test.go 3faa91e4d15915a4587390b5cb6782e4511ada6da0e432264bf53635323a11d3 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 a51c31a6c7b2ca823a2846098961abc75d127f625fa5e3e4e9cd83a4096ffe14 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 6c44920c33014a72eea6ef8662a71fefa099213d2d434f22d18e933cda25ac93 w F internal/manifest/crosslink_defer_test.go c351af8df63dfa421781cebecdc89022ac2e054e7c240bf553fa7c74675a948b w F internal/manifest/crosslink_test.go d9f54add3520fe33f3d23deba5ccbeacf09da6ce204b9b0a3e20f373a54893d6 w F internal/manifest/dephantomize.go 77dbfc474a52fbda2d3551b05c34dbd43d74535fbbe9f3143db0c270a287f8d6 w F internal/manifest/dephantomize_test.go 1e3b20746894cd591b3c02bf15befe7627647639f8b7f7a4a39e4ce7be4fffee 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/log.go d913a3dd3216033cf6eafdf1b1a99a510584523b67f3739287696ca8a800551b w F internal/manifest/manifest.go 12e475d30b9a0a82fd895ae91c539fa9c80afb249fac8794f8c41fb5f1303586 w F internal/manifest/manifest_test.go dd72529ae3e372e322e92e17fd13f58aa7c59405b0116f3d950b68d740c46d0d w F internal/manifest/timeline.go 02517f89784e23b3f2d1d8e4a88563ea955f0e450c23fa9bdbbf15d0a6a9b8f4 w F internal/manifest/timeline_test.go 693d67f73add68f64a76df77fe7519b9bef42857b2eec1d6709490a4af0cbf48 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 bf2f357a83727531e86e3fd1258ece87c7e8b5d40ecb70b779b5f2b34e3d858b 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 45f3006dfb93b3eb3867ef77acf70fd584ef857664c539051c733cd8169b5054 w F internal/sync/clone_test.go 5bbce4877fcd1a666dfacd51ff95a2cae6735c941eb3a3503204d697c2f1b641 w F internal/sync/cluster_integration_test.go 6a1f62b6f8f47eda15183448206c6df44782385d85e36a3892dd354d6e4f4aac w F internal/sync/doc.go 1bfe570fa95c6818d00e788d5868ccc98919eeb4e839e125a6158b3873d1f095 w F internal/sync/handler.go 40ebeb50ea268f8c0d353c5a78d6f5e68a40c5f0aa6732c59c9fd43610072cf5 w F internal/sync/handler_crosslink_test.go 7f512544bde6ba52a5007d1647532341c2141ee5e6f7c28effa77678015bf462 w F internal/sync/handler_tablesync.go e8b1808f24a8d30af5d68f71bcfd68d1353865ddd384af582e813695401760ee w F internal/sync/handler_tablesync_test.go 615c54ee4b2ae118eba3173c7e3c2d6c0771e7d21db2eb32b943386cb4effb50 w F internal/sync/handler_test.go 1f1522defb491ee5e090c6c6faff827e349556ff391bd413b9d7cb5731cc4964 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 1aecd2b44ef76cab3a4ddc94103b8d0584b03299292cee0dbf072bc1cd529f3e w F internal/sync/session.go 449d484d95ab1d5992de9f6283814d22816b8b9aec811b40729f694e6c41fad2 w F internal/sync/stubs.go 3aa8e17d7112ac7d9f7ef8a460f190d871035b446260caad4f6b29034e3afb38 w F internal/sync/sync_test.go 3107adbbd7ad75df42301524cebf0ca2d78729b4ffdc5e00eadbcbf0fe894b11 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 400816317a49557b1baef964a1a9368fd56da06daf8a350c611267a7b100d006 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/verify.go 981e99428f063acd7ff47d597a2225f7bf2b9f83cf4166cb11891daeda3c9ccb w F internal/verify/verify_test.go 4911500307f8a1d05ec76af4223059222aa07b8242b270aec1e4b72703d51a90 w F internal/xfer/card.go a41d15cdf29424e68cfbb8a33e829126d595bee8311f4aade3f28dbe8a8afea0 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 84585569f8f52f2a589ed58b319ffa215b103b79f51dbe224ce164516a22ee27 w F internal/xfer/decode.go a4f8d4ea9f02845182a9905a3f90bcc8bc8f51f7ddb799976c7894cedaad6194 w F internal/xfer/encode.go 6219f326ffcb7d63979c4ac6047b2c4c4239ee83d4d4a6d31ba93f3b3018a965 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 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 afa0d3ea09efadce38892cad106e1065856ede35d3ae4099d81f8f2cceefdbf3 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 50ee46b392001ee88d8381980ae7be98abd6f990f50c88b90a303a8b253a6018 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 fd565dc1e55a89f3c25b49ac6c826cb5adf5054bfa4748cfbcbba55a1b45348c 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 cc78b2a7662f8fbcc5c9d1e130b011d56a9631c27585ecfcc40b977af1540bba 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 a69ab5dba734bd7c221773376ab8c59a766402be2d8a03b1ff1a9a3ba08c556c w F types_test.go 7e000480ba2f610043ed25467d9d7ecd3abac88010b7037f4c5bd1c82c9062c1 w F wrangler.jsonc f19630509e536b24e89ad26e84fb4ab33ee3723daf96e2c300779fa8e8228b2f w P 9a2697c556a097fdd58075ba3e6f6f8277d8247ba78860203a676a8b2945a65c U [email protected] Z 5496fddd982ca9c03011834f5ed52ccb