All releases

OpenAVC v0.11.0

May 12, 2026

Discovery rebuilt around driver-declared probes and evidence. Cloud agent supports remote restart, diagnostic actions, and tunneled WebSocket and HTTP traffic with query strings and subprotocols intact. Matrix and audio devices respect audio-follow-video. Driver Builder Live Test works over serial and guards against running on a production project. Pre-release audit findings closed.

Discovery

  • Discovery is schema-driven; a driver declares its TCP / UDP probes, mDNS service, SNMP OID, or Python companion, and the scan engine runs them. Every identification on the scan card traces back to a probe response or a service the driver said it owns.
  • The platform itself no longer carries any vendor knowledge; adding a new device family is a driver change, not a core change.
  • The Driver Builder's Discovery editor has been rebuilt to match. You can write a probe inline, see which signal it provides, and validate it against shipped probe fixtures before any device is on the network.
  • Companion .py files are hidden from the driver listing but install, update, and uninstall alongside their .avcdriver file.
  • Common web-app ports are rejected as port_open hints. UDP reachability probes require a poll_interval. mDNS and SSDP scanners bind to the configured control_ip instead of every interface.

Cloud agent

  • Remote restart and diagnostic actions (ping, traceroute, DNS lookup, port check, tail logs) work end to end.
  • The agent gates each downstream action on the capability set the cloud negotiated for the session, so an agent whose tunnel capability was revoked silently ignores stray tunnel pushes.
  • The remote-UI tunnel preserves query strings, custom headers, and WebSocket subprotocols. Frames that arrive before the local WebSocket finishes connecting are queued instead of dropped. The target_port field is honored so the same tunnel can reach the Programmer IDE, the panel, or any other local service.
  • Cloud-pushed updates are staged; the apply step swaps atomically, and a failed apply clears the pending-update marker instead of leaving the system stuck on next boot.
  • Windows installer rollback now matches versions correctly across patch releases.

Matrix and audio

  • Matrix mute respects audio-follow-video; muting a video route also mutes the linked audio route when the matrix is in AFV mode.
  • Audio routes display their current source in the device test panel.
  • The cloud's mute and route commands flow through the same AFV-aware path as the local UI.

Driver Builder Live Test

  • Live Test works against serial drivers in addition to TCP and HTTP.
  • The panel refuses to run against the live project to keep an in-progress driver from clobbering a deployed room.
  • Rate-limit errors from the device surface in the test panel directly instead of failing silently.

Plugin hardening

  • A plugin that fails to register surfaces the error during install instead of disappearing.
  • min_openavc_version is enforced at install time across both first-party and community plugins.
  • State-pattern subscriptions with an empty pattern no longer leak state across plugin reloads.

ISC

  • The inter-system connection drops removed peers and rotates keys when auth changes, so a project reload that swaps an ISC password actually invalidates the old session.
  • Auth failures back off with deduplicated log messages instead of spamming the log every retry interval.

Other

  • Macros: the macro engine serializes register-and-preempt within a cancel group so a fast double-tap of system_on / system_off does not race.
  • OSC: the verify path races the send socket against the listen socket for dual-port devices like grandMA3.
  • Drivers: the Python driver serial template uses the correct connection field names.
  • Installers: the starter project bundled with every installer is now in the v0.4.0 schema.
  • Docs: cancelled macros are not transactional; the docs now say so.