All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Modular Architecture: Complete refactoring with clear separation of concerns
backend/module: Abstract base class and concrete implementationssecurity/module: Command validation and path sanitization utilitiesfileops/module: Tar archive handling utilities
- Unified Client Interface:
NoxRunnerClient.download_workspace()method for seamless file synchronization - Enhanced Security: Centralized security utilities (
CommandValidator,PathSanitizer) - Improved File Operations: Unified tar handling with security checks
- Comprehensive Test Coverage: 98+ unit tests and 30+ integration tests
- Ruff Integration: Migrated from flake8/black to ruff for code quality
- BREAKING: Removed backward compatibility aliases (
RemoteSandboxBackend,LocalSandboxBackend) - BREAKING: Renamed
RemoteSandboxBackend→HTTPSandboxBackend - BREAKING: Renamed
LocalSandboxBackend→LocalBackend - BREAKING: Removed
WorkspaceSyncclass (functionality integrated intoTarHandlerandNoxRunnerClient) - Architecture: Client now directly uses
TarHandlerinstead ofWorkspaceSyncwrapper - File Upload: Enhanced
upload_filesto properly handle subdirectory paths - Code Quality: Migrated from flake8/black to ruff for linting and formatting
- Fixed file synchronization in local sandbox mode
- Fixed subdirectory handling in
upload_filesmethod - Fixed path traversal security issues in tar extraction
- Fixed test failures in integration tests
noxrunner/backend.py(replaced bybackend/base.py)noxrunner/local_sandbox.py(replaced bybackend/local.py)noxrunner/remote_backend.py(replaced bybackend/http.py)noxrunner/fileops/workspace_sync.py(functionality integrated into client)- All backward compatibility aliases
- Refactored code structure for better maintainability
- Extracted common utilities into dedicated modules
- Improved code organization and separation of concerns
- Enhanced test coverage and documentation
- Initial release of NoxRunner
- Python client library with zero dependencies (standard library only)
- Complete API coverage for NoxRunner-compatible backends
- Shell command interface (
exec_shell()method) for natural command execution - Environment variable expansion support in shell commands (sh -c, bash -c, python -c, etc.)
- Command-line interface (CLI) tool
- Interactive shell mode
- Local sandbox mode for development and testing
- File upload/download support
- Comprehensive documentation
- Backend specification (SPECS.md)
- Extracted from Agentsmith commercial platform
- Client library and backend specification open-sourced
- Local sandbox simulation mode added for development and POC purposes