To learn how to install and configure OpenCue, see our Getting Started guide.
This release brings major new capabilities including a distributed scheduler written in Rust, comprehensive RQD improvements (OOM prevention, Windows support, PSS memory), CueWeb LDAP authentication, a full-stack sandbox deployment, and numerous bug fixes and stability improvements across the ecosystem.
Major Features
-
Distributed Scheduler (Beta)
Introduced a new distributed scheduler written in Rust, enabling scalable and high-performance job dispatching with support for hardware tags, show/facility-scoped clusters, environment variables, and Sentry tracing.
(#2104), (#2113), (#2155), (#2182), (#2188), (#2198), (#2242) -
Event-Driven Monitoring Stack
Added a full event-driven monitoring stack with enhanced metrics, dashboards, and comprehensive documentation.
(#2086) -
CueWeb LDAP Authentication
Added LDAP authentication support for CueWeb, enabling enterprise directory integration.
(#2096) -
Full Stack Sandbox Deployment
Introduced a unified Docker Compose sandbox deployment with CueWeb, REST Gateway, core-only defaults, monitoring profiles, and quick start documentation.
(#2103), (#2110), (#2166) -
RQD Windows Support (Release Candidate)
Added full Windows support for RQD.
(#2165), (#2121), (#2122) -
Rust RQD OOM Prevention
Added OOM prevention logic with intelligent frame kill selection and PSS memory measurement support in the Rust RQD implementation.
(#2064), (#2067), (#2089), (#2093) -
PSS Memory Measurement
Added option to measure process memory using PSS (Proportional Set Size) and store PSS/MaxPSS values across Cuebot, CueGUI, PyCue, and RQD.
(#2089), (#2112) -
Booking Show:Facility Exclusion List
Added the ability to configure booking exclusion lists per show and facility.
(#2087) -
External Facility Feature
Added external facility support in PyCue and CueGUI.
(#2248) -
Filter Actions for UTIL and PRE Layers
Added cue filter actions for UTIL and PRE layer types with support for multiple delimiters in filter action tag parsing.
(#2050), (#2048)
User Interface and Usability
-
CueGUI
- Replaced NodeGraphQtPy with the upstream NodeGraphQt library
(#2040) - Added User Color sorting in Cuetopia job monitor
(#2176) - Fixed gRPC CANCELLED errors causing UI refresh failures
(#2042), (#2079) - Fixed UI freeze on gRPC connection drops with job unavailable notification
(#2143) - Fixed LLU and Last Line columns not populating on large jobs
(#2044) - Fixed AttributeError when assigning local cores from layers/frames
(#2052) - Fixed ETA calculation type error and UTF-8 decoding
(#2119) - Fixed layer tags validation to allow dashes and underscores
(#2120) - Fixed CueJobMonitorTree not refreshing on property changes
(#2100) - Made job-not-found popup notification configurable, default off
(#2199) - Fixed max_cores bug
(#2222) - Added PSS and MaxPSS display support
(#2112)
- Replaced NodeGraphQtPy with the upstream NodeGraphQt library
-
CueNIMBY
- Enhanced system tray with OpenCue icons, emoji status, and connectivity awareness
(#2061) - Made CueGUI launch command and menu label configurable
(#2232) - Fixed operation on headless Linux render nodes (editor, notifications, threading)
(#2237), (#2234) - Load default config from JSON file instead of hardcoding
(#2244)
- Enhanced system tray with OpenCue icons, emoji status, and connectivity awareness
Scheduler Improvements
- Distributed scheduler with show migration support
(#2104), (#2182) - Bulk resource accounting
(#2198) - Add job and layer environment variables to frames
(#2161) - Scope manual/hostname/hardware tag clusters to show and facility
(#2188) - Improved scheduler metrics
(#2178) - Allow jobs without an OS constraint to dispatch
(#2246) - Added Sentry tracing and sqlx warnings as Sentry events
(#2242), (#2250) - Fixed race condition in multi-scheduler environments
(#2191) - Fixed single-threaded bug, datatype errors, and memory value calculations
(#2220), (#2162), (#2163), (#2241)
RQD Improvements
- Rust RQD:
Cuebot Improvements
- Added scheduled subscription recalculation task
(#2134) - Added spring-boot-starter-mail dependency
(#2156) - Allow customizing the output_path for EmailSupport
(#2153) - DB optional environment variables for custom deployments
(#2076) - VirtualProc allows cores above predefined max
(#2223) - Improved nimby retry logic
(#2169) - Updated Dockerfile to use openjdk:18-ea-18-slim-bullseye
(#2074) - Fixed stuck depend frames on transient failures
(#2201) - Fixed hardware tags update on host restart
(#2125) - Fixed race condition when updating host.int_mem_idle
(#2217) - Recover lost dependencies
(#2219) - Only replace username once on PostJobs
(#2088) - Removed unused threadpool properties
(#2204)
Documentation and Ecosystem
-
Documentation:
- Added comprehensive documentation for the new scheduler module
(#2113) - Added comprehensive documentation for PyOutline and PyCuerun
(#2212) - Added AI policy to developer guide
(#2228) - Added 2026 project update news
(#2154) - Front page design improvements
(#2205) - Fixed broken www.opencue.io links
(#2197) - Added Docker setup for building documentation
(#2130) - Updated CueWeb documentation with correct healthcheck using wget
(#2132) - Added nav_order management utilities for documentation
(#2055)
- Added comprehensive documentation for the new scheduler module
-
Docker and Deployment:
Changes:
- c7a3cbb [docs] Update documentation version to 1.13.8 and add release notes (#2038)
- f96a852 [cuegui] Replace NodeGraphQtPy with NodeGraphQt (#2040)
- 55a90b3 [ci] Add Apache-2.0 license metadata to package pyproject.toml files and license check (#2039)
- 5a57381 [cuegui] Fix AttributeError when assigning local cores from layers/frames (#2052)
- 1be2602 [cuegui] Handle gRPC CANCELLED errors to fix UI refresh issues (#2042)
- cc83b7c [cuegui] Fix LLU and Last Line columns not populating on large jobs (#2044)
- 97cf3e5 [cuebot] Support multiple delimiters in filter action tag parsing (#2048)
- 747474f [cuebot/cuegui/pycue/cueadmin] Add cue filter actions for UTIL and PRE layers (#2050)
- 942ef70 [docs] Add nav_order management utilities for documentation (#2055)
- f6018c9 [rust/rqd] Trigger a kill_all_frames action when a host becomes nimby_locked (#2057)
- 5b2c8da Update Slack channel link in README (#2059)
- 0bf7e2c [cuegui/docs] Fix EnableJobInteraction setting type handling (#2060)
- 21bc549 [rust/rqd] Add OOM prevention logic with kill frame selection (#2064)
- 0e758f4 [rust/rqd] Version Up rust/rqd (#2066)
- 34f4fd8 [rust/rqd] Log OOM kill on rqd (#2067)
- 271e69a [cuenimby] Add Enhanced CueNimby System Tray with OpenCue Icons, Emoji Status, and Connectivity Awareness (#2061)
- c879f4e [cuenimby] Fix working icon description in documentation (#2070)
- 016ea06 Bump next-auth from 4.24.10 to 4.24.12 in /cueweb (#2068)
- 22c9cd9 Fix PyOutline package name typo in installation docs (#2071)
- fe9610b [cuebot] Update Dockerfile to use openjdk:18-ea-18-slim-bullseye image (#2074)
- a5827b8 [pycue] Remove six and unpin PyYaml (#2072)
- 1705100 [cuebot] DB optional env vars to streamline custom deployment (#2076)
- 90d2d17 [cuegui] Add error handling for gRPC connection failures in FrameMonitor (#2079)
- 648191d Bump glob from 10.4.5 to 10.5.0 in /cueweb (#2080)
- b5959bb Bump js-yaml in /cueweb (#2081)
- b00240b [pyoutline] Layer module cleanup (#2073)
- 7a15bed [Cuebot] Add booking show:facility exclusion list (#2087)
- 89ddcaf [cuebot] Only replace username once on PostJobs (#2088)
- 5e374a8 [rust/rqd] Add option to measure proc memory using PSS (#2089)
- fa916ff [docs] Move theme toggle (sun icon) into header (#2090)
- 8597e82 [docs] Fix theme toggle not displaying due to duplicate const declara… (#2092)
- 084506c [rust/rqd] Fix memory bug on OOM killed frames (#2093)
- 6d381df Bump jws from 3.2.2 to 3.2.3 in /cueweb (#2094)
- 64a133a [cueweb] Add CueWeb LDAP Authentication (#2096)
- dcf346c [cuegui] Fix CueJobMonitorTree not refreshing on property changes (#2100)
- c78ad97 [ci/cueweb/rest_gateway] Add Docker build jobs for cueweb and rest_gateway (#2098)
- 7372825 [ci/rust] Upgrade CI/CD macOS runners from macos-13 to macos-14 (#2099)
- e143627 [sandbox/docs/cueweb/rest_gateway] Add full stack sandbox deployment with CueWeb and REST Gateway (#2103)
- 9737ec5 Bump next from 14.2.32 to 14.2.35 in /cueweb (#2109)
- 74683bd [sandbox/rest_gateway] Fix Docker build compatibility for ARM64 and health checks (#2110)
- 5b8b02d [cuebot/pycue/proto/sandbox/docs] Add full event-driven monitoring stack, enhance metrics, dashboards, and documentation (#2086)
- 515b701 [rust/scheduler] Distributed Scheduler (#2104)
- 4f7e983 [scheduler/docs] Add docs for the new scheduler module (#2113)
- 2d2ce13 [rust] Add Copyright header on all rust files (#2114)
- 3599a1e [cuegui] Fix ETA calculation type error and UTF-8 decoding in FrameMonitorTree (#2119)
- ce61412 [cuegui] Fix layer tags validation to allow dashes and underscores (#2120)
- 8b39636 [RQD][FIX] Remove code duplication (#2123)
- b6633a3 docs: add Docker setup for building documentation (#2130)
- 9d7fafc [cueweb/docs] Update cueweb documentation with correct healthcheck using wget instead of curl (#2132)
- 081cbc1 Bump uri from 1.0.3 to 1.0.4 in /docs (#2135)
- 5519f7d [docs] Revert uri gem to 1.0.3 in Gemfile.lock (#2136)
- aba6471 [docs] Remove obsolete version attribute from docker-compose.yml (#2137)
- ce6a8ff [RQD][FIX] Fix hyperthreading cores reservation (#2124)
- b81ba27 [RQD][FIX] Skip os.chown for Windows (#2122)
- 624775b [RQD][FIX] Windows log rotation retries (#2121)
- 2a27f49 [cuebot/cuegui/pycue/rqd] Store PSS and MaxPSS (#2112)
- 55e4c98 [rust] Enforce home version to stay compatible with rust 187 (#2145)
- 71ef981 [rqd/cicd] Only build rqd crate when packaging rqd binary (#2149)
- 8ec37c7 [cuebot][FIX] Hardware tags update on Host restart (#2125)
- 01bd30d [pycue] Fix service timeout LLU getter (#2146)
- c4b0cac [cuegui/cuebot] Fix UI freeze on gRPC connection drops and add job unavailable notification (#2143)
- 453d6f4 [cuebot] Add scheduled subscription recalculation task (#2134)
- f926ca1 [rqd] Fix race condition for ultrafast frames (#2157)
- 94f26f3 [scheduler] Add job and layer envs to frame (#2161)
- b46e170 [scheduler] Fix datatype error on layer_dao (#2162)
- cafca69 [scheduler] Fix memory values on env vars (#2163)
- bda23e2 [docker/ci/docs] Introduce unified Docker Compose stack with core-only defaults, monitoring, and quick start documentation (#2166)
- 0435d35 [cuebot] Add spring-boot-starter-mail into gradle dependencies (#2156)
- 9f333ca [scheduler] Add hardware tags to rust scheduler (#2155)
- 777d05e [docs] Add 2026 project update news and automate nav_order management (#2154)
- b8396bb [ci/docs] Fix permission denied error in docs pipeline (#2170)
- 57234a2 [cuebot] Improve nimby retry logic (#2169)
- bad9191 [ci/docs] Fix docs pipeline build failure and path references (#2171)
- 69ad038 [cuegui] Add User Color sorting in Cuetopia job monitor (#2176)
- 35080d9 [docker] Remove prometheus exporter (#2179)
- a22f024 [Scheduler/Cuebot] Allow entire show migration to new scheduler (#2182)
- 0da9c5e [rust/rqd] Fix process cache and timeout feature (#2160)
- 9a0db7a [cuebot] Allow customizing the output_path for EmailSupport (#2153)
- 50c7a7a [scheduler] Improve scheduler metrics (#2178)
- e8d55d4 [Scheduler] Scope manual/hostname/hardware tag clusters to show and facility (#2188)
- f075786 [docs] Fix broken www.opencue.io links to use docs.opencue.io (#2197)
- 66783c4 [cuegui] Make job-not-found popup notification configurable, default off (#2199)
- f6ecd97 [scheduler] Fix race condition in multi-scheduler environments. (#2191)
- b9669ed [Cuebot] Fix stuck depend frames on transient failures (#2201)
- ec6fae9 [docs] Front page Design improvements (#2205)
- b5f90c1 [docker] Update docker compose with newer versions and add profiles (#2175)
- bfd92f2 [docs/docker/ci] Remove redundant sandbox compose files and update to named Docker volumes (#2208)
- 5e58c02 [docs] Fix docs content spacing (#2210)
- 5928e2d [rqd] Add CUE_HT env to hyperthreaded frames (#2207)
- 9cc2ef6 [pyoutline] Allow adding or overriding outline modules via environment variable (#2193)
- 6078c54 [Cuebot] Remove unused threadpool properties (#2204)
- 42a48ed [rqd] Fix available memory calculation error (#2211)
- 7e268fb [Cuebot] Fix possible race condition when updating host.int_mem_idle (#2217)
- eb5ed41 [cuebot] Recover lost dependencies (#2219)
- 51392d9 [scheduler] Fix single-threaded bug (#2220)
- ea033f6 [cuegui] fix max_cores bug (#2222)
- b1e1837 [cuebot] VirtualProc allows cores above predefined max (#2223)
- 0d9b7cb [cuenimby] Make CueGUI launch command and menu label configurable (#2232)
- 609c939 [cuenimby] Fix config file open and notifications on headless render nodes (#2234)
- 42a17d9 Update PULL_REQUEST_TEMPLATE.md (#2229)
- c08d809 [docs] Add ai-policy to developer-guide docs (#2228)
- b263931 [cuenimby] Fix CueNIMBY on headless Linux: editor, notifications, threading, frame info (#2237)
- 851d89b [scheduler] Fix memory_reserved divided by KIB instead of KB (#2241)
- 022f857 [docs] Add comprehensive documentation for PyOutline and PyCuerun (#2212)
- 2ba7434 [pyoutline/rqd] Add pycuerun entry point, fix CLI bugs, and improve sandbox support (#2215)
- 5e5914b [rqd] Add windows support (#2165)
- ee9af69 [scheduler] Add sentry tracing (#2242)
- 487a92b [rqd/cicd] Replace python/rqd by rust/rqd on docker stack (#2227)
- 0b850e3 [cuenimby] Load CueNIMBY default config from JSON file instead of hardcoding (#2244)
- f5fe0b1 [pycue/cuegui] Add external facility feature (#2248)
- a94e690 [cicd] Increase sonarqube memory (#2249)
- 8d306ac [scheduler] Allow jobs without an OS constraint to dispatch (#2246)
- a008061 [rqd] Add config option for default NIMBY lock at startup (#2247)
- 86b9164 [scheduler/cuebot] Bulk resource accounting (#2198)
- cc5c264 [scheduler] Add sqlx warnings as sentry events (#2250)