Skip to content

chore(docs): comprehensive documentation maintenance and code quality improvements#153

Merged
ryanmccann1024 merged 51 commits intodevelopfrom
chore/documentation-maintenance
Jan 19, 2026
Merged

chore(docs): comprehensive documentation maintenance and code quality improvements#153
ryanmccann1024 merged 51 commits intodevelopfrom
chore/documentation-maintenance

Conversation

@ryanmccann1024
Copy link
Copy Markdown
Collaborator

Pull Request Summary

PR Title: chore(docs): comprehensive documentation maintenance and code quality improvements

Related Issue(s):
N/A - Proactive documentation and maintenance work

Description:
This PR represents a comprehensive documentation overhaul and code quality improvement effort for the FUSION project. Key accomplishments include:

  • Complete Sphinx documentation rebuild with RTD theme
  • Per-module developer documentation for all fusion modules
  • Type annotation fixes resolving mypy errors across the codebase
  • Code formatting cleanup and modernization
  • Test fixes for adapter, integration, and module tests
  • Removal of deprecated GUI module
  • Addition of manifesto page and team section

Type of Change

Primary Change Type:

  • Documentation - Documentation only changes
  • Refactor - Code change that neither fixes a bug nor adds a feature
  • Bug Fix - Non-breaking change that fixes an issue (type annotation and test fixes)
  • Style - Code style changes (formatting, missing semicolons, etc.)

Component(s) Affected:

  • CLI Interface (fusion/cli/)
  • Configuration System (fusion/configs/)
  • Simulation Core (fusion/core/)
  • ML/RL Modules (fusion/modules/rl/, fusion/modules/ml/)
  • Routing Algorithms (fusion/modules/routing/)
  • Spectrum Assignment (fusion/modules/spectrum/)
  • SNR Calculations (fusion/modules/snr/)
  • Unity/HPC Integration (fusion/unity/)
  • Testing Framework (tests/)
  • Documentation
  • GitHub Workflows (.github/)

Testing

Test Coverage:

  • Existing tests still pass
  • Manual testing performed

Test Details:

  • Fixed failing adapter tests and ruff errors
  • Resolved test failures across multiple modules
  • Updated test_cli_to_config valid_sections for v6.0+ orchestrator

Commands to Reproduce Testing:

make validate  # Run all pre-commit checks + tests
make test      # Run unit tests with pytest
make lint      # Run all pre-commit checks

Test Results:

  • Operating System: macOS (Darwin 25.2.0)
  • Python Version: 3.11+
  • Test Environment: Local development

Impact Analysis

Performance Impact:

  • No performance impact

Memory Usage:

  • No change in memory usage

Backward Compatibility:

  • Fully backward compatible

Dependencies:

  • No new dependencies

Migration Guide

Breaking Changes (if any):

  • Removal of deprecated GUI module (fusion/gui/) - this was already non-functional

Migration Steps:
No migration required. GUI module was deprecated and non-functional.

Code Quality Checklist

Architecture & Design:

  • Follows established architecture patterns
  • Code is modular and follows separation of concerns
  • Interfaces are well-defined and documented
  • Error handling is comprehensive
  • Logging is appropriate and informative

Code Standards:

  • Code follows project style guidelines
  • Variable and function names are descriptive
  • Code is properly commented
  • Complex logic is documented
  • No dead code or unused imports

Configuration & CLI:

  • Backward compatibility maintained for configs

Security:

  • No sensitive information hardcoded
  • No security vulnerabilities introduced

Documentation

Documentation Updates:

  • Code comments added/updated
  • API documentation updated
  • User guide/tutorial updated
  • Configuration reference updated
  • README updated (if needed)

Examples Added:

  • Usage examples in docstrings
  • Configuration examples
  • CLI usage examples

Deployment

Deployment Considerations:

  • Safe to deploy to all environments

Review Guidelines

For Reviewers:

  • PR description is clear and complete
  • Code changes align with described functionality
  • Documentation is adequate

