diff --git a/.gitea/workflows/mirror.yml b/.gitea/workflows/mirror.yml index affa9fd..bdb286c 100644 --- a/.gitea/workflows/mirror.yml +++ b/.gitea/workflows/mirror.yml @@ -12,7 +12,10 @@ jobs: - uses: actions/checkout@v7.0.1 with: fetch-depth: 0 + fetch-tags: true # load-bearing for --prune below: no local tags would delete every remote one + # --prune so a tag deleted here doesn't live on at GitHub forever. It only removes refs a + # refspec DESTINATION matches — so tags; main is a non-glob dst, other branches match nothing. - run: | - git push --force \ + git push --force --prune \ "https://x-access-token:${{ secrets.MIRROR_GITHUB_TOKEN }}@github.com/larvit/plainpages.git" \ refs/remotes/origin/main:refs/heads/main 'refs/tags/*:refs/tags/*' diff --git a/AGENTS.md b/AGENTS.md index 5711e9e..c833aa8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -184,7 +184,10 @@ them. Revisit only if the stated reason stops holding. none; same reasoning that freezes `HOST_API_VERSION` at 1.0.0. Note the coupling: `registry-cleanup` keeps a hash image only while its commit is a branch head *or* release-tagged, so with zero tags only branch heads survive the nightly prune — a hand-cut tag must sit on `main`'s - tip. Valid until the maintainer says Plainpages is ready to show people. + tip. `mirror.yml` pushes tags with `--prune` so the deletions actually reach the public GitHub + mirror; that makes the runner's tag view load-bearing (hence `fetch-tags: true`) and means a tag + or Release created on GitHub is swept away, so releases are cut on Gitea only. Valid until the + maintainer says Plainpages is ready to show people. - **A dropdown is a `