Performance Optimization - History Logging was spawning a new tokio runtime every function call, it now uses the global run time
Documentation - Added a lot more span events for better logging
- Added comprehensive documentation:
- System Design Requirements (SDR)
- System Design Specification (SDS)
- API Reference
- User Stories & Use Cases
- Fixed minor UI issues related to double encoding
- Implemented version checking system with update notifications
- Integrated Git for fetching and downloading the latest version
- Added statistics updates
- Removed unused code across the project
- Condensed project structure
- Updated README
- Cleaned up UI
- Added row copy functionality (Ctrl+C)
- Improved row selection visual contrast
- Fixed data state issues when navigating between stages
Server Log tab
- Added new Server Log tab to the main application
- Implemented live filtering with wildcard support
- Enabled auto-refresh capability
Multiagent selector
- Added file loading support for device lists
git commit -m "feat: Multiple UI improvements and new server log functionality
- Add Server Log tab with DataTable display of server activity logs
- Fix keyboard navigation bug in agents tab
- Add execution history viewer for selected agents
- Improve policy tree widget functionality by adding single device operations
- Integrate logging notifications into TUI
- Add TextualNotificationHandler to setup.py
- Display ERROR/WARNING/CRITICAL logs as toast notifications
- Remove terminal output to prevent interference with TUI
- Logs still written to Loxide.log file
closes#45"
- Add Server Log tab with DataTable display of server activity logs
- Fix keyboard navigation bug in agents tab
- Add execution history viewer for selected agents
- Improve policy tree widget functionality by adding single device operations
- Integrate logging notifications into TUI
- Add TextualNotificationHandler to setup.py
- Display ERROR/WARNING/CRITICAL logs as toast notifications
- Remove terminal output to prevent interference with TUI
- Logs still written to Loxide.log file
closes#45
Features
Moved the init_tracer() function to an implementation in TelemetryConfig for cleaner main file
closes#43
Bug Fixes
Telemetry is now opt-in again. Due to changes in opentelemetry, this required a major overhaul of the telemetryconfig function.
closes#44
Security Vulnerabilities Patched
RUSTSEC-2025-0009 - Some AES functions may panic when overflow checking is enabled
RUSTSEC-2024-0336 - rustls::Connection::Common::complete_io could fall into an infinite loop based on network input
closes#47
Security Vulnerabilities Patched
RUSTSEC-2025-0009 - Some AES functions may panic when overflow checking is enabled
RUSTSEC-2024-0336 - rustls::Connection::Common::complete_io could fall into an infinite loop based on network input
- Add table editors for Policy Prep workflow
- 'Add to policy' remains a placeholder
- Apply planned tweaks:
- Replace ballot checkbox with ✓ for selection
- Relocate loading screen text to bottom:
'Building Path exclusions and publisher lists...
This may take a moment for large datasets.'
- Ensure interaction with all tables before allowing review steps
- Move excessive logging to debug level
- Add Step 0 to explain process before user begins
Notes:
Further discussion needed on enforcing table interaction before review.
1. Added compatibility check, LoxideLibs will now abort the entire program if OS is not linux or windows.
2. Changed the python data extraction compatibility layer, LoxideLibs was calling the extract data function twice, causing very slight overhead. I have now changed this so that the function returns a Struct that is now easily extractable via dot method notation.
Refactored Progress Bar to remove multiprogress bar and only draw one instance. #36 is still open and not fixed with this push, but I believe this is the way to fix the issue.
Also implemented an Arc Mutex on the progress bar so it can be controlled via different threads.
Changed date math so that the last date from the first response from the API is the minimum value for the progress bar. This gives true progress percentages from the first date to the last date on the last request. #36