Merged
Conversation
4335174 to
7082809
Compare
f0f13d3 to
06bd53b
Compare
- Implement comprehensive commit message validation with detailed feedback - Add support for release branches in cross-platform pipeline - Update pylint workflow configuration - Remove deprecated slack notifications workflow 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…d forms - Replace markdown templates with structured YAML forms for better data collection - Add comprehensive bug report template with environment details - Create feature request template with clear requirements sections - Organize templates into dedicated directories for better maintainability - Add commit message guide for contributor reference 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add JSON schema validation for configuration files - Create configuration registry and profile management - Implement CLI argument to configuration mapping - Add configuration templates for common use cases - Migrate INI files from ini/ to fusion/configs/templates/ - Add comprehensive documentation for configuration system 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…gistry - Create centralized argument registry system for consistent parsing - Implement modular argument groups for reusability across commands - Add clean entry points that delegate to appropriate modules - Refactor config setup with proper path normalization - Add comprehensive argument modules for simulation, training, and analysis - Ensure all CLI components follow architectural best practices 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…cture - Add core properties module for centralized configuration - Refactor simulation pipeline for better modularity and error handling - Enhance training pipeline with improved agent type dispatch - Improve separation of concerns between CLI and business logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…nner - Update GUI runner to work with new CLI argument system - Enhance style argument processing for better customization - Improve process arguments and file pathing for button images - Add proper error handling and user feedback 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Fix environment reset issue in RL workflow runner - Enhance general utilities for better error handling - Improve modular structure alignment with new architecture 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ules - Fix duplicate processing and normalization issues in metrics module - Update import statements across core modules for new architecture - Resolve module path dependencies and circular import issues - Ensure compatibility with refactored package structure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…cture - Update import statements in visualization utilities - Fix module paths in plotting and Excel statistics - Add properties module for visualization configuration - Ensure compatibility with refactored fusion package structure 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ation - Update Architecture Plan v2 with one-week completion strategy - Enhance unity manifest generation for improved deployment - Document refactored CLI and configuration system approach 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update import statements across all test files for new package structure - Fix test modules for CLI, configuration, and core components - Resolve module path dependencies in test suite - Ensure all tests work with refactored fusion architecture - Maintain test coverage for critical functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
06bd53b to
f2edecd
Compare
- Create add_run_sim_args and register_run_sim_args functions in simulation_args.py - Add missing CLI arguments: snapshot_step, print_step, save_snapshots, save_step, save_start_end_slots, file_type, filter_mods - Fix import paths from non-existent run_sim_args module to simulation_args - Add legacy compatibility functions for removed argument modules - Ensure run_sim subcommand includes all required config, debug, and output arguments Fixes cross-platform compatibility tests that were failing due to ModuleNotFoundError. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
b72b329 to
e71629f
Compare
34830ce to
188c416
Compare
- Update run_comparison.py imports to use new CLI argument module structure - Fix test_get_start_time timing race condition by validating format instead of exact timestamps - Replace brittle time comparison with robust format validation for sim_start field Resolves test failures caused by CLI refactoring and eliminates flaky timing-dependent assertions. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
188c416 to
061fe56
Compare
Add comprehensive tooling for local development workflow that mirrors CI/CD pipeline checks, making it easier for developers to validate changes before submitting PRs. Changes include: - Makefile with convenient commands for validation, testing, and setup - setup.py for proper package installation and development workflow - tools/ directory with PR validation scripts and documentation - Local validation script that runs all CI/CD checks locally - Support for quick validation during development This enables developers to run 'make validate' to ensure their changes will pass GitHub Actions before submitting PRs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive tooling for local development workflow that mirrors CI/CD pipeline checks, making it easier for developers to validate changes before submitting PRs. Changes include: - Makefile with convenient commands for validation, testing, and setup - setup.py for proper package installation and development workflow - tools/ directory with PR validation scripts and documentation - Local validation script that runs all CI/CD checks locally - Support for quick validation during development This enables developers to run 'make validate' to ensure their changes will pass GitHub Actions before submitting PRs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
b17481d to
5dbfa6a
Compare
- Remove unnecessary else after raise in fusion/core/request.py - Fix __cause__ attribute access errors in fusion/cli/run_sim.py with proper hasattr checks and pylint disables - Move traceback import to module level in fusion/cli/run_sim.py - Fix callable comparison warnings in fusion/cli/config_setup.py by using 'is' instead of '==' - Change CLI argument defaults to None in simulation_args.py to properly defer to config file values - Update test expectations to match actual behavior (config file values when CLI args not provided) - Add validation check for empty nodes in generate_data.py - Remove unnecessary bandwidth validation call in network_simulator.py - Update cross_platform.ini template with simplified configuration 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Collaborator
Author
ryanmccann1024
commented
Aug 15, 2025
- Add TODOs for future custom error module implementation - Make exception catches more specific where possible - Extract helper functions to reduce load_config complexity - Improve error specificity in config processing - Add context for future error handling improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Update GitHub issue template URLs from SDON_simulator to FUSION - Expand CLI argument choices to match actual implementation options - Remove unimplemented GUI arguments - Add missing choices for modulation, routing, and ML algorithms 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
e3ba0bd to
043dcf0
Compare
This commit addresses multiple issues with comparison tests and improves code quality throughout the CLI configuration system. ## Configuration System Improvements ### Added Missing Parameters - Added XT-related parameters to snr_settings: beta, theta, xt_type, xt_noise, requested_xt, phi - Added simulation parameters: fixed_grid, pre_calc_mod_selection, max_segments - Added comprehensive RL/ML parameter support in OTHER_OPTIONS - Enhanced dictionary parameter parsing for requested_xt and phi alongside request_distribution ### Code Quality Fixes - Fixed pylint R1702 error (too many nested blocks) by extracting helper functions: - _convert_dict_params(): Handles dictionary parameter conversion - _process_cli_override(): Manages CLI argument overrides - Reduced nesting complexity from 7 to 5 levels ## Test Infrastructure ### Comparison Test Fixes - Fixed xtar_slicing_pff test by ensuring XT parameters are properly loaded - This enables XT-aware routing to calculate cross-talk weights instead of distance-based weights - Removed all debug statements from run_comparison.py for cleaner production code ### Unit Test Updates - Updated test_config_args.py to handle new config-only parameters - Added proper categorization for RL/ML, SNR/XT, and general simulation parameters - Prevents false test failures for parameters that don't need CLI equivalents ## Technical Impact - XT-aware routing simulations now work correctly with proper cross-talk calculations - Improved config parameter validation and type conversion - Better separation of concerns in configuration processing - Cleaner, more maintainable test code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Move data_scripts functionality to new io/ module structure - Create io/generate.py from data_scripts/generate_data.py - Create io/structure.py from data_scripts/structure_data.py - Add io/exporter.py with JSON and CSV export capabilities - Update all imports throughout codebase - Fix test mocks to use new module paths - Update documentation references - Add comprehensive tests for new exporter functionality - Fix pylint errors (unnecessary-pass, too-few-public-methods, redefined-builtin) This refactoring aligns with the modular architecture plan by consolidating data I/O functionality into a dedicated module. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit introduces a comprehensive interface layer for FUSION and resolves multiple pylint errors across the codebase. Interface Layer: - Add AbstractRouter, AbstractSpectrumAssigner, AbstractSNRMeasurer, and AbstractAgent interfaces in fusion/interfaces/ - Create factory module for dynamic algorithm instantiation - Update all algorithm implementations to inherit from new interfaces - Add comprehensive interface documentation Pylint Fixes: - Fix too-many-nested-blocks (R1702) in first_fit.py and last_fit.py by extracting nested logic into separate helper methods - Fix consider-using-enumerate (C0200) by replacing range(len()) with enumerate() in spectrum assignment modules - Remove unnecessary-pass statements (W0107) from interface methods that already have docstrings Testing: - Add comprehensive test suite for interface implementations - Add basic and integration tests for the new interface layer - Include test summary module for interface validation This refactoring improves code maintainability, enables easier algorithm swapping, and ensures consistent API across all modules. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…luation pipeline ## Phase 2: Core Decoupling & Simulation Pipeline ### New Features - **BatchRunner**: Comprehensive batch simulation orchestrator - Single and parallel execution support - Multiple Erlang load handling - Progress tracking and result aggregation - Configurable range parsing (e.g., "100-300", "300,600,900") - **EvaluationPipeline**: Complete evaluation workflow orchestrator - Model performance evaluation and comparison - Algorithm benchmarking with rankings - RL agent evaluation with episode statistics - Multi-format report generation (JSON, Excel, Markdown) ### Integration - Updated `run_simulation.py` to use BatchRunner while maintaining backward compatibility - Unity HPC scripts work seamlessly through existing CLI interface - CLI supports new parallel execution options ### Testing & Quality - Comprehensive test suites for both orchestrators (173 tests total) - Clean pylint compliance (9.98/10 rating) - Professional error handling and documentation - Placeholder implementations for future ML/RL integration ### Architecture Impact - Establishes modular orchestration layer per architecture plan - Separates simulation logic from execution orchestration - Foundation for remaining migration phases - Clean interfaces for pluggable algorithm modules 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Architecture Plan Phase 2 - Core Decoupling & Simulation Pipeline Implementation
refactor(interfaces): implement abstract interfaces and complete modular architecture migration
Refactor data_scripts to io module
- Fixed TypeError in cross-platform compatibility test - Changed create_input call to use proper parameter names (base_fp, engine_props) - Added default 'data' value for base_fp parameter 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added thread_num, date, and sim_start fields to sim_params - Fixes KeyError in cross-platform CI tests - Uses default values when fields are not present in config 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Create multiprocessing.Event stop_flag when not provided - Fixes AttributeError in cross-platform CI tests - Ensures SimulationEngine has required stop_flag for proper execution 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- Added 'seeds' parameter to engine_props (defaults to None) - Removed Unicode emojis from error messages to fix Windows encoding - Fixes KeyError and UnicodeEncodeError in cross-platform CI tests 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
arashr88
approved these changes
Sep 7, 2025
Collaborator
arashr88
left a comment
There was a problem hiding this comment.
Great work @ryanmccann1024!
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
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.
📋 Pull Request Summary
PR Title: refactor(cli): implement modular CLI architecture with comprehensive configuration system
Related Issue(s):
Description:
This PR implements a comprehensive refactoring of the CLI architecture to support modular design patterns and improved configuration management. The refactor includes:
🔧 Type of Change
Primary Change Type:
Component(s) Affected:
fusion/cli/)fusion/configs/)fusion/core/)fusion/modules/rl/,fusion/modules/ml/)fusion/modules/routing/)fusion/modules/spectrum/)fusion/modules/snr/)fusion/visualization/)fusion/gui/)fusion/unity/)tests/).github/)🧪 Testing
Test Coverage:
Test Details:
All test files have been updated to work with the new modular architecture. Key testing areas include:
Test Configuration Used:
Commands to Reproduce Testing:
Test Results:
📊 Impact Analysis
Performance Impact:
Memory Usage:
Backward Compatibility:
Dependencies:
🔄 Migration Guide
Breaking Changes (if any):
fusion.cli.argsinstead of top-level imports)--config_pathparameterMigration Steps:
fusion.cli.*,fusion.core.*, etc.)Before/After Examples:
✅ Code Quality Checklist
Architecture & Design:
Code Standards:
Configuration & CLI:
Security:
📚 Documentation
Documentation Updates:
Examples Added:
🚀 Deployment
Deployment Considerations:
Manual Steps Required:
No manual steps required for deployment.
🔍 Review Guidelines
For Reviewers:
Review Focus Areas:
📝 Additional Notes
This refactor represents a significant architectural improvement that establishes a foundation for future development. The modular design makes the codebase more maintainable and extensible.
Open Questions:
Future Work:
Related PRs:
This PR consolidates work from multiple feature branches and sets the foundation for future modular enhancements.
🏁 Final Checklist
Before submitting this PR, confirm: