Skip to content

Releases

0.7.5

Choose a tag to compare

@b0bben b0bben released this 09 Nov 09:49
cf82bf8

What's Changed

  • feat(backend): SFU regions from SFU_REGIONS, nothing built in by @b0bben in #231
  • docs: SFU integration spec and source-available SFU by @b0bben in #232
  • docs: link the SFU repo under its new name, m3llo-sfu by @b0bben in #233
  • feat(video): Media Foundation H.264 decoder for Windows viewers by @b0bben in #234
  • feat(feed): the stream card draws the stream's picture, the game and the strips by @b0bben in #235
  • Docs/mf decoder spec touchups by @b0bben in #236
  • feat(quests): crew quests, five steps that unlock five gifts by @b0bben in #239
  • fix(crew): refresh only the sidebar for a crew event in another crew by @b0bben in #237
  • feat(streaming): add a global stream key (F9) to start and end a stream by @b0bben in #238
  • feat: notification sounds by @b0bben in #240
  • fix(build): fetch the rnnoise model from a mirror first, cache it in CI by @b0bben in #241
  • feat(quests): media report handling, the quest journey and the specs by @b0bben in #242
  • feat(sounds): Opus notification sounds, decoded on play by @b0bben in #243
  • feat(clips): one clip key (F8) for game and voice clips by @b0bben in #244
  • feat(feed): the You strip chases belts, and the You view by @b0bben in #245
  • fix(voice): release the voice seat when its session ends, and leave voice on quit by @b0bben in #246

Full Changelog: v0.7.4...v0.7.5

Build dependency mirror

Pre-release

Choose a tag to compare

@b0bben b0bben released this 07 Nov 18:20
32fc913

Hash-pinned copies of third-party build inputs. Not an app release.

0.7.4

Choose a tag to compare

@b0bben b0bben released this 05 Nov 18:56
233d17b

What's Changed

  • docs: refresh README by @b0bben in #227
  • feat(clips): game clips on macOS, Opus in MP4 on every platform by @b0bben in #228
  • fix(stream-gate): give the SFU its test password, SFU_TEST_PASSWORD by @b0bben in #229
  • feat(feed): zone feed, protocol 2 by @b0bben in #230

Full Changelog: v0.7.3...v0.7.4

0.7.3

Choose a tag to compare

@b0bben b0bben released this 03 Nov 21:46
b4cfdfe

What's Changed

  • fix(release): pass TWITCH_CLIENT_ID to the client builds, stop on an empty baked-in secret by @b0bben in #221
  • fix(linux): TryExec in the menu entry, mutation-check restores on exit by @b0bben in #222
  • perf: under 80 MB in a call: posters near the view only, no font copy, echo model on demand by @b0bben in #223
  • Chat v2: GIFs, scrolling, emoji, images, reactions, read cursor by @b0bben in #224
  • test(video): the viewer tests wait for the pipeline threads, not a fixed sleep by @b0bben in #220
  • The media bucket is mello-media on media.m3llo.app by @b0bben in #225
  • feat(clips): game clips (F8) by @b0bben in #226

Full Changelog: v0.7.2...v0.7.3

0.7.2

Choose a tag to compare

@b0bben b0bben released this 03 Nov 00:10
a184fd6

What's Changed

  • perf(win): Direct2D renderer for Slint as the Windows default, skia-software as fallback by @b0bben in #199
  • Playtest fixes: belt tooltip, END STREAM, bindable voice clip key by @b0bben in #200
  • docs(specs): ship the Direct2D renderer as a spec by @b0bben in #201
  • perf(win): d2d renderer: 83 MB idle in a call, partial rendering, lost-device redraw fix by @b0bben in #202
  • perf(win): under 80 MB in a voice call: segment heap, HUD off by @b0bben in #203
  • docs(specs): the 80 MB numbers; fix(art): a negative-cache test that needs a day of uptime by @b0bben in #204
  • test(feed): the_carry moves between two other members, also when bob holds it by @b0bben in #205
  • chore(updater): Velopack 1.2.161 by @b0bben in #206
  • fix(client): close to tray hangs up, m3llo title and icon, close notice, relaunch shows the window by @b0bben in #207
  • chore(release): name the installer and shortcuts m3llo by @b0bben in #208
  • feat(linux): the m3llo client on Linux by @b0bben in #209
  • feat(feed): the weekly recap always top right, two rows, opens as in the fx lab by @b0bben in #210
  • ci(release): vpk on its own .NET 8 on Windows and macOS by @b0bben in #211
  • docs(specs): m3llo names in the specs, update toast in spec 07, m3llo protocol warning by @b0bben in #212
  • fix(d2d): skia-software in session 0, where no compositor can take a swapchain by @b0bben in #213
  • fix: release check survives an Xcode SDK update and the Node 24 socket crash by @b0bben in #215
  • fix(linux): what the first native Linux machine found by @b0bben in #216
  • ci: faster PR and release lanes on Windows, macOS and Linux by @b0bben in #214
  • fix(feed): recent games sits in row 3 under the day card, journeys read the card row by @b0bben in #217
  • chore(backend): replace MinIO with RustFS in the local stack by @b0bben in #219
  • feat(games): the Roblox player log opens and closes the Roblox session by @b0bben in #218

