matrixscroll 0.6.1__tar.gz → 0.6.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.6.1 → matrixscroll-0.6.2}/.gitignore +27 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/CHANGELOG.md +26 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/CONTRIBUTING.md +16 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/PKG-INFO +115 -74
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/README.md +107 -65
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/ADOPTER_KIT.md +3 -3
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/COMPARISON.md +0 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/CRYPTO_ROADMAP.md +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/DOCTRINE.md +60 -60
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/FIVE_MINUTES.md +2 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/HERO_DEMO.md +2 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/POC2_AUDIT.md +2 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/ROADMAP_2026-07.md +2 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/SECURITY_PROPERTIES.md +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/SOFTWARE_PRODUCTS.md +3 -3
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/WHITEPAPER.md +4 -4
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/commercial/PLATFORM_PIVOT.md +2 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/commercial/SSX360_SCROLL.md +1 -1
- matrixscroll-0.6.2/docs/explanation/actor-attribution.md +77 -0
- matrixscroll-0.6.2/docs/explanation/ap2.md +74 -0
- matrixscroll-0.6.2/docs/explanation/commit-time-vs-artifact-time.md +78 -0
- matrixscroll-0.6.2/docs/explanation/style-supplement.md +123 -0
- matrixscroll-0.6.2/docs/explanation/trust-boundaries.md +85 -0
- matrixscroll-0.6.2/docs/explanation/writing-workflow.md +100 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/hardware-provider.md +2 -2
- matrixscroll-0.6.2/docs/how-to/gate-protected-branch.md +109 -0
- matrixscroll-0.6.2/docs/how-to/publish-git-notes.md +53 -0
- matrixscroll-0.6.2/docs/how-to/scan-mcp-server.md +57 -0
- matrixscroll-0.6.2/docs/index.md +70 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/quickstart-agent.md +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/quickstart-claude-code.md +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/quickstart-git.md +6 -6
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/quickstart-mcp.md +2 -2
- matrixscroll-0.6.2/docs/reference/cli.md +82 -0
- matrixscroll-0.6.2/docs/reference/commit-envelope.md +45 -0
- matrixscroll-0.6.2/docs/reference/exit-codes.md +38 -0
- matrixscroll-0.6.2/docs/reference/python-api.md +56 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/registries-guide.md +13 -14
- matrixscroll-0.6.2/docs/requirements.txt +9 -0
- matrixscroll-0.6.2/docs/tutorial/first-commit.md +133 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/yubikey-bridge.md +5 -5
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/yubikey-smoke.md +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/ci/protected-branch.yml +3 -3
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/__init__.py +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/agent_trace.py +90 -90
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/formal.py +11 -4
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/git.py +51 -2
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/se050_transport.py +1 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/pyproject.toml +12 -9
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_agent_trace.py +55 -55
- matrixscroll-0.6.2/tests/test_formal_specs.py +84 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_git_envelope.py +62 -1
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_release_metadata.py +21 -3
- matrixscroll-0.6.1/docs/ADOPTION.md +0 -13
- matrixscroll-0.6.1/docs/SHOW-HN-MCP-TRUST-LAUNCH.md +0 -151
- matrixscroll-0.6.1/tests/test_formal_specs.py +0 -40
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/LICENSE +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/SECURITY.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/SPEC.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/controls/agentic_ai_controls.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/AGENTIC_AI_SECURITY.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/AIMS_INTEROP.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/CI_HARD_GATE.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/CRYPTO_BACKEND.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/GITTUF_INTEROP.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/GIT_AI_NOTES_INTEROP.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/OPENSSF_SANDBOX_DECISION.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/SE050_POC_SCOPE.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/SE050_USB_PROTOCOL.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/SLSA_SOURCE_TRACK_MAPPING.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/commercial/README.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/commercial/SCROLL_GATE_V2.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/delegation-attestation-rfc.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/rekor-guac-bridge-design.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/agentic_ai_evidence_manifest.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/commit-envelope.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/commit-envelope.signed.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/agent-commit-demo.sh +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/generate_signed_examples.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/hero-self-attestation-demo.sh +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/mcp-rugpull-demo.cast +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/mcp-rugpull-demo.gif +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/demo/mcp-rugpull-demo.sh +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/mcp/matrixscroll-mcp.manifest.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/mcp/matrixscroll-mcp.signed.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/release-manifest.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/release-manifest.signed.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/examples/trusted-keys-policy.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/_claim.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/_core.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/_payment.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/canonical.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/cli.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/cloud/__init__.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/cloud/client.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/constants.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/crypto_backend.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/errors.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/gate.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/guac_export.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/hooks/post-commit +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/hooks/pre-push +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/manifest.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/mcp.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/mcp_core.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/mcp_trust.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/policy.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/pqc.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/provenance/__init__.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/provenance/actions.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/__init__.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/base.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/emulated.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/hardware.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/registry.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/tpm.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/providers/yubikey.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/py.typed +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/rekor_publish.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/scroll/README.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/scroll/__init__.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/matrixscroll/ssx360_cli.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/action-envelope.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/commit-envelope.v1.1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/commit-envelope.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/evidence-pack.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/pqc-signature.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/release-manifest.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/schemas/ssx360.mcp-manifest.v1.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/__init__.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/fixtures/github-gpgsig-commit.txt +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/fixtures/mcp-tools-sample.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_agentic_guidance.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_canonical.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_canonical_pqc.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_cli.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_core.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_crypto_backend.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_gate.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_guac_rekor.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_mcp_core.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_mcp_server.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_mcp_trust.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_policy.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_pqc.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_provenance.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_se050_transport.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_security_properties.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_ssx360_cli.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_tpm_provider.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_vectors.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/tests/test_yubikey_provider.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/README.md +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/_fixture_key.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/_generate.py +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_algorithm.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_device_id.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_field.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_nested.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_public_key.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_schema.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/tampered_signature.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/unsigned_empty_block.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/unsigned_no_block.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/valid_commit_envelope.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/valid_nested.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/valid_simple.json +0 -0
- {matrixscroll-0.6.1 → matrixscroll-0.6.2}/vectors/valid_unicode.json +0 -0
|
@@ -32,9 +32,36 @@ env/
|
|
|
32
32
|
*.swp
|
|
33
33
|
.DS_Store
|
|
34
34
|
|
|
35
|
+
# Secrets and credentials (never commit)
|
|
36
|
+
.env
|
|
37
|
+
.env.*
|
|
38
|
+
!.env.example
|
|
39
|
+
*.pem
|
|
40
|
+
*.key
|
|
41
|
+
credentials.json
|
|
42
|
+
credentials/
|
|
43
|
+
|
|
44
|
+
# Editor / agent local state
|
|
45
|
+
.cursor/
|
|
46
|
+
.playwright-cli/
|
|
47
|
+
|
|
35
48
|
# Matrix Scroll local store (never commit a private key)
|
|
36
49
|
.matrixscroll/
|
|
37
50
|
device.json
|
|
38
51
|
|
|
39
52
|
# TLA+ tools (download locally or in CI)
|
|
40
53
|
tla2tools.jar
|
|
54
|
+
|
|
55
|
+
# TLC run artifacts
|
|
56
|
+
formal/tla/states/
|
|
57
|
+
formal/tla/*_TTrace_*.tla
|
|
58
|
+
formal/tla/*_TTrace_*.bin
|
|
59
|
+
|
|
60
|
+
# MkDocs build output
|
|
61
|
+
site/
|
|
62
|
+
|
|
63
|
+
# Vale packages fetched by `vale sync`; do not commit
|
|
64
|
+
.vale/styles/Google/
|
|
65
|
+
.vale/styles/write-good/
|
|
66
|
+
.vale/styles/ai-tells/
|
|
67
|
+
.vale/styles/ai-tells-commits/
|
|
@@ -4,6 +4,32 @@ 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.6.2] - 2026-08-03
|
|
8
|
+
|
|
9
|
+
Documentation and packaging metadata only. No code, CLI or wire-format changes,
|
|
10
|
+
and no new dependencies.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Packaging URLs pointed at pages that had moved or gone.** `Documentation` and
|
|
14
|
+
`Verifier` routed through `ssx360.com` redirects that land on
|
|
15
|
+
`matrixscroll.com`, `Reference Device` pointed at a culled `/hardware` page,
|
|
16
|
+
and `Compare` duplicated `Documentation`. Every link now resolves directly, and
|
|
17
|
+
`Homepage` is the protocol site rather than the maintainer's.
|
|
18
|
+
- **The README described a hosted control plane with billing.** SSX360 is an
|
|
19
|
+
independent audit practice that sells assessments, not a platform, so the
|
|
20
|
+
README now says who maintains the protocol and why that separation exists. The
|
|
21
|
+
links to the retired `/enterprise`, `/signup` and `/compare` pages are gone.
|
|
22
|
+
|
|
23
|
+
### Documentation
|
|
24
|
+
- **State the post-quantum limit where people actually read it.** The summary and
|
|
25
|
+
keywords claim FIPS 204 and FIPS 205, but nothing on the PyPI page said the
|
|
26
|
+
overlay is an algorithm implementation through liboqs rather than a
|
|
27
|
+
CMVP-validated module, or repeated liboqs's own warning against production use.
|
|
28
|
+
Honest limits now carries both.
|
|
29
|
+
- Summary rewritten to lead with what the protocol does rather than the hardware
|
|
30
|
+
signing path, which is a bench prototype and not a product.
|
|
31
|
+
- Install pin `matrixscroll==0.6.2`.
|
|
32
|
+
|
|
7
33
|
## [0.6.1] - 2026-07-22
|
|
8
34
|
|
|
9
35
|
### Documentation
|
|
@@ -35,13 +35,27 @@ For PRs that include agent-assisted commits, publish signed commit envelopes to
|
|
|
35
35
|
|
|
36
36
|
```bash
|
|
37
37
|
matrixscroll hook-install
|
|
38
|
-
export MATRIXSCROLL_ACTOR_TYPE=agent # or human / ci as appropriate
|
|
39
|
-
export MATRIXSCROLL_TOOL=agent-runner # or your editor / agent tool name
|
|
40
38
|
git commit -m "feat: your change"
|
|
41
39
|
matrixscroll envelope-publish-notes --base origin/main --head HEAD
|
|
42
40
|
git push origin refs/notes/matrixscroll
|
|
43
41
|
```
|
|
44
42
|
|
|
43
|
+
`actor_type` and `tool` are detected from the environment. A commit made in a
|
|
44
|
+
Cursor, Claude Code, Aider, Codex, or Devin session is recorded as `agent` with
|
|
45
|
+
that tool; a commit made by a CI runner is recorded as `ci`. Everything else is
|
|
46
|
+
`human` and `git-cli`.
|
|
47
|
+
|
|
48
|
+
Set `MATRIXSCROLL_ACTOR_TYPE` and `MATRIXSCROLL_TOOL` only when the detection
|
|
49
|
+
list does not cover your agent runner, and only to describe what actually made
|
|
50
|
+
the commit. Never set `MATRIXSCROLL_ACTOR_TYPE=human` inside an agent session.
|
|
51
|
+
The envelope exists to record who wrote a change. A signed envelope carrying the
|
|
52
|
+
wrong actor is the exact falsification this project detects.
|
|
53
|
+
|
|
54
|
+
Detection and its limits are covered in
|
|
55
|
+
[`docs/explanation/actor-attribution.md`](docs/explanation/actor-attribution.md),
|
|
56
|
+
which also explains why envelopes already published with the wrong actor are
|
|
57
|
+
left in place.
|
|
58
|
+
|
|
45
59
|
CI verifies the PR range with `matrixscroll envelope-verify-range --source notes`.
|
|
46
60
|
Until repository variable `ENFORCE_PROVENANCE=true` is set, missing notes produce a **warning**
|
|
47
61
|
in the GitHub Step Summary rather than a hard failure.
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matrixscroll
|
|
3
|
-
Version: 0.6.
|
|
4
|
-
Summary:
|
|
5
|
-
Project-URL: Homepage, https://
|
|
6
|
-
Project-URL: Documentation, https://
|
|
3
|
+
Version: 0.6.2
|
|
4
|
+
Summary: Sign who authorized an AI agent's actions and verify it offline. Ed25519 envelopes for Git commits and MCP tool surfaces, with an optional ML-DSA/SLH-DSA overlay (FIPS 204/205).
|
|
5
|
+
Project-URL: Homepage, https://matrixscroll.com
|
|
6
|
+
Project-URL: Documentation, https://matrixscroll.com/docs/
|
|
7
|
+
Project-URL: Specification, https://matrixscroll.com/spec/
|
|
8
|
+
Project-URL: Verifier, https://matrixscroll.com/verify/
|
|
7
9
|
Project-URL: Repository, https://github.com/SSX360/matrixscroll
|
|
8
10
|
Project-URL: Source, https://github.com/SSX360/matrixscroll
|
|
9
11
|
Project-URL: Issues, https://github.com/SSX360/matrixscroll/issues
|
|
10
|
-
Project-URL: Specification, https://github.com/SSX360/matrixscroll/blob/main/SPEC.md
|
|
11
12
|
Project-URL: Whitepaper, https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md
|
|
12
|
-
Project-URL: Verifier, https://ssx360.com/verify
|
|
13
|
-
Project-URL: Compare, https://ssx360.com/docs
|
|
14
13
|
Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGELOG.md
|
|
15
14
|
Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
|
|
16
15
|
Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
|
|
17
16
|
Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll-verify-action
|
|
18
|
-
Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/0.6.1/
|
|
19
|
-
Project-URL: Reference Device, https://ssx360.com/hardware
|
|
20
17
|
Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
|
|
21
18
|
Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
|
|
19
|
+
Project-URL: Hardware Status, https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md
|
|
20
|
+
Project-URL: Maintainer, https://ssx360.com/about
|
|
22
21
|
Author-email: SSX360 <security@matrixscroll.com>
|
|
23
22
|
License-Expression: Apache-2.0
|
|
24
23
|
License-File: LICENSE
|
|
@@ -58,47 +57,50 @@ Description-Content-Type: text/markdown
|
|
|
58
57
|
|
|
59
58
|
# Matrix Scroll
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
**Codebase direction:** [`docs/DOCTRINE.md`](docs/DOCTRINE.md)
|
|
60
|
+
Signed provenance for agent-assisted Git commits, with offline Ed25519 verification.
|
|
64
61
|
|
|
65
62
|
[](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
|
|
66
|
-
[](https://pypi.org/project/matrixscroll/)
|
|
64
|
+
[](https://pypi.org/project/matrixscroll/)
|
|
65
|
+
[](LICENSE)
|
|
68
66
|
|
|
69
|
-
|
|
67
|
+
Matrix Scroll is an open protocol for cryptographically signed agent
|
|
68
|
+
authorization: Ed25519 records for Git commits (L1), MCP tool surfaces (L2), and
|
|
69
|
+
agent runs and non-human-identity actions (L3), verified offline in the CLI, the
|
|
70
|
+
browser, and CI. It is free, permanently, and is not monetized.
|
|
70
71
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
bench-validated PoC (Jul 2026) with the same verifier contract. The Pico 2 W /
|
|
76
|
-
GMT130 display bring-up is a locked L2 Hardware prototype (Jul 2026) — not GA.
|
|
72
|
+
Software emulated keys ship today. NXP SE050 secure-element signing is a
|
|
73
|
+
bench-validated proof of concept (Jul 2026) sharing the same verifier contract,
|
|
74
|
+
and the Pico 2 W / GMT130 display bring-up is a locked L2 Hardware prototype
|
|
75
|
+
(Jul 2026). Neither is generally available.
|
|
77
76
|
|
|
78
|
-
|
|
77
|
+
**Try it:** [matrixscroll.com/try](https://matrixscroll.com/try/) runs an offline
|
|
78
|
+
tamper demo in the browser. **Codebase direction:** [`docs/DOCTRINE.md`](docs/DOCTRINE.md).
|
|
79
|
+
**146 tests**, Hypothesis-verified [security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md),
|
|
80
|
+
and [TLA+ formal models](formal/README.md).
|
|
79
81
|
|
|
80
|
-
**Authorization ladder:** L1 Code (commits)
|
|
82
|
+
**Authorization ladder:** L1 Code (commits), L2 Tools (MCP manifests), L3 Actions (agent runs), L4 Money (AP2, demo), L5 Silicon (2029+)
|
|
81
83
|
|
|
82
|
-
**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
**Who maintains it:** [SSX360](https://ssx360.com/about), an independent audit
|
|
85
|
+
practice for agent authorization. It sells assessments and never sells this
|
|
86
|
+
protocol, because gating the protocol would remove the reason anyone trusts the
|
|
87
|
+
audit built beside it. Teams that want an independent assessment of their own
|
|
88
|
+
mandate chain can [request a call](https://ssx360.com/contact).
|
|
87
89
|
|
|
88
90
|
## Compliance evidence mapping
|
|
89
91
|
|
|
90
92
|
Matrix Scroll **maps to** and **produces evidence for** (never “required by”; not a certification claim):
|
|
91
93
|
|
|
92
|
-
- **DORA (Jan 2025)
|
|
93
|
-
- **PCI DSS 4.0 Req 6.5 (Mar 2025)
|
|
94
|
-
- **US Treasury FS-AI RMF (Feb 2026)
|
|
95
|
-
- **NIST SSDF
|
|
96
|
-
- **EU AI Act Article 12
|
|
97
|
-
- **Five Eyes Agentic AI guidance (Apr 2026)
|
|
94
|
+
- **DORA (Jan 2025)**: ICT change-management evidence for software changes.
|
|
95
|
+
- **PCI DSS 4.0 Req 6.5 (Mar 2025)**: change-control evidence for custom software.
|
|
96
|
+
- **US Treasury FS-AI RMF (Feb 2026)**: traceability for agent actions in financial software.
|
|
97
|
+
- **NIST SSDF**: provenance, change authorization, and release gate review.
|
|
98
|
+
- **EU AI Act Article 12**: record-keeping readiness (high-risk obligations Dec 2027), not a live mandate claim.
|
|
99
|
+
- **Five Eyes Agentic AI guidance (Apr 2026)**: linked crosswalk only: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
|
|
98
100
|
|
|
99
101
|
POC 2 audit readiness: [`docs/POC2_AUDIT.md`](docs/POC2_AUDIT.md)
|
|
100
102
|
|
|
101
|
-
## Install
|
|
103
|
+
## Install the MCP server (headline path)
|
|
102
104
|
|
|
103
105
|
Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
104
106
|
|
|
@@ -114,29 +116,29 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
114
116
|
```
|
|
115
117
|
|
|
116
118
|
```bash
|
|
117
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
118
|
-
matrixscroll-mcp # stdio
|
|
119
|
+
pip install "matrixscroll[mcp]==0.6.2"
|
|
120
|
+
matrixscroll-mcp # stdio. Register in Cursor / Claude Desktop / VS Code
|
|
119
121
|
```
|
|
120
122
|
|
|
121
123
|
**MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
|
|
122
124
|
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
|
|
123
|
-
`connect_card` (SE050 hardware prototype
|
|
125
|
+
`connect_card` (SE050 hardware prototype, pilot evaluation, not GA).
|
|
124
126
|
|
|
125
127
|
**MCP trust tools (manifest surface):** `scan_mcp_server`, `sign_mcp_manifest`, `verify_mcp_manifest`.
|
|
126
128
|
|
|
127
|
-
### MCP Trust Scanner
|
|
129
|
+
### MCP Trust Scanner: catch a rug-pull in 60 seconds
|
|
128
130
|
|
|
129
131
|

|
|
130
132
|
|
|
131
133
|
[Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](examples/demo/mcp-rugpull-demo.cast)
|
|
132
134
|
|
|
133
|
-
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection
|
|
134
|
-
|
|
135
|
+
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection.
|
|
136
|
+
Zero cloud, zero signup, exit code 2 fails your CI.
|
|
135
137
|
|
|
136
138
|
```bash
|
|
137
|
-
pip install "matrixscroll==0.6.
|
|
139
|
+
pip install "matrixscroll==0.6.2"
|
|
138
140
|
|
|
139
|
-
# 1. Scan a live MCP server (stdio)
|
|
141
|
+
# 1. Scan a live MCP server (stdio). Fingerprints every tool: name, description, input schema
|
|
140
142
|
matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
|
|
141
143
|
-o manifest.json --pretty
|
|
142
144
|
|
|
@@ -160,10 +162,10 @@ A mutated tool description or input schema fails loudly:
|
|
|
160
162
|
FAIL surface_drift — do not trust this server until you review the diff
|
|
161
163
|
```
|
|
162
164
|
|
|
163
|
-
Offline mode works too
|
|
165
|
+
Offline mode works too, no server needed: `matrixscroll mcp scan --tools ./tools.json`
|
|
164
166
|
accepts a plain JSON tool array or `{"tools": [...]}` (paste from any `tools/list` response).
|
|
165
167
|
|
|
166
|
-
Gate it in CI
|
|
168
|
+
Gate it in CI. Fail the build on unsigned or drifted manifests with the reusable workflow:
|
|
167
169
|
|
|
168
170
|
```yaml
|
|
169
171
|
jobs:
|
|
@@ -172,19 +174,18 @@ jobs:
|
|
|
172
174
|
with:
|
|
173
175
|
manifest: mcp/my-server.signed.json
|
|
174
176
|
baseline: mcp/my-server.baseline.json
|
|
175
|
-
matrixscroll_version: "0.6.
|
|
177
|
+
matrixscroll_version: "0.6.2"
|
|
176
178
|
```
|
|
177
179
|
|
|
178
180
|
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
|
|
179
181
|
Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
|
|
180
182
|
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
|
|
181
|
-
Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan)
|
|
182
|
-
Launch checklist: [`docs/SHOW-HN-MCP-TRUST-LAUNCH.md`](docs/SHOW-HN-MCP-TRUST-LAUNCH.md)
|
|
183
|
+
Browser demo: [matrixscroll.com/scan](https://matrixscroll.com/scan/)
|
|
183
184
|
|
|
184
|
-
## Also available
|
|
185
|
+
## Also available: CLI and hooks
|
|
185
186
|
|
|
186
187
|
```bash
|
|
187
|
-
pip install "matrixscroll==0.6.
|
|
188
|
+
pip install "matrixscroll==0.6.2"
|
|
188
189
|
matrixscroll hook-install
|
|
189
190
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
190
191
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -205,7 +206,7 @@ matrixscroll sign-action --type ci_step \
|
|
|
205
206
|
|
|
206
207
|
Action schema: [`schemas/action-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/action-envelope.v1.json)
|
|
207
208
|
|
|
208
|
-
### SSX360 Scroll
|
|
209
|
+
### SSX360 Scroll: Git wrapper (Layer 3, Phase 1)
|
|
209
210
|
|
|
210
211
|
Git under the hood; governance on top. **Not a Git replacement.**
|
|
211
212
|
|
|
@@ -250,16 +251,23 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
250
251
|
|
|
251
252
|
## Honest limits
|
|
252
253
|
|
|
253
|
-
- Shipping now: PyPI `matrixscroll==0.6.
|
|
254
|
+
- Shipping now: PyPI `matrixscroll==0.6.2`, Git post-commit hooks,
|
|
254
255
|
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
255
256
|
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
256
257
|
verifier, the GitHub Action, and a USB CDC host transport for the SE050
|
|
257
258
|
hardware prototype path. Emulated mode is the default evaluation path.
|
|
258
259
|
- Prototype (bench): Pico 2 W / RP2350 + GMT130 ST7789 LCD/LED bring-up locked
|
|
259
260
|
(2026-07-21); NXP SE050 M1 signing PoC accepted (Jul 2026) on contractor
|
|
260
|
-
firmware
|
|
261
|
+
firmware, not GA; display bring-up UF2 keeps `pubkey`/`sign` fail-closed
|
|
261
262
|
until Plug & Trust restore. External Ed25519-capable hardware key backends
|
|
262
263
|
and transparency-log integrations remain roadmap.
|
|
264
|
+
- The post-quantum overlay implements the ML-DSA and SLH-DSA algorithms specified
|
|
265
|
+
in FIPS 204 and FIPS 205, through liboqs. That is an algorithm implementation,
|
|
266
|
+
not a CMVP-validated cryptographic module, and it is never described as FIPS
|
|
267
|
+
validated, certified or compliant. liboqs itself states that it should not be
|
|
268
|
+
relied on in production or to protect sensitive data, which is a limit worth
|
|
269
|
+
repeating rather than burying. The overlay is attached alongside the Ed25519
|
|
270
|
+
signature and never replaces it.
|
|
263
271
|
- Compliance language is evidence mapping (DORA, PCI DSS 4.0, Treasury FS-AI RMF, SSDF, EU AI Act Article 12 readiness, Five Eyes agentic-AI guidance), not certification or customer endorsement.
|
|
264
272
|
- Illustrative deployment profiles are not endorsements or existing customer relationships.
|
|
265
273
|
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
|
|
@@ -271,7 +279,7 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
271
279
|
- Hardware keys and build attestations remain complementary roots and downstream
|
|
272
280
|
proofs; Matrix Scroll covers commit-time provenance.
|
|
273
281
|
- The public contract stays pure Ed25519 over canonical manifest bytes for the
|
|
274
|
-
required `signature` block
|
|
282
|
+
required `signature` block, whether the signer is emulated today or
|
|
275
283
|
SE050 secure-element signing later. Software signers may optionally attach ML-DSA/SLH-DSA
|
|
276
284
|
overlays (FIPS 204/205) via `matrixscroll[pqc]` without changing hardware firmware.
|
|
277
285
|
|
|
@@ -291,7 +299,7 @@ permissions so teams can evaluate the full workflow now. Hardware mode keeps
|
|
|
291
299
|
the same verifier contract and commit envelope schema, but moves the private
|
|
292
300
|
key into the SE050 secure element so the host cannot export it. That path is
|
|
293
301
|
a bench-validated L2 Hardware prototype (Pico 2 W + SE050 M1 PoC) available
|
|
294
|
-
for pilot evaluation
|
|
302
|
+
for pilot evaluation, not GA.
|
|
295
303
|
|
|
296
304
|
### How can I integrate Matrix Scroll into a CI/CD workflow?
|
|
297
305
|
|
|
@@ -304,7 +312,7 @@ alongside your existing scanners, branch protection, and build attestations.
|
|
|
304
312
|
## Quickstart (CLI)
|
|
305
313
|
|
|
306
314
|
```bash
|
|
307
|
-
pip install "matrixscroll==0.6.
|
|
315
|
+
pip install "matrixscroll==0.6.2"
|
|
308
316
|
matrixscroll hook-install
|
|
309
317
|
matrixscroll hook-status
|
|
310
318
|
|
|
@@ -315,7 +323,7 @@ git commit -m "feat: agent-assisted change"
|
|
|
315
323
|
matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
316
324
|
```
|
|
317
325
|
|
|
318
|
-
**Try it in the browser:** [matrixscroll.com/try](https://matrixscroll.com/try)
|
|
326
|
+
**Try it in the browser:** [matrixscroll.com/try](https://matrixscroll.com/try/)
|
|
319
327
|
|
|
320
328
|
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
321
329
|
[`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
|
|
@@ -333,7 +341,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
333
341
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
334
342
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
335
343
|
source: notes
|
|
336
|
-
matrixscroll-version: "0.6.
|
|
344
|
+
matrixscroll-version: "0.6.2"
|
|
337
345
|
require-mode: emulated
|
|
338
346
|
```
|
|
339
347
|
|
|
@@ -353,7 +361,7 @@ git push origin refs/notes/matrixscroll
|
|
|
353
361
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
354
362
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
355
363
|
source: notes
|
|
356
|
-
matrixscroll-version: "0.6.
|
|
364
|
+
matrixscroll-version: "0.6.2"
|
|
357
365
|
summary-output: provenance-summary.json
|
|
358
366
|
```
|
|
359
367
|
|
|
@@ -361,13 +369,13 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
|
361
369
|
[`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
|
|
362
370
|
|
|
363
371
|
The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
|
|
364
|
-
ship in the current release line; examples in this README pin `0.6.
|
|
372
|
+
ship in the current release line; examples in this README pin `0.6.2`.
|
|
365
373
|
|
|
366
374
|
## Security: Ed25519 via cryptography
|
|
367
375
|
|
|
368
376
|
Ed25519 signing, verification, and key generation use the [`cryptography`](https://pypi.org/project/cryptography/)
|
|
369
377
|
package (required dependency, `>=42.0`). Official wheels ship native crypto
|
|
370
|
-
backends (OpenSSL + Rust components)
|
|
378
|
+
backends (OpenSSL + Rust components), so no Rust toolchain for users. All
|
|
371
379
|
primitives are centralized in `matrixscroll/crypto_backend.py`; see
|
|
372
380
|
[`docs/CRYPTO_BACKEND.md`](docs/CRYPTO_BACKEND.md).
|
|
373
381
|
|
|
@@ -384,23 +392,23 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
384
392
|
|
|
385
393
|
## Public proof links
|
|
386
394
|
|
|
387
|
-
- Browser verifier: <https://matrixscroll.com/verify
|
|
388
|
-
- Try it (quickstart + tamper demo): <https://matrixscroll.com/try
|
|
389
|
-
-
|
|
390
|
-
- Documentation: <https://matrixscroll.com/docs>
|
|
395
|
+
- Browser verifier: <https://matrixscroll.com/verify/>
|
|
396
|
+
- Try it (quickstart + tamper demo): <https://matrixscroll.com/try/>
|
|
397
|
+
- Documentation: <https://matrixscroll.com/docs/>
|
|
391
398
|
- Specification: [`SPEC.md`](https://github.com/SSX360/matrixscroll/blob/main/SPEC.md)
|
|
392
399
|
- Commit envelope schema: [`schemas/commit-envelope.v1.json`](https://github.com/SSX360/matrixscroll/blob/main/schemas/commit-envelope.v1.json)
|
|
393
400
|
- Whitepaper: [`docs/WHITEPAPER.md`](docs/WHITEPAPER.md)
|
|
394
401
|
- Conformance vectors: [`vectors/`](https://github.com/SSX360/matrixscroll/tree/main/vectors/)
|
|
395
402
|
- GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
|
|
396
403
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
|
|
397
|
-
- Site: <https://matrixscroll.com> ·
|
|
398
|
-
-
|
|
404
|
+
- Site: <https://matrixscroll.com> · Browser verifier: <https://matrixscroll.com/verify/>
|
|
405
|
+
- Hardware prototype status: [`docs/hardware-provider.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/hardware-provider.md) (bench-validated; not GA)
|
|
406
|
+
- Maintainer, and how independence is kept: <https://ssx360.com/about>
|
|
399
407
|
|
|
400
408
|
## Python API
|
|
401
409
|
|
|
402
410
|
```bash
|
|
403
|
-
pip install "matrixscroll==0.6.
|
|
411
|
+
pip install "matrixscroll==0.6.2"
|
|
404
412
|
```
|
|
405
413
|
|
|
406
414
|
```python
|
|
@@ -450,7 +458,7 @@ matrixscroll.sign_manifest(...) / post-commit hook
|
|
|
450
458
|
v
|
|
451
459
|
IdentityProvider --> Ed25519 signature
|
|
452
460
|
(L1 emulated today,
|
|
453
|
-
SSX360 / SE050 prototype
|
|
461
|
+
SSX360 / SE050 prototype, bench-validated)
|
|
454
462
|
|
|
|
455
463
|
v
|
|
456
464
|
signed document --> matrixscroll.verify_manifest(...)
|
|
@@ -467,7 +475,7 @@ canonical bytes with Ed25519.
|
|
|
467
475
|
For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
|
|
468
476
|
layer in external Ed25519-capable signers only when they stay verifier
|
|
469
477
|
compatible, and treat `hardware` as the SE050 prototype path for pilot
|
|
470
|
-
evaluation
|
|
478
|
+
evaluation, not GA.
|
|
471
479
|
|
|
472
480
|
## Compliance levels
|
|
473
481
|
|
|
@@ -513,11 +521,11 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
|
|
|
513
521
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
514
522
|
|
|
515
523
|
```bash
|
|
516
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
524
|
+
pip install "matrixscroll[mcp]==0.6.2"
|
|
517
525
|
matrixscroll-mcp # stdio
|
|
518
526
|
```
|
|
519
527
|
|
|
520
|
-
See the [Install
|
|
528
|
+
See the [Install the MCP server](#install-the-mcp-server-headline-path) section above for
|
|
521
529
|
the recommended `mcp.json` snippet.
|
|
522
530
|
|
|
523
531
|
## License
|
|
@@ -525,6 +533,39 @@ the recommended `mcp.json` snippet.
|
|
|
525
533
|
- Code: **Apache-2.0** (`LICENSE`).
|
|
526
534
|
- Specification text (`SPEC.md`, `vectors/`): **CC0 1.0** - public domain.
|
|
527
535
|
|
|
536
|
+
## Verify this release
|
|
537
|
+
|
|
538
|
+
Every release is published from GitHub Actions through PyPI Trusted Publishing,
|
|
539
|
+
and every file carries a PEP 740 attestation recorded in the Sigstore
|
|
540
|
+
transparency log. You do not have to take our word for who built the wheel; you
|
|
541
|
+
can check it.
|
|
542
|
+
|
|
543
|
+
Ask PyPI directly:
|
|
544
|
+
|
|
545
|
+
```bash
|
|
546
|
+
curl -H "Accept: application/vnd.pypi.integrity.v1+json" \
|
|
547
|
+
https://pypi.org/integrity/matrixscroll/0.6.2/matrixscroll-0.6.2-py3-none-any.whl/provenance
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
The response names the publisher, and it should say exactly this:
|
|
551
|
+
|
|
552
|
+
```json
|
|
553
|
+
{"kind": "GitHub", "repository": "SSX360/matrixscroll",
|
|
554
|
+
"workflow": "publish.yml", "environment": "pypi"}
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
Transparency-log entry for the 0.6.2 wheel: log index `2215985472`. If the
|
|
558
|
+
publisher, the workflow, or the digest differs from what you expect, do not
|
|
559
|
+
install the file.
|
|
560
|
+
|
|
561
|
+
The human-readable view is on the
|
|
562
|
+
[PyPI project page](https://pypi.org/project/matrixscroll/0.6.2/), where files
|
|
563
|
+
built with attestations are marked as verified.
|
|
564
|
+
|
|
565
|
+
This matters more here than for most packages. A tool that sells offline
|
|
566
|
+
verifiability should be verifiable by the same standard it asks of everyone
|
|
567
|
+
else.
|
|
568
|
+
|
|
528
569
|
## Security
|
|
529
570
|
|
|
530
571
|
See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md).
|
|
@@ -533,5 +574,5 @@ Report vulnerabilities privately to
|
|
|
533
574
|
|
|
534
575
|
---
|
|
535
576
|
|
|
536
|
-
**
|
|
537
|
-
**
|
|
577
|
+
**Docs:** https://matrixscroll.com/docs/ · **Spec:** https://matrixscroll.com/spec/ · **Verify:** https://matrixscroll.com/verify/
|
|
578
|
+
**Maintainer:** https://ssx360.com/about · **Contact:** mission@ssx360.com
|