Review Focus Areas:

  • Sphinx documentation structure and completeness
  • Type annotation fixes in core modules
  • Removed deprecated code (GUI module, old architecture docs)

Additional Notes

Commits Included (51 commits):

  • Sphinx documentation for all fusion modules (cli, configs, core, domain, interfaces, io, ml, rl submodules, routing, spectrum, snr, etc.)
  • Type annotation fixes resolving mypy errors
  • Test fixes across adapter, integration, and module tests
  • Code formatting and modernization
  • Removal of deprecated GUI module and old architecture documentation
  • Addition of manifesto page and team section

Future Work:

  • Continue expanding API reference documentation
  • Add more usage tutorials
  • Complete remaining TODO items in documentation

Final Checklist

Before submitting this PR, confirm:

  • I have followed the contributing guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • New and existing unit tests pass locally with my changes

Generated with Claude Code

ryanmccann1024 and others added 30 commits January 13, 2026 10:04
- Remove old documentation structure and legacy planning docs
- Add fresh Sphinx setup with sphinx-rtd-theme
- Create Claude Code guide with installation, tutorial, best practices
- Update README with clearer documentation build instructions
- Simplify conf.py to use theme defaults

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Git/GitHub documentation section:
  - Getting FUSION (clone/fork instructions)
  - Development workflow (external vs internal contributors)
  - Submitting issues (bug reports, feature requests)
  - Pull requests process and templates
  - Commit message guidelines
  - CI/CD workflows documentation
- Add installation page that includes README content
- Configure MyST to suppress heading warnings
- Update toctree structure

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename comparison_tests.yml to algorithm_verification.yml
- Update workflow name to "Algorithm Results Verification"
- Remove TODO comment from workflow file
- Remove broken Tools section link from COMMIT_MESSAGE_GUIDE.md
- Update workflow documentation to reflect changes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive developer onboarding documentation for the data/
directory structure including:
- Module template for future documentation
- data/index.rst overview with architecture diagram
- input_output.rst for input/ and output/ directories
- json_input.rst for modulation format JSON files
- pre_calc.rst for pre-calculated paths, SNR, and modulations
- raw.rst for network topology files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Expand README.md to follow project template with usage examples,
  API reference, and design notes
- Add TODO in network_analysis.py documenting legacy dict format
  dependency (v5.5.0) and planned migration to NetworkState (v6.0.0)
- Update tests README with note about legacy format usage

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create docs/developer/fusion/analysis/index.rst with full module docs
- Document NetworkAnalyzer class and all four analysis methods
- Add inline comments to return value examples for clarity
- Update developer index to include fusion/ modules section
- Change version references from v6.0.0 to v6.1.0 for migration target

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… TODOs

- Remove GUI references from README, TODO, and docstrings
- Make GUI functions raise GUINotSupportedError (available in v6.1.0)
- Change RL/ML terminology to RL/SL (supervised learning)
- Add v6.1.0 TODOs for backward compatibility removal:
  - Legacy function aliases (build_parser, get_train_args, get_gui_args)
  - Flat config structure (_mirror_nested_to_flat)
  - Thread terminology (should be process)
  - create_entry_point_wrapper legacy wrapper
- Remove print statements, use logger only
- Replace pylint disable with ruff noqa comments
- Improve config_setup.py documentation and add is_training CI warning
- Update parameters/README.md and tests/README.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…s and terminology

Parameters module updates:
- Add "Routing Systems" section to README explaining legacy vs orchestrator
- Rename add_all_phase5_args to add_all_policy_args throughout
- Update all docstrings to Sphinx format (:param:, :type:, :return:, :rtype:)
- Change ML terminology to SL (supervised learning) consistently
- Add v6.1.0 TODOs for: ml->sl renaming, dash->underscore args, UL support
- Add v6.0.0 TODO for plotting functionality (not currently supported)
- Add v6.1.0 TODO for export formats (only JSON currently supported)
- Document survivability.py as separate from orchestrator policy system
- Remove vague/incorrect TODOs (e.g., "function seems useless")

