Fix #263: annotated tags via mktag+PUSH #267

Merged
crueber merged 2 commits from fix/issue-263 into main 2026-09-10 03:23:19 +00:00
Owner

Implements the #263 design ruling (rule b): a non-empty message on POST /{o}/{r}/api/tags mints a tag object server-side (git mktag, strict fsck), packs it (git pack-objects --stdout), ingests via Layer.Ingest, and publishes as EntryKindPush with NewPeeled. No new WAL kind, no proto change, no core wal change. Failure map 400/5xx/409 as ruled; lightweight path unchanged; events parity proven by test. Verification: internal/tags 97.9% coverage + -race, internal/events + cmd/walhub -race, 528/528 node tests, gofmt/vet clean. Closes #263.

Implements the #263 design ruling (rule b): a non-empty message on POST /{o}/{r}/api/tags mints a tag object server-side (git mktag, strict fsck), packs it (git pack-objects --stdout), ingests via Layer.Ingest, and publishes as EntryKindPush with NewPeeled. No new WAL kind, no proto change, no core wal change. Failure map 400/5xx/409 as ruled; lightweight path unchanged; events parity proven by test. Verification: internal/tags 97.9% coverage + -race, internal/events + cmd/walhub -race, 528/528 node tests, gofmt/vet clean. Closes #263.
Per the #263 design ruling (rule b): a non-empty message on POST
/{o}/{r}/api/tags mints a tag object server-side with the git binary
(git mktag, strict fsck) instead of answering 422, packs the single
object (git pack-objects --stdout), ingests it through Layer.Ingest,
and publishes it as an EntryKindPush whose txn creates refs/tags/<name>
at the tag oid with NewPeeled set. No new WAL kind, no proto change,
no core internal/wal change. Tagger is server-rendered from the authed
principal (<name> <<name>@walhub.local>); messages cap at 64 KiB,
reject NUL/non-UTF8, normalize to one trailing newline. Failure map:
mktag rejection 400, pack/ingest 5xx, existing tag 409; nothing
published on any failure. Lightweight path unchanged.

Docs: 04_git.md Decisions (two new pinned argv) + 14_extensibility.md
#263 amendment (law 2 + law 12, same change).
Sign in to join this conversation.
No description provided.