matrixscroll 0.4.1__tar.gz → 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/CHANGELOG.md +16 -0
  2. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/PKG-INFO +29 -16
  3. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/README.md +27 -14
  4. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ADOPTER_KIT.md +3 -3
  5. matrixscroll-0.4.2/docs/CRYPTO_BACKEND.md +48 -0
  6. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/FIVE_MINUTES.md +2 -2
  7. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ROADMAP_2026-07.md +2 -2
  8. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SECURITY_PROPERTIES.md +11 -1
  9. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SOFTWARE_PRODUCTS.md +3 -3
  10. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/WHITEPAPER.md +4 -4
  11. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/PLATFORM_PIVOT.md +3 -3
  12. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/SSX360_SCROLL.md +1 -1
  13. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/hardware-provider.md +1 -1
  14. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-agent.md +1 -1
  15. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-claude-code.md +1 -1
  16. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-git.md +4 -4
  17. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-mcp.md +2 -2
  18. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/ci/protected-branch.yml +3 -3
  19. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/__init__.py +1 -1
  20. matrixscroll-0.4.2/matrixscroll/crypto_backend.py +99 -0
  21. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/gate.py +3 -2
  22. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/emulated.py +15 -16
  23. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/registry.py +3 -6
  24. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/se050_transport.py +9 -10
  25. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/tpm.py +13 -17
  26. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/rekor_publish.py +2 -2
  27. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/pyproject.toml +2 -2
  28. matrixscroll-0.4.2/tests/test_crypto_backend.py +50 -0
  29. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/.gitignore +0 -0
  30. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/CONTRIBUTING.md +0 -0
  31. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/LICENSE +0 -0
  32. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/SECURITY.md +0 -0
  33. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/SPEC.md +0 -0
  34. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/controls/agentic_ai_controls.json +0 -0
  35. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ADOPTION.md +0 -0
  36. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/AGENTIC_AI_SECURITY.md +0 -0
  37. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/CI_HARD_GATE.md +0 -0
  38. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
  39. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/COMPARISON.md +0 -0
  40. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/HERO_DEMO.md +0 -0
  41. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SE050_POC_SCOPE.md +0 -0
  42. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SE050_USB_PROTOCOL.md +0 -0
  43. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/SCROLL_GATE_V2.md +0 -0
  44. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/delegation-attestation-rfc.md +0 -0
  45. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/registries-guide.md +0 -0
  46. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/rekor-guac-bridge-design.md +0 -0
  47. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
  48. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
  49. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
  50. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/yubikey-bridge.md +0 -0
  51. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/yubikey-smoke.md +0 -0
  52. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/agentic_ai_evidence_manifest.json +0 -0
  53. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
  54. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/commit-envelope.json +0 -0
  55. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/commit-envelope.signed.json +0 -0
  56. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/agent-commit-demo.sh +0 -0
  57. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/generate_signed_examples.py +0 -0
  58. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/hero-self-attestation-demo.sh +0 -0
  59. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/release-manifest.json +0 -0
  60. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/release-manifest.signed.json +0 -0
  61. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/trusted-keys-policy.json +0 -0
  62. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_claim.py +0 -0
  63. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_core.py +0 -0
  64. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_payment.py +0 -0
  65. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/canonical.py +0 -0
  66. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cli.py +0 -0
  67. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cloud/__init__.py +0 -0
  68. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cloud/client.py +0 -0
  69. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/constants.py +0 -0
  70. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/errors.py +0 -0
  71. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/git.py +0 -0
  72. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/guac_export.py +0 -0
  73. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/hooks/post-commit +0 -0
  74. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/hooks/pre-push +0 -0
  75. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/manifest.py +0 -0
  76. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/mcp.py +0 -0
  77. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/mcp_core.py +0 -0
  78. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/policy.py +0 -0
  79. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/provenance/__init__.py +0 -0
  80. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/provenance/actions.py +0 -0
  81. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/__init__.py +0 -0
  82. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/base.py +0 -0
  83. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/hardware.py +0 -0
  84. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/yubikey.py +0 -0
  85. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/py.typed +0 -0
  86. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/scroll/README.md +0 -0
  87. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/scroll/__init__.py +0 -0
  88. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/action-envelope.v1.json +0 -0
  89. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/commit-envelope.v1.json +0 -0
  90. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/evidence-pack.v1.json +0 -0
  91. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/release-manifest.v1.json +0 -0
  92. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/__init__.py +0 -0
  93. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/fixtures/github-gpgsig-commit.txt +0 -0
  94. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_agentic_guidance.py +0 -0
  95. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_canonical.py +0 -0
  96. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_cli.py +0 -0
  97. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_core.py +0 -0
  98. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_gate.py +0 -0
  99. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_git_envelope.py +0 -0
  100. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_guac_rekor.py +0 -0
  101. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_mcp_core.py +0 -0
  102. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_mcp_server.py +0 -0
  103. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_policy.py +0 -0
  104. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_provenance.py +0 -0
  105. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_release_metadata.py +0 -0
  106. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_se050_transport.py +0 -0
  107. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_security_properties.py +0 -0
  108. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_tpm_provider.py +0 -0
  109. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_vectors.py +0 -0
  110. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_yubikey_provider.py +0 -0
  111. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/README.md +0 -0
  112. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/_fixture_key.json +0 -0
  113. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/_generate.py +0 -0
  114. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_algorithm.json +0 -0
  115. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_device_id.json +0 -0
  116. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_field.json +0 -0
  117. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_nested.json +0 -0
  118. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_public_key.json +0 -0
  119. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_schema.json +0 -0
  120. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_signature.json +0 -0
  121. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/unsigned_empty_block.json +0 -0
  122. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/unsigned_no_block.json +0 -0
  123. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_commit_envelope.json +0 -0
  124. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_nested.json +0 -0
  125. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_simple.json +0 -0
  126. {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_unicode.json +0 -0
@@ -4,6 +4,22 @@ All notable changes to the Matrix Scroll Python SDK are documented here. The
4
4
  format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
5
5
  this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.4.2] - 2026-06-29
