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.
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/CHANGELOG.md +16 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/PKG-INFO +29 -16
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/README.md +27 -14
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ADOPTER_KIT.md +3 -3
- matrixscroll-0.4.2/docs/CRYPTO_BACKEND.md +48 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/FIVE_MINUTES.md +2 -2
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ROADMAP_2026-07.md +2 -2
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SECURITY_PROPERTIES.md +11 -1
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SOFTWARE_PRODUCTS.md +3 -3
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/WHITEPAPER.md +4 -4
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/PLATFORM_PIVOT.md +3 -3
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/SSX360_SCROLL.md +1 -1
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/hardware-provider.md +1 -1
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-agent.md +1 -1
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-claude-code.md +1 -1
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-git.md +4 -4
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/quickstart-mcp.md +2 -2
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/ci/protected-branch.yml +3 -3
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/__init__.py +1 -1
- matrixscroll-0.4.2/matrixscroll/crypto_backend.py +99 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/gate.py +3 -2
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/emulated.py +15 -16
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/registry.py +3 -6
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/se050_transport.py +9 -10
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/tpm.py +13 -17
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/rekor_publish.py +2 -2
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/pyproject.toml +2 -2
- matrixscroll-0.4.2/tests/test_crypto_backend.py +50 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/.gitignore +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/CONTRIBUTING.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/LICENSE +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/SECURITY.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/SPEC.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/controls/agentic_ai_controls.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/ADOPTION.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/AGENTIC_AI_SECURITY.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/CI_HARD_GATE.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/COMPARISON.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/HERO_DEMO.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SE050_POC_SCOPE.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/SE050_USB_PROTOCOL.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/commercial/SCROLL_GATE_V2.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/delegation-attestation-rfc.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/registries-guide.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/rekor-guac-bridge-design.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/yubikey-bridge.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/docs/yubikey-smoke.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/agentic_ai_evidence_manifest.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/commit-envelope.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/commit-envelope.signed.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/agent-commit-demo.sh +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/generate_signed_examples.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/demo/hero-self-attestation-demo.sh +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/release-manifest.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/release-manifest.signed.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/examples/trusted-keys-policy.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_claim.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_core.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/_payment.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/canonical.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cli.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cloud/__init__.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/cloud/client.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/constants.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/errors.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/git.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/guac_export.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/hooks/post-commit +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/hooks/pre-push +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/manifest.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/mcp.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/mcp_core.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/policy.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/provenance/__init__.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/provenance/actions.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/__init__.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/base.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/hardware.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/providers/yubikey.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/py.typed +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/scroll/README.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/matrixscroll/scroll/__init__.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/action-envelope.v1.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/commit-envelope.v1.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/evidence-pack.v1.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/schemas/release-manifest.v1.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/__init__.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/fixtures/github-gpgsig-commit.txt +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_agentic_guidance.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_canonical.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_cli.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_core.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_gate.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_git_envelope.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_guac_rekor.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_mcp_core.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_mcp_server.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_policy.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_provenance.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_release_metadata.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_se050_transport.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_security_properties.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_tpm_provider.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_vectors.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/tests/test_yubikey_provider.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/README.md +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/_fixture_key.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/_generate.py +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_algorithm.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_device_id.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_field.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_nested.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_public_key.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_schema.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/tampered_signature.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/unsigned_empty_block.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/unsigned_no_block.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_commit_envelope.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_nested.json +0 -0
- {matrixscroll-0.4.1 → matrixscroll-0.4.2}/vectors/valid_simple.json +0 -0
- {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.
|
|
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
|
+
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
|
[](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
|
|
61
61
|
[](https://codecov.io/gh/SSX360/matrixscroll)
|
|
62
62
|
|
|
63
|
-
**
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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://
|
|
295
|
-
- Compare page: <https://
|
|
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.
|
|
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.
|
|
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://
|
|
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
|
[](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
|
|
5
5
|
[](https://codecov.io/gh/SSX360/matrixscroll)
|
|
6
6
|
|
|
7
|
-
**
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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://
|
|
239
|
-
- Compare page: <https://
|
|
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.
|
|
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.
|
|
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://
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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`)
|
|
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.
|
|
31
|
+
## SDK 0.4.1
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
pip install "matrixscroll[mcp]==0.4.
|
|
34
|
+
pip install "matrixscroll[mcp]==0.4.1"
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
New
|
|
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.
|
|
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.
|
|
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
|
|
@@ -12,7 +12,7 @@ verify that proof offline before merge.
|
|
|
12
12
|
## Install hooks
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
pip install "matrixscroll==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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
74
|
+
matrixscroll-version: "0.4.1"
|