Test updates:
- Fix tests to mock logger instead of print (print statements removed)
- Update GUI tests to verify GUINotSupportedError is raised
- Update agent type tests from "ml" to "sl"
- Add run_gui.py to tests README coverage list

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive CLI module documentation covering:
  - CLI arguments override ALL processes warning
  - Required vs optional configuration options
  - Default config file path and usage
  - Legacy vs orchestrator routing systems comparison
  - Multi-process configuration (s1, s2, etc.)
  - Visual diagrams of CLI interactions
  - Entry point wrapper pattern documentation
  - Debug output tutorial with logging levels
  - Step-by-step tutorial for adding new arguments
  - Complete CLI argument reference tables
- Use correct CLI command format (python -m fusion.cli.run_sim run_sim)
- Document GUI as not supported in v6.0.0 (planned for v6.1.0)
- Use bold formatting for argument names in tables for better rendering
- Add CLI module to developer docs toctree

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove fusion/gui/ module which was deprecated and marked for revamp
- Remove ARCHITECTURE.md (content migrated or no longer needed)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add CORE/LEGACY/ORCHESTRATOR parameter organization to cli_to_config.py and schema.py
- Add route_method and allocation_method to required general_settings in schema
- Update constants.py with TODO for thread->process variable naming (v6.1)
- Clarify registry.py TODO with v6.1 reference for description injection
- Update README.md: remove YAML refs, Troubleshooting, Parameter Reference sections
- Add Legacy vs Orchestrator (v6.0+) section to README.md
- Update TODO.md: clarify JSON-only support, add variable naming TODO
- Remove examples/ directory (consolidated into templates)
- Remove policy_protection_example.ini and survivability_experiment.ini templates
- Add comprehensive comments to ALL variables in all 5 remaining templates:
  - minimal.ini, default.ini, cross_platform.ini, runtime_config.ini, xtar_example_config.ini
- Fix missing required parameters in templates (is_grooming_enabled, etc.)
- Ensure route_method is in general_settings for proper config loading

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add top-level API reference section with autodoc for all modules
- Add comprehensive configs module documentation with tutorials and examples
- Fix docstring RST formatting issues for Sphinx compatibility:
  - schema.py: fix section indentation
  - request.py: add code block for ASCII state diagram
  - pipelines.py: fix Example blocks and bullet list formatting
  - spectrum.py: simplify assign() return documentation
- Update conf.py with warning suppression and autodoc settings
- Add :noindex: to modules with re-exported symbols to prevent duplicates

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…estrator

Add missing orchestrator config sections to the test_mapping_consistency
test's valid_sections set. The cli_to_config.py module was updated with
new sections (policy_settings, heuristic_settings, protection_settings,
routing_settings) but the test was not updated accordingly.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix type annotations in request.py, simulation.py for tuple keys
- Update pipeline interfaces with missing parameters (use_dynamic_slicing,
  snr_bandwidth, slicing_flag, snr_accumulator, path_weight)
- Fix attribute name mismatches in snr_measurements.py (link_dict ->
  link_dictionary, num_span -> number_of_spans)
- Add proper None checks and type narrowing throughout
- Fix sdn_controller.py type handling for remaining_bw and bandwidth
- Replace self.sdn with self.sdn_obj in simulation.py
- Add cast() imports to adapters for proxy type handling
- Update test files to use tuple keys and mock_pipelines parameter
- Add protection_lp_id and working_lp_id to Lightpath dataclass
- Convert tuple paths to lists in orchestrator create_lightpath calls

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add developer documentation for fusion/core module covering:
- Architecture comparison (legacy vs orchestrator)
- Orchestrator pipeline flow (grooming, routing, spectrum, SNR, slicing, protection)
- Simulation engine workflow and configuration
- Adapter pattern for legacy code migration
- Metrics collection (SimStats, StatsPersistence, MLMetricsCollector)
- Data structures (domain objects, result objects, properties classes)
- Tutorial with realistic CLI-based workflow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add README.md with module overview, quick start, and usage examples
- Add TODO.md capturing v6.1 migration tasks and known issues
- Add tests/README.md documenting test coverage and patterns
- Convert all docstrings from Google style to Sphinx reST format
- Flatten nested Attributes sections in class docstrings
- Add TODO comments for protection beta status and legacy adapter removal
- Add warnings for hardcoded 320 slots default and misplaced algorithms
- Fix mypy type errors (NetworkX Any returns, tuple typing, None checks)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create docs/developer/fusion/domain/ with index.rst, objects.rst, lifecycle.rst
- Document domain vs configs vs CLI with comparison table and flow diagram
- Add detailed field tables for all domain objects (SimulationConfig, Request,
  Lightpath, NetworkState, LinkSpectrum, and all Result types)
