Repository navigation
What's Changed
- ci: isolate Docker image builders (#683) (64dcfda)
- perf(ui): localize monitor slow-input edge alerts (#680) (a592a15)
- fix(ui): disable microphone Opus DTX (#682) (6b39c77)
- feat(moq)!: migrate MoQ stack to moq-native 0.19 / hang 0.20 / moq-net + @moq/* majors (#675) (717444b)
- ci: poll Codecov check runs in merge gate (#678) (a8e8c32)
- feat(nodes): support NV12 ↔ I420 in video::pixel_convert (#672) (3a2021d)
- fix(examples/web-capture): derive mseReadyTimeout from --load-timeout-secs (#673) (535178b)
- chore(deps): compatible dependency refresh for v0.6.0 (#674) (613c0e2)
- fix(plugins): enable WebGL2 in servo so animated pages actually animate (#671) (946e711)
- Update testing-web-capture skill: live-cast URL tuning and WebM frame extraction (#669) (b5f53ac)
- chore(registry): publish marketplace registry update (#670) (e152206)
- fix(plugins): servo host logging, bounded reply waits, first-frame instrumentation (#668) (e6c99d6)
- fix(plugins): release servo first-frame gate shortly after first paint (#661) (aea6b69)
- chore(registry): publish marketplace registry update (#660) (12aa7bb)
- feat(ui): surface plugin version/description and token status in admin UI (#656) (0eab134)
- Update web-capture testing skill for servo plugin ≥0.2.2 (#659) (44463c8)
- fix(plugins): hold servo frame emission until initial page load (#658) (71cad8e)
- chore(registry): publish marketplace registry update (#657) (c6661f9)
- feat(examples): add web-capture gateway (#631) (39a2280)
- chore(registry): publish marketplace registry update (#655) (2f9c049)
- feat(plugins): bump servo to 0.4.0 and add auth config for private pages (#630) (3e8ec67)
- chore(registry): publish marketplace registry update (#653) (eb6ad8c)
- fix(ci): use existing sherpa-onnx CUDA GPU archive name (#652) (89f3673)
- feat(marketplace): GPU (CUDA) plugin bundle variants + bundle-based demo image (#638) (8abd958)
- fix(nodes): vp9 bindgen (#650) (40b5b2c)
- chore(deps): fix cargo-deny advisory failures (#649) (ad22502)
- feat(server): make telemetry max_text_chars configurable (#626) (5faed28)
- feat(transport): add fMP4 support to http_mse for Safari/iOS playback (#637) (65293ce)
- fix(nodes): isolate C libdav1d symbols to avoid rav1d link collision (#636) (2359239)
- feat(auth): allow non-admin user role to use HTTP sink/IO nodes (#634) (589fc7b)
- fix: resolve file-security paths against asset_root (#629) (2942c05)
- feat(plugins): add configurable WASM per-call timeout (#625) (c783f68)
- fix(engine): clean up orphaned pending edges and guard tunes on terminal nodes (#628) (3b47929)
- fix(server): reject kid-less JWTs and cover reload-keys auth paths (#624) (af6845d)
- fix(marketplace): atomic archive write and case-insensitive suffix match (#623) (1e4d194)
- refactor(nodes): factor AV1 codec config into a single source of truth (#627) (5bf1afa)
- chore(deps): update Rust and Bun dependencies (#620) (429d916)
- ci(skit): drop debuginfo in Test job to fix disk exhaustion (#622) (e39a970)
- fix #539: surface SVT-AV1 EOS-flush watchdog trip as node failure (#615) (7c399b9)
- fix #604: load config before the first MoQ derive on cold load (#614) (cadb70e)
- fix #611: emit valid AV1 RFC 6381 codec string for MP4 output (#616) (c49a064)
- fix #607: reconcile dynamic-engine node lifecycle + terminal-state guarantees (#617) (f42049e)
- fix: bump quinn-proto to 0.11.15 for RUSTSEC-2026-0185 (#618) (7f1ee6f)
- fix(sessions): unify add-node batch path to confirmed-add semantics (#603) (c3642e3)
- fix(marketplace): support .tar.zst in HF model uploader (#601) (71653fb)
- fix(nodes): bound SVT-AV1 flush + codec loop against deadlock (#602) (264dbc3)
- fix(nodes): emit valid AV1 RFC 6381 codec string for WebM output (#610) (9dab223)
- fix(deps): bump wasmtime-wasi 44.0.2 -> 44.0.3 (RUSTSEC-2026-0182) (#608) (b965eb6)
- fix(plugin-native): emit Failed when worker dies, not just on timeout (#600) (4636c17)
- fix(ui): re-derive MoQ settings on direct Stream view YAML edits (#599) (a834650)
- fix(skit): validate ensure_dir_under target before creating it (#598) (7e7bd26)
- docs: regenerate config reference for [server.metrics] block (#597) (520e67d)
- test(marketplace): raise installer coverage to >=80% (#594) (03ca42a)
- test(moq): cover validate_moq_auth gate and plugin_paths helpers (#592) (4a7121b)
- test(marketplace): cover SSRF/origin policy and registry cache paths (#591) (4b79eac)
- test(mp4): cover packet classification, accumulation, and flush helpers (#590) (595f208)
- fix(moq): start every video track's first group on a keyframe (#595) (9027423)
- fix(ui): re-enable React Compiler in the real Vite build + CI guard (#589) (5e61edf)
- fix(marketplace): correct nllb/parakeet model packaging (#565) (c4146e1)
- fix(plugin-wasm): interrupt runaway guests with a per-call epoch deadline (#569) (f6e220f)
- refactor(ui): remove manual memoization subsumed by React Compiler (#587) (b39cdcc)
- fix(ui): resolve remaining react-doctor bug-class and a11y findings (#586) (7e39733)
- fix(ui): correct double-escaped regexes in pipeline draft restoration (#585) (52869bc)
- fix(ui): resolve React Compiler bailouts in pipeline hooks and panes (#582) (1b95ca2)
- fix(ui): resolve React Compiler bailouts in shared components (#581) (65cf667)
- ci(ui): add react-doctor as diff-gated check (#579) (b50b6be)
- fix(ui): resolve React Compiler bailouts in views and plugins UI (#580) (f24533e)
- fix(ui): resolve React Compiler bailouts in MonitorView and LogsView (#576) (c023238)
- fix(ui): resolve React Compiler bailouts in DesignView and compositor hooks (#575) (d118551)
- test(ui): run vitest with React Compiler to match production builds (#574) (0c2b59d)
- ci(skit): fix "No space left on device" flakiness in Test and Coverage jobs (#573) (76f4cd6)
- fix(docker): ship demo-image plugins as directory bundles (#567) (02dfa6f)
- fix(moq): use catalog-advertised codecs for subscriber pins; terminal error on post-init codec mismatch (#566) (0a8cf69)
- fix(engine): prune pending connections when removing a live node (#564) (20ccf83)
- fix(plugin-native): unify worker join/detach policy across run_source and run_processor (#563) (569c765)
- fix(api): close YAML compiler validation gaps for cycles and params (#562) (69b55af)
- docs: surface hosted speech gateway demo for newcomers (#541) (f03a7e8)
- docs: local observability stack sample, guide, and skill (#552) (4bff71f)
- feat(observability): plugin/ML dashboard row + standalone speech-gateway dashboard (#547) (9c1009d)
- test(nodes): cover moq peer async actor/loop methods (#560) (efd8469)
- test(nodes): raise moq pull.rs coverage with in-process tests (#559) (2737a4c)
- test(nodes): raise coverage for moq push/registration, constants, and http pull (#558) (b2505df)
- test(nodes): cover RTMP packet-processing and connection-driving paths (#557) (9501b20)
- fix(ci): build nightly skit in release to avoid slow SW AV1 timeout (#561) (5238ad2)
- feat(metrics): source bounded metric labels from pipeline attributes (#545) (23ca7cf)
- feat(speech-gateway): expose Prometheus metrics (#546) (d09fa61)
- test(samples): guard dynamic samples with parse/compile + node-availability checks (#543) (6abe3ba)
- test(pipelines): add CI validation for official oneshot samples (#542) (78f8332)
- fix(ui): route unfragmented MP4 to blob playback in Convert View (#538) (ca6c476)
- fix(nodes): bound SVT-AV1 EOS flush to prevent oneshot hang (#537) (5077178)
- fix(nodes): stream File-mode container finalize in bounded chunks (#536) (a3b480b)
- fix(ui): derive compositor output pixel_format from output_format param (#535) (086eed1)
- fix(moq): drop 5s catalog settle wait + dynamic catalog watch for MoqPullNode (#534) (354e7ab)
- fix(plugin-wasm): reorder namespaced_kind checks and disable relaxed-simd when simd off (#513) (4f0840f)
- fix(nodes): preserve dot in event type filter prefix matching (#516) (2f77388)
- refactor(rtmp): merge duplicate onStatus arms and deduplicate test helpers (#525) (20b24a9)
- fix(api): drop stale publish-no-media rule and pinning test (#515) (322c305)
- fix(rtmp): treat non-Start onStatus as rejection during PublishPending (#517) (f96788c)
- refactor(assets): replace CWD-relative paths with configurable asset_root (#520) (a57e37c)
- fix(plugin-native): join worker thread on all run_source exit paths (#519) (328a76f)
- ci: extract shared setup prelude into composite action (#518) (ab4584d)
- fix(api): reject non-object params for audio::mixer in compile_dag (#514) (5d4ae13)
- fix(ui): check |* suffix before rendering wildcard in formatWithTemplate (#512) (6bebdbb)
- test(nodes): add unit tests for text_chunker, telemetry_out, compositor config, and audio pacer (#506) (b2d01c2)
- test(nodes): add tests for ogg, pixel_ops, colorbars, and moq push (#505) (5023f0c)
- test(nodes): add unit tests for json_serialize, sink, bytes_input, bytes_output, and streaming_utils (#504) (fb752f2)
- test(nodes): fill RTMP protocol test coverage gaps (#503) (719d22e)
- ci: free more disk space for coverage job (#511) (a034bae)
- refactor: clean up comments across codebase per AGENTS.md guidelines (#502) (b5c2eae)
- test(engine): increase dynamic_actor.rs coverage with 14 new tests (#499) (e796ae5)
- ci(codecov): wire Codecov statuses into the required merge gate (#497) (8eef873)
- fix(server): reject mutating requests with non-UTF-8 Origin header (#500) (f4f1e0d)
- fix(server): normalize_base_path("/") returns None instead of Some("/") (#498) (2674c7a)
- fix(server): use qualified VP9 encoder kind in preview bookkeeping (#496) (1967c34)
- fix(test): prevent dav1d_roundtrip timeout in CI debug builds (#501) (063748a)
- ci(codecov): surface project + patch threshold violations as red statuses; exclude untestable boilerplate (#486) (cb2d7c3)
- test(server): expand coverage of router, middleware, and validation (#484) (d23d15f)
- fix(engine): flush parked best-effort packet once downstream has capacity (#489) (1503ca9)
- docs: consolidate agent skills into .agents/skills/ per agentskills.io spec (#492) (da56d5f)
- docs: add PR description guidelines and template (#495) (9730291)
- test(plugin-host): cover native FFI error paths and wasm wrapper edges (#483) (245df6c)
- test(skit): cover plugin manager, WS dispatch, samples handlers (#482) (1b7a224)
- test(server): cover plugins handlers and preview subgraph injection (#479) (322a845)
- test(engine): cover dynamic_actor, oneshot, pin_distributor branches (#477) (494372d)
- test(assets): cover assets and plugin-assets pipeline (#476) (d0bd682)
- test(plugin-wasm): add unit tests for conversions and wrapper (#467) (a61034a)
- fix(test): wait for nodeadded event in plugin_integration_test (#475) (6ea9db3)
- test(plugin-native,server): add unit tests for metrics, loader, auth handlers, and websocket dispatch (#474) (6725739)
- test(ui): cover yamlAutocompletion, fragmentUtils, jsonStream, nodeIssues, samplePipelineOrdering, mse, deepEqual (#471) (9579679)
- test(ui): cover services (auth/sessions/samples/assets/fragments/imageAssets/pluginAssets/logs/health/plugins/config) and stores (schema/permission/nodePosition/plugin) (#468) (a549e0a)
- test(ui): cover compositor overlays/resize/atoms and pipeline auto-layout/builder hooks (#466) (0f7ae09)
- ci: improve gate job diagnostics and document branch protection requirement (#465) (dc2118d)
- test(api): cover yaml compiler, client_lint, and WS protocol round-trips (#464) (0d9d95e)
- fix(ui): handle null wildcard_value in formatWithTemplate (#460) (45febdb)
- fix(moq): fail connection on audio codec mismatch in pull node (#461) (fad6274)
- test(engine): verify closed output removal in pin_distributor test (#462) (9b46ab9)
- test(moq): add unit tests for vendored OrderedProducer and CatalogConsumer (#457) (bddff06)
- feat(moq): update moq ecosystem deps, fix codec-based track selection (#433, #429) (#453) (86a405f)
- docs(coverage): add testing & coverage guidelines for agents and contributors (#456) (7937b10)
- test(ui/streamStoreHelpers): cover performConnect, watch/mic warnings, status sync (#446) (6f78127)
- test(ui): cover injectFileReadNode YAML injection behaviors (#444) (ac369b1)
- test(ui/telemetryStore): cover parser and store actions (#441) (8c715e1)
- test(ui): cover packetTypes formatters, canConnect, and resolveOutputType (#440) (23ea27b)
- test(ui): cover fontAssets service (API, hooks, FontFace loading) (#439) (bc2a891)
- test(ui): cover sessionStatus and pipelineGraph utils (#438) (353cffd)
- test(server): cover sessions.rs batch validation and apply helpers (#451) (0ce9721)
- test(server): cover oneshot multipart boundary + http_input bindings (#452) (04dfc46)
- test(server/preview): cover classify + tap-detect helpers (#450) (9720d6a)
- test(samples): cover sample-listing helpers in apps/skit/src/samples.rs (#445) (b267a71)
- test(session): cover pure helpers in apps/skit/src/session.rs (#448) (f2d7fdf)
- test(file_security): add unit tests for path validation helpers (#442) (2ad4ddc)
- test(config): add unit tests for apps/skit/src/config.rs pure helpers + load (#447) (3319df7)
- ci: add code coverage via cargo-llvm-cov (backend) and Vitest v8 (UI) (#434) (90d476c)
- refactor: split server/mod.rs into focused sub-modules (#431) (66a681b)
- refactor: split yaml.rs into focused sub-modules (#426) (f6e707e)
- refactor(nodes): add registration helper macros to reduce boilerplate (#430) (22c5b83)
- fix: remove hardcoded Opus codec assumptions in MoQ pull node (#428) (e02852c)
- test: expand UI test coverage for high-logic components (#425) (1bce3ac)
- test(engine): add unit tests for graph_builder, oneshot, and pin_distributor (#427) (519ca68)
- test: add unit tests for zero-coverage crates/core modules (#424) (4abba6d)
- fix: skip panicking-plugin fixture build when source is absent (#423) (adc6bea)
Full Changelog: v0.5.0...v0.6.0