v0.4.0
What's Changed
- perf(engine,server): reduce hot-path allocations and serialization overhead (#319) (f4518b4)
- perf(ui): add code splitting and clean up state management (#317) (aa939f3)
- perf(ui): fix rendering regressions and add memoization barriers (#314) (90aea0b)
- fix(docker): enable non-free/multiverse for libfdk-aac packages (#318) (83da810)
- fix(build): use -fuse-ld=bfd for svt_av1_static builds (#315) (7ee863f)
- fix(nodes): use +whole-archive,-bundle for svt_av1_static unconditionally (#313) (9b51144)
- fix(release): use release-lto profile for release builds (#312) (a8bfa7a)
- feat(nodes): voice-controlled compositor via script Custom packets + param_bridge (#304) (e297e07)
- ci(release): add workflow_dispatch dry-run support (#311) (7482f31)
- fix(nodes): insert RBSP emulation-prevention bytes in H.264 BitWriter (#305) (b5a3b64)
- chore(registry): publish marketplace registry update (#310) (8f21a27)
- fix(marketplace): add file_checksums for parakeet v3 model files (#309) (292d01b)
- fix(marketplace): bump parakeet version and add registry version check (#306) (c8b7d55)
- fix(ci): use event.pull_request null check for fork PR detection (#303) (ea3ce68)
- feat(nodes): add HW video codec backends (Vulkan Video H.264, VA-API AV1, NVENC/NVDEC AV1) (#279) (cb7e3e6)
- fix(skit): add missing oneshot + plugin allowlist checks to batch API (#294) (1bfeb7f)
- docs(agents): restructure AGENTS.md with progressive disclosure and skills.sh integration (#298) (85f27b1)
- ci: consolidate workflows, add path filtering, cover all plugins (#295) (3428471)
- fix(compositor): strip _sender/_rev from UpdateParams before deserialization (#293) (70ade83)
- feat(engine,nodes): add cross-node control messaging via param_bridge (#280) (bc40048)
- feat(engine): make AddNode non-blocking with async node creation (#286) (6594851)
- chore(registry): publish marketplace registry update (#283) (cffe692)
- feat(profiling): add dev-profiling Cargo profile for fast iteration (#284) (126af39)
- feat(plugins): add Parakeet TDT speech-to-text plugin (#281) (304c0b9)
- fix(deps): upgrade wasmtime to 42.0.2 to resolve security advisories (#282) (9f2742e)
- feat(plugins): directory-per-plugin layout and unified native loader (#272) (4552035)
- fix(nodes): object store writer improvements — passthrough, bucket check, review fixes (#278) (2b29d5d)
- feat(nodes): add S3/object store sink node via OpenDAL (#273) (2e6bea7)
- Minor MoQ gateway improvements (#271) (daa53f7)
- chore(docker): add aac-encoder plugin to bundled images (#270) (2b50eba)
- chore(registry): publish marketplace registry update (#269) (d75bf50)
- fix(ci): add libfdk-aac-dev to marketplace build dependencies (#268) (ba5ac82)
- chore(marketplace): regenerate official-plugins.json for aac-encoder (#267) (33ff142)
- feat(rtmp): add sans-I/O RTMP publish client and publisher node (#266) (8e118a3)
- refactor: formalize C ABI codec registry via as_c_name/from_c_name (#265) (87e3828)
- refactor!: add deny_unknown_fields to node configs and update codec lint (#264) (f28ab86)
- refactor!: consolidate codec serde and utility functions (#263) (ed46e0e)
- feat: add AAC encoder native plugin with MP4/MoQ support (#261) (f77825a)
- feat(nodes): add OpenH264 encoder node (feature-gated) (#260) (50d3c82)
- feat(nodes): add MP4 container muxer node (#259) (147d6b7)
- feat(compositor): add SVG rendering support for image overlays (#258) (32f09df)
- chore(registry): publish marketplace registry update (#257) (cd96203)
- feat(plugins): wire asset unregistration, fix restart persistence, add bundle convention docs (#256) (68981ee)
- feat(plugin-sdk): add frame pool allocation for native plugins (#249) (5020a9c)
- docs: update README, ROADMAP, and docs for AV1, compositor, and Slint (#250) (79c2435)
- feat: upstream resize hints from compositor to source nodes (#248) (43af105)
- ci: set RUSTC_WRAPPER=sccache so cargo routes compilation through sccache (#247) (e180f2c)
- feat: schema-driven controls + runtime dynamic param schema enrichment (#243) (770039f)
- fix(build): work around rust-lld thin-LTO bug with SVT-AV1 + dav1d static linking (#246) (ae1b955)
- fix(ui): drop --bun flag from Vite dev script (#244) (d3ae5ec)
- fix: include libvulkan in gpu image (bd0929d)
- fix: missing deps in Dockerfiles (b8eaf0d)
- chore: update dockerfiles (95d3940)
- chore(registry): publish marketplace registry update (#242) (91e38bc)
- feat(docker): add Slint UI plugin to demo image (#241) (28b2bbc)
- feat: add native Slint UI plugin (#239) (11d4144)
- feat(plugin-sdk): add video packet types, source node support, and host-side tick loop (#238) (32dec1f)
- feat: detect and warn when video encoding exceeds real-time frame budget (#236) (bb452e4)
- feat(nodes): add C dav1d AV1 decoder node (static linking) (#234) (f9fadcd)
- test(e2e): add AV1 decode → compositor → SVT-AV1 encode relay pipeline (#232) (32ce1e3)
- feat(nodes): add svt_av1_static feature for build-time SVT-AV1 linking (#233) (b27bcce)
- refactor: consolidate duplicated code across codec, MoQ transport, and frontend (#228) (ea628b2)
- fix: gpu tests (15120b7)
- fix(tests): share GPU device across tests to prevent deadlock (#231) (1749a19)
- fix(moq-peer): use configured video codec for dynamic output pins (#226) (1695085)
- build: optimize Rust build caching with sccache, shared plugin target dir, and cargo-sweep (#224) (70aaaa3)
- feat(nodes): add SVT-AV1 encoder node via hand-written FFI bindings (#225) (f832f42)
- fix(compositor): rotate in pixel space for correct GPU rendering on non-square canvases (#223) (e1210e3)
- feat(mse): native browser playback for live streams with A/V sync fixes (#222) (a73e983)
- feat: AV1 WebM muxer support, codec tuning, benchmarks & debug perf (#219) (0812cc2)
- fix(compositor): negate rotation angle in GPU path to match CPU convention (#220) (9b5f907)
- feat(compositor): factor output_format into GPU heuristic (#218) (42dc9fc)
- feat(compositor): add GPU-accelerated compositing via wgpu (#213) (fbf2084)
- fix: broken Dockerfiles (4b31b45)
- fix(ui): fix 6 misc stream view and compositor node issues (#212) (abdcae7)
- chore: upgrade TypeScript 5.9 → 6.0, bump MoQ deps (#211) (c293bdf)
- feat: engine-native pipeline preview (composable graph tap) (#209) (e38cf39)
- fix(ui): smooth compositor resize UX — free text resize, preview letterboxing, corner handles (#208) (5ef5d91)
- feat: treat fonts as first-class assets with REST API, Google Fonts, and disk-only loading (#207) (9633b5d)
- perf(compositor): cache text overlays, fuse RGBA8→NV12 output, tune rayon chunks (#206) (56ceb9f)
- feat: add per-track media hints to pipeline client YAML (#205) (61bbfa7)
- feat: layer 3 — generic tracks publish config and multi-broadcast support (#202) (4b2f524)
- feat(transport): add dynamic pin support to moq_peer and moq_push (#200) (c7f1ddd)
- feat: add screen sharing foundation (Layer 1) (#199) (d739172)
- feat(compositor): implement image overlay asset upload system (#198) (4b1bc26)
- fix(engine): prevent pipeline activation deadlock when nodes are Degraded or Recovering (#196) (a2d8469)
- fix(compositor): resolve 5 UI bugs in canvas layers (#195) (28ffe6f)
- feat(e2e): add moq-relay integration tests for audio and multitrack pipelines (#192) (d320e0e)
- fix(ui): compositor UX polish — edge snapping, handle hit areas, border positioning (#190) (bc5aa71)
- perf: reduce redundant re-renders during initial pipeline load in Monitor View (#189) (3a99501)
- feat: compositor view-data causal consistency (all phases combined) (#188) (f4f1fe1)
- Update testing skills with marketplace plugin E2E testing knowledge (#184) (1becbc1)
- feat: declarative
clientsection in pipeline YAML (#181) (7c1d8dd) - feat: add log viewer/inspector to admin UI (#183) (f5ea8f2)
- Video support misc fixes (#179) (6492b2d)
- fix: ensure libvpx in GH runners (167b88c)
- fix: include assets in dockerfiles (23f798f)
- test: add HIGH priority compositor e2e tests (#178) (dc633cf)
- chore(deps): update Tier 1 + Tier 2 dependencies (backend & frontend) (#177) (9cb74a0)
- feat(compositor): add circular crop for Loom-style webcam PIP overlays (#176) (7d3af2f)
- feat: server-side echo suppression for compositor slider drags (#175) (3b5f4cd)
- Fine grained reactivity via Jotai (#174) (731f04d)
- chore(ui): add knip for unused code detection (#172) (5884bea)
- Refactor monitor (#171) (3a98c2d)
- chore(deps): update all dependencies to latest versions (#165) (1dc3c2f)
- fix(e2e): enable MoQ stream tests and perf tests in CI (#164) (dd43556)
- feat: slightly more effective demo pipeline (d55a4b8)
- Initial video support (#162) (7864251)
- fix(build): resolve incorrect git ref path causing unnecessary recompilation (#56) (e7e289b)
Full Changelog: v0.3.0...v0.4.0