pymutant-mcp 2026-03-10
Centralize runtime config, remove CI artifact uploads, and harden runner execution
21 files · 822+ · 218-

Centralize runtime configuration

3 files changed
  • config.py New module centralizing all PYMUTANT_* environment variable access and defaults
  • main.py Updated to use config module for project root resolution
  • profiles.py Profile resolution now uses config module for env access
  • Extracted all os.environ access for PYMUTANT_* variables into a dedicated config module decouple internal
    3 files
    • config.py
    • main.py
    • profiles.py

Harden runner execution and result loading

4 files changed
  • helpers.py Added output sanitization, path normalization, and expanded helper functions
  • api.py Added path normalization for selectors and improved empty-campaign handling
  • results.py Added retry logic for meta file JSON reads and filesystem-aware source file resolution
  • baseline.py Improved runtime state reset to remove entire mutants directory
  • Meta file reads now retry up to 3 times with delay to handle concurrent mutmut writes harden behavioral
    1 file
    • results.py
  • Source file resolution now checks filesystem paths instead of naive dot-to-slash conversion harden behavioral
    1 file
    • results.py
  • Runtime state reset now removes entire mutants directory via shutil.rmtree with fallback harden internal
    1 file
    • baseline.py

Remove CI artifact uploads and fix SPDX lint

3 files changed
  • ci.yml Removed all upload-artifact steps; kept local dist/ artifacts
  • release-readiness.yml Removed artifact upload steps and release dist upload
  • normalize_spdx_headers.py Fixed SPDX header detection to avoid false lint conflicts
  • Removed all GitHub Actions artifact upload steps from CI and release workflows baseline internal
    2 files
    • ci.yml
    • release-readiness.yml
  • Fixed SPDX header normalization to split literal strings avoiding self-detection remediate internal
    1 file
    • normalize_spdx_headers.py

Expand test coverage for new modules

3 files changed
  • test_config.py 58 lines testing config module env variable access
  • test_helpers.py Added 175 lines of new helper tests for output sanitization and path normalization
  • test_results_reporting.py Added 66 lines testing retry logic and filesystem source resolution
  • Added tests for config module, output sanitization, path normalization, and meta file retry qualify behavioral
    3 files
    • test_config.py
    • test_helpers.py
    • test_results_reporting.py