Skip to content

v0.5: Python SDK assertion alignment + release prep (Beta-2; closes v0.4.0 follow-up b)#9

Open
eriknewton wants to merge 1 commit into
mainfrom
v0.5-python-sdk-and-release-prep-2026-05-11
Open

v0.5: Python SDK assertion alignment + release prep (Beta-2; closes v0.4.0 follow-up b)#9
eriknewton wants to merge 1 commit into
mainfrom
v0.5-python-sdk-and-release-prep-2026-05-11

Conversation

@eriknewton

Copy link
Copy Markdown
Owner

Summary

What this PR ships

  • Version bump: pyproject.toml + concordia/init.py from 0.4.0 to 0.5.0
  • Error text alignment: Every validator raise in attestation.py and envelope.py
    now cites the relevant SPEC section (§11.5.5 relationship vocabulary,
    §11.5.6 required keys, §11.5.4 envelope references) for operator legibility
  • Schema URN: Emit side already at v0.5 (landed in Beta-1 schema files)
  • Forward-compat: Read side accepts both v0.4 and v0.5 shaped references;
    existing v0.4 callers continue working unchanged
  • CVE patches: Pygments 2.19.2->2.20.0 (CVE-2026-4539),
    python-multipart 0.0.26->0.0.27 (CVE-2026-42561)

What this PR does NOT ship

  • PyPI publish (Beta-3, separate PR, follows v0.4.0 release pattern)
  • Tag v0.5.0 (Beta-3)
  • GitHub Release (Beta-3)
  • Cross-language parity test against Sanctuary TS bridge (separate scope)

Tests added

  • tests/test_v05_error_text_alignment.py (6 tests): provoke each validator error,
    assert message contains "SPEC §11.5"
  • tests/test_v05_schema_urn_emit.py (3 tests): schema $id and package version
    carry v0.5
  • tests/test_v05_forward_compat_read.py (6 tests): v0.4 and v0.5 shaped
    references both validate; all types and relationships accepted
  • tests/test_v05_pyproject_version.py (1 test): pyproject.toml declares 0.5.0

Castle-walking test answer

Concordia is the Heralds layer (Castle Layer 4: Cryptographic Receipts and
Reputation). No Castle Layer 1 enforcement surface touched. This PR aligns
Python validators with an already-ratified spec; no new enforcement claims.

Hard-gate checklist

  1. pytest PASS (946/946)
  2. New tests exist and pass (16 new)
  3. pip-audit clean
  4. JSON Schemas validate against meta-schema
  5. Em-dash sweep: 0 in added lines
  6. Castle-walking test answered above
  7. Non-dependency: no Sanctuary or Verascore imports
  8. Implementation-lane: Verascore not governed
  9. Attribution: Erik Newton sole author, no CIMC
  10. Naming-discipline: composition partners named only as partners
  11. No retired claims (MLS/RFC 9420/UBAI): clean
  12. Test count: 930 -> 946 (+16)
  13. Commit attribution canonical

Flags / deviations

None.


Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

- pyproject.toml + __init__.py version bump 0.4.0 -> 0.5.0
- Validator error messages cite SPEC sections (attestation: SS11.5.5/SS11.5.6;
  envelope: SS11.5.4) for operator legibility
- requirements.lock: Pygments 2.19.2 -> 2.20.0 (CVE-2026-4539),
  python-multipart 0.0.26 -> 0.0.27 (CVE-2026-42561)
- 16 new tests: error text alignment, schema URN emit, forward-compat
  read (v0.4 + v0.5), pyproject version assertion
- 946 tests passing (930 baseline + 16 new), zero regressions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
eriknewton added a commit that referenced this pull request May 14, 2026
…nd guards, predicate opacity docs (#17)

Closes sweep findings #3, #8, #9, #10:

- #3: read-side schema accepts non-empty strings for reference type and relationship; emit vocabulary documented; non-canonical values warn.

- #8: DISPUTE_RESOLVED validator uses Draft202012Validator with FormatChecker; transaction_record_hash pattern enforced.

- #9: apply_dispute_resolved_to_attestation guards session match, agreement match, agreed state, and fulfillment-state preconditions.

- #10: predicate documented as opaque reference slot for v0.5.2; preservation tests added; standalone primitive deferred to v0.6.

Co-authored-by: Claude <noreply@anthropic.com>
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