Full Changelog: v0.7.1...v0.7.2

0.7.1

Choose a tag to compare

@b0bben b0bben released this 30 Oct 20:34
d142eec

What's Changed

  • feat(core): the client log bundle for the media admin, and the warn token by @b0bben in #181
  • fix(feed): recap week number, tall recap in Crew history, one-line top game by @b0bben in #182
  • fix(feed): production follow-ups from the first week of v0.7.0 by @b0bben in #184
  • feat(art): game art through IGDB and the About m3llo page by @b0bben in #183
  • docs(specs): game art, About tab, sealed reveal as specs; art need in the driver by @b0bben in #185
  • fix(driver): stop journey progress lines corrupting the node test runner IPC by @b0bben in #186
  • fix(qa): invite journeys open the invite through one helper by @b0bben in #187
  • docs(e2e): start the local SFU with --build by @b0bben in #188
  • fix: check-full libmello configure and art Worker lifetime by @b0bben in #189
  • fix(scripts): run the QA harness scripts on Windows by @b0bben in #190
  • fix(games): grow the process buffer to the whole process table by @b0bben in #191
  • fix: run the test SFU in Docker from the mello-sfu compose by @b0bben in #192
  • feat(about): the OG crew, links, copyright; clip button hover by @b0bben in #193
  • fix(client): free harness window so tests stay under 256 descriptors by @b0bben in #194
  • fix(qa): live-session journey follows the poster placement rule by @b0bben in #195
  • fix(e2e): e2e.sh starts Nakama from backend/.env and keeps its SFU key by @b0bben in #196
  • feat(feed): the day card, no voice card, head2head and recent games fixes from production by @b0bben in #197

Full Changelog: v0.7.0...v0.7.1

0.7.0

Choose a tag to compare

@b0bben b0bben released this 26 Oct 22:12
bfe4580

What's Changed

  • fix(recap): count game minutes and hide empty weekly recaps by @b0bben in #163
  • refactor: the SFU is the only voice and stream transport by @b0bben in #164
  • fix(onboarding): always offer a way into an existing account on step 1 by @b0bben in #165
  • feat(stream-gate): streaming quality gate with frozen 2.1 baselines by @b0bben in #167
  • feat(libmello): vendor WebRTC video timing and frame buffer (M131) by @b0bben in #168
  • fix(presence): stop the client racing the session-start hook at connect by @b0bben in #166
  • feat(libmello): vendor the WebRTC goog_cc congestion controller (M131) by @b0bben in #169
  • fix(video): NV12 native present path, one frame-cadence rule, aspect ratio, encoder lock, stream audio mute by @b0bben in #170
  • fix(stream): no ghost streams, honest freeze metric, coalesced bitrate, viewer count, TURN on stream peers, mute on pause by @b0bben in #171
  • fix(voice): no unreliable audio DataChannel; viewers handle host_reconnecting; END STREAM sends leave by @b0bben in #172
  • feat(capture): start-before-stop ladder, cursor, mid-stream resize, D3D12 and OpenGL hooks, hook cadence, AMF and QSV cost tiers by @b0bben in #173
  • feat(stream): the viewer receive timeline on libwebrtc's frame buffer (stage 3) by @b0bben in #174
  • feat(stream): goog_cc, a 2.5x pacer, RTX and one quality controller on the send side (stage 4) by @b0bben in #175
  • chore(stream-gate): the stage 4 baseline and the gates derived from it by @b0bben in #176
  • feat(stream): start, watch and reconnect off the command loop, with stream states (stage 6) by @b0bben in #177
  • feat(stream): game audio through NetEQ, in-band FEC and A/V sync (stage 7) by @b0bben in #178
  • feat(stream): stage 9, the viewer experience by @b0bben in #179
  • feat(feed): next-gen crew feed with head2head, recaps, live sessions and sealed reveals by @b0bben in #180

Full Changelog: v0.6.2...v0.7.0

0.6.2

Choose a tag to compare

@b0bben b0bben released this 17 Oct 10:58
2201668

What's Changed

  • test(e2e): email sign-in, a public crew at step 1, invite code in Discover by @b0bben in #155
  • feat(e2e): read more app state, controls with enabled, hover and drag, production guards by @b0bben in #156
  • test(e2e): create a crew, crew settings and members by @b0bben in #157
  • feat(discover): admin curation of featured and hidden crews by @b0bben in #158
  • fix(driver): let the CLI exit when the event loop is empty by @b0bben in #161
  • fix(windows): repaint the whole window after a minimize and restore by @b0bben in #160
  • feat(voice): per-member volume and local mute in the voice channel list by @b0bben in #162

