Skip to content

v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Aug 19:19

What's Changed

  • fix(release): bump all client versions to 0.1.1 (fixes the never-clearing update banner) by @badbread in #381
  • feat(api): admin-only scrubbed diagnostics bundle (server side of #180) by @badbread in #385
  • fix(android): keep playback digital zoom across motion-segment gaps by @badbread in #387
  • fix(android): use Download glyph for playback wall Export action by @badbread in #389
  • fix(desktop): make frame-back work in the LPR plate popup by @badbread in #392
  • perf(api,desktop): carry plate bbox in the ab-report by @badbread in #393
  • docs: warn about the NVIDIA driver-upgrade trap on GPU hosts by @badbread in #395
  • fix(setup): fail early when a bind-mounted config file is missing by @badbread in #397
  • fix(clients): stop discovery preferring a TLS URL the app cannot use by @badbread in #403
  • fix(android): raise the digital-zoom ceiling from 5x to 10x by @badbread in #405
  • fix(android): keep the playhead where the user scrubbed, even in a gap by @badbread in #406
  • fix(api): default media-token capability claims instead of rejecting old tokens by @badbread in #407
  • fix(ios,desktop): raise digital-zoom ceilings to 30x to match Android by @badbread in #408
  • fix(desktop): support trackpad pinch-to-zoom on laptops by @badbread in #410
  • fix(recorder): alert when a motion detector is broken from startup by @badbread in #413
  • docs(recorder): VAAPI render-node robustness + escalated motion-decode-failure log by @badbread in #414
  • feat(api): surface motion-detector-down state in decode-status + admin console by @badbread in #415
  • docs(decisions): record no-autoheal-in-default-stack decision (#396) by @badbread in #416
  • feat(go2rtc): first-class RTSP restream auth opt-out (GO2RTC_AUTH=off) by @badbread in #417
  • feat(lpr): name/label a plate, server-side, shown across reads (#363) by @badbread in #418
  • feat(ios): show operator-assigned plate name in LPR reads + watchlist (#363) by @badbread in #419
  • feat(android): show operator-assigned plate name in LPR UI (#363) by @badbread in #420
  • feat(desktop): show operator-assigned plate name in LPR UI (#363) by @badbread in #421
  • feat(android): adaptive live-wall quality (guardrail + thermal/decoder backpressure) (#384) by @badbread in #422
  • feat(apple): adaptive live-wall quality (thermalState backpressure + decode guardrail) (#383) by @badbread in #423
  • feat(desktop): adaptive live-wall quality, guardrail + backpressure (#382) by @badbread in #424
  • feat(api): HA control Phase 2, service-call endpoint + actuators capability (#187) by @badbread in #427
  • feat(ios): HA control Phase 2, actuator buttons on the entity detail card (#187) by @badbread in #425
  • feat(desktop): HA device controls on the on-video badge card (#187) by @badbread in #426
  • feat(desktop): single-click actuates HA badge directly; card only for cover/lock (#428) by @badbread in #429
  • feat(ios): HA single-tap actuates simple devices; card only for cover/lock (#428) by @badbread in #430
  • feat(android): HA control (single-tap actuate; card for cover/lock) (#187, #428) by @badbread in #431
  • docs(map): Home Assistant control parity row (#187/#428) by @badbread in #432
  • fix(android): unify HA badge vs entity-sheet icon/color mapping (#437) by @badbread in #447
  • feat(ha): widen entity picker to all controllable + numeric-sensor domains (#433, #436) by @badbread in #448
  • feat(ha): validate link role vs domain; expose numeric-sensor unit (#434, #449) by @badbread in #452
  • feat(ha): editable role/device_class/label on HA links (console + desktop) (#434, #435) by @badbread in #453
  • feat(ha): render numeric-sensor units on badge + detail (all clients) (#449) by @badbread in #454
  • feat(ha): one closed icon vocabulary, server-enforced + mapped on all clients (#438) by @badbread in #455
  • feat(ha): per-link control config — require_confirm + allowed_actions (#440) by @badbread in #456
  • feat(admin): HA link icon/style + control config authoring (#439) by @badbread in #457
  • feat(admin): unified Home Assistant console area + global links overview by @badbread in #458
  • docs(integrations): bring the Home Assistant page up to date with epic #445 by @badbread in #459
  • feat(ha): value-setting HA controls (brightness/position/speed), #442 Slice 1 by @badbread in #460
  • feat(desktop): HA value-setting slider for #442 Slice 1 by @badbread in #461
  • feat(ios): value slider for HA percent controls (#442 Slice 1) by @badbread in #462
  • feat(android): HA value slider for brightness/position/speed (#442 Slice 1) by @badbread in #463
  • feat(desktop): HA detail card matches badge coloring + shows entity/device-type by @badbread in #466
  • fix(android): make the HA value slider usable + popup visuals match the badge (#442 Slice 1 follow-ups) by @badbread in #468
  • feat(ios): match HA detail-card icon to the on-video badge color by @badbread in #467
  • fix(android): don't render HA entity popup inside the PiP window (#469) by @badbread in #470
  • fix(android): restore UTF-8 in a LiveFullscreenScreen comment by @badbread in #471
  • fix(ios): hold HA value slider at the committed value until the poll converges (#465) by @badbread in #474
  • fix(deps,api,recorder): clear rustls-webpki cert-verify advisories + v0.2.0 backend nits by @badbread in #476
  • fix(recorder): default MOTION_HWACCEL to cpu so motion works on GPU-less hosts by @badbread in #478
  • chore(release): v0.2.0 version bump + changelog + docs by @badbread in #475
  • fix(admin): clarify HA entity-link picker labels + fix stale "Motion tab" copy by @badbread in #481
  • fix(api,android): video-only _subv sub restream repairs H264 fmtp for Media3, scoped to Android by @badbread in #485
  • feat(android): render per-state HA badge background color by @badbread in #489
  • fix(desktop): keep the maximized pane's right-click menu available while a stream is connecting by @badbread in #484
  • feat(ios): global quick-toggle to hide Home Assistant overlays on live video by @badbread in #486
  • feat(ios): render per-state HA badge backgrounds by @badbread in #492
  • feat(ha): per-state badge background server contract (overlay_bg_color_on) by @badbread in #493
  • fix(android): scale HA pill badges like desktop so labels stop overflowing by @badbread in #499
  • feat(ha): expand canonical badge-icon vocabulary (grill/smoker/landscape + 20 more) by @badbread in #482
  • feat(admin): author per-state HA badge background (bg_color_on) by @badbread in #490
  • feat(desktop): render per-state HA badge backgrounds (bg_color_on) by @badbread in #491
  • feat(desktop): global quick-toggle to hide all Home Assistant overlays by @badbread in #487
  • feat(android): global quick-toggle to hide all on-video Home Assistant overlays by @badbread in #488
  • fix(desktop): make the live wall's keyboard shortcuts actually fire by @badbread in #494
  • fix(desktop): make Playback's keyboard shortcuts actually fire by @badbread in #496
  • feat(desktop): restructure the HA overlay editor around a top bar + badge popover by @badbread in #495
  • perf(api): register _subv only for the cameras whose sub SDP is actually broken by @badbread in #501
  • docs: v0.2.0 media + copy refresh (fresh screenshots, install-doc accuracy pass) by @badbread in #500
  • fix(ios): never let the HA value slider assert a value that was not sent by @badbread in #508
  • fix(console): serverTz crash outside the wizard, Detection Save dropping zones + grouped-camera edits, dead group UI by @badbread in #510
  • docs: TESTING.md tester onboarding + bug-report issue form by @badbread in #512
  • fix(db,recorder): make ADD CONSTRAINT migrations re-appliable; default MOTION_HWACCEL to cpu in code by @badbread in #513
  • feat(install): preflight storage so an install cannot silently record nothing by @badbread in #514
  • fix(recorder): guard the dangling-row pass against an unmounted storage by @badbread in #515
  • fix(api): stop the console writing the go2rtc base into the Frigate HTTP base by @badbread in #518
  • fix(api): require a full session for stream URLs, drop CORS from /auth by @badbread in #516
  • fix(recorder): no false motion_detector_unhealthy alert for a camera with no sub-stream by @badbread in #525
  • fix(api): gate the _subv fmtp repair on the video codec by @badbread in #526
  • fix(admin): warn on the Motion tab when a camera has no sub-stream by @badbread in #527
  • fix(api): surface go2rtc stream rejections instead of swallowing 4xx; stop false camera_offline on newly added cameras by @badbread in #528
  • fix(android): fall back to the server H.264 transcode when a camera is H265 all the way down by @badbread in #529
  • fix(recorder): MOTION_HWACCEL=auto probes a real cuda device, and a failing hardware decode falls back to CPU by @badbread in #531
  • fix(api,recorder): reject mqtts:// instead of silently connecting in plaintext by @badbread in #530
  • fix(console,api): first-run error-message quality pass by @badbread in #532
  • fix(api): PUT /config/server merges instead of replacing the whole row by @badbread in #533
  • feat(ha): pill badge width + text alignment across every renderer by @badbread in #534
  • fix(web): blank decode backend stays blank instead of pinning 'auto' by @badbread in #536
  • fix(ios): grey HA badge on unavailable/unknown light or switch instead of a confident Off by @badbread in #538
  • fix(api): surface a go2rtc rejection when a camera's source URL is edited (not just added) by @badbread in #540
  • fix(recorder): write the storage marker only after a committed segment, not at dir creation by @badbread in #542
  • harden(api): gate the credential/session/notification surface against scoped media tokens by @badbread in #543
  • docs: bring the release documentation current for v0.2.0 by @badbread in #544
  • perf(desktop): Engine Benchmark plate crops decode via the engine codec, not pure-Dart by @badbread in #545
  • feat(ios): copy a plate number, and name a plate, from the Plates tab by @badbread in #548
  • feat(lpr): copy the plate number to the clipboard (web console + Android) by @badbread in #549
  • feat(desktop): copy a plate to the clipboard, and name a plate from the Plates tab by @badbread in #551
  • fix: correct release-prep copy defects and code/compose config drift by @badbread in #557
  • docs(api): pin the HA placement PUT as a whole-object replace, not a merge (#552) by @badbread in #555
  • feat(desktop): preview the plate report in-app, and give it real options by @badbread in #554
  • fix(frigate): raise the MQTT packet limit so Frigate motion and detection ingest work at all by @badbread in #559
  • fix(android): only step down the live fallback ladder on real playback failure (#560) by @badbread in #561
  • feat(android): open / save-to-Downloads / share for LPR plate reports by @badbread in #563
  • fix(android): list every plate sighting in the report, not just the capped thumbnails by @badbread in #565
  • fix(desktop): keep a maximized live camera maximized across minimize/restore by @badbread in #570
  • docs(readme): v0.2.0 release audit touch-ups by @badbread in #566
  • feat(notify): customizable alert text across all system-alert types by @badbread in #568
  • feat(notify): per-channel snapshot mode (plate/vehicle/both), capability-gated per provider by @badbread in #572
  • feat(desktop): timeline toggle to solo the selected camera's motion by @badbread in #574
  • perf(timeline): bucket motion intensity in SQL instead of scanning every row by @badbread in #576
  • docs(install): fix AI-INSTALL.md drift against current compose and scripts by @badbread in #577
  • feat(admin): mode-aware HA entity entry rework in the camera editor by @badbread in #579
  • fix(desktop): retention days unit, accurate policy-source labels, scrollable Cameras tab by @badbread in #581
  • fix(desktop): gate motion-tuner sensitivity for grouped cameras by @badbread in #587
  • feat(notifications): redesign the console Notifications pane (channels, alert-text editor, quiet hours) by @badbread in #583
  • fix(recorder): path-idempotent storage seeding + name->path lookups by @badbread in #585
  • fix(desktop): collapse long Server-dashboard lists by default by @badbread in #589
  • fix(android): fast step-down + opt-in HD repair for a main with no fmtp (#590) by @badbread in #591
  • fix(api): flag the _mainv repair from the SERVED SDP, not the producer by @badbread in #592
  • fix(android): try the repaired main (mainv) before the doomed raw main by @badbread in #594
  • docs(cameras): sharpen the Uniview LPR compatibility entry to the precise fmtp root cause by @badbread in #596
  • docs: fix v0.2.0 release-audit documentation drift by @badbread in #601
  • fix(api): gate filmstrip on the playback capability; scope channel-test to current grants by @badbread in #602
  • fix(clients): space the plate-report heading off the date-time line by @badbread in #603
  • fix(android): landscape single-camera UI polish (back-arrow, Auto label, camera name) by @badbread in #604
  • ci(release): block a release tag whose versions do not match the tag by @badbread in #605
  • fix(install): close the four fresh-install-audit findings by @badbread in #606
  • fix(android): batch the multi-camera playback-wall timeline intensity (#599) by @badbread in #607
  • fix(admin): DOM dropdown fallback so selects work in the desktop webview embed by @badbread in #608

Full Changelog: v0.1.1...v0.2.0