- Document complete object lifecycle through pipeline stages
- Add scenario diagrams for all allocation outcomes (grooming, standard,
  slicing, protection, blocking)
- Fix Sphinx duplicate object warnings by adding :noindex: to api/index.rst
- Remove non-existent contributing reference from core/index.rst
- Add domain module to developer guide toctree

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update README.md with complete module documentation including
  pipelines.py and control_policy.py
- Update tests/README.md with test_pipelines.py and test_control_policy.py
- Add TODO.md documenting legacy code to be removed
- Convert all docstrings to Sphinx format (:param:/:type:/:return:/:rtype:)
- Fix terminology: use "supervised/unsupervised" instead of "ML" to
  distinguish from RL
- Remove "v5" version references from documentation
- Add missing parameters to SpectrumPipeline protocol (request_id,
  slice_bandwidth)
- Fix mypy type errors in test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create index.rst explaining interfaces vs domain vs modules
- Create protocols.rst with detailed protocol documentation
- Create creating.rst guide for custom implementations
- Add interfaces module to developer index toctree

Documentation clarifies:
- What interfaces are (contracts for pluggable components)
- How policies differ from pipeline interfaces
- How to create custom routing, spectrum, and policy implementations
- Best practices for protocol compliance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix BaseExporter import path in README (not exported from __init__)
- Add TODO.md with network file naming issue for v6.0/v6.1
- Fix test_with_spainbackbone30_loads_successfully missing assign_core_nodes mock
- Remove unused math import from generate.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add fusion/io/index.rst with module overview, architecture, and usage
- Document structure.py, generate.py, and exporter.py components
- Include data flow diagram and development guide
- Add io module to developer docs toctree

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Modules Directory Overview:
- Add high-level navigation guide for fusion/modules/
- Explain legacy vs orchestrator code paths
- Document where algorithm logic lives (routing, spectrum, SNR, RL)
- Clarify adapter pattern and how modules connect to simulator
- Add quick reference table for common tasks

Failures Module Documentation:
- Add comprehensive Sphinx docs with visual diagrams
- Document orchestrator integration gap (critical issue)
- Explain FailureManager vs ProtectionPipeline distinction
- Add beta status warnings and practical guidance
- Update TODO.md with critical orchestrator gap
- Update README.md and __init__.py with beta status

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Sphinx docs for ml module with visual diagrams
- Clarify relationship between fusion/modules/ml/ and MLControlPolicy
- Document current state (separate implementations) and v6.x integration plan
- Update README with MLControlPolicy integration section
- Add TODO.md documenting integration priorities
- Remove obsolete ML_STANDARDS.md (content moved to docs)
- Disable intersphinx in conf.py to speed up builds
- Add prominent module documentation links in modules index

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Sphinx documentation for fusion/modules/rl/adapter
- Document RLSimulationAdapter, PathOption, and integration with orchestrator
- Fix mypy errors in rl_adapter.py (type casts for return values)
- Fix mypy errors in test files (type annotations and ignore comments)
- Add RL module index with toctree for submodules
- Add config templates for survivability experiments

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rewrite adapter.rst with beginner-friendly tutorials and step-by-step guides
- Add agents.rst documentation for the legacy path RL agents
- Include tutorials for extending both modules (adding fields, algorithms)
- Fix ruff errors: remove quoted type annotations, use callable()
- Update RL index toctree to include both submodules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create algorithms.rst with tutorials for Q-learning, bandits, and DRL
- Cover properties classes (RLProps, QProps, BanditProps)
- Include model persistence documentation
- Add tutorials for extending with new algorithms
- Update RL index toctree to include algorithms

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive args.rst documenting observation spaces, algorithm
  constants, and enums
