Skip to content

feat(csa): expose canonical configuration manifests - #110

Merged
isty2e merged 2 commits into
mainfrom
feat/csa-configuration-projection
Jul 28, 2026
Merged

feat(csa): expose canonical configuration manifests#110
isty2e merged 2 commits into
mainfrom
feat/csa-configuration-projection

Conversation

@isty2e

@isty2e isty2e commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

CSAOptimizer.from_space_defaults(...) resolves presets, space-derived components, and explicit overrides into the configuration that actually runs. This PR makes that resolved optimizer-side configuration available as stable, JSON-safe provenance.

  • add an immutable, versioned CSAConfigurationManifest with strict to_dict() / from_dict(), canonical JSON, and a SHA-256 content fingerprint
  • project exact built-in spaces, samplers, diversity metrics, operators, and every resolved CSA profile field through contract-owned encoders
  • require explicit CSAComponentDescriptor values for custom component occurrences and report all missing and unused semantic paths together
  • expose the three provenance artifacts through the supported population and advanced CSA facades
  • document persistence, custom descriptors, semantic paths, version axes, fingerprint limits, and checkpoint-restore guards

Contract boundaries

The manifest describes resolved optimizer configuration only. It does not serialize executable Python objects, runtime RNG state, checkpoints, problems, objectives, datasets, evaluators, dependency versions, or the execution environment.

Custom descriptors are caller assertions. Variopt validates and fingerprints their identifiers, versions, and JSON configuration, but matching descriptors are not proof that two custom implementations behave identically. The fingerprint is therefore a version-scoped identity for represented manifest data, not a complete run or reproducibility identity.

Manifest generation is read-only and remains outside optimization hot paths. random_state=None is represented as nondeterministic initialization without materializing an RNG snapshot.

Validation

  • uv run ruff check --fix --extend-select I,UP pyproject.toml src tests .github/scripts
  • uv run ruff format --check pyproject.toml src tests .github/scripts
  • uv run basedpyright src tests .github/scripts (0 errors, 0 warnings)
  • uv run pytest tests -q (1692 passed)
  • uv run --extra docs mkdocs build --strict
  • uv build --wheel
  • isolated installed-wheel base-surface smoke test
  • built-in and custom-component documentation examples executed directly

Closes #95

@isty2e
isty2e marked this pull request as ready for review July 28, 2026 13:52
@isty2e
isty2e merged commit 69e8967 into main Jul 28, 2026
8 checks passed
@isty2e
isty2e deleted the feat/csa-configuration-projection branch July 28, 2026 13:53
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.

Expose a canonical manifest for resolved optimizer configuration

1 participant