Retire ****************

FeatureInitializerService
Shipped
August 20, 2026 at 2:43 PM UTC
Author
Kamo
Commit
b58e2ef

Tracking codes are shared as ?discount=<uuid> now. The old <memberId>.<n> token published a real member id in every shared link and made the space walkable — one link named the member, and counting up from .1 enumerated their other campaigns — so the public token moved to an opaque UUID in the existing CODE column and ITERATION has no remaining job. This cannot wait for Hibernate: ddl-auto adds columns and never drops them, and ITERATION is NOT NULL. The entity stops mapping it in the same change, so from the moment the new shared library ships every INSERT omits a column the table still demands. Dropping it is what lets the mint path write at all. The composite unique constraint goes with it — it existed only to stop two concurrent mints taking the same iteration, and a random UUID has nothing to collide over. Order 0 for the usual reason here: any runner that loads a marketing entity emits the mapped columns in its SELECT.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing