Skip to content

v1.4.0

Choose a tag to compare

@openaudio-release-bot openaudio-release-bot released this 16 Jun 17:12
3b20a2b

1.4.0 (2026-06-15)

Features

  • console: show registry diffs on validators page (#306) (f30302f)
  • console: show store-all node status (#352) (d4c3e92)
  • console: surface jailed status and stable height (#326) (f6e02dd)
  • core/db: drop unused core indexes (#270) (361cd0c)
  • core: self-heal registration if node falls out of core_validators (#309) (7c33778)
  • etl: add event_routes for contest permalink support (#354) (97ccec3)
  • etl: add TrackCollaborator to the entity manager spec (#345) (550356d)
  • etl: allowed_api_keys + access_authorities normalization (parity 5B) (#250) (247007a)
  • etl: auto-subscribe uploader to remix-contest event on Track Create (#311) (1b70465)
  • etl: comments.is_members_only + video_url for fan club text posts (#312) (3b99954)
  • etl: consume blocks via gRPC StreamBlocks with catch-up + fallback (#342) (aee578e)
  • etl: decode hashid-encoded track_ids in playlist_contents (parity 5A) (#269) (c8fddb6)
  • etl: index oauth_redirect_uris on developer app create/update (parity 5E) (#252) (bc86dea)
  • etl: let a collaborator leave a track after accepting (#349) (22066c3)
  • etl: post-handler hooks for User/Track/Playlist Create + generic registry (#317) (1c75995)
  • etl: post-write hook for Plays transactions (#322) (4d1c9df)
  • examples: local ETL harness for stream/poll + tx load + resume (#344) (7758ae7)
  • mediorum: flip health-check unhealthy when bucket writes fail (#297) (94793f9)
  • mediorum: prune the append-only crudr ops log (#325) (f850a6b)
  • mediorum: retain recent storage repairs (#353) (cd10354)

Bug Fixes

  • ci: wait for SHA-tagged image before retagging release tag (#291) (cc875ef)
  • console: rate limit historical pages (#358) (919dbb3)
  • console: separate archive and store-all indicators (#355) (a33e361)
  • console: update jailed banner copy (#328) (6b2b7ee)
  • core: broaden mainnet p2p bootstrap peers (#361) (3bdbf51)
  • core: coerce nil ProverAddresses to empty slice in finalizeStorageProof (#313) (c786d3f)
  • core: guard against empty ProverAddresses in PoS submission and validation (#315) (983bde8)
  • core: keep storage proof checks out of block replay (#362) (8d55ef6)
  • core: pass --disable-triggers to pg_restore data section (#293) (438c29f)
  • core: regenerate stale priv_validator_key.json when delegate key rotates (#299) (5a2e0cd)
  • core: validate StorageProof structure in CheckTx (#316) (88444d5)
  • etl: canonicalize playlist_contents entry keys on write (#321) (35ad422)
  • etl: comment threading guards (parity 5C) (#251) (56db895)
  • etl: count runes not bytes in name/bio/handle/description limits (#340) (7062cd9)
  • etl: default release_date to created_at when unset (python parity) (#333) (959f1c7)
  • etl: drop incompatible developer_apps UNIQUE(address) + auto-seed block in tests (#302) (6885f9a)
  • etl: four prod-clone-run bugs + #307 test fixes folded in (#308) (4e0c89b)
  • etl: halt on block indexing failure (#323) (819100b)
  • etl: let a grant's grantee revoke their own user-to-user grant (#360) (5edfdf3)
  • etl: normalize empty playlist_contents on update (apps#14306 parity) (#265) (a8016e9)
  • etl: persist dev-app image_url; rune-count video_url/redirect_uri (#350) (bda0b8b)
  • etl: persist dropped track + comment fields on write (#343) (c5fcacf)
  • etl: persist social links on user create/update (#341) (4cccb46)
  • etl: persist track bpm/musical_key/audio_upload_id (python parity) (#334) (dca79f0)
  • etl: playlist_seen PK, ErrNoRows on soft-deleted rows, attribute dispatch errors (#310) (77cfaee)
  • etl: populate playlists.last_added_to on track add (#348) (e8586ac)
  • etl: scan custom Postgres enums + dedup repeat tx inserts (#305) (f832a89)
  • etl: tolerate co-existing writers + process each block atomically (#319) (6ea0f10)
  • etl: tolerate timezone-less release_date formats (#332) (5ed068b)
  • etl: upsert explicit subscription writes (root cause of dupes) (#335) (5d2e19a)
  • mediorum: avoid blocked replication pipe goroutines (#336) (8b7cd74)
  • mediorum: bound audio analysis backlog scans (#274) (689709e)

Performance Improvements

  • etl: index route (owner_id, title_slug) for slug-collision lookups (#337) (43606e8)
  • etl: stop maintaining blocks is_current (#330) (ea6c925)
  • etl: upsert social writes in place instead of demote-then-insert (#331) (24084d2)

Code Refactoring

  • etl: tighten track_collaborators reconcile (#346) (3904b9d)