Full Changelog: v0.6.1...v0.6.2

0.6.1

Choose a tag to compare

@b0bben b0bben released this 14 Oct 19:34
4326632

What's Changed

  • fix(ui): popup menu items answer the accessibility action; e2e voice channel journeys by @b0bben in #106
  • feat(invites): invite welcome screen, invite code card, inviter in the join modal by @b0bben in #107
  • fix(macos): copy, paste and the other Edit menu shortcuts reach text fields by @b0bben in #108
  • fix(libmello): keep the VPIO duplex backend out of iOS builds by @b0bben in #109
  • feat(chat): resolve mentions in core, send picks as <@id> tokens by @b0bben in #110
  • feat(push): mention push via the push Worker, with the desktop activity rule by @b0bben in #111
  • feat(chat): show mentions in the mention colour on desktop by @b0bben in #112
  • feat(push): rate-limit and coalesce mention pushes per user by @b0bben in #113
  • docs(specs): mention resolution and push activity as shipped by @b0bben in #114
  • fix(chat): keep offline crew members in the mention picker by @b0bben in #115
  • ci: skip the build for specs/plans-only PRs, move actions to Node 24 by @b0bben in #116
  • feat(driver): list journeys as JSON by @b0bben in #117
  • chore(deps): Slint 1.18.1, Skia-only renderer, GPU everywhere by @b0bben in #118
  • feat(client): --build-info prints the build stamp by @b0bben in #119
  • fix(client): render the Windows UI with Skia's CPU rasterizer by @b0bben in #120
  • fix(voice): run the SFU voice join off the command loop by @b0bben in #121
  • feat(driver): live events and screenshots for a journey run by @b0bben in #122
  • fix(onboarding): plain join errors and no session before finalize succeeds by @b0bben in #123
  • fix(invites): keep the invite across an install from the web lounge by @b0bben in #124
  • test(e2e): wait for the avatar image and check the selection on step 2 by @b0bben in #125
  • Guest lounge: real voice channels, live streams and a voice roster by @b0bben in #126
  • README: link the m3llo crew invite and the right Bluesky handle by @b0bben in #127
  • fix(voice): keep the joined channel active until the call starts by @b0bben in #131
  • test(e2e): voice journeys run only through the SFU by @b0bben in #130
  • fix(ui): update the crew list in place, so an open crew menu stays open (#105) by @b0bben in #128
  • test(e2e): fix the mic permission in test builds, add the permission journeys by @b0bben in #132
  • chore: make the release check clean again by @b0bben in #133
  • test(e2e): the lounge's install button is "Install m3llo" by @b0bben in #134
  • ci: skip the build for a PR that only changes journeys or the driver by @b0bben in #135
  • fix(driver): start a script app binary under node, so the tests run on Windows by @b0bben in #136
  • feat(hook): shared-texture path for Direct3D 9 games by @b0bben in #137
  • feat(hook): decide the hook policy by game identity; admin RPCs to edit it by @b0bben in #138
  • docs: hook policy, capture ladder and D3D9 path as deployed by @b0bben in #139
  • test(voice-gate): device-free voice quality harness and the 2.9 baseline by @b0bben in #140
  • ci: run PR checks when a stacked PR is retargeted to main by @b0bben in #150
  • fix(voice): nine audible receive and send defects; stage 1 gates enforced by @b0bben in #141
  • feat(voice): send SFU voice from the capture thread by @b0bben in #142
  • ci: faster Windows PR builds (vcpkg cache, /MP, lighter debug info) by @b0bben in #151
  • spike(neteq): vendor NetEQ, the Opus decoder, CNG and the mixer from WebRTC M131 by @b0bben in #143
  • feat(voice): NetEQ playout per peer with the WebRTC mixer and limiter by @b0bben in #144
  • feat(voice): SFU receive slots and in-band speaking (client side) by @b0bben in #145
  • feat(voice): send-leg feedback, congestion-only bitrate ladder, channel bitrate by @b0bben in #146
  • feat(voice): SFU region choice, reconnect schedule, link-stall detection by @b0bben in #147
  • feat(stream): viewers keep the member list from SFU events; active ICE-TCP on every peer by @b0bben in #148
  • feat(voice): talk-spurt onsets at full level; honest gate metrics; single-sample congestion rule by @b0bben in #149
  • fix(voice-gate): impairments per send slot, in-clip growth over three seeds, baseline per platform by @b0bben in #152
  • fix(scripts): mutation check matches on CRLF checkouts; pin go.mod and go.sum to LF by @b0bben in #153
  • fix: invite modal Escape and copied state, Link account label by @b0bben in #154

Full Changelog: v0.5.8...v0.6.1

0.5.8

Choose a tag to compare

@b0bben b0bben released this 27 Sep 23:35
4fa6eff

What's Changed

  • fix(ci): stop deleting the signing keychain twice in the macOS release by @b0bben in #97

Full Changelog: v0.5.7...v0.5.8