8
+
9
+ Crypto backend consolidation (middle path).
10
+
11
+ ### Changed
12
+ - **`matrixscroll.crypto_backend`** — all Ed25519 sign/verify/keygen and
13
+ security-relevant SHA-256 hashing route through the `cryptography` package
14
+ (native wheels; no user Rust toolchain).
15
+ - **Dependency** — `cryptography>=42.0` is now required (was `>=41.0`).
16
+ - **Docs** — `docs/CRYPTO_BACKEND.md`, README security note, SECURITY_PROPERTIES
17
+ backend section.
18
+
19
+ ### Removed
20
+ - Scattered direct `cryptography` / `hashlib` calls in providers and gate paths
21
+ in favor of the centralized backend module (Git SHA-1 wire hashing unchanged).
22
+
7
23
  ## [0.4.1] - 2026-06-29
8
24
 
9
25
  Universal provenance SDK expansion and SSX360 Scroll Phase 1 wrapper.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrixscroll
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: Signed provenance for agent-assisted Git commits with offline verification; emulated Ed25519 ships today and the SE050 hardware path remains an optional preview.
5
5
  Project-URL: Homepage, https://ssx360.com
6
6
  Project-URL: Documentation, https://ssx360.com/docs
@@ -38,7 +38,7 @@ Classifier: Topic :: Security :: Cryptography
38
38
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
39
39
  Classifier: Typing :: Typed
40
40
  Requires-Python: >=3.10
41
- Requires-Dist: cryptography>=41.0
41
+ Requires-Dist: cryptography>=42.0
42
42
  Provides-Extra: dev
43
43
  Requires-Dist: build>=1.0; extra == 'dev'
44
44
  Requires-Dist: hypothesis>=6.100; extra == 'dev'
