v2026.02
🚀 What's Changed
- Migration to Nx monorepo and deprecation of polyrepo repositories
- Migration to Angular 20 and standalone components
- Offline support
- Removed dependencies pulled from remote sources
- Frontend retails functionality even on an isolated LAN network
- Stricter error logging
- Optimized dependencies
- Security updates
- Added skeleton loading screen
- Reworked and improved split view for training levels with a topology
- Topology can now be collapsed for better experience with text-heavy levels
- Fixed topology covering up the answer field
- Reworked file upload dialogue
- Improved home screen visuals
- Added client-side caching for endpoints serving mostly static data
- Improved visuals of training run stepper
- New topology component
- Improved looks
- Physics based
- Switches replaced with VLANs
- Optimized for large networks
- Embedded view for Guacamole connections
- Zoomable and draggable
- Improved context menu
- Guacamole now indicates its connection status
- Indicators for OS and SSH/GUI guacamoles capability
- Quick open connection with double-click
- Quick switch console tabs with CTRL+ALT+LEFT/RIGHT
- Pools changes
- In sandboxes table, relevant row action buttons are now clickable only when the sandbox is available
- In pools table, the current lock state is now signalled with an indicator
- Fixed the pool comment component edit button wrapping to next row
- Improved resource usage visualization component
- Fixed the ability to navigate to stage outputs of a sandbox when the sandbox is being cleaned up, preventing 404 error
- Dashboard changes
- Completely reworked progress visualization
- New appearance
- Smoother updates
- Improved trainee lag visualization
- Improved hover tooltip verbosity
- Better responsivity
- New filter and sort options
- Better zoom and drag controls
- Trainee pinning to the top of the list
- Filtering by level and by lag
- Level highlight on level hover in stepper
- New trainee selection in dashboard
- Fixes in score line and clustering charts
- Completely reworked progress visualization
- Improved sandbox allocation detail
- Stages organized into a carousel layout and fully reworked request detail component
- Fixed issue with logs scrolling to top on each refresh
- Logs now auto-scroll with new records when scrolled to the bottom and upon completion, the next stage is focused
- If no specific stage is selected for navigation, the last running/failed log is automatically focused
- Improved component for log text visualization
- Improved log update logic to prevent request flooding of the backend when backend hangs and to poll only when running
- Logs now fetch incrementally (see the Python backend section)
- Added options for
- Fullscreen
- Line wrap
- Copy contents
- Search
- Buttons now stay disabled while a request is processing to avoid accidental duplicated requests
- Improved time related displays across tables
- Added countdown table cell component for live time updates of time left in a training instance
- Added a reactive date table cell component which displays time on top of date when hovered
- Improved microservice error readability
- Fixed MITRE service error
- Guacamole connections now authenticate with OIDC
- Added height restriction for text areas
- Replaced Ansible icon with square alternative
- Added frontend YAML configuration validation with comprehensible error messages in browser console
- Removed code duplications and improved code abstraction
- Various internal improvements for contributor experience and code type safety
- Fixed infinite loading in command analysis visualization
- Minor unnoticeable fixes
🙌 Thanks to all contributors in this release:
Full Changelog: v1.1.0...v2.5.3