Skip to content

Add the CSA configuration manifest schema - #109

Merged
isty2e merged 1 commit into
mainfrom
feat/csa-configuration-manifest-schema
Jul 28, 2026
Merged

Add the CSA configuration manifest schema#109
isty2e merged 1 commit into
mainfrom
feat/csa-configuration-manifest-schema

Conversation

@isty2e

@isty2e isty2e commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • add immutable CSAConfigurationManifest and CSAComponentDescriptor value objects
  • define strict versioned to_dict() and from_dict() contracts
  • provide deterministic canonical JSON and a version-scoped SHA-256 fingerprint
  • preserve exact JSON semantics, including boolean/integer distinctions, negative zero, sequence order, and Unicode code points
  • reject non-finite values, invalid UTF-8, cycles, excessive nesting, unknown fields, and unsupported manifest versions at ingress

Why

Issue #95 requires a stable description of the resolved CSA configuration for provenance, cache keys, and checkpoint guards. This PR establishes the data artifact and serialization contract first, without coupling it to runtime state or executable reconstruction.

Caller-owned containers are snapshotted into a recursively immutable representation. Returned dictionaries are defensive copies, so later mutation cannot change equality, canonical JSON, or fingerprints. Custom component descriptors carry explicit custom provenance and cannot use the reserved variopt identifier namespace.

This PR intentionally does not project CSAOptimizer instances or publish these symbols through the higher-level CSA and population facades. Those changes will follow after the schema contract is established.

Refs #95

Validation

  • uv run pytest tests/csa/test_csa_configuration_manifest.py -q (47 passed)
  • uv run pytest tests -q (1655 passed)
  • uv run basedpyright src tests .github/scripts
  • repository-wide Ruff check and format gates
  • uv run mkdocs build --strict
  • targeted tests on Python 3.10 and 3.13

@isty2e
isty2e merged commit 2152fed into main Jul 28, 2026
8 checks passed
@isty2e
isty2e deleted the feat/csa-configuration-manifest-schema branch July 28, 2026 09:29
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.

1 participant