release tooling: scope tag-collision checks away from fetched upstream tags
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- git, typescript
Research direction
Run bun script/release-preflight.ts with the repository's fetched upstream tags present, then inspect script/release-preflight.ts and the tag-collision guidance in .claude/commands/release.md and release-beta.md. Compare local git tag/rev-parse checks with the origin-scoped git ls-remote checks; done means unrelated upstream tags no longer block this repository's release checks and the release instructions agree.
Written by the indexing model from the issue text.
Description
Summary
This repo fetches tags from both origin (AltimateAI/altimate-code) and upstream (the fork source, anomalyco/opencode) into one local clone. Stale, unrelated v0.11.0–v0.11.8-shaped tags already exist from upstream's own release history (e.g. v0.11.0 dated ~2025-09-21, authored by opencode <opencode@sst.dev>), structurally disjoint from this repo's own main (git merge-base --is-ancestor returns false both ways).
This already caused a real block during the v0.11.0 stable release preflight: bun script/release-preflight.ts failed on a "tag collision" against the locally-cached upstream/v0.11.0 tag, even though origin had no such tag. It was resolved by deleting the local tag ref (safe — it's a cached copy of upstream's own tag, refetchable via git fetch upstream --tags, and doesn't touch upstream's actual repo).
Any release tooling that pattern-matches v{X}.{Y}.{Z}* for "does this version already exist" or "what's the next beta number" needs to explicitly scope its git tag/git ls-remote checks to origin only, or this same collision will recur — including against upstream tags that share a version number by coincidence, not by any relationship to our own release history.
Proposed fix
Audit script/release-preflight.ts and .claude/commands/release.md / release-beta.md's tag-collision checks to confirm they already scope to origin (some do — git ls-remote origin refs/tags/... — but local git tag/git rev-parse checks don't distinguish which remote a locally-fetched tag came from). Consider excluding upstream/*-sourced tags from local collision checks, or fetching upstream tags into a separate refs namespace (e.g. refs/upstream-tags/* instead of refs/tags/*) so they never collide with our own tag namespace at all.
Provenance
Found and hit live during the v0.11.0 stable release's Step 2 preflight; flagged again independently by the CTO persona review as a risk for future release tooling.
- Dominant language
- TypeScript
- Stars
- 813
- Forks
- 134
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 62
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from AltimateAI/altimate-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
AltimateAI/altimate-code#1323 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
AltimateAI/altimate-code#1288 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
AltimateAI/altimate-code#1285 ·
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifier Open
Difficulty 1/5 Under an hour Newbie friendliness 88/100
AltimateAI/altimate-code#1284 ·
-
Difficulty 2/5 Under an hour Newbie friendliness 72/100
AltimateAI/altimate-code#1283 ·
All issues in AltimateAI/altimate-code
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·