Artifact 0ce3815a248b2f6b1befd887526eb141000a609a6ec1f8a74cfbd0415285195d:
- File
repo_sync.go
-
2026-10-24 00:37:10
— part of check-in
[54d75fbc78]
on branch main
— fix(sync): resolve horizon names only for authorized requesters
An origin resolved a horizon-name before the requester's login was read, and served a requester that may neither read nor clone at the horizon the name resolved to, so whether a name exists showed in its reply. The login card is now checked first, and only a requester that may read or clone has the name resolved; anyone else is answered as if the request named no horizon, the same reply for any name. A pull naming an unknown horizon is refused with the one error card, not served densely.
The client fails the clone on a second horizon-resolved in a reply, and on one answering a request that sent no horizon-name. A private origin's challenge does not settle the name: the next request resends it with the login, still the clone's first request under ยง6.1.
API: CloneOpts.Horizon replaces CloneOpts.HorizonName and the stand-in check-in a named horizon's StoreCone had to carry. It reuses the Horizon type, whose Checkin may there be a name, beside the existing HorizonDepth, and keeps the rule and the structural level where they were, so no public concept is added. StoreCone gives the path members alone: a horizon on both, or a depth without a Horizon, is an error. A full hash at depth 0 goes on the store cone as itself. Internally a NamedHorizon carries the name, depth, rule and level, not a cone holding a placeholder hash, and only the resolved hash is ever stored. The CLI passes --horizon through the same field. (user: [email protected], size: 13049) [annotate] [blame] [check-ins using]
-
2026-10-24 12:32:24
— part of check-in
[5a7c2ba12e]
on branch main
— Merge pull request #476 from danmestas/feat/horizon-names-seed-refusal
feat(horizon): named horizons with depth, and origin seed refusal (user: [email protected], size: 13049) [annotate] [blame] [check-ins using]
-
2026-10-24 00:37:10
— part of check-in
[54d75fbc78]
on branch main
— fix(sync): resolve horizon names only for authorized requesters