Tags: mollohq/mello
Tags
perf: Best-in-class memory & CPU — emoji font fix, measurement harnes… …s, chat virtualization, voice tuning (#28) * WIP * feat(perf): perf harness v2 — phys_footprint + wakeups sampling, GUI scenarios, baselines * perf(client): bundle OpenMoji emoji font — avoids 188MB Apple Color Emoji copy in Slint/Skia Rendering any color emoji makes Slint 1.17's Skia renderer heap-copy the entire system emoji font (macOS: 188.6MB, cached forever). Register a bundled OpenMoji COLRv0 via SLINT_FONT_PATH before Slint init so emoji fallback resolves there instead. Also: 8000-char display cap for pathological pastes. Measured: ~400MB -> ~216MB idle with emoji visible. Emoji now render identically across platforms. OpenMoji is CC BY-SA 4.0 (attribution pending in credits UI). Upstream issue draft in docs/. * perf(voice): set Opus encoder complexity 8 (was default 10) — cuts talking-state encode CPU * docs(perf): record in-VC verdict vs Discord, parked optimizations * docs(perf): correct talking-CPU attribution — RNNoise DNN (~6%, already NEON), not Opus * Delete slint-emoji-memory-issue.md * fix(chat): hide ListView scrollbars — pre-migration Flickable drew none Also document the transient per-redraw GPU texture burst (~457MB IOAccelerator, steady state unaffected) as a parked investigation in spec 21 with measured evidence and next step (Metal trace). * chore(perf): refresh GUI baseline post-merge (footprint+wakeups schema) * fix(chat): size ListView rows to visible-width — kills 4px horizontal pan The cupertino ScrollView's inner Flickable is unconditionally parent.width - 4px (even with scrollbars always-off). Rows pinned to feed.width forced viewport-width 4px wider than the Flickable, making the whole feed pannable sideways by exactly those 4px (and cropping rows on the right). visible-width is the Flickable's real width in every style. * fix(client): cfg-gate frame_slot to non-Windows — dead-code error on Windows CI Windows presents stream frames via native_frame_slot + DComp; the RGBA frame_slot path is the non-Windows fallback, so the field/param must be cfg-gated like the Windows-only fields already are. * fix merge conflict
Personal stats profile view (spec 19 A2) (#27) * Personal stats profile view (spec 19 A2) Tapping the You strip opens a per-game stats modal: streak (current + longest), W/L/D record, win rate, recent-form pips, and last-played time for every tracked game. Stats refresh on open. Also fixes the You strip not showing after the startup auto-select: the user_game_stats fetch moved from the UI crew-click callback into handle_select_crew in mello-core, so session restore, deep links, and join/create paths all populate it. * Fix mangled close glyph in stats profile modal The "✕" text glyph doesn't render in the bundled font; use the x.svg icon with colorize, same as the settings modal.
fix(chat): filter signaling JSON and widen media under avatar
Reject empty {} and non-chat channel payloads before they reach the UI,
including signaling-shaped JSON without plain-text fallback. Move GIF and
clip previews to a full-width row aligned under the avatar column.
PreviousNext