v2.5

m1k1o/nekov2.5Nov 30, 2021by m1k1o

AI Summary

Major update focusing on security controls (locks and control protection), iOS audio support, and ARM architecture improvements.

Key Highlights

  • Global lock controls for users via configuration.
  • Control protection feature requiring at least one admin in the room.
  • Audio support on iOS devices (version 15+).
  • Automatic WebRTC SDP negotiation for dynamic track management.

New Features

  • Lock controls via config `NEKO_LOCKS`.
  • Control protection enabled by `NEKO_CONTROL_PROTECTION`.
  • Emotes sending on mouse down holding.
  • Enhanced stats data including `control_protection` status.
  • XSS sanitization for display names and markdown.
  • Display unmute overlay on join.

Full Release Notes

### Bugs
- Fix ungoogled-chromium auto build bug.
- Audio on iOS works now! Apparently only for 15+ though [#62](https://github.com/m1k1o/neko/issues/62).

### New Features
- Lock controls for users, globally.
- Ability to set locks from config `NEKO_LOCKS=control login`.
- Added control protection - users can gain control only if at least one admin is in the room `NEKO_CONTROL_PROTECTION=true`.
- Emotes sending on mouse down holding.
- Include `banned`, `locked`, `server_started_at`, `last_admin_left_at`, `last_user_left_at`, `control_protection` data in stats.

### Misc
- ARM-based images not bound to Raspberry Pi only.
- Repository cleanup, renamed `.m1k1o` to `.docker`.
- Updated docs, now available at https://neko.m1k1o.net.
- Add japanese characters support.
- Sanitize display name and markdown codeblock input to prevent xss.
- Display unmute overlay when joined.
- Sync player play/pause/mute/umpute/volume state with store (beneficial for mobiles when using fullscreen mode).
- Automatic WebRTC SDP negotiation using `onnegotiationneeded` handlers. This allows adding/removing track on demand in a session.