D 2026-05-04T21:09:04 T +sym-v0.0.11 2945dc8dce8bfa2d94873a6e341da26bf20523ab0431d6e16add8be9ddea9be7 v0.0.11\n\nBones\slibfossil-exit\sfollow-up\srelease.\sCloses\sthe\smigration-gap\sissues\nbones\ssurfaced\sduring\stheir\sadoption\sof\sv0.0.10's\ssurfaces.\n\nBug\sfix:\n-\sfix(leaf/agent):\sAgent.Commit\schains\sonto\strunk\stip\sby\sdefault\s—\n\s\sParentID/MergeParents\son\sagent.CommitOpts\s(#125,\sPR\s#133).\sv0.0.9-v0.0.10\n\s\salways\spassed\sParentID=0,\sproducing\sorphan\scheckins;\sthis\srestores\n\s\sfossil\sci-style\schain-onto-tip\ssemantics.\sEmpty\srepo\scase\s(no\strunk\n\s\stip\syet)\sgracefully\sfalls\sthrough\sto\sa\slegitimate\sorphan\sfirst\scommit.\n\nNew\ssurfaces\sin\sthe\shub\spackage:\n-\sfeat(hub):\sOpenRepo\s+\s*hub.Repo\stype\sfor\sserver-less\soperations\n\s\s(#131,\sPR\s#134).\sAdds\shub.OpenRepo(path)\s—\sa\sCLI-friendly\shandle\sthat\n\s\sdoesn't\sspin\sup\sthe\sembedded\sNATS\sserver.\sRefactors\s*Hub\sto\sshare\n\s\smethod\sbodies\swith\s*Repo.\sNew\sHub.Repo()\saccessor\sfor\ssharing\sthe\n\s\slive\shandle\sout\sof\sa\srunning\shub.\n-\sfeat(hub):\sSetUserCaps\s+\sConfig.NobodyCaps\s(#130,\sPR\s#135).\sAdds\n\s\sRepo.SetUserCaps\sso\sconsumers\scan\sgrant\sor\schange\scaps\son\sexisting\n\s\susers\swithout\sleaving\sthe\shub\spackage.\sConfig.NobodyCaps\sapplies\n\s\scaps\sto\sthe\slibfossil-pre-populated\s'nobody'\suser\sat\sbootstrap\s—\n\s\sthe\stypical\sbones\scase\s(gio\sfor\sunauthenticated\sclone/pull/push)\n\s\sis\snow\sone\sdeclarative\sfield.\n\nPlus:\n-\schore:\sleaf\sbumped\sto\sv0.0.9\s(PR\s#136).\n\nTogether\swith\sv0.0.10,\sthis\scompletes\sthe\sbones\slibfossil-exit\nroadmap\son\sthe\sEdgeSync\sside.\sAfter\sbones\smigrates\sonto\sAgent.Commit\n(with\sParentID),\shub.OpenRepo,\sHub.SetUserCaps\s+\sConfig.NobodyCaps,\nthey\scan\sdrop\sgithub.com/danmestas/libfossil\sfrom\stheir\sgo.mod\nentirely. U 93289084+danmestas@users.noreply.github.com Z 7c08d3a1124bccf6d08b8333780b8bb0