release / govulncheck (push) Successful in 17s
release / web (push) Successful in 1m33s
release / go (push) Successful in 1m49s
release / integration (push) Successful in 5m42s
release / android (push) Successful in 5m59s
release / Build signed APK (releases and dev) (push) Successful in 6m9s
release / Attach APK to the Release (tag releases only) (push) Skipped
release / Build + push container image (push) Successful in 16s
release / Verify release artifacts (tag releases only) (push) Skipped
Applies rule 32's migration exception: each header still says what the schema was, what changes and what it prevents, but task, milestone, decision and rule ids are replaced by the practice they stood for, the operator quotes by the decision, single-install counts are dropped, and pointers to a deleted package and an external design doc are gone. golang-migrate keeps no checksum, so editing applied migrations' comments is safe. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
42 lines
1.6 KiB
SQL
42 lines
1.6 KiB
SQL
-- Provenance as standard.
|
|
--
|
|
-- 0038 introduced pick_kind as a For You one-off ('taste'/'fresh').
|
|
-- The mechanism — stamp WHY a track is in the snapshot at build time,
|
|
-- freeze it onto the play at ingestion, break it down in metrics — is
|
|
-- now the standard for every system mix, so the CHECK vocabulary
|
|
-- widens to cover:
|
|
--
|
|
-- taste / fresh For You head vs freshness-injection tail
|
|
-- dormant / cross_user / random
|
|
-- Discover's three candidate buckets — makes
|
|
-- the 40/30/30 allocation measurable instead
|
|
-- of a guess
|
|
-- tier1 / tier2 / tier3 the tiered-eligibility ladder: tier 1 pins the
|
|
-- mix's exact desire, each higher tier steps
|
|
-- back a little. Tier
|
|
-- provenance is how we measure what the
|
|
-- step-back trades away.
|
|
--
|
|
-- Postgres CHECK whitelists can't be altered in place: DROP + re-ADD
|
|
-- with the expanded list, in the same migration.
|
|
|
|
ALTER TABLE playlist_tracks
|
|
DROP CONSTRAINT playlist_tracks_pick_kind_check;
|
|
ALTER TABLE playlist_tracks
|
|
ADD CONSTRAINT playlist_tracks_pick_kind_check
|
|
CHECK (pick_kind IN (
|
|
'taste', 'fresh',
|
|
'dormant', 'cross_user', 'random',
|
|
'tier1', 'tier2', 'tier3'
|
|
));
|
|
|
|
ALTER TABLE play_events
|
|
DROP CONSTRAINT play_events_pick_kind_check;
|
|
ALTER TABLE play_events
|
|
ADD CONSTRAINT play_events_pick_kind_check
|
|
CHECK (pick_kind IN (
|
|
'taste', 'fresh',
|
|
'dormant', 'cross_user', 'random',
|
|
'tier1', 'tier2', 'tier3'
|
|
));
|