Skip to content

πŸ› Migrate default packs to the V4 pricing-card schemaΒ #4458

Description

@PierreBrisorgueil

What β€” Opening the compute-extras / units pricing tab crashes the page.
Why β€” The default pack items use an old data shape the pricing card no longer understands, so the card throws on render.

Scope β€” src/modules/billing/config/billing.static-content.js packs (~L152) ships legacy { packId, label, priceUsd, meterUnits, featureSections }; billing.card.component.vue (used by billing.packs.component.vue resolvedItems) requires the V4 unified schema { id, title, subtitle, price:{amount,period}, cta, features, ... } and renders item.price.amount unguarded β†’ Cannot read properties of undefined (reading 'amount'). plans were migrated to V4 (commit 53ec9819); packs were not. Also item.id is undefined (packs use packId) so the CTA no-ops. Reachable via /pricing#units CTAs. Note billing.subscriptions.component.vue extrasPacks still feeds the OLD shape to BillingExtrasCheckoutModalComponent β€” reconcile both consumers on one schema.

Also (same file, ~L134): stale docstrings tell downstream to replace billing.static-content.js directly, contradicting the billing.resolveStaticContent.js config-driven contract (config.billing.staticContent) β†’ customization lost on /update-stack --theirs. Update the docstrings to the resolver contract.

Fix: migrate packs to the V4 card schema (or map at the resolver boundary so both the card and the extras-modal consumers get their required shapes); test against the REAL static-content export, not a hand-written V4 mock; fix the docstrings.

Refs: internal audit cycle-1 2026-07-16 (C4 + M9); commits 53ec981 / 7f5dd41 / e95d944.
Created via /dev:issue

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions