Skip to content

Latest commit

 

History

History
68 lines (56 loc) · 3.09 KB

File metadata and controls

68 lines (56 loc) · 3.09 KB

Changelog

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.

[2.0.0] - 2025-01-09

Added

  • Modular Architecture: Complete refactoring with clear separation of concerns
    • backend/ module: Abstract base class and concrete implementations
    • security/ module: Command validation and path sanitization utilities
    • fileops/ 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

Changed

  • BREAKING: Removed backward compatibility aliases (RemoteSandboxBackend, LocalSandboxBackend)
  • BREAKING: Renamed RemoteSandboxBackendHTTPSandboxBackend
  • BREAKING: Renamed LocalSandboxBackendLocalBackend
  • BREAKING: Removed WorkspaceSync class (functionality integrated into TarHandler and NoxRunnerClient)
  • Architecture: Client now directly uses TarHandler instead of WorkspaceSync wrapper
  • File Upload: Enhanced upload_files to properly handle subdirectory paths
  • Code Quality: Migrated from flake8/black to ruff for linting and formatting

Fixed

  • Fixed file synchronization in local sandbox mode
  • Fixed subdirectory handling in upload_files method
  • Fixed path traversal security issues in tar extraction
  • Fixed test failures in integration tests

Removed

  • noxrunner/backend.py (replaced by backend/base.py)
  • noxrunner/local_sandbox.py (replaced by backend/local.py)
  • noxrunner/remote_backend.py (replaced by backend/http.py)
  • noxrunner/fileops/workspace_sync.py (functionality integrated into client)
  • All backward compatibility aliases

Internal

  • Refactored code structure for better maintainability
  • Extracted common utilities into dedicated modules
  • Improved code organization and separation of concerns
  • Enhanced test coverage and documentation

[1.0.0] - 2024-01-04

Added

  • 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)

Project Background

  • Extracted from Agentsmith commercial platform
  • Client library and backend specification open-sourced
  • Local sandbox simulation mode added for development and POC purposes