v0.9.8
The desktop app for Windows, and a web UI that speaks seven languages. Everything that changed since 0.9.7, summarized — full details in the CHANGELOG.
Added
- Neolink.NET Desktop for Windows (beta) — the web UI as an MSI-installed tray app that starts with Windows and raises native toast alerts even while the window is closed. MSI below; it is not code-signed yet, so SmartScreen shows "Windows protected your PC" — click More info → Run anyway.
- Seven UI languages — French, German, Spanish, Dutch, Polish and Portuguese join English. Picked at first run or under Server settings → Language, applied instantly, saved to your account. AI-translated, corrections welcome; condensed translated READMEs link off the main one.
- Opus audio per RTSP client — add
?audio=opusto any camera URL and WebRTC ecosystems (go2rtc, Home Assistant cards, browsers) get audio natively, while an NVR keeps recording the camera's own AAC from the bare URL. - AUDIO section in camera settings — record-audio toggle plus speaker, alarm and microphone volumes.
- PORTS tab — the camera's own service switches (HTTP, HTTPS, RTSP, ONVIF…) read live, with HTTP/ONVIF enableable from Neolink (admin only, behind a confirmation).
- Sound on the timeline — recorded footage now plays its audio, muted per monitor.
- Timeline bookmarks — save a named stretch of a day's footage; it appears as a gold ribbon on the timeline.
- Threat-level filter on the Events page for AI-described events.
- Fixed-rate AI frame sampling, and an opt-in switch to keep sent AI frames on disk so you can audit exactly what the model saw.
Changed
- Out of beta: Baichuan-over-UDP connect, detection sensitivity and infrared brightness, the Cameras editor, and footage encryption at rest.
- AI event descriptions graduate to BETA, with a review pass: the Test button now proves vision, transient connection failures retry, narration is grounded (per-frame inline labels plus rules against invented movement), very long events are described in ordered parts, the 20-frame budget ceiling is gone, and an event's first seconds keep full frame density so fast subjects stay visible.
Fixed
- Two-way talk that "works" but says nothing is now diagnosable and fixable — a per-device microphone picker (Server settings → Connection), a warning naming the device when a live session is capturing only silence, and refused talk connections that report themselves. The desktop app was hit hardest: its permission prompt has no microphone picker of its own.
- The desktop app recovers from "Session expired" by itself — the shell reloads the page as soon as the server answers, and the overlay now explains the state honestly.
- HA add-on: a camera whose name is a substring of another's is added instead of silently swallowed; the Options page is documented as the bootstrap list it is (and gained
stream,uid,udp,wake_capture,keep_alive_hours,http_address); camera settings edited in the web UI survive restarts. - No more surprise browser password popups over the web UI.
- A deep-sleep wake no longer strands the viewer after a battery camera reconnects.
- The camera panel explains a missing "Camera settings" tab and grows it live once the camera's HTTP API becomes reachable.
- Busy installations no longer lose history in the timeline and events views.
- AI descriptions no longer trail off before the event ends, and no longer come up empty on events with a busy start.
- Stale stylesheets after updates are gone — asset URLs change with each release.
- "View release" goes to the releases page, and the Monitor's 6h/24h charts no longer render empty.
Install / upgrade
- Docker:
ghcr.io/borexola/neolink.net:0.9.8(also:latest) - Home Assistant add-on: update to 0.9.8 in the add-on store
- Windows desktop app:
Neolink.NET.DesktopMSI below