Skip to content

fix(mirror): isolate downstream tag refs#4

Merged
realityforge merged 3 commits into
mainfrom
codex/fix-tag-mirror-refs
Jul 11, 2026
Merged

fix(mirror): isolate downstream tag refs#4
realityforge merged 3 commits into
mainfrom
codex/fix-tag-mirror-refs

Conversation

@realityforge

Copy link
Copy Markdown
Owner

Summary

  • fetch tag mirrors into mirror-specific remote-tracking refs
  • preserve existing downstream tags and isolate same-named mirrors
  • require repository changes to land through pull requests

Root cause

Tag fetches explicitly mapped upstream refs/tags/ into the downstream global tag namespace. Tag resolution also assumed that global destination.

Impact

Tag mirror add, pull, update, sync, diff, and status paths no longer create or overwrite downstream tags. Retained Braid remotes keep isolated tracking refs; normal remote cleanup removes them. Existing downstream tags are untouched.

Validation

  • bazel run @rules_go//go -- fmt ./...
  • git diff --exit-code
  • bazel test --test_env=PATH //...
  • bazel run @rules_go//go -- vet ./...
  • bazel run @rules_go//go -- run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.0 run
  • bazel test --test_env=PATH //integration/...

All checks passed; golangci-lint reported 0 issues.

Fetch tag mirrors into mirror-specific remote-tracking refs so importing upstream content cannot create or overwrite downstream tags. Cover cache modes, cleanup, retained remotes, and exact tag-object preservation.
@realityforge realityforge merged commit f1afd52 into main Jul 11, 2026
5 checks passed
@realityforge realityforge deleted the codex/fix-tag-mirror-refs branch July 11, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant