Skip to content

Releases: y4my4my4m/harmony

v1.4.0

Choose a tag to compare

@y4my4my4m y4my4my4m released this 06 Jul 00:24
b8e45a1

What's Changed

Full Changelog: v1.3.1...v1.4.0

v1.2.0

Choose a tag to compare

@y4my4my4m y4my4my4m released this 06 Jun 06:20

What's Changed

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@y4my4my4m y4my4my4m released this 28 May 00:33

First official public release of Harmony:

X_Ad3

What's Changed

Post-release bug fixes (retagged 2026-05-28)

The original v1.1.0 tag was moved to include critical fixes for issues
that surfaced shortly after the release:

  • Avatar URL revert bug: New users would upload an avatar successfully
    to storage, but profiles.avatar_url would stay at the DB default
    /default_avatar.webp. Root cause was AuthContextService caching an
    unauthenticated state during signup, before the profile row existed.
    The subsequent updateProfile({ avatar_url }) would then throw
    AUTH_REQUIRED and never write to the DB.
  • Cross-user image flicker: Other users' avatars would flip to default
    when an unrelated user's presence updated, because loadUsersData was
    re-fetching presence-cached entries from the DB (which had the wrong
    value due to the bug above).
  • Appearing offline in other servers when switching: The
    server-presence:{serverId} channel was using Supabase Presence
    (.track() + .on('presence', ...)), so unsubscribing on server switch
    fired presence:leave events that wrongly marked the user offline for
    every peer in the server they just left. Server-presence channels are
    now broadcast-only; online/offline lives entirely on
    harmony-global-presence, matching how Discord/Slack/Mastodon model
    presence.
  • handleServerMemberLeave no longer wrongly flips isOnline=false on
    an actual server-leave event.

New Contributors

Full Changelog: v1.0.1...v1.1.0

A few people have noted that this repo's git history is quite empty.

For transparency, I've been working on this for a while now:

Screenshot_20260527_212052 image image

The repo is clean due to having archived the copyrighted material dev stuff that was found in the git history

In truth, I've never expected to actually push this project to the point of having a proper public release which is why I was being careless about what I would push.