Repository navigation
Releases
Releases · mollohq/m3llo
0.7.5
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
Hash-pinned copies of third-party build inputs. Not an app release.
0.7.4
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
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
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
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
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
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
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