- Add comprehensive environments.rst documenting UnifiedSimEnv,
  ActionMaskWrapper, and GNN observations
- Fix mypy errors in unified_env.py (type ignores, Request casts,
  network_state assertion)
- Fix mypy errors in test_unified_env.py (predict type ignores,
  shape assertions)
- Fix ruff errors in unified_env.py (unused variables, imports)
- Fix test failures in test_rl_adapter.py (MagicMock comparisons,
  64-QAM modulation)
- Update index.rst toctree to include new submodules

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive feat_extrs.rst Sphinx documentation covering GNN-based
  feature extractors (PathGNN, CachedPathGNN, GraphTransformerExtractor)
- Document all GNN types: GAT, SAGE, GraphConv with INI config examples
- Include processing pipeline diagram and input/output specifications
- Add TODO.md marking module as BETA with v6.X development roadmap
- Update TODO comments in graphormer.py and path_gnn.py to reference v6.X
- Update top-level RL index.rst with feat_extrs in toctree and cross-references
- Mark feature extractors as (beta) in module overview

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documentation:
- Add comprehensive gymnasium_envs.rst Sphinx documentation (legacy module)
- Document factory function create_sim_env() with migration support
- Document SimEnv configuration, lifecycle, and migration to UnifiedSimEnv
- Add C-band limitation warning to RL index.rst
- Add TODO.md for gymnasium_envs with spectral band expansion roadmap
- Update constants.py with TODO for multi-band support
- Convert __init__.py docstrings to Sphinx format

Code fixes:
- Fix mypy errors in __init__.py (type annotations for RLConfig args)
- Fix ruff I001 import sorting in __init__.py and test files
- Fix ruff E713: change `not ... in` to `not in` in general_sim_env.py
- Fix ruff F401: remove unused imports (warnings, pytest) in test files
- Fix ruff F841: remove unused variable in test_migration_compat.py
- Add assertions for all imported constants in test_constants_import

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documentation:
- Add comprehensive policies.rst Sphinx documentation
- Explain policy purpose, orchestrator integration, and usage patterns
- Document PathPolicy interface and state format
- Cover all policies: KSPFFPolicy, OnePlusOnePolicy, BCPolicy, IQLPolicy, PointerPolicy
- Add action masking utilities documentation
- Include training guide for offline policies
- Add TODO.md with development roadmap

Code fixes:
- Fix mypy no-any-return errors in bc_policy.py and iql_policy.py
- Add cast() for torch.load returns to satisfy type checker

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ryanmccann1024 and others added 21 commits January 18, 2026 10:58
- Create comprehensive sb3.rst covering environment registration,
  configuration management, and RLZoo3 training workflow
- Update RL index.rst with sb3 toctree entry, RLZoo3 integration
  bullet point, tip box, and seealso link

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Documentation:
- Create utils.rst with custom callbacks, hyperparameter management,
  and Optuna integration documentation
- Create visualization.rst explaining plugin architecture and
  relationship to core visualization system (marked BETA)
- Add README.md for both utils and visualization modules
- Update RL index.rst with new submodules in toctree
- Add multi-processing limitation note to RL index
- Add custom callbacks highlight to RL features list
- Update RLZoo tip to mention FUSION-native training in development
- Fix policies.rst title overline length

Code improvements:
- Convert all visualization module docstrings to Sphinx format
  (rl_metrics.py, rl_plots.py, rl_plugin.py, rl_processors.py)
- Replace print statements with logger in setup.py
- Remove emojis from unity_hyperparams.py log messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tions