@@ -60,7 +60,7 @@ Description-Content-Type: text/markdown
60
60
  [![Scroll Gate v2 (hosted)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
61
61
  [![codecov](https://codecov.io/gh/SSX360/matrixscroll/graph/badge.svg)](https://codecov.io/gh/SSX360/matrixscroll)
62
62
 
63
- **112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
63
+ **123 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
64
64
 
65
65
  **Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
66
66
  **universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
@@ -68,6 +68,10 @@ IaC changes, DB migrations, API calls, and smart-contract deploys — verified
68
68
  offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
69
69
  upgrade; emulated mode ships today.
70
70
 
71
+ **TAM wedge (honest):** Layer 2 universal provenance SDK ($50–200M) · Layer 3 SSX360 Scroll
72
+ governance on Git ($200M–1B) · Scroll Gate CI ($50–150M) · Python-first ML/agent
73
+ ecosystem via `pip install matrixscroll`.
74
+
71
75
  **Hosted control plane:** identity, billing, and device confirmation live at
72
76
  [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
73
77
  [book a provenance pilot](https://ssx360.com/contact?intent=pilot);
@@ -100,7 +104,7 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
100
104
  ```
101
105
 
102
106
  ```bash
103
- pip install "matrixscroll[mcp]==0.4.1"
107
+ pip install "matrixscroll[mcp]==0.4.2"
104
108
  matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
105
109
  ```
106
110
 
@@ -111,7 +115,7 @@ matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
111
115
  ## Also available — CLI & hooks
112
116
 
113
117
  ```bash
114
- pip install "matrixscroll==0.4.1"
118
+ pip install "matrixscroll==0.4.2"
115
119
  matrixscroll hook-install
116
120
  export MATRIXSCROLL_ACTOR_TYPE=agent
117
121
  export MATRIXSCROLL_TOOL=agent-runner
@@ -175,7 +179,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
175
179
 
176
180
  ## Honest limits
177
181
 
178
- - Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
182
+ - Shipping now: PyPI `matrixscroll==0.4.2`, Git post-commit hooks,
179
183
  `matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
180
184
  `matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
181
185
  verifier, the GitHub Action, and a USB CDC host transport preview for the
@@ -221,7 +225,7 @@ alongside your existing scanners, branch protection, and build attestations.
221
225
  ## Quickstart (CLI)
222
226
 
223
227
  ```bash
224
- pip install "matrixscroll==0.4.1"
228
+ pip install "matrixscroll==0.4.2"
225
229
  matrixscroll hook-install
226
230
  matrixscroll hook-status
227
231
 
@@ -248,7 +252,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
248
252
  head-ref: ${{ github.event.pull_request.head.sha }}
249
253
  base-ref: ${{ github.event.pull_request.base.sha }}
250
254
  source: notes
251
- matrixscroll-version: "0.4.1"
255
+ matrixscroll-version: "0.4.2"
252
256
  require-mode: emulated
253
257
  ```
254
258
 
@@ -268,7 +272,7 @@ git push origin refs/notes/matrixscroll
268
272
  head-ref: ${{ github.event.pull_request.head.sha }}
269
273
  base-ref: ${{ github.event.pull_request.base.sha }}
270
274
  source: notes
271
- matrixscroll-version: "0.4.1"
275
+ matrixscroll-version: "0.4.2"
272
276
  summary-output: provenance-summary.json
273
277
  ```
274
278
 
@@ -276,7 +280,15 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
276
280
  [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
277
281
 
278
282
  The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
279
- are available in the `0.2.x` line; the examples in this README pin `0.3.0`.
283
+ ship in the current release line; examples in this README pin `0.4.2`.
284
+
285
+ ## Security: Ed25519 via cryptography
286
+
287
+ Ed25519 signing, verification, and key generation use the [`cryptography`](https://pypi.org/project/cryptography/)
288
+ package (required dependency, `>=42.0`). Official wheels ship native crypto
289
+ backends (OpenSSL + Rust components) — no Rust toolchain for users. All
290
+ primitives are centralized in `matrixscroll/crypto_backend.py`; see
291
+ [`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
280
292
 
281
293
  ## Why it is different from Sigstore
282
294
 
@@ -291,21 +303,22 @@ when they preserve the same pure Ed25519 byte contract.
291
303
 
292
304
  ## Public proof links
293
305
 
294
- - Browser verifier: <https://matrixscroll.com/verify/>
295
- - Compare page: <https://matrixscroll.com/compare/>
306
+ - Browser verifier: <https://ssx360.com/verify>
307
+ - Compare page: <https://ssx360.com/compare>
308
+ - Documentation: <https://ssx360.com/docs>
296
309
  - Specification: [`SPEC.md`](SPEC.md)
297
310
  - Commit envelope schema: [`schemas/commit-envelope.v1.json`](schemas/commit-envelope.v1.json)
298
311
  - Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
299
312
  - Conformance vectors: [`vectors/`](vectors/)
300
313
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
301
314
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
302
- - Site: <https://matrixscroll.com>
315
+ - Site: <https://ssx360.com/docs> (matrixscroll.com redirects here)
303
316
  - Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
304
317
 
305
318
  ## Python API
306
319
 
307
320
  ```bash
308
- pip install "matrixscroll==0.4.1"
321
+ pip install "matrixscroll==0.4.2"
309
322
  ```
310
323
 
311
324
  ```python
@@ -415,7 +428,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
415
428
  Install and register in Cursor / Claude Desktop / VS Code:
416
429
 
417
430
  ```bash
418
- pip install "matrixscroll[mcp]==0.4.1"
431
+ pip install "matrixscroll[mcp]==0.4.2"
419
432
  matrixscroll-mcp # stdio
420
433
  ```
421
434
 
@@ -435,5 +448,5 @@ Report vulnerabilities privately to
435
448
 
436
449
  ---
437
450
 
438
- **Protocol:** https://matrixscroll.com · **Verify:** https://matrixscroll.com/verify/
451
+ **Protocol:** https://ssx360.com/docs · **Verify:** https://ssx360.com/verify
439
452
  **Control plane:** https://ssx360.com · **Pilot:** mission@ssx360.com · **Sign in:** https://ssx360.com/signup
@@ -4,7 +4,7 @@
4
4
  [![Scroll Gate v2 (hosted)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml/badge.svg)](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
5
5
  [![codecov](https://codecov.io/gh/SSX360/matrixscroll/graph/badge.svg)](https://codecov.io/gh/SSX360/matrixscroll)
6
6
 
7
- **112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
7
+ **123 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
8
8
 
9
9
  **Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
10
10
  **universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
@@ -12,6 +12,10 @@ IaC changes, DB migrations, API calls, and smart-contract deploys — verified
12
12
  offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
13
13
  upgrade; emulated mode ships today.
14
14
 
15
+ **TAM wedge (honest):** Layer 2 universal provenance SDK ($50–200M) · Layer 3 SSX360 Scroll
16
+ governance on Git ($200M–1B) · Scroll Gate CI ($50–150M) · Python-first ML/agent
17
+ ecosystem via `pip install matrixscroll`.
18
+
15
19
  **Hosted control plane:** identity, billing, and device confirmation live at
16
20
  [ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
17
21
  [book a provenance pilot](https://ssx360.com/contact?intent=pilot);
@@ -44,7 +48,7 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
44
48
  ```
45
49
 
46
50
  ```bash
47
- pip install "matrixscroll[mcp]==0.4.1"
51
+ pip install "matrixscroll[mcp]==0.4.2"
48
52
  matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
49
53
  ```
50
54
 
@@ -55,7 +59,7 @@ matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
55
59
  ## Also available — CLI & hooks
56
60
 
57
61
  ```bash
58
- pip install "matrixscroll==0.4.1"
62
+ pip install "matrixscroll==0.4.2"
59
63
  matrixscroll hook-install
60
64
  export MATRIXSCROLL_ACTOR_TYPE=agent
61
65
  export MATRIXSCROLL_TOOL=agent-runner
@@ -119,7 +123,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
119
123
 
120
124
  ## Honest limits
121
125
 
122
- - Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
126
+ - Shipping now: PyPI `matrixscroll==0.4.2`, Git post-commit hooks,
123
127
  `matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
124
128
  `matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
125
129
  verifier, the GitHub Action, and a USB CDC host transport preview for the
@@ -165,7 +169,7 @@ alongside your existing scanners, branch protection, and build attestations.
165
169
  ## Quickstart (CLI)
166
170
 
167
171
  ```bash
168
- pip install "matrixscroll==0.4.1"
172
+ pip install "matrixscroll==0.4.2"
169
173
  matrixscroll hook-install
170
174
  matrixscroll hook-status
171
175
 
@@ -192,7 +196,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
192
196
  head-ref: ${{ github.event.pull_request.head.sha }}
193
197
  base-ref: ${{ github.event.pull_request.base.sha }}
194
198
  source: notes
195
- matrixscroll-version: "0.4.1"
199
+ matrixscroll-version: "0.4.2"
196
200
  require-mode: emulated
197
201
  ```
198
202
 
@@ -212,7 +216,7 @@ git push origin refs/notes/matrixscroll
212
216
  head-ref: ${{ github.event.pull_request.head.sha }}
213
217
  base-ref: ${{ github.event.pull_request.base.sha }}
214
218
  source: notes
215
- matrixscroll-version: "0.4.1"
219
+ matrixscroll-version: "0.4.2"
216
220
  summary-output: provenance-summary.json
217
221
  ```
218
222
 
@@ -220,7 +224,15 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
220
224
  [`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
221
225
 
222
226
  The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
223
- are available in the `0.2.x` line; the examples in this README pin `0.3.0`.
227
+ ship in the current release line; examples in this README pin `0.4.2`.
228
+
229
+ ## Security: Ed25519 via cryptography
230
+
231
+ Ed25519 signing, verification, and key generation use the [`cryptography`](https://pypi.org/project/cryptography/)
232
+ package (required dependency, `>=42.0`). Official wheels ship native crypto
233
+ backends (OpenSSL + Rust components) — no Rust toolchain for users. All
234
+ primitives are centralized in `matrixscroll/crypto_backend.py`; see
235
+ [`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
224
236
 
225
237
  ## Why it is different from Sigstore
226
238
 
@@ -235,21 +247,22 @@ when they preserve the same pure Ed25519 byte contract.
235
247
 
236
248
  ## Public proof links
237
249
 
238
- - Browser verifier: <https://matrixscroll.com/verify/>
239
- - Compare page: <https://matrixscroll.com/compare/>
250
+ - Browser verifier: <https://ssx360.com/verify>
251
+ - Compare page: <https://ssx360.com/compare>
252
+ - Documentation: <https://ssx360.com/docs>
240
253
  - Specification: [`SPEC.md`](SPEC.md)
241
254
  - Commit envelope schema: [`schemas/commit-envelope.v1.json`](schemas/commit-envelope.v1.json)
242
255
  - Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
243
256
  - Conformance vectors: [`vectors/`](vectors/)
244
257
  - GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
245
258
  - Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
246
- - Site: <https://matrixscroll.com>
259
+ - Site: <https://ssx360.com/docs> (matrixscroll.com redirects here)
247
260
  - Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
248
261
 
249
262
  ## Python API
250
263
 
251
264
  ```bash
252
- pip install "matrixscroll==0.4.1"
265
+ pip install "matrixscroll==0.4.2"
253
266
  ```
254
267
 
255
268
  ```python
@@ -359,7 +372,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
359
372
  Install and register in Cursor / Claude Desktop / VS Code:
360
373
 
361
374
  ```bash
362
- pip install "matrixscroll[mcp]==0.4.1"
375
+ pip install "matrixscroll[mcp]==0.4.2"
363
376
  matrixscroll-mcp # stdio
364
377
  ```
365
378
 
@@ -379,5 +392,5 @@ Report vulnerabilities privately to
379
392
 
380
393
  ---
381
394
 
382
- **Protocol:** https://matrixscroll.com · **Verify:** https://matrixscroll.com/verify/
395
+ **Protocol:** https://ssx360.com/docs · **Verify:** https://ssx360.com/verify
383
396
  **Control plane:** https://ssx360.com · **Pilot:** mission@ssx360.com · **Sign in:** https://ssx360.com/signup
@@ -11,7 +11,7 @@ who want to trial Matrix Scroll without changing their core workflow.
11
11
 
12
12
  ## 15-minute pilot
13
13
 
14
- 1. Install `matrixscroll==0.3.0` in one repo.
14
+ 1. Install `matrixscroll==0.4.1` in one repo.
15
15
  2. Run `matrixscroll hook-install`.
16
16
  3. Make one agent-assisted commit and verify it locally.
17
17
  4. Publish notes with `matrixscroll envelope-publish-notes`.
@@ -38,7 +38,7 @@ jobs:
38
38
  head-ref: ${{ github.event.pull_request.head.sha }}
39
39
  base-ref: ${{ github.event.pull_request.base.sha }}
40
40
  source: notes
41
- matrixscroll-version: "0.3.0"
41
+ matrixscroll-version: "0.4.1"
42
42
  require-mode: emulated
43
43
  ```
44
44
 
@@ -64,7 +64,7 @@ jobs:
64
64
  ## Clean-machine proof status
65
65
 
66
66
  Recorded on `2026-06-21` against the pinned public flow:
67
- `pip install "matrixscroll==0.3.0"` -> `matrixscroll hook-install` ->
67
+ `pip install "matrixscroll==0.4.1"` -> `matrixscroll hook-install` ->
68
68
  `matrixscroll hook-status` -> first agent-assisted commit ->
69
69
  `matrixscroll envelope-verify`.
70
70
 
@@ -0,0 +1,48 @@
1
+ # Cryptographic backend (middle path)
2
+
3
+ Matrix Scroll v0.4.2+ routes all Ed25519 and security-relevant SHA-256
4
+ operations through a single Python module: `matrixscroll/crypto_backend.py`.
5
+
6
+ ## Design
7
+
8
+ | Approach | What users install | Crypto implementation |
9
+ | -------- | ------------------ | --------------------- |
10
+ | **Full Rust rewrite** | Python SDK + Rust extension build chain | Custom PyO3/maturin crate |
11
+ | **Middle path (this release)** | `pip install matrixscroll` only | `cryptography` wheels (OpenSSL + Rust components) |
12
+ | **Pure Python fallback** | No native deps | Not used — removed from the reference SDK |
13
+
14
+ The middle path keeps the public Python API, CLI, and MCP surface unchanged while
15
+ moving primitive work onto battle-tested native code shipped inside official
16
+ `cryptography` wheels. Users never run `cargo` or `maturin`.
17
+
18
+ ## Primitives
19
+
20
+ | Operation | Module API | Underlying primitive |
21
+ | --------- | ---------- | -------------------- |
22
+ | Ed25519 key generation | `generate_ed25519_private_key()` | `cryptography.hazmat.primitives.asymmetric.ed25519` |
23
+ | Ed25519 sign / verify | `ed25519_sign`, `ed25519_verify` | Same |
24
+ | SHA-256 (device IDs, gate digests, Rekor bridge) | `sha256`, `sha256_hex` | `cryptography.hazmat.primitives.hashes.SHA256` |
25
+
26
+ Git object hashing (`hashlib.sha1` in `matrixscroll/git.py`) stays on the
27
+ stdlib because it implements Git wire-format identifiers, not provenance
28
+ signatures.
29
+
30
+ ## Optional provider paths
31
+
32
+ - **Emulated / TPM mock / SE050 mock** — software Ed25519 via this backend.
33
+ - **SE050 hardware** — signing occurs on the secure element; the host verifies
34
+ responses with the same backend where needed.
35
+ - **YubiKey PIV preview** — experimental ECDSA path; not part of the v1 Ed25519
36
+ contract and not routed through Ed25519 helpers here.
37
+
38
+ ## Dependency pin
39
+
40
+ `pyproject.toml` requires `cryptography>=42.0` as a mandatory (non-optional)
41
+ dependency.
42
+
43
+ ## Diagnostics
44
+
45
+ ```python
46
+ from matrixscroll.crypto_backend import backend_info
47
+ print(backend_info())
48
+ ```
@@ -12,7 +12,7 @@ five-minute path from `pip install` to a verifiable commit envelope.
12
12
  ## 1. Install the SDK
13
13
 
14
14
  ```bash
15
- pip install "matrixscroll==0.3.0"
15
+ pip install "matrixscroll==0.4.1"
16
16
  matrixscroll hook-install
17
17
  matrixscroll hook-status
18
18
  ```
@@ -61,7 +61,7 @@ git push origin refs/notes/matrixscroll
61
61
  head-ref: ${{ github.event.pull_request.head.sha }}
62
62
  base-ref: ${{ github.event.pull_request.base.sha }}
63
63
  source: notes
64
- matrixscroll-version: "0.3.0"
64
+ matrixscroll-version: "0.4.1"
65
65
  require-mode: emulated
66
66
  ```
67
67
 
@@ -8,13 +8,13 @@ what ships now before widening the story.
8
8
  ## Baseline on June 21, 2026
9
9
 
10
10
  - GitHub: early public repo, product-first docs, and offline verification
11
- - Current public release target: `matrixscroll==0.3.0`
11
+ - Current public release: `matrixscroll==0.4.1`
12
12
  - Public trust contract: pure Ed25519 over canonical manifest bytes
13
13
  - Hardware path: SSX360 SE050 reference implementation in progress
14
14
 
15
15
  ## Next 7 days
16
16
 
17
- - cut and publish `0.3.0` without widening the manifest or verify surface
17
+ - Public release: `matrixscroll==0.4.1` (universal provenance + scroll commit)
18
18
  - make the GitHub Action a real public proof surface
19
19
  - align site, README, action docs, and PyPI around one install flow
20
20
  - remove broken links and stale release drift from public copy
@@ -1,6 +1,6 @@
1
1
  # Matrix Scroll security properties
2
2
 
3
- Machine-checkable guarantees for the reference SDK (v0.4.0). Properties marked
3
+ Machine-checkable guarantees for the reference SDK (v0.4.2). Properties marked
4
4
  **verified** have Hypothesis property tests in `tests/test_security_properties.py`.
5
5
  Formal TLA+ models are on the public roadmap.
6
6
 
@@ -13,6 +13,16 @@ Formal TLA+ models are on the public roadmap.
13
13
  | **P5** | Offline verification | Envelope verification requires no network, hosted API, or hardware ping once the envelope and trusted key set are local. | **Verified** (unit) |
14
14
  | **P6** | Algorithm binding | Only Ed25519 (RFC 8032) signatures with `algorithm: "ed25519"` are accepted; other algorithms are rejected. | **Verified** (unit + vectors) |
15
15
 
16
+ ## Cryptographic backend
17
+
18
+ All Ed25519 and security-relevant SHA-256 operations in the reference SDK route
19
+ through `matrixscroll/crypto_backend.py`, backed by the [`cryptography`](https://pypi.org/project/cryptography/)
20
+ package (official wheels bundle OpenSSL and Rust components; users install with
21
+ `pip install matrixscroll` only). There is no pure-Python Ed25519 fallback.
22
+
23
+ See [`CRYPTO_BACKEND.md`](CRYPTO_BACKEND.md) for the middle-path design vs a full
24
+ Rust rewrite.
25
+
16
26
  ## Standards alignment
17
27
 
18
28
  - **Ed25519:** [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032) — 32-byte seed, 32-byte public key, 64-byte signature.
@@ -5,7 +5,7 @@ manifest bytes today.
5
5
 
6
6
  | Product | Status | Access | Notes |
7
7
  |---------|--------|--------|-------|
8
- | **Matrix Scroll SDK** | GA | PyPI `matrixscroll==0.3.0` | Hooks, envelopes, Scroll Gate, policy CLI |
8
+ | **Matrix Scroll SDK** | GA | PyPI `matrixscroll==0.4.1` | Hooks, envelopes, Scroll Gate, policy CLI |
9
9
  | **Scroll Gate CI** | GA | [`matrixscroll-verify-action@v1`](https://github.com/SSX360/matrixscroll-verify-action) | PR range + manifest verify |
10
10
  | **Browser verifier** | GA | [matrixscroll.com/verify](https://matrixscroll.com/verify/) | Offline paste-and-verify |
11
11
  | **Protocol docs** | GA | [matrixscroll.com/docs](https://matrixscroll.com/docs/) | SPEC mirror, whitepaper, quickstarts |
@@ -18,7 +18,7 @@ manifest bytes today.
18
18
  ## Developer install
19
19
 
20
20
  ```bash
21
- pip install "matrixscroll==0.3.0"
21
+ pip install "matrixscroll==0.4.1"
22
22
  matrixscroll hook-install
23
23
  export MATRIXSCROLL_ACTOR_TYPE=agent
24
24
  export MATRIXSCROLL_TOOL=agent-runner
@@ -34,7 +34,7 @@ matrixscroll envelope-verify "$(git rev-parse HEAD)"
34
34
  head-ref: ${{ github.event.pull_request.head.sha }}
35
35
  base-ref: ${{ github.event.pull_request.base.sha }}
36
36
  source: notes
37
- matrixscroll-version: "0.3.0"
37
+ matrixscroll-version: "0.4.1"
38
38
  summary-output: provenance-summary.json
39
39
  ```
40
40
 
@@ -71,7 +71,7 @@ Full wire format: [`SPEC.md`](../SPEC.md). Schema: [`schemas/commit-envelope.v1.
71
71
  ### 1. Install
72
72
 
73
73
  ```bash
74
- pip install "matrixscroll==0.3.0"
74
+ pip install "matrixscroll==0.4.1"
75
75
  matrixscroll hook-install
76
76
  matrixscroll hook-status
77
77
  ```
@@ -87,7 +87,7 @@ matrixscroll envelope-verify "$(git rev-parse HEAD)"
87
87
 
88
88
  Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/config.json` to block commits when signing fails. See [`docs/quickstart-git.md`](quickstart-git.md).
89
89
 
90
- **Windows:** support landed in matrixscroll **0.2.1**; pin **0.3.0** or newer in pilot environments.
90
+ **Windows:** support landed in matrixscroll **0.2.1**; pin **0.4.1** in pilot environments.
91
91
 
92
92
  ### 3. CI gate
93
93
 
@@ -95,12 +95,12 @@ Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/conf
95
95
  - uses: SSX360/matrixscroll-verify-action@v1
96
96
  with:
97
97
  manifest: path/to/signed-manifest.json
98
- matrixscroll-version: "0.3.0"
98
+ matrixscroll-version: "0.4.1"
99
99
  require-mode: emulated
100
100
  trusted-keys: trusted-keys.json
101
101
  ```
102
102
 
103
- Policy flags (`--require-mode`, `--trusted-keys`) are available in the `0.2.x` line; this whitepaper pins `0.3.0` for copy-and-paste examples.
103
+ Policy flags (`--require-mode`, `--trusted-keys`) ship in the current release; this whitepaper pins `0.4.1` for copy-and-paste examples.
104
104
 
105
105
  ### 4. Optional scope manifest
106
106
 
@@ -28,13 +28,13 @@ Matrix Scroll remains the **open protocol and thin client** (PyPI + MCP). SSX360
28
28
 
29
29
  See [SCROLL_GATE_V2.md](./SCROLL_GATE_V2.md). Set `SSX360_API_KEY` in GitHub Actions secrets.
30
30
 
31
- ## SDK 0.4.0
31
+ ## SDK 0.4.1
32
32
 
33
33
  ```bash
34
- pip install "matrixscroll[mcp]==0.4.0"
34
+ pip install "matrixscroll[mcp]==0.4.1"
35
35
  ```
36
36
 
37
- New module: `matrixscroll.cloud` — HTTP client for ssx360.com APIs.
37
+ New in 0.4.1: `sign-action`, `scroll commit`, expanded MCP `sign_action`. Module `matrixscroll.cloud` — HTTP client for ssx360.com APIs.
38
38
 
39
39
  ## MCP environment
40
40
 
@@ -12,7 +12,7 @@ See also the platform copy in [digital-rain/docs/commercial/SSX360_SCROLL.md](ht
12
12
  ## Quick start
13
13
 
14
14
  ```bash
15
- pip install "matrixscroll==0.4.1"
15
+ pip install "matrixscroll==0.4.2"
16
16
  matrixscroll hook-install
17
17
  matrixscroll scroll commit -m "feat: governed commit"
18
18
  ```
@@ -23,7 +23,7 @@ matrixscroll status
23
23
  ## Quickstart (USB CDC preview)
24
24
 
25
25
  ```bash
26
- pip install "matrixscroll[hardware]==0.3.0"
26
+ pip install "matrixscroll[hardware]==0.4.1"
27
27
  export MATRIXSCROLL_MODE=hardware
28
28
  export MATRIXSCROLL_SE050_PORT=/dev/ttyACM0
29
29
  matrixscroll status
@@ -6,7 +6,7 @@ without coupling public docs to a specific editor or assistant brand.
6
6
  ## One-time setup
7
7
 
8
8
  ```bash
9
- pip install "matrixscroll>=0.3.0"
9
+ pip install "matrixscroll>=0.4.1"
10
10
  matrixscroll hook-install
11
11
  ```
12
12
 
@@ -6,7 +6,7 @@ verifiable provenance.
6
6
  ## One-time setup
7
7
 
8
8
  ```bash
9
- pip install "matrixscroll>=0.3.0"
9
+ pip install "matrixscroll>=0.4.1"
10
10
  matrixscroll hook-install
11
11
  ```
12
12
 
@@ -12,7 +12,7 @@ verify that proof offline before merge.
12
12
  ## Install hooks
13
13
 
14
14
  ```bash
15
- pip install "matrixscroll==0.3.0"
15
+ pip install "matrixscroll==0.4.1"
16
16
  matrixscroll hook-install
17
17
  matrixscroll hook-status
18
18
  ```
@@ -42,10 +42,10 @@ Enable enforce mode in `.git/matrixscroll/config.json`:
42
42
 
43
43
  ## Windows
44
44
 
45
- Windows support landed in **matrixscroll 0.2.1**. Pin `0.3.0` or newer after upgrading:
45
+ Windows support landed in **matrixscroll 0.2.1**. Pin `0.4.1` after upgrading:
46
46
 
47
47
  ```powershell
48
- pip install -U "matrixscroll==0.3.0"
48
+ pip install -U "matrixscroll==0.4.1"
49
49
  matrixscroll hook-install
50
50
  ```
51
51
 
@@ -89,7 +89,7 @@ Use [`SSX360/matrixscroll-verify-action@v1`](https://github.com/SSX360/matrixscr
89
89
 
90
90
  ## How can I integrate Matrix Scroll into a CI/CD workflow?
91
91
 
92
- 1. Install `matrixscroll==0.3.0` and `matrixscroll hook-install` in the repo.
92
+ 1. Install `matrixscroll==0.4.1` and `matrixscroll hook-install` in the repo.
93
93
  2. Publish commit envelopes to `refs/notes/matrixscroll` before PR review.
94
94
  3. Run `SSX360/matrixscroll-verify-action@v1` in GitHub Actions to verify the
95
95
  full PR commit range from notes.
@@ -5,7 +5,7 @@ Install the provenance MCP server so agents can sign and verify commit envelopes
5
5
  ## Install
6
6
 
7
7
  ```bash
8
- pip install "matrixscroll[mcp]==0.4.0"
8
+ pip install "matrixscroll[mcp]==0.4.1"
9
9
  ```
10
10
 
11
11
  The console script `matrixscroll-mcp` is the preferred entry point. `python -m matrixscroll.mcp` also works.
@@ -53,7 +53,7 @@ Use `verify_pr_range` with `source=notes` for offline git-notes verification wit
53
53
  For Git hook and CI workflows without MCP, use:
54
54
 
55
55
  ```bash
56
- pip install "matrixscroll==0.4.0"
56
+ pip install "matrixscroll==0.4.1"
57
57
  matrixscroll hook-install
58
58
  ```
59
59
 
@@ -24,7 +24,7 @@ jobs:
24
24
  uses: SSX360/matrixscroll-verify-action@v1
25
25
  with:
26
26
  manifest: examples/release-manifest.signed.json
27
- matrixscroll-version: "0.3.0"
27
+ matrixscroll-version: "0.4.1"
28
28
 
29
29
  verify-pr-envelopes:
30
30
  runs-on: ubuntu-latest
@@ -42,7 +42,7 @@ jobs:
42
42
  source: notes
43
43
  notes-ref: refs/notes/matrixscroll
44
44
  fetch-notes: "true"
45
- matrixscroll-version: "0.3.0"
45
+ matrixscroll-version: "0.4.1"
46
46
  summary-output: provenance-summary.json
47
47
  # Optional policy enforcement:
48
48
  # require-mode: emulated
@@ -71,4 +71,4 @@ jobs:
71
71
  base-ref: ${{ github.event.pull_request.base.sha }}
72
72
  source: bundle
73
73
  bundle-dir: evidence/bundle
74
- matrixscroll-version: "0.3.0"
74
+ matrixscroll-version: "0.4.1"
@@ -40,7 +40,7 @@ from ._core import (
40
40
  verify_manifest,
41
41
  )
42
42
 
43
- __version__ = "0.4.0"
43
+ __version__ = "0.4.2"
44
44
 
45
45
  __all__ = [
46
46
  "ALGORITHM",