🤖 AI-Generated Changelog
Fixed
- Prevented reconciliation hang and hardened recording failure paths to avoid data loss during interrupted captures
- Excluded unplayable interrupted recordings from listings and added playback explanations in the UI
- Stopped zone editor from accepting more than the API's 32-point polygon limit
- Validated zone coordinates before float conversion and rejected out-of-bounds values atomically
- Discarded stale camera loads in the zone editor and enforced immutable dragging behavior
- Corrected CPU quota baseline tracking in cgroup telemetry to preserve throttle deltas across samples
- Reset telemetry deltas before resampling when cgroup membership changes
- Constrained credential and cgroup path resolution to prevent path traversal
- Rejected malformed and overflowing password target IDs in authentication handlers
- Validated role bounds and applied account updates atomically to prevent partial state
- Bounded initial user grants by caller actions and scope
- Validated complete user routes using full-width IDs
- Cancelled and serialized microphone requests across WebRTC release and reconnect cycles
- Tracked held talk keys and cancelled on focus loss in WebRTC video cells
- Rejected missing and invalid LPR observation timestamps
- Supplied and scoped the llhttp archive checksum in Docker builds
- Verified the NodeSource signing key and retained package priority in Docker image
- Prioritized generated headers for all build targets
- Isolated llhttp reference caches and scoped pinned hashes to tags in CMake
Security
- Constrained file path resolution for credentials and cgroup paths to prevent directory traversal attacks
- Rejected out-of-range and malformed user IDs to prevent injection via authentication endpoints
Changed
- Clarified HTTPS release configure and rebuild commands in build documentation
🔗 Full Changelog: 0.46.2...0.46.3