-
Notifications
You must be signed in to change notification settings - Fork 0
Develop #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
alvagante
wants to merge
25
commits into
main
Choose a base branch
from
develop
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Major enhancements: - Implemented API-based repository downloader for REST API endpoints - Reorganized repository configs into individual per-provider YAML files - Added codename resolution system for Ubuntu/Debian version mapping - Enhanced override validation framework for provider-specific configs - Implemented weekly version update automation with cron support - Added comprehensive testing for new features - Enhanced documentation with guides for repositories and automation Breaking changes: - Repository configuration structure changed from monolithic to per-provider files - Repository schema enhanced with API endpoint support Fixes: - Fixed API repository cache update logic - Improved codename resolution for Ubuntu/Debian - Enhanced path utilities for cross-platform compatibility
- Support multiple instances of same provider type (e.g., ollama_qwen3, ollama_deepseek) - Add provider type extraction from config or name prefix - Enhance provider validation with validate_provider_name() method - Add comprehensive multi-provider-guide.md documentation - Update configuration guide with multi-provider examples - Improve LLM provider manager initialization logic - Add quality score format option for automation - Add test sets and software lists for LLM comparison - Update schemas and CLI commands for better provider handling
- Implement RpmParser class for parsing RPM repository metadata (primary.xml) - Add support for DNF/YUM repositories with automatic decompression - Fix repository URL handling and metadata parsing issues - Enhance universal downloader with improved error handling - Add test script for RPM parser validation - Update repository configurations for better reliability - Add comprehensive documentation of repository fixes and implementation
- Add relevance scoring system for search results (exact match: 100, prefix: 50, contains: 25, description: 5) - Implement round-robin result interleaving for multi-repository diversity - Add deduplication of packages within each repository (same name+version) - Refactor search to apply limit at manager level for better efficiency - Fix cache entry data access (packages -> data attribute) - Improve search result quality and user experience
…ncements - Added saidata metadata section to schema 0.3 with model, generation_date, generation_time, test_date, and human_review_date fields - Enhanced generation engine to automatically inject metadata during saidata generation - Updated CLI commands (generate, update, batch) to pass model name for metadata tracking - Added saidata/ directory to .gitignore to prevent accidental commits - Updated devcontainer base image from Python 3.11-slim to Ubuntu 24.04 - Fixed git auto-commit hook to use --no-pager flag for git diff
…oviderdata integration - Added multi-provider testing strategy for testing apt, dnf, pip, gem, npm, brew, source, binary, script on same platform - Integrated saigen repository cache for package metadata discovery - Unified installation tool using providerdata commands instead of hardcoded provider-specific tools - Added provider extensibility - new providers automatically supported when providerdata added - Enhanced data models with provider field in Observation and PlatformResult - Added OS-specific override generation (default.yaml + os/version.yaml structure) - Added find_config_files system inspection tool - Added 7 new requirements (13-20) covering multi-provider, saigen integration, providerdata, and OS overrides - Updated design.md with detailed providerdata integration implementation - Updated requirements.md with comprehensive acceptance criteria
- Add Observation model for verification observations with provider field - Add PlatformResult model for platform-specific test results - Add VerificationState TypedDict for agent state management - Implement provider tracking (current_provider, provider_combinations, package_versions) - Add expected_dependencies dictionary for dependency validation - Create helper function create_initial_state() for state initialization - Update package exports in __init__.py files - Mark tasks 2 and 2.1 as complete in specification
- Add ContainerManager class for Docker lifecycle management - Add ContainerWrapper for container operations (exec, read_file, list_files) - Implement spawn_container context manager with automatic cleanup - Add platform-to-image mapping for 14 Linux distributions - Include comprehensive error handling and timeout support - Mark tasks 3 and 3.1 as complete in saitest specification
- Add FilesystemMonitor class for tracking installation changes - Implement baseline capture and change detection methods - Add service file and binary discovery methods - Include comprehensive test suite with 9 test cases - Mark task 4 complete in saitest specification
…rdata integration - Added ProviderCommandExecutor class for unified provider command execution - Integrated with sai's ProviderLoader and TemplateEngine for consistency - Implemented install and test command resolution with template substitution - Added comprehensive provider validation and error handling - Marked tasks 5 and 5.1 as complete in saitest specification
…ph integration - Created saitest/tools/package.py with install_package LangGraph tool - Integrated ProviderCommandExecutor, FilesystemMonitor, and ContainerManager - Returns structured observations for files, services, binaries, and packages - Added langchain-core dependency for LangGraph tool decorator - Comprehensive test suite in tests/saitest/tools/ - Updated CHANGELOG.md with implementation details - Marked task 6 as complete in saitest specification
- Add inspect_service tool for systemd service status checking - Add check_listening_ports tool for network port discovery - Add find_config_files tool for configuration file location - Export all system tools from saitest/tools/__init__.py - Mark task 7 as complete in saitest specification - Update CHANGELOG with system inspection tools implementation
…er support - Add RepositoryIntegration class for querying saigen repository cache - Implement provider discovery with repository data validation - Add multi-step command support in ProviderCommandExecutor - Export repository integration functions in utils __init__ - Update CHANGELOG with new features - Mark tasks 8 and 8.1 as complete in specification
…ation and LLM fallback
- Added platform_selection_agent for LangGraph workflow - Supports user-specified platforms or LLM-based selection - Generates platform-provider combinations for testing - Updated agents __init__.py to export new functions - Marked tasks 10 and 10.1 complete in specification - Updated CHANGELOG with platform selection agent details
…flow - Add installation_agent function for executing software installations - Integrate install_package tool with LLM for automated installation - Create Observation and PlatformResult objects from installation results - Implement get_next_combination for iterating through test combinations - Add comprehensive test suite with success, failure, and edge cases - Update package exports and mark task 11 complete in specification
…identification and confidence scoring
…a file generation - Add generation_agent() for creating default.yaml and OS-specific overrides - Implement write_saidata_files() for hierarchical directory structure - Add comprehensive test suite for generation agent - Update tasks.md marking tasks 13 and 13.1 as complete - Export generation agent functions in __init__.py
…orkflow orchestrator)
…, configuration, documentation, and testing - Implemented CLI with verify and test commands - Added run_verification() function as main workflow entry point - Created config.yaml with default settings - Added comprehensive documentation (README, architecture, CLI reference) - Created unit and integration test suites - Updated task completion status (tasks 16-22 marked complete)
- Add saitest to GitHub Actions workflows (build-and-test.yml, ci.yml) - Update build, install, and publish scripts to include saitest - Add saitest CLI entry point to root pyproject.toml - Fix circular import in saitest/core/__init__.py - Create test fixtures directory with mock data - Mark tasks 23 and 24 complete in saitest specification - Update CHANGELOG with integration details
- Added centralized logging configuration with structured logging and progress indicators - Enhanced all agents with comprehensive try-catch blocks and graceful error handling - Added timeout handling for Docker operations (pull, startup, filesystem scans) - Optimized filesystem monitoring with batch operations and configurable timeouts - Improved container management with better error recovery and cleanup - Added operation completion logging with duration tracking - Updated CLI with structured logging and optional log file output - Enhanced config.yaml with timeout settings for containers and filesystem - Added progress indicators for long-running operations - Updated CHANGELOG with saitest error handling improvements
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.