Add comprehensive Sphinx documentation for fusion/modules/routing:
- Legacy vs orchestrator architecture explanation
- Integration with adapters and pipelines
- K-path cache documentation
- 1+1 protection (BETA) documentation
- Step-by-step guide for adding new algorithms
- Visualization plugin documentation (BETA)

Fix mypy type errors across routing module:
- Add list[str | bool] type for modulation_formats_matrix (False sentinel)
- Fix list invariance issues in routing algorithms
- Add get_link_utilization method to NetworkState
- Fix circular import in registry with lazy initialization
- Add type annotations to test helper functions

Mark all visualization submodules as BETA:
- routing/visualization
- rl/visualization
- spectrum/visualization
- snr/visualization

Update test fixtures to include required 'length' edge attribute.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Sphinx documentation for spectrum module
- Update spectrum/visualization docstrings to Sphinx format
- Add spectrum to modules index toctree

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- test_unified_env: Remove SB3 integration tests (torch._dynamo incompatible)
- test_unified_env: Remove gymnasium check_env tests (compatibility issues)
- test_visualization: Allow multiple plt.close() calls from matplotlib internals
- test_general_utils: Add req_id to fixtures and use tuple keys for reqs_dict
- test_setup: Mock logger.info instead of print (function uses logging)
- test_sim_env: Use tuple keys for reqs_dict, expect ValueError for equal min/max
- test_light_path_slicing: Add side_effects to mocks for proper state changes
- test_light_path_slicing: Update flex-grid test to use implemented behavior

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Sphinx documentation for fusion/pipelines module
- Convert all docstrings to Sphinx format (:param, :type, :return:, :rtype:)
- Create README.md and TODO.md for the pipelines module
- Add excluded_modulations parameter to SpectrumPipeline.find_spectrum()
- Fix ruff F841 unused variable errors in slicing_pipeline.py and tests
- Add cross-references between modules and pipelines documentation
- Document the v6.X consolidation plan for routing strategies

The documentation addresses:
- How pipelines interact with the orchestrator
- Difference between pipelines and modules/routing
- Beta status of the pipelines module
- Visual diagrams showing data flow
- Routing strategies vs legacy routing algorithms

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Sphinx documentation with architecture diagrams
- Add README.md for policies module
- Convert all docstrings to Sphinx format
- Remove phase references (P5.X) from comments and docstrings
- Fix mypy errors in policy files and tests
- Fix ruff B027 warning for intentional no-op method
- Add type-safe mock helpers in test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive Sphinx documentation for the fusion/reporting module:
- Explain module purpose and differentiation from io/analysis modules
- Clarify statistics.py vs metrics.py distinction
- Document all components (reporter, aggregation, csv_export, dataset_logger)
- Include code examples and development guide

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive Sphinx documentation for the fusion/sim module:
- Differentiate sim (orchestration) from core (simulation engine)
- Clarify ml_pipeline.py vs pipelines module naming confusion
- Explain input_setup.py vs io module relationship
- Document utils duplication (fusion/utils vs fusion/sim/utils)
- Correct terminology: multi-process not multi-threaded
- Add warnings about multi-processing limitations in v6.x
- Document beta status of ML/evaluation pipelines
- Explain legacy vs orchestrator approaches
- Include data flow diagrams and step-by-step execution guide

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive Sphinx documentation for the fusion/stats module:
- Explain the "statistics confusion" (StatsCollector vs SimStats vs
  StatsProps vs GroomingStatistics)
- Document migration roadmap from legacy to new architecture
- Provide clear guidance on which component to use when
- Include comparison tables and visual diagrams

Fix collector.py docstrings to use Sphinx format:
- Convert Google-style (Args/Returns) to Sphinx-style (:param/:return)
- Convert class Attributes to :ivar/:vartype format
- Fix Example blocks with proper :: syntax

