Skip to content

feat(catalog-v2): version-anchored license links - #3163

Draft
johnyeocx wants to merge 2 commits into
devfrom
john/catalog-v2-license-version-anchors
Draft

feat(catalog-v2): version-anchored license links#3163
johnyeocx wants to merge 2 commits into
devfrom
john/catalog-v2-license-version-anchors

Conversation

@johnyeocx

@johnyeocx johnyeocx commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Parent plan_license rows stay on the child version they point at. Child mint/promote no longer auto-repoints; follow is propagate.license_parents, and an explicit licenses[].version_slug is the only declared move.
  • Child all_versions follow applies each parent version from the child sibling it is actually anchored to (content only — no relink). version_slug can pin a specific parent version.
  • Dashboard: Go to License opens the anchored child version, the child card shows the slug badge, and Save plan changes → Parents lists sibling-linked parent versions (Team/EU v1 next to v2).

Test plan

  • bun t server/tests/integration/catalog-v2/plans/licenses/mix/all-versions-parent-version-anchors.test.ts --headless
  • bun t server/tests/integration/catalog-v2/plans/licenses/declared/declared-version-anchor.test.ts --headless
  • bun t server/tests/integration/catalog-v2/plans/licenses/lifecycle/anchored-version-remove.test.ts --headless
  • On the dashboard: open a parent v1 whose seat is anchored to child v1, confirm the child badge and Go to License land on that version
  • Edit child v2 in place with Update all versions; confirm Parents lists Team/EU v1 and v2, and following All versions does not relink v1 → child v2

Made with Cursor


Summary by cubic

Parent license links now stay anchored to the child version they point at instead of re-pointing to the newest child version when the child mints a new version or promotes. A version_slug in licenses[] is the only declared move; omitting it keeps the existing link, and new links default to the child's active row.

Behavior changes

  • Child all_versions follow applies each parent version from the child sibling it is anchored to, leaving anchors in place.
  • Removing or archiving a child version that parents still link to returns a 400 that names the parent plans.
  • The dashboard "Go to License" opens the anchored child version, and the license parents list shows sibling-linked parent versions (for example Team/EU v1 next to v2).

Callers that relied on links automatically following a child mint or promote must now pass version_slug (or use propagate) to move them.

Written for commit e637862. Summary will update on new commits.

Review in cubic

…child sibling

Parent plan_licenses stay on the child version they point at. Child all_versions follow applies each parent's overlay from that sibling's diff, and the dashboard can select those versions (including by slug).

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

2 Skipped Deployments
Project Deployment Actions Updated (UTC)
checkout Ignored Ignored Aug 30, 2026 4:12pm
landing-page Ignored Ignored Aug 30, 2026 4:12pm

Request Review

Lock the four-direct per-version path so adding a child feature keeps anchors, omits sibling_versions, restates overlays, and drafts a collapsed migration.

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – autumn-vite August 30, 2026 16:12 Inactive
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