-
Notifications
You must be signed in to change notification settings - Fork 219
feat: add template versioning using tags #1524
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
dobrac
merged 33 commits into
main
from
migrate-existing-env_builds-to-mn-relation-with-ability-to-eng-3267
Jan 2, 2026
Merged
feat: add template versioning using tags #1524
dobrac
merged 33 commits into
main
from
migrate-existing-env_builds-to-mn-relation-with-ability-to-eng-3267
Jan 2, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sitole
reviewed
Nov 21, 2025
packages/db/migrations/20251120180603_allow_m_n_builds_with_tags.sql
Outdated
Show resolved
Hide resolved
a0753b9 to
1df9dff
Compare
1011497 to
466739f
Compare
0c62650 to
e28307b
Compare
42f5d11 to
1ce92c4
Compare
sitole
requested changes
Dec 23, 2025
Member
sitole
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few questions
- Are we okay and aware that when I specify template alias
bobandalice, and then the alias for templatebobcalledfoo I will actually be able to retrieve it viabob:foooralice:foo`, is this expected? - When I use the flow you designed in
TestTemplateTagAssignFromSourceTag- I think at some point I would love to reference not just template tag but specific template builds. This way i will be able to revert my production to any build in the past. Now I can only revert to versions that are somehow tagged, is that right? - In openspec for sandbox creation we have
TemplateIDthat can actually be template id, alias or now id/alias with tag. What about updating the spec description or introducing a new field and deprecating the old one?
packages/db/migrations/20251218160000_allow_m_n_builds_with_tags.sql
Outdated
Show resolved
Hide resolved
packages/db/migrations/20251218160000_allow_m_n_builds_with_tags.sql
Outdated
Show resolved
Hide resolved
packages/db/migrations/20251218160000_allow_m_n_builds_with_tags.sql
Outdated
Show resolved
Hide resolved
packages/db/queries/templates/delete_template_build_assignment.sql
Outdated
Show resolved
Hide resolved
Contributor
Author
|
sitole
reviewed
Dec 30, 2025
packages/db/migrations/20251218160000_allow_m_n_builds_with_tags.sql
Outdated
Show resolved
Hide resolved
sitole
approved these changes
Dec 30, 2025
…ith-ability-to-eng-3267
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the public API for managing template versions via Tags. It allows users to build templates with multiple aliases/tags and manage those tags post-build. It also updates the
Sandbox.createmethod to support thetemplate:tagidentifier syntax.Changes
1. Sandbox Initialization
Updated
Sandbox.createto accept a scoped string identifier.template-name:tag-namelatest.2. Template Building
Implemented a clean separation between the template alias and its associated tags during the build process.
3. Template Tagging
Added a utility to assign tags to existing builds.
Template.tag("template:tag", tags)SDK Usage
JavaScript/Typescript
Python
Note
Introduces first-class template versioning via tags and
template:tagidentifiers across the API surface.POST /templates/tagsto assign tags andDELETE /templates/tags/{name}to remove them; OpenAPI, server routes, and generated clients updatedTemplateBuildRequestV3now supportsnames(alias:tag list);aliasdeprecated; build flow propagates alias and tagstemplate:tag; health flag switched to atomictemplateID:tag; add targeted and all-tags invalidationenv_build_assignments(env↔build↔tag), updates queries to join via assignments; snapshot upsert creates assignment; new CRUD for tag assignmentsWritten by Cursor Bugbot for commit 143316a. This will update automatically on new commits. Configure here.