ciris-server 0.5.86__tar.gz → 0.5.87__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.
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.gitignore +3 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/Cargo.lock +5 -5
- {ciris_server-0.5.86 → ciris_server-0.5.87}/Cargo.toml +6 -6
- {ciris_server-0.5.86 → ciris_server-0.5.87}/PKG-INFO +1 -1
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/Cargo.toml +2 -2
- ciris_server-0.5.87/examples/qa_runner/canonical.rs +96 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/qa_runner/common.rs +30 -6
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/qa_runner/main.rs +2 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/support.rs +2 -2
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.cargo/config.toml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.claude/workflows/localize-ui.js +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/bench.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/build-wheels.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/ci.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/client-artifacts.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/conformance.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/localization.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/publish-pypi.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/.github/workflows/release.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/CHANGELOG.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/LICENSE +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/MISSION.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/README.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/WIRE_VOCABULARY_KINDS.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/bench-site/bench_results.json +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/bench-site/index.html +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/bench_results.json +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/alm_chain.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/erasure_survival.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/n_eff_scoring.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/pqc_av_streaming.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/replication_ingest.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/sig_overhead.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/benches/stream_fanout.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/.github/workflows/bench.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/.github/workflows/ci.yml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/.gitignore +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/.pre-commit-config.yaml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/FSD/CIRIS_LENS_CORE.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/FSD/LENS_CORE_V0_5.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/FSD/OPEN_QUESTIONS.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/LICENSE +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/MISSION.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/README.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/benches/aggregate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/benches/canonicalize.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/benches/project.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/deny.toml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/BENCHMARKS.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/COHABITATION.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/PRE_COMMIT.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/PUBLIC_SCHEMA_CONTRACT.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/PYPI_PUBLISH.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/RELEASE_NOTES.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/STANDARDS_COMPARISON.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/THREAT_MODEL.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/json_path.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/metadata.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/distilbert_loader.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/fields.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ner.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ort_loader.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/proptests.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/regex.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/walker.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/xlm_r_loader.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/pyproject.toml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/python/ciris_lens_core/__init__.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/audit/api.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/audit/delegate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/audit/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/audit/pyo3.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/canonical/ceg_egress.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/canonical/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capacity/attestation.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capacity/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capacity/score.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/batch.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/client.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/consent.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/correlation.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/event.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/partial.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/py_engine.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/seal.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/cohort/declared.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/cohort/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/cohort/resourcing.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/config/egress.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/config/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/config/node.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/config/retention.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/config/upstream.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/axis_metrics.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/coherence_ratchet.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/correlated_action.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/distributive_access.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/manifold.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/extract/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/extract/projection.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/ffi/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/ffi/pyo3.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/lib.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/observability/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/pipeline/lifecycle.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/pipeline/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/retention/eviction.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/retention/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/retention/summary.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/role/handler.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/role/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/role/node.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/role/relay.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/role/ret_relay.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scores/aggregate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scores/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scores/oracle.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/assembly.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/axis_calibration.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/calibration.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/capacity.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/n_eff.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/scoring/result.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/signing/event.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/signing/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/wire/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/wire/signer.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/tests/parity/README.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/tests/parity/canonical_fixtures.json +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/tests/parity/generate_canonical_fixtures.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/tests/sovereign_rlib.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/data/live_mesh_2026-06-22.json +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/docs/SCOPE_PRIVACY.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/evidence/README.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/evidence/cc_impl.tsv +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/mesh_propagation/main.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/qa_runner/accord.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/qa_runner/family.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/examples/qa_runner/verify.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/installers/windows/README.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/installers/windows/bundle-jre.ps1 +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/installers/windows/ciris-server-entry.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/installers/windows/ciris-server-installer.iss +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/installers/windows/ciris-server.spec +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/pyproject.toml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/python/ciris_server/__init__.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/python/ciris_server/__main__.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/python/ciris_server/cli.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/python/ciris_server/desktop_launcher.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/rust-toolchain.toml +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/scripts/bench_report.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_custody.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_halt.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_pki/yubico_attestation_root_1.der +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_pki/yubico_attestation_root_1.pem +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_provision.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/accord_reactivate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/adapter.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/ABSORPTION.md +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/api_keys.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/attestation.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/bootstrap.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/consent.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/device_auth.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/device_grant.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/erasure.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/gate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/loopback.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/oauth.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/occurrence.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/ownership.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/portable_occurrence.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/roles.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/self_login.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/session.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/store.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/auth/verify.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/benchmarks/bench_results.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/benchmarks/mesh.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/benchmarks/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/benchmarks/scoreboard.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/claim_remote.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/compose.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/config.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/config_api.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/config_reconcile.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/delegation_transparency.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/family.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/federation_admin.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/federation_nodecode.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/federation_peers.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/graph_config.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/health.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/holonomic.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/http_log.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/identity.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/ids.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/import.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/ingest_http.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/lib.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/main.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/memory_api.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/mesh_relay.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/nodecode.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/peer.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/proxy.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/py_adapter.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/quorum.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/radio.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/replication_reconcile.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/age.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/infohazard.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/mod.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/moderation.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/named.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/safety/watchlist.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/scorer/n_eff.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/scorer.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/system_data.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/telemetry_logs.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/src/yubico_attestation_ca.pem +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/accord.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/accord_admit_node.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/alm_chain.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/audit_chain.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/capacity_scorer.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/ceg_graph_projection.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/chaos_mesh.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/claim_remote.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/config_reconcile.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/device_grant.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/federation_admin.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/federation_session_kex.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/graph_config.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/ingest_http.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/mesh_seed_e2e.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/mesh_seed_keyplane_e2e.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/nat_traversal.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/nodecode.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/noise_floor.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/noise_floor_verdicts.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/occurrence.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/ownership.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/peer_replication.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/portable_occurrence.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage1.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage2.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage3.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage4.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage5.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage6.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage7.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates/stage8.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/release_gates.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/replication.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/replication_reconcile.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/root_bootstrap.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/safety.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/stream_sth_consistency.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tests/wire_vocabulary_gate.rs +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tools/audit_cohort_scope_callers.py +0 -0
- {ciris_server-0.5.86 → ciris_server-0.5.87}/tools/check_evidence.py +0 -0
|
@@ -793,8 +793,8 @@ dependencies = [
|
|
|
793
793
|
|
|
794
794
|
[[package]]
|
|
795
795
|
name = "ciris-edge"
|
|
796
|
-
version = "9.1.
|
|
797
|
-
source = "git+https://github.com/CIRISAI/CIRISEdge?tag=v9.1.
|
|
796
|
+
version = "9.1.6"
|
|
797
|
+
source = "git+https://github.com/CIRISAI/CIRISEdge?tag=v9.1.6#1c1f1f02329e9b47330660f33ea284193689cb96"
|
|
798
798
|
dependencies = [
|
|
799
799
|
"async-trait",
|
|
800
800
|
"axum",
|
|
@@ -911,8 +911,8 @@ dependencies = [
|
|
|
911
911
|
|
|
912
912
|
[[package]]
|
|
913
913
|
name = "ciris-persist"
|
|
914
|
-
version = "13.4.
|
|
915
|
-
source = "git+https://github.com/CIRISAI/CIRISPersist?tag=v13.4.
|
|
914
|
+
version = "13.4.1"
|
|
915
|
+
source = "git+https://github.com/CIRISAI/CIRISPersist?tag=v13.4.1#e0370aade3acdbc6ce26feb235f7ae69a1405114"
|
|
916
916
|
dependencies = [
|
|
917
917
|
"async-trait",
|
|
918
918
|
"base64 0.22.1",
|
|
@@ -949,7 +949,7 @@ dependencies = [
|
|
|
949
949
|
|
|
950
950
|
[[package]]
|
|
951
951
|
name = "ciris-server"
|
|
952
|
-
version = "0.5.
|
|
952
|
+
version = "0.5.87"
|
|
953
953
|
dependencies = [
|
|
954
954
|
"anyhow",
|
|
955
955
|
"async-trait",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "ciris-server"
|
|
3
|
-
version = "0.5.86" # 0.5.86 = GENESIS-BAKE + GRAPH-FIX. Substrate bump persist v13.3.1→v13.4.0 / edge v9.1.4→v9.1.5 (verify v8.9.0 unchanged). (1) CIRISPersist#390/#391: the 2-of-3 canonical genesis server (ciris-canonical-1-d7bdeu223k) is now BAKED at genesis — the operator's live accord-co-scrubbed record (A1 primary + B1 in additional_scrubs, field-conferred this session) restores the seed #383 deferred (a 1-of-N founding record was a first-strike weakness; canonical ADD is 2-of-3, so the baked genesis is too). A FRESH install boots already trusting ciris-canonical-1 (adopt_scrub_upgrade seeds/upgrades every node's row incl. Node A's own → A self-roots on upgrade), nodes addressable by key_id — no ceremony. edge v9.1.5 = coherence re-pin of persist v13.4.0 (same-repo [patch] gotcha). (2) GRAPH-VIEW FIX: the memory graph crashed loading (JsonConvertException: NodeType has no 'attestation') — 0.5.85's seed_ceg_graph projects CEG trust-root kinds (owner/owned_node/canonical_server/family/holder/delegation/attestation/peer) the client's strict NodeType enum didn't know, so ONE unknown value failed the whole /v1/memory/timeline payload. Fix (client): added the 8 CEG variants + a TOLERANT NodeTypeSerializer (unknown→UNKNOWN, never throws again) + distinct CEG-plane colors. 0.5.85 = SEED-UX cut (no substrate change; edge v9.1.4 / persist v13.3.1 / verify v8.9.0). The fixes that let the operator + a second holder seed the canonical mesh cleanly from the desktop UI: (1) OS-AWARE ykcs11 module path — the node's default PKCS#11 module now resolves per-OS (macOS Homebrew .dylib Apple-Silicon/Intel; Windows Yubico PIV Tool .dll / PATH; Linux .so) via identity.rs::default_ykcs11_module, wired into Pkcs11Options + the accord propose/cosign/admit paths, so a macOS/Windows holder's YubiKey cosign works (was hardcoded Linux → dlopen failure). Optional per-request "PKCS#11 module path (advanced)" field in the hardware-scrub sheet as an override. (2) COPY/EXPORT the co-scrub partial + finished record from the Trust Root card (Propose/Cosign/Pending) — Copy-to-clipboard + Save-to-file; no more pulling JSON off disk. (3) NAV label "Accord" → "Trust Root". (4) CIRISServer#127++ — the memory graph now PROJECTS persist's CEG state (seed_ceg_graph): ~40+ nodes (identity, owner, owned nodes, HUMANITY_ACCORD family + holders, canonical servers, config:*, delegations/consent/structural attestations) with CEG-native typed edges (delegates_to owner-binding, has_member family→holder seat, scrub_conferral holder→canonical, has_config, replicates_to, authored, supersedes/withdraws/recants); each node carries kind·subject·status·record so the client can render it as an AttestationCard. Follow-ups: wire the Trust Root ⋮ hamburger onto graph nodes (client); 28-language fan-out for the 7 new strings; pending-co-scrub graph node. 0.5.84 = THE FULL SAFE-MESH-SEED CUT. Substrate lockstep bumped edge v9.1.2→v9.1.4 / persist v13.2.0→v13.3.1 (v13.3.1 #387 adds the test-only with_signer_no_genesis_seed seam so the accord ceremony tests get a clean engine) (verify v8.9.0 unchanged). (1) CIRISPersist#386: the HUMANITY_ACCORD federation_families row (quorum:2/3, A1/B1/C1) is now SEEDED at boot on every node (idempotent) — lookup_family resolves durably, so the 0.5.83 baked-genesis fallbacks are RETIRED (recognized_family_from_baked_genesis + family_quorum_m fallback deleted; get_family reads the real entrenched row; V097 drops the family_key_id→federation_keys FK — a constitutional family is keyless). (2) CIRISServer#181 producer hook: POST /v1/safety/flag (duty-gated: verify_request + admit_moderation_action(Moderate)) emits the substrate-reserved content_class:{infohazard|reported} flag via a NEW node-scoped substrate_persist identity (sealed Ed25519 <alias>-substrate + software ML-DSA seed, registered through register_federation_key) — the duty-holder authorizes, the substrate signs; action:clear supersedes. This makes the #161 infohazard reveal gate actually FIRE (flag → GET /v1/safety/reveal 403 interstitial for a non-consented viewer). (3) CIRISServer#161 (already on main): POST /v1/safety/reveal — the CC 4.5.13 consent gate. #378 single-owner marker gate rides the persist bump (no server action). Follow-ups: retire ensure_accord_family_anchor throwaway key (low-risk, legacy assemble path); infohazard consent lifecycle + interstitial UX (#180 umbrella / #182-#185). 0.5.83 = BAKED-FAMILY RECOGNITION + RAISE-A-HALT. Same substrate (edge v9.1.2 / persist v13.2.0 / verify v8.9.0). Fixes "No accord family established on this node yet" on a node that has the BAKED genesis but no entrenched federation_families row (persist seeds the 3 holder KEY rows, not the family row — durable fix filed CIRISPersist#386): GET /v1/accord/family + the co-scrub quorum_needed now fall back to verify's baked humanity_accord_genesis() (the 2/3 family + 3 seats, entrenched=false, recognized_via=baked-genesis) — the same recognition resolve_kill_switch_roster already uses. PLUS raise-a-halt: POST /v1/accord/halt (initiate_halt, the binding twin of /drill — one opener signature is sub-quorum and cannot latch; 2-of-3 concur latches) + the client "Halt the mesh" action (was a disabled placeholder). 0.5.82 = CO-SCRUB END-TO-END. Same substrate lockstep edge v9.1.2 / persist v13.2.0 / verify v8.9.0 (no triple change). The cross-device m-of-n seed now works from the app: the co-scrub partial GOSSIPS over the accord peer-plane (the same HTTP set the kill-switch uses) — propose on A1's box → the partial surfaces under "Pending co-signs (canonical)" on B1's box → cosign → conferred, no manual transfer. Server (src/accord_provision.rs): ProvisionState gains an ephemeral bounded pending store + a (target,scrub-count) seen-set; ingest_partial validates structurally + upserts + gossips; NEW open (non-loopback) POST /v1/accord/canonical/gossip-partial peer-receive + GET /v1/accord/canonical/pending; router() split into build()→{loopback,gossip}. Client (#174): proposeCanonical/cosignCanonical/listPendingCoscrubs, the "Pending co-signs (canonical)" section + CanonicalCosignSheet (pending-entry or pasted-partial fallback), "[+ New] Add"→"Propose a canonical server". Bundled: #117 (Delegations loads on screen entry, not VM init → no pre-login 401) + #134 (existing-key offer no longer gated on a typed label; label auto-populates from the picked key_id). 0.5.81 = M-OF-N TRUST ROOT. Substrate lockstep edge v9.1.2 / persist v13.2.0 / verify v8.9.0 (CIRISPersist#383: KeyRecord.additional_scrubs + the DYNAMIC m-of-n admission gate via verify's verify_quorum_policy — canonical is conferred iff distinct_scrub_count() ≥ the family's entrenched quorum:M/N, NOT a hardcoded 2; the 1-of-N genesis is no longer auto-baked). Trust Root co-scrub ceremony (server-side, hardware-signed via the shared open_holder_identity custody path): POST /v1/accord/canonical/{propose,cosign} (scrub #1 → gossip/transfer the partial → append_scrub over the byte-identical envelope → adopt_scrub_upgrade lets the m-of-n gate confer/hold), plus /withdraw + /supersede (#377, 2-of-3 via proposal_digest) and IP-in-envelope TransportHint. Accord ops drill + announce (/v1/accord/{drill,announce}, node-synth'd invocation, gossiped, recorded pre-latch) + /halt-status. DRY audit landed (recipes routed through the substrate: build_self_key_record→produce_self_key_record, CANONICAL_BOOTSTRAP_PEERS→Engine::canonical_bootstrap_hints, owner_binding consts aliased). CEG-native Trust Root card redesign (one AttestationCard + ⋮ hamburger; concur now hardware-signs). KNOWN → 0.5.82 (#174): the client "Add canonical" still posts /add (1-scrub partial under m-of-n) — wire the propose→cosign buttons. 0.5.80 = THE MESH-SEED RELEASE. Substrate lockstep edge v9.1.0 / persist v13.0.1 / verify v8.7.0 (CC 1.0 RC1: KeyRecord.consent_role, the accord-conferred `canonical` identity_type role + admission gate CIRISPersist#372, single-owner owner_of #162, CIRISEdge#277 upgrade-aware Key-plane apply → KERI publish-own end-to-end). Trust Root canonical ops (#164): POST /v1/accord/canonical/add — the 1-of-N hardware-scrub SEED op (scrub-sign w/ the canonical role + adopt onto own row + publish address) + GET /v1/accord/canonical/servers + the client "Canonical servers" card (update-address shipped #165; supersede/withdraw → 0.5.81, need a persist role-removal primitive). ci.yml revived (my #155 evidence-step colon had broken the Rust gate repo-wide). 0.5.79 = substrate triple edge v8.7.2 / persist v12.5.0 / verify v8.7.0 (cross-cdylib block_on-deadlock/SIGABRT fix + CC 0.9.3 gates + dep-trims landed: hickory 0.25 de-dup, dead openssl/qrcodegen/bip39 gone) + REMOTE adopt-scrubbed endpoint (#150 — POST /v1/federation/adopt-scrubbed applies an A1-scrubbed record onto a node's own row so it roots; the seed producer's remote leg, keys live off-node) + server-local dep-trims (#152: drop hmac/pyo3-async-runtimes, lens-core async-trait/opentelemetry, base64 0.21→0.22). 0.5.78 = edge v8.6.1 / persist v12.2.0 adoption — the COMPLETE admit-node → mesh-seed loop. (1) #144 KEY-PLANE replication (KERI publish-own): the ReplicationRuntime converges an EnvelopeKind::Key coordinator per consent peer + a key_selector publishing the node's OWN key_id. (2) #150 PRODUCER: admit-node now calls persist v12.2.0 Engine::adopt_scrub_upgrade (CIRISPersist#351) to upgrade the node's own self-signed row to the accord-holder-scrubbed record — so the Key plane publishes an ANCHORED, rootable record → peers root it. Producer (server upgrades the row) + publish-own (edge advertises it) = the seed closes in place, no wipe. (3) #147 §Q B5: persist FountainHeldMeta.{content_bytes,cohort_scope} adopted (server has no fountain-content admit path; import.rs already sets cohort_scope). Verify unchanged v8.5.0. 0.5.77 = persist v12.0.2 anchor seed + accord-card UX.
|
|
3
|
+
version = "0.5.87" # 0.5.87 = PYO3-SEED FIX ADOPTION. Substrate bump persist v13.4.0→v13.4.1 / edge v9.1.5→v9.1.6 (verify v8.9.0 unchanged). CIRISPersist#392: the pyo3/wheel ctor PyEngine::new hand-rolled its own genesis seed and stopped at the accord holders — it never ran the #386 entrenched-family (v13.3.0) or #390 canonical (v13.4.0) bakes that Engine::with_signer does. So EVERY wheel consumer (the server's own py_main boot + agent-embedded engines, CIRISServer#191 / CIRISAgent#896) got A1/B1/C1 but NO HUMANITY_ACCORD family row and list_canonical_servers()==[] — the canonical bake never reached the installs it was meant to light up. v13.4.1 factors the full post-holders sequence (verify anchor → family #386 → canonical #390) into ONE shared genesis::seed_family_and_canonical(dir) called by BOTH ctors, so pyo3 + Rust engines are seed-identical. edge v9.1.6 = coherence re-pin of persist v13.4.1. NO server source change — pure substrate adoption; a fresh wheel Engine now returns ciris-canonical-1 + an entrenched family. 0.5.86 = GENESIS-BAKE + GRAPH-FIX. Substrate bump persist v13.3.1→v13.4.0 / edge v9.1.4→v9.1.5 (verify v8.9.0 unchanged). (1) CIRISPersist#390/#391: the 2-of-3 canonical genesis server (ciris-canonical-1-d7bdeu223k) is now BAKED at genesis — the operator's live accord-co-scrubbed record (A1 primary + B1 in additional_scrubs, field-conferred this session) restores the seed #383 deferred (a 1-of-N founding record was a first-strike weakness; canonical ADD is 2-of-3, so the baked genesis is too). A FRESH install boots already trusting ciris-canonical-1 (adopt_scrub_upgrade seeds/upgrades every node's row incl. Node A's own → A self-roots on upgrade), nodes addressable by key_id — no ceremony. edge v9.1.5 = coherence re-pin of persist v13.4.0 (same-repo [patch] gotcha). (2) GRAPH-VIEW FIX: the memory graph crashed loading (JsonConvertException: NodeType has no 'attestation') — 0.5.85's seed_ceg_graph projects CEG trust-root kinds (owner/owned_node/canonical_server/family/holder/delegation/attestation/peer) the client's strict NodeType enum didn't know, so ONE unknown value failed the whole /v1/memory/timeline payload. Fix (client): added the 8 CEG variants + a TOLERANT NodeTypeSerializer (unknown→UNKNOWN, never throws again) + distinct CEG-plane colors. 0.5.85 = SEED-UX cut (no substrate change; edge v9.1.4 / persist v13.3.1 / verify v8.9.0). The fixes that let the operator + a second holder seed the canonical mesh cleanly from the desktop UI: (1) OS-AWARE ykcs11 module path — the node's default PKCS#11 module now resolves per-OS (macOS Homebrew .dylib Apple-Silicon/Intel; Windows Yubico PIV Tool .dll / PATH; Linux .so) via identity.rs::default_ykcs11_module, wired into Pkcs11Options + the accord propose/cosign/admit paths, so a macOS/Windows holder's YubiKey cosign works (was hardcoded Linux → dlopen failure). Optional per-request "PKCS#11 module path (advanced)" field in the hardware-scrub sheet as an override. (2) COPY/EXPORT the co-scrub partial + finished record from the Trust Root card (Propose/Cosign/Pending) — Copy-to-clipboard + Save-to-file; no more pulling JSON off disk. (3) NAV label "Accord" → "Trust Root". (4) CIRISServer#127++ — the memory graph now PROJECTS persist's CEG state (seed_ceg_graph): ~40+ nodes (identity, owner, owned nodes, HUMANITY_ACCORD family + holders, canonical servers, config:*, delegations/consent/structural attestations) with CEG-native typed edges (delegates_to owner-binding, has_member family→holder seat, scrub_conferral holder→canonical, has_config, replicates_to, authored, supersedes/withdraws/recants); each node carries kind·subject·status·record so the client can render it as an AttestationCard. Follow-ups: wire the Trust Root ⋮ hamburger onto graph nodes (client); 28-language fan-out for the 7 new strings; pending-co-scrub graph node. 0.5.84 = THE FULL SAFE-MESH-SEED CUT. Substrate lockstep bumped edge v9.1.2→v9.1.4 / persist v13.2.0→v13.3.1 (v13.3.1 #387 adds the test-only with_signer_no_genesis_seed seam so the accord ceremony tests get a clean engine) (verify v8.9.0 unchanged). (1) CIRISPersist#386: the HUMANITY_ACCORD federation_families row (quorum:2/3, A1/B1/C1) is now SEEDED at boot on every node (idempotent) — lookup_family resolves durably, so the 0.5.83 baked-genesis fallbacks are RETIRED (recognized_family_from_baked_genesis + family_quorum_m fallback deleted; get_family reads the real entrenched row; V097 drops the family_key_id→federation_keys FK — a constitutional family is keyless). (2) CIRISServer#181 producer hook: POST /v1/safety/flag (duty-gated: verify_request + admit_moderation_action(Moderate)) emits the substrate-reserved content_class:{infohazard|reported} flag via a NEW node-scoped substrate_persist identity (sealed Ed25519 <alias>-substrate + software ML-DSA seed, registered through register_federation_key) — the duty-holder authorizes, the substrate signs; action:clear supersedes. This makes the #161 infohazard reveal gate actually FIRE (flag → GET /v1/safety/reveal 403 interstitial for a non-consented viewer). (3) CIRISServer#161 (already on main): POST /v1/safety/reveal — the CC 4.5.13 consent gate. #378 single-owner marker gate rides the persist bump (no server action). Follow-ups: retire ensure_accord_family_anchor throwaway key (low-risk, legacy assemble path); infohazard consent lifecycle + interstitial UX (#180 umbrella / #182-#185). 0.5.83 = BAKED-FAMILY RECOGNITION + RAISE-A-HALT. Same substrate (edge v9.1.2 / persist v13.2.0 / verify v8.9.0). Fixes "No accord family established on this node yet" on a node that has the BAKED genesis but no entrenched federation_families row (persist seeds the 3 holder KEY rows, not the family row — durable fix filed CIRISPersist#386): GET /v1/accord/family + the co-scrub quorum_needed now fall back to verify's baked humanity_accord_genesis() (the 2/3 family + 3 seats, entrenched=false, recognized_via=baked-genesis) — the same recognition resolve_kill_switch_roster already uses. PLUS raise-a-halt: POST /v1/accord/halt (initiate_halt, the binding twin of /drill — one opener signature is sub-quorum and cannot latch; 2-of-3 concur latches) + the client "Halt the mesh" action (was a disabled placeholder). 0.5.82 = CO-SCRUB END-TO-END. Same substrate lockstep edge v9.1.2 / persist v13.2.0 / verify v8.9.0 (no triple change). The cross-device m-of-n seed now works from the app: the co-scrub partial GOSSIPS over the accord peer-plane (the same HTTP set the kill-switch uses) — propose on A1's box → the partial surfaces under "Pending co-signs (canonical)" on B1's box → cosign → conferred, no manual transfer. Server (src/accord_provision.rs): ProvisionState gains an ephemeral bounded pending store + a (target,scrub-count) seen-set; ingest_partial validates structurally + upserts + gossips; NEW open (non-loopback) POST /v1/accord/canonical/gossip-partial peer-receive + GET /v1/accord/canonical/pending; router() split into build()→{loopback,gossip}. Client (#174): proposeCanonical/cosignCanonical/listPendingCoscrubs, the "Pending co-signs (canonical)" section + CanonicalCosignSheet (pending-entry or pasted-partial fallback), "[+ New] Add"→"Propose a canonical server". Bundled: #117 (Delegations loads on screen entry, not VM init → no pre-login 401) + #134 (existing-key offer no longer gated on a typed label; label auto-populates from the picked key_id). 0.5.81 = M-OF-N TRUST ROOT. Substrate lockstep edge v9.1.2 / persist v13.2.0 / verify v8.9.0 (CIRISPersist#383: KeyRecord.additional_scrubs + the DYNAMIC m-of-n admission gate via verify's verify_quorum_policy — canonical is conferred iff distinct_scrub_count() ≥ the family's entrenched quorum:M/N, NOT a hardcoded 2; the 1-of-N genesis is no longer auto-baked). Trust Root co-scrub ceremony (server-side, hardware-signed via the shared open_holder_identity custody path): POST /v1/accord/canonical/{propose,cosign} (scrub #1 → gossip/transfer the partial → append_scrub over the byte-identical envelope → adopt_scrub_upgrade lets the m-of-n gate confer/hold), plus /withdraw + /supersede (#377, 2-of-3 via proposal_digest) and IP-in-envelope TransportHint. Accord ops drill + announce (/v1/accord/{drill,announce}, node-synth'd invocation, gossiped, recorded pre-latch) + /halt-status. DRY audit landed (recipes routed through the substrate: build_self_key_record→produce_self_key_record, CANONICAL_BOOTSTRAP_PEERS→Engine::canonical_bootstrap_hints, owner_binding consts aliased). CEG-native Trust Root card redesign (one AttestationCard + ⋮ hamburger; concur now hardware-signs). KNOWN → 0.5.82 (#174): the client "Add canonical" still posts /add (1-scrub partial under m-of-n) — wire the propose→cosign buttons. 0.5.80 = THE MESH-SEED RELEASE. Substrate lockstep edge v9.1.0 / persist v13.0.1 / verify v8.7.0 (CC 1.0 RC1: KeyRecord.consent_role, the accord-conferred `canonical` identity_type role + admission gate CIRISPersist#372, single-owner owner_of #162, CIRISEdge#277 upgrade-aware Key-plane apply → KERI publish-own end-to-end). Trust Root canonical ops (#164): POST /v1/accord/canonical/add — the 1-of-N hardware-scrub SEED op (scrub-sign w/ the canonical role + adopt onto own row + publish address) + GET /v1/accord/canonical/servers + the client "Canonical servers" card (update-address shipped #165; supersede/withdraw → 0.5.81, need a persist role-removal primitive). ci.yml revived (my #155 evidence-step colon had broken the Rust gate repo-wide). 0.5.79 = substrate triple edge v8.7.2 / persist v12.5.0 / verify v8.7.0 (cross-cdylib block_on-deadlock/SIGABRT fix + CC 0.9.3 gates + dep-trims landed: hickory 0.25 de-dup, dead openssl/qrcodegen/bip39 gone) + REMOTE adopt-scrubbed endpoint (#150 — POST /v1/federation/adopt-scrubbed applies an A1-scrubbed record onto a node's own row so it roots; the seed producer's remote leg, keys live off-node) + server-local dep-trims (#152: drop hmac/pyo3-async-runtimes, lens-core async-trait/opentelemetry, base64 0.21→0.22). 0.5.78 = edge v8.6.1 / persist v12.2.0 adoption — the COMPLETE admit-node → mesh-seed loop. (1) #144 KEY-PLANE replication (KERI publish-own): the ReplicationRuntime converges an EnvelopeKind::Key coordinator per consent peer + a key_selector publishing the node's OWN key_id. (2) #150 PRODUCER: admit-node now calls persist v12.2.0 Engine::adopt_scrub_upgrade (CIRISPersist#351) to upgrade the node's own self-signed row to the accord-holder-scrubbed record — so the Key plane publishes an ANCHORED, rootable record → peers root it. Producer (server upgrades the row) + publish-own (edge advertises it) = the seed closes in place, no wipe. (3) #147 §Q B5: persist FountainHeldMeta.{content_bytes,cohort_scope} adopted (server has no fountain-content admit path; import.rs already sets cohort_scope). Verify unchanged v8.5.0. 0.5.77 = persist v12.0.2 anchor seed + accord-card UX.
|
|
4
4
|
edition = "2021"
|
|
5
5
|
# MSRV floor is set by the substrate: ciris-verify v5.2.0 requires 1.86
|
|
6
6
|
# (persist v6.0.1 is 1.83). Build with the higher of the two.
|
|
@@ -122,8 +122,8 @@ ciris-lens-core = { path = "crates/ciris-lens-core" } # ABSORBED in-tree (wo
|
|
|
122
122
|
# `cirislens_wa_cert` + `cirislens_service_token_revocation` expose the auth
|
|
123
123
|
# substrate the fabric absorbs (CIRISServer#9, src/auth): the agent's `wa_cert`
|
|
124
124
|
# table (users/WA/OAuth/api-keys) + the `revoked_service_tokens` table.
|
|
125
|
-
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.
|
|
126
|
-
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.
|
|
125
|
+
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.1", features = ["sqlite", "cirisgraph", "cirislens_wa_cert", "cirislens_service_token_revocation", "cirisaudit", "cirislens_tasks", "cirislens_thoughts", "cirislens_tickets", "cirislens_correlations", "cirislens_deferral_reports", "cirislens_maintenance_locks", "cirislens_creation_ceremonies", "cirislens_legacy_migration", "cirisincident", "telemetry", "secrets"] }
|
|
126
|
+
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.6", features = ["transport-reticulum", "transport-http", "transport-packet-radio"] }
|
|
127
127
|
# Founder-quorum verification + key-id fingerprint at the composition root
|
|
128
128
|
# (threshold:: module path — NOT re-exported at the crate root).
|
|
129
129
|
# LOCKSTEP: persist v9.4.0 transitively pins verify-core v6.6.x — the whole
|
|
@@ -204,7 +204,7 @@ tracing-appender = "0.2"
|
|
|
204
204
|
# - keyring `tpm` (tss-esapi / TPM 2.0) — the real hardware backend; needs
|
|
205
205
|
# libtss2 (Linux build dep). Other targets keep the software keystore.
|
|
206
206
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
207
|
-
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.
|
|
207
|
+
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.1", features = ["postgres", "cirisgraph", "cirislens_wa_cert", "cirislens_service_token_revocation", "cirisaudit", "cirislens_tasks", "cirislens_thoughts", "cirislens_tickets", "cirislens_correlations", "cirislens_deferral_reports", "cirislens_maintenance_locks", "cirislens_creation_ceremonies", "cirislens_legacy_migration", "cirisincident", "telemetry", "secrets"] }
|
|
208
208
|
# keyring `tpm` (TPM-at-rest, Linux-only via tss-esapi). `pkcs11` is no longer
|
|
209
209
|
# per-target — it rides the global `pkcs11` feature now that cryptoki builds on all
|
|
210
210
|
# targets (CIRISVerify v6.12.0).
|
|
@@ -271,13 +271,13 @@ ciris-crypto = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v8.9.0"
|
|
|
271
271
|
# and never encodes/decodes). This lets tests/chaos_mesh.rs exercise the SUBSTRATE
|
|
272
272
|
# codec (`fountain_encode`/`fountain_decode`) directly — a real MEASURED proof,
|
|
273
273
|
# not a reference stand-in.
|
|
274
|
-
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.
|
|
274
|
+
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.6", features = ["codec-fountain"] }
|
|
275
275
|
# Enable persist's TEST-ONLY genesis-seam (`test-genesis-seam`, CIRISPersist#387) for the
|
|
276
276
|
# accord ceremony tests (tests/accord.rs): `Engine::with_signer_no_genesis_seed` yields a
|
|
277
277
|
# clean engine with the baked HUMANITY_ACCORD family seed SKIPPED, so those tests can stand
|
|
278
278
|
# up their OWN custom-holder family via the assemble ceremony. Dev/test ONLY — resolver-2
|
|
279
279
|
# keeps this feature out of the shipped lib/bin/wheel (prod always seeds the baked family).
|
|
280
|
-
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.
|
|
280
|
+
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.1", features = ["test-genesis-seam"] }
|
|
281
281
|
|
|
282
282
|
# PQC realtime-A/V streaming E2E benchmark (CIRISEdge#62 realtime_av profile).
|
|
283
283
|
[[bench]]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ciris-server
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.87
|
|
4
4
|
License-File: LICENSE
|
|
5
5
|
Summary: The fabric node — the federation's headless cohabitation runtime (registry + lens [+ node] over one shared substrate), as the abi3 wheel CIRISAgent consumes. agent = fabric node + brain.
|
|
6
6
|
Author-email: Eric Moore <eric@ciris.ai>
|
|
@@ -26,8 +26,8 @@ crate-type = ["cdylib", "rlib"]
|
|
|
26
26
|
#
|
|
27
27
|
# OQ-01 closure 2026-05-03: rlib primary, PyO3 cdylib via `python`
|
|
28
28
|
# feature for the deployed-lens cutover.
|
|
29
|
-
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.
|
|
30
|
-
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.
|
|
29
|
+
ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v13.4.1", version = "13", features = ["extract", "sqlite"] }
|
|
30
|
+
ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v9.1.6", version = "9", features = ["transport-http", "transport-reticulum"] }
|
|
31
31
|
|
|
32
32
|
# Keyring — relay mode (CIRISLensCore#10) loads its Edge transport-
|
|
33
33
|
# signing identity via `ciris_keyring::load_local_seed`. Edge's
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
//! Reusable QA module — the **canonical trace-flow precondition** (CIRISServer#191 /
|
|
2
|
+
//! CIRISPersist#390/#392). The agent's directed `consent:community_trust:v1` grant is
|
|
3
|
+
//! aimed at the canonical community group; for it to FK-resolve its counterparty the
|
|
4
|
+
//! node's `federation_keys` must carry the baked canonical server, and the record must
|
|
5
|
+
//! be fully addressable (pubkeys + transport hint). This module boots a fresh node and
|
|
6
|
+
//! asserts, over the real HTTP surface, that:
|
|
7
|
+
//! - the baked genesis canonical server `ciris-canonical-1-d7bdeu223k` is present
|
|
8
|
+
//! (was empty until the 2-of-3 genesis bake #390 — the whole point of the seed);
|
|
9
|
+
//! - it is addressable — carries the hybrid pubkeys + an IP transport hint, so a
|
|
10
|
+
//! directed grant can reach it by `key_id`;
|
|
11
|
+
//! - the HUMANITY_ACCORD trust-root family it roots under is entrenched (2-of-3).
|
|
12
|
+
//!
|
|
13
|
+
//! Guards the regression class of CIRISPersist#392 at the server tier: a wheel/engine
|
|
14
|
+
//! that seeds holders but NOT the canonical server leaves this whole flow dark.
|
|
15
|
+
|
|
16
|
+
use crate::common::{node_seeded, serve, Report};
|
|
17
|
+
use ciris_server::accord::AccordHalt;
|
|
18
|
+
|
|
19
|
+
const CANONICAL_KEY_ID: &str = "ciris-canonical-1-d7bdeu223k";
|
|
20
|
+
|
|
21
|
+
async fn jget(client: &reqwest::Client, url: String) -> (u16, serde_json::Value) {
|
|
22
|
+
let resp = client.get(&url).send().await.expect("get");
|
|
23
|
+
let status = resp.status().as_u16();
|
|
24
|
+
let json = resp
|
|
25
|
+
.json::<serde_json::Value>()
|
|
26
|
+
.await
|
|
27
|
+
.unwrap_or(serde_json::Value::Null);
|
|
28
|
+
(status, json)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
pub async fn run(report: &mut Report) {
|
|
32
|
+
println!("\n\x1b[1m▶ CANONICAL — trace-flow target resolves (baked genesis, HTTP)\x1b[0m");
|
|
33
|
+
let m = "canonical";
|
|
34
|
+
let engine = node_seeded().await;
|
|
35
|
+
let base = serve(
|
|
36
|
+
std::sync::Arc::clone(&engine),
|
|
37
|
+
AccordHalt {
|
|
38
|
+
home: None,
|
|
39
|
+
peers: Vec::new(),
|
|
40
|
+
exit_on_halt: false,
|
|
41
|
+
},
|
|
42
|
+
)
|
|
43
|
+
.await;
|
|
44
|
+
let client = reqwest::Client::new();
|
|
45
|
+
|
|
46
|
+
// 1. The baked canonical server is present in `federation_keys` — asserted at the
|
|
47
|
+
// engine (the trace-flow counterparty is an FK row, not an HTTP artifact; this is
|
|
48
|
+
// exactly the surface CIRISPersist#392 left empty on the wheel ctor).
|
|
49
|
+
let rows = engine
|
|
50
|
+
.list_canonical_servers()
|
|
51
|
+
.await
|
|
52
|
+
.expect("list_canonical_servers");
|
|
53
|
+
let canonical = rows.iter().find(|r| r.key_id == CANONICAL_KEY_ID);
|
|
54
|
+
report.check(
|
|
55
|
+
m,
|
|
56
|
+
"baked canonical server present",
|
|
57
|
+
canonical.is_some(),
|
|
58
|
+
format!(
|
|
59
|
+
"engine.list_canonical_servers() → {} row(s); want {CANONICAL_KEY_ID}",
|
|
60
|
+
rows.len()
|
|
61
|
+
),
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
// 2. It is fully addressable — a directed grant can reach it by key_id.
|
|
65
|
+
let addressable = canonical.is_some_and(|r| {
|
|
66
|
+
!r.pubkey_ed25519_base64.is_empty()
|
|
67
|
+
&& r.pubkey_ml_dsa_65_base64
|
|
68
|
+
.as_deref()
|
|
69
|
+
.is_some_and(|s| !s.is_empty())
|
|
70
|
+
&& r.registration_envelope
|
|
71
|
+
.get("transport_hints")
|
|
72
|
+
.and_then(|h| h.as_array())
|
|
73
|
+
.is_some_and(|h| !h.is_empty())
|
|
74
|
+
});
|
|
75
|
+
report.check(
|
|
76
|
+
m,
|
|
77
|
+
"canonical target is addressable (pubkeys + transport hint)",
|
|
78
|
+
addressable,
|
|
79
|
+
"the directed consent:community_trust counterparty must carry hybrid pubkeys + a transport hint to FK-resolve".to_string(),
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
// 3. The trust-root family the canonical roots under is entrenched (2-of-3).
|
|
83
|
+
let (fstatus, fbody) = jget(&client, format!("{base}/v1/accord/family")).await;
|
|
84
|
+
let entrenched = fstatus == 200
|
|
85
|
+
&& fbody["entrenched"].as_bool() == Some(true)
|
|
86
|
+
&& fbody["family_name"].as_str() == Some("HUMANITY_ACCORD");
|
|
87
|
+
report.check(
|
|
88
|
+
m,
|
|
89
|
+
"HUMANITY_ACCORD trust root is entrenched",
|
|
90
|
+
entrenched,
|
|
91
|
+
format!(
|
|
92
|
+
"GET /v1/accord/family → {fstatus}, entrenched={:?} name={:?}",
|
|
93
|
+
fbody["entrenched"], fbody["family_name"]
|
|
94
|
+
),
|
|
95
|
+
);
|
|
96
|
+
}
|
|
@@ -78,22 +78,46 @@ impl Report {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
///
|
|
82
|
-
///
|
|
83
|
-
|
|
81
|
+
/// The node's own SOFTWARE hybrid signer (Ed25519 + ML-DSA-65), keyed under
|
|
82
|
+
/// [`NODE_KEY_ID`].
|
|
83
|
+
fn node_signer() -> Arc<LocalSigner> {
|
|
84
84
|
let signing_key = SigningKey::from_bytes(&[0xA1; 32]);
|
|
85
85
|
let pqc = Arc::new(
|
|
86
86
|
MlDsa65SoftwareSigner::from_seed_bytes(&[0xA2; 32], format!("{NODE_KEY_ID}-pqc"))
|
|
87
87
|
.expect("node ML-DSA-65 seed"),
|
|
88
88
|
);
|
|
89
|
-
|
|
89
|
+
Arc::new(LocalSigner::from_parts(
|
|
90
90
|
signing_key,
|
|
91
91
|
NODE_KEY_ID.to_string(),
|
|
92
92
|
Some(pqc),
|
|
93
93
|
Some(format!("{NODE_KEY_ID}-pqc")),
|
|
94
|
-
))
|
|
94
|
+
))
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// Build an in-memory ciris-server [`Engine`] on the **test-genesis-seam** — NO baked
|
|
98
|
+
/// genesis (persist `with_signer_no_genesis_seed`, CIRISPersist#387). The accord /
|
|
99
|
+
/// family / membership / ceremony QA establishes its OWN HUMANITY_ACCORD family + holder
|
|
100
|
+
/// roster from scratch; the prod bake (A1/B1/C1 seats, entrenched family, the 2-of-3
|
|
101
|
+
/// canonical server — persist v13.3.0/#386 + v13.4.0/#390) would otherwise collide with
|
|
102
|
+
/// that self-run ceremony (extra registered rows, a pre-entrenched family whose seats the
|
|
103
|
+
/// QA's own signatures don't match). Only the node's own key is registered.
|
|
104
|
+
pub async fn node() -> Arc<Engine> {
|
|
105
|
+
let engine = Arc::new(
|
|
106
|
+
Engine::with_signer_no_genesis_seed(node_signer(), "sqlite::memory:")
|
|
107
|
+
.await
|
|
108
|
+
.expect("Engine::with_signer_no_genesis_seed (sqlite::memory:)"),
|
|
109
|
+
);
|
|
110
|
+
register_node_self(&engine).await;
|
|
111
|
+
engine
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/// Build a **fully-seeded** in-memory Engine — the prod ctor WITH the baked genesis
|
|
115
|
+
/// (holders + entrenched HUMANITY_ACCORD family + the 2-of-3 canonical server). Used by
|
|
116
|
+
/// the `canonical` QA to assert the directed-trace-flow target (`ciris-canonical-1`) is
|
|
117
|
+
/// present + addressable — the surface CIRISPersist#392 left empty on the wheel ctor.
|
|
118
|
+
pub async fn node_seeded() -> Arc<Engine> {
|
|
95
119
|
let engine = Arc::new(
|
|
96
|
-
Engine::with_signer(
|
|
120
|
+
Engine::with_signer(node_signer(), "sqlite::memory:")
|
|
97
121
|
.await
|
|
98
122
|
.expect("Engine::with_signer (sqlite::memory:)"),
|
|
99
123
|
);
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
//! Exit: 0 if every step is green, 1 otherwise.
|
|
11
11
|
|
|
12
12
|
mod accord;
|
|
13
|
+
mod canonical;
|
|
13
14
|
mod common;
|
|
14
15
|
mod family;
|
|
15
16
|
mod verify;
|
|
@@ -25,6 +26,7 @@ async fn main() {
|
|
|
25
26
|
accord::run(&mut report).await;
|
|
26
27
|
accord::run_membership(&mut report).await;
|
|
27
28
|
accord::run_ceremony(&mut report).await;
|
|
29
|
+
canonical::run(&mut report).await;
|
|
28
30
|
verify::run(&mut report).await;
|
|
29
31
|
|
|
30
32
|
let ok = report.print_and_status();
|
|
@@ -35,8 +35,8 @@ use std::path::PathBuf;
|
|
|
35
35
|
// KeyRecord.consent_role, the accord-conferred `canonical` identity_type role
|
|
36
36
|
// (CIRISPersist#372), single-owner `owner_of` (#162), verify unchanged v8.7.0.
|
|
37
37
|
pub const TARGET_VERIFY: &str = "v8.9.0";
|
|
38
|
-
pub const TARGET_PERSIST: &str = "v13.4.
|
|
39
|
-
pub const TARGET_EDGE: &str = "v9.1.
|
|
38
|
+
pub const TARGET_PERSIST: &str = "v13.4.1";
|
|
39
|
+
pub const TARGET_EDGE: &str = "v9.1.6";
|
|
40
40
|
/// Stage 6/7: the persist MAJOR family that bakes the canonical genesis seed.
|
|
41
41
|
/// (Name is historical — the seed-bake family moved v10 → v12 → **v13**: the v12.0
|
|
42
42
|
/// genesis-mesh rooting anchor persisted, v13.0.0 adds the accord-conferred
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/.github/workflows/bench.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/PUBLIC_SCHEMA_CONTRACT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/docs/STANDARDS_COMPARISON.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/canonical/ceg_egress.rs
RENAMED
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capacity/attestation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/capture/correlation.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/axis_metrics.rs
RENAMED
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/coherence_ratchet.rs
RENAMED
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/detector/correlated_action.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/extract/projection.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/pipeline/lifecycle.rs
RENAMED
|
File without changes
|
|
File without changes
|
{ciris_server-0.5.86 → ciris_server-0.5.87}/crates/ciris-lens-core/src/retention/eviction.rs
RENAMED
|
File without changes
|
|
File without changes
|