Skip to content

Always show AUDIO on users_coins endpoint - #508

Merged
rickyrombo merged 1 commit into
mainfrom
mjp-always-show-audio
Oct 28, 2025
Merged

Always show AUDIO on users_coins endpoint#508
rickyrombo merged 1 commit into
mainfrom
mjp-always-show-audio

Conversation

@rickyrombo

Copy link
Copy Markdown
Contributor

No description provided.

@rickyrombo
rickyrombo merged commit 686e9bd into main Oct 28, 2025
4 checks passed
@rickyrombo
rickyrombo deleted the mjp-always-show-audio branch October 28, 2025 22:32
dylanjeffers added a commit that referenced this pull request Aug 18, 2026
…#1021)

Picks up OpenAudio/go-openaudio#510 (merged as \`81f4af5\`), which
unblocks profile editing for accounts whose artist pick points at a
deleted track.

## Why this bump is the step that actually reaches users

The fix lives in \`pkg/etl\`, a separate Go module. This repo's
\`indexer\` package wraps it and \`main.go\` runs it as \`core_indexer\`
— that is the process serving production. Merging the go-openaudio PR
alone changes nothing here until this pin moves.

## What was broken

A User Update whose \`artist_pick_track_id\` pointed at a deleted or
no-longer-owned track was rejected outright. Clients resend the full
user object on every profile edit, so that stale id rode along with
unrelated changes and blocked them — profile picture, cover photo, bio,
name.

The failure was invisible from both ends: the tx landed on chain, the
indexer swallowed the \`ValidationError\` and continued, and the client
had already applied the change optimistically. The user just saw their
edit revert on refresh, with no error anywhere. Support reports of "my
profile photo keeps reverting" are this.

**1,241 accounts were stuck on 2026-08-11** — 427 with 100+ followers,
89 with 1000+ — every one from a deleted pick.

## Migration delta is exactly one

\`0035\`–\`0038\` were already in the previous pin, so **\`0039\` (the
backfill) is the only new migration this bump applies**. Notably
\`0035_users_one_current_row\` — which fails loudly unless api's ddl
\`0237\` backfill ran first — is already satisfied at the current pin,
so it is not newly applied here.

\`0039\` clears only dangling references; a pick that still resolves is
left alone.

## Risk review of the nine pkg/etl commits riding along

- \`#483\` removes tip reactions from the writer and indexer — this repo
has **zero** references to \`TipReaction\`/\`tip_reaction\`.
- \`#508\` regenerates sqlc models; \`#494\`/\`#485\`/\`#482\` are
genesis-migration-path fixes, not steady-state indexing.
- The main \`go-openaudio\` module pin is unchanged; only \`pkg/etl\`
moves.

\`go build ./...\` and \`go vet ./...\` both clean. Diff is 3 lines
(go.mod + go.sum).

## After deploy

- \`entity manager validation rejected\` warns with the artist-pick
reason should drop to zero in the \`core-indexer\` pod.
- Re-run the count before/after — the 1,241 figure is from 2026-08-11
and the real number today may differ:

\`\`\`sql
SELECT count(*) FROM users u
WHERE u.is_current AND u.artist_pick_track_id IS NOT NULL
  AND NOT EXISTS (SELECT 1 FROM tracks t
    WHERE t.track_id = u.artist_pick_track_id AND t.owner_id = u.user_id
      AND t.is_current AND t.is_delete = false);
\`\`\`

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.

2 participants