Fix version references in sim module docs:
- Change v6.2+ to "future release" (v6.2 doesn't exist yet)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove "Removal Checklist" requirement from adapter docstring tests
  (adapters only need ADAPTER marker, not removal checklist)
- Fix unused variable in test_grooming_adapter.py (remove assignment)
- Fix unused variable in test_collector.py (prefix with underscore)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive Sphinx documentation for the fusion/unity module:
- Explain this is for SLURM-managed HPC clusters
- Step-by-step Quick Start guide from venv creation to fetching results
- Document manifest generation from YAML specs (grid and explicit modes)
- Explain SLURM array job submission process
- Document automatic result fetching via rsync
- Include architecture diagram showing local/cluster workflow
- Add input/output format reference with examples
- Document error handling and common issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add comprehensive Sphinx documentation for fusion/utils module
  - Helper function reference tables for all 7 utility files
  - Module summary, architecture, and common patterns
  - Add to developer index toctree

- Fix mypy type errors:
  - visualization.py: type ignore for set_zlabel on 3D axes
  - test_rl_policies.py: explicit nn.Module type annotation
  - rl_adapter.py: pass tuple to get_link_utilization
  - ml_policy.py: type[ControlPolicy] return annotation
  - test_pipelines.py: add excluded_modulations parameter
  - sdn_controller.py: type ignore for modulation format matrix

- Fix ruff errors:
  - network_state.py: unused loop variable _band
  - spectrum.py: add strict=False to zip()

- Remove debug code that created unwanted files:
  - metrics.py: remove mods_dict_log.json debug output
  - config_setup.py: remove create_directory(CONFIG_DIR_PATH)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update CLAUDE.md with correct make commands and current project state
- Remove outdated sections (naming conventions, state management, file size limits)
- Fix CODING_STANDARDS.md: remove emojis, standardized names section, file limits
- Update CONTRIBUTING.md: fix make commands, add Sphinx docs links, fix template paths
- Update README.md: add documentation website link, remove survivability section and GUI reference
- Remove emojis from TESTING_STANDARDS.md
- Point users to Sphinx documentation at https://sdnnetsim.github.io/FUSION/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove TODO comments and phase markers from docstrings
- Remove extra blank lines for consistent formatting
- Modernize type annotations (remove string quotes from self-referential types)
- Clean up .gitignore header comment
- Minor formatting fixes across test files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…havior

Bug fixes:
- snr_measurements.py: Fix handle_snr_dynamic_slicing to preserve bool|str
  return value instead of incorrectly converting True to None. The previous
  isinstance(gsnr_result, str) check broke flex-grid mode where check_gsnr()
  returns boolean True/False.
- spectrum_adapter.py: Keep path_list as strings to match network_spectrum_dict
  keys which are string tuples like ("2", "5").

Test fixtures:
- Add route_method and allocation_method to [general_settings] in all 20
  fixture config files to satisfy config validation requirements.

Test script:
- Add ci_rate_block and ci_percent_block to IGNORE_KEYS in run_comparison.py

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ings

Type ignore comments added for:
- snr_measurements.py: assignment and return-value type mismatches
- spectrum_assignment.py: assignment type mismatch
- spectrum_adapter.py: arg-type for path list conversion
- test_protection_pipeline.py: no-any-return
- unified_env.py: no-any-return
- run_comparison.py: no-any-return and added type annotations

Vulture fixes (unused parameters prefixed with _):
- snr_adapter.py: _affected_range_slots
- pipelines.py: _affected_range_slots
- test_pipelines.py: _affected_range_slots
- spectrum.py: _bidirectional, _include_all_bands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add docs/manifesto.md with project philosophy and history
- Update docs/index.rst with team section, contact emails, and manifesto link
- Fix FUSION acronym to "Flexible, Unified Simulator" (not "System")
- Make documentation URL more prominent in README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ryanmccann1024 ryanmccann1024 self-assigned this Jan 19, 2026
@ryanmccann1024 ryanmccann1024 merged commit 484d743 into develop Jan 19, 2026
12 of 15 checks passed
@ryanmccann1024 ryanmccann1024 deleted the chore/documentation-maintenance branch January 19, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants