ciris-server 0.5.63__tar.gz → 0.5.69__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.63 → ciris_server-0.5.69}/.github/workflows/bench.yml +11 -18
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/build-wheels.yml +58 -83
- ciris_server-0.5.69/.github/workflows/ci.yml +141 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/client-artifacts.yml +17 -25
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/conformance.yml +11 -18
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/release.yml +38 -73
- {ciris_server-0.5.63 → ciris_server-0.5.69}/Cargo.lock +3 -3
- ciris_server-0.5.69/Cargo.toml +321 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/PKG-INFO +1 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/Cargo.toml +1 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/bootstrap.rs +3 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/ownership.rs +181 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/claim_remote.rs +105 -2
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/compose.rs +29 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/config_api.rs +101 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/config_reconcile.rs +22 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/graph_config.rs +42 -1
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/claim_remote.rs +48 -15
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/ownership.rs +124 -2
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/support.rs +1 -1
- ciris_server-0.5.63/.github/workflows/ci.yml +0 -266
- ciris_server-0.5.63/.github/workflows/windows7-installer.yml +0 -279
- ciris_server-0.5.63/Cargo.toml +0 -321
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.cargo/config.toml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.claude/workflows/localize-ui.js +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/localization.yml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.github/workflows/publish-pypi.yml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/.gitignore +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/CHANGELOG.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/LICENSE +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/MISSION.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/README.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/bench-site/bench_results.json +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/bench-site/index.html +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/bench_results.json +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/alm_chain.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/erasure_survival.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/n_eff_scoring.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/pqc_av_streaming.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/replication_ingest.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/sig_overhead.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/benches/stream_fanout.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/.github/workflows/bench.yml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/.github/workflows/ci.yml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/.gitignore +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/.pre-commit-config.yaml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/FSD/CIRIS_LENS_CORE.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/FSD/LENS_CORE_V0_5.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/FSD/OPEN_QUESTIONS.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/LICENSE +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/MISSION.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/README.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/benches/aggregate.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/benches/canonicalize.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/benches/project.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/deny.toml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/BENCHMARKS.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/COHABITATION.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/PRE_COMMIT.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/PUBLIC_SCHEMA_CONTRACT.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/PYPI_PUBLISH.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/RELEASE_NOTES.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/STANDARDS_COMPARISON.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/docs/THREAT_MODEL.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/json_path.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/metadata.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/distilbert_loader.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/fields.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ner.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ort_loader.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/proptests.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/regex.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/walker.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/xlm_r_loader.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/pyproject.toml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/python/ciris_lens_core/__init__.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/audit/api.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/audit/delegate.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/audit/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/audit/pyo3.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/canonical/ceg_egress.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/canonical/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capacity/attestation.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capacity/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capacity/score.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/batch.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/client.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/consent.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/correlation.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/event.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/partial.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/py_engine.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/capture/seal.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/cohort/declared.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/cohort/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/cohort/resourcing.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/config/egress.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/config/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/config/node.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/config/retention.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/config/upstream.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/axis_metrics.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/coherence_ratchet.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/correlated_action.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/distributive_access.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/manifold.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/detector/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/extract/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/extract/projection.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/ffi/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/ffi/pyo3.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/lib.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/observability/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/pipeline/lifecycle.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/pipeline/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/retention/eviction.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/retention/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/retention/summary.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/role/handler.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/role/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/role/node.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/role/relay.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/role/ret_relay.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scores/aggregate.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scores/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scores/oracle.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/assembly.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/axis_calibration.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/calibration.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/capacity.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/n_eff.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/scoring/result.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/signing/event.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/signing/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/wire/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/src/wire/signer.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/tests/parity/README.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/tests/parity/canonical_fixtures.json +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/tests/parity/generate_canonical_fixtures.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/crates/ciris-lens-core/tests/sovereign_rlib.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/data/live_mesh_2026-06-22.json +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/docs/SCOPE_PRIVACY.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/mesh_propagation/main.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/qa_runner/accord.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/qa_runner/common.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/qa_runner/family.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/qa_runner/main.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/examples/qa_runner/verify.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/installers/windows/README.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/installers/windows/bundle-jre.ps1 +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/installers/windows/ciris-server-entry.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/installers/windows/ciris-server-installer.iss +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/installers/windows/ciris-server.spec +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/pyproject.toml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/python/ciris_server/__init__.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/python/ciris_server/__main__.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/python/ciris_server/cli.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/python/ciris_server/desktop_launcher.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/rust-toolchain.toml +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/scripts/bench_report.py +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_custody.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_halt.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_pki/yubico_attestation_root_1.der +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_pki/yubico_attestation_root_1.pem +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_provision.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/accord_reactivate.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/adapter.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/ABSORPTION.md +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/api_keys.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/attestation.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/consent.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/device_auth.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/device_grant.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/erasure.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/gate.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/loopback.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/oauth.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/occurrence.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/portable_occurrence.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/roles.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/self_login.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/session.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/store.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/auth/verify.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/benchmarks/bench_results.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/benchmarks/mesh.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/benchmarks/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/benchmarks/scoreboard.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/config.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/family.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/federation_admin.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/federation_nodecode.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/federation_peers.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/health.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/holonomic.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/http_log.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/identity.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/ids.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/import.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/ingest_http.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/lib.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/main.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/memory_api.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/nodecode.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/peer.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/proxy.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/py_adapter.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/quorum.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/radio.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/replication_reconcile.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/safety/age.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/safety/mod.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/safety/moderation.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/safety/named.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/safety/watchlist.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/scorer/n_eff.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/scorer.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/system_data.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/telemetry_logs.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/src/yubico_attestation_ca.pem +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/accord.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/alm_chain.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/audit_chain.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/capacity_scorer.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/chaos_mesh.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/config_reconcile.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/device_grant.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/federation_admin.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/federation_session_kex.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/graph_config.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/ingest_http.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/nat_traversal.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/nodecode.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/noise_floor.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/occurrence.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/peer_replication.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/portable_occurrence.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage1.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage2.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage3.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage4.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage5.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage6.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage7.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates/stage8.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/release_gates.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/replication.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/replication_reconcile.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/root_bootstrap.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/safety.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tests/stream_sth_consistency.rs +0 -0
- {ciris_server-0.5.63 → ciris_server-0.5.69}/tools/audit_cohort_scope_callers.py +0 -0
|
@@ -77,32 +77,25 @@ jobs:
|
|
|
77
77
|
echo "key-persist=${KEY_PERSIST}"
|
|
78
78
|
echo "key-edge=${KEY_EDGE}"
|
|
79
79
|
echo "key=${KEY_SERVER}"
|
|
80
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
80
81
|
} >> "$GITHUB_OUTPUT"
|
|
81
82
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
82
83
|
echo "::notice::${KEY_VERIFY}"
|
|
83
84
|
echo "::notice::${KEY_PERSIST}"
|
|
84
85
|
echo "::notice::${KEY_EDGE}"
|
|
85
86
|
echo "::notice::${KEY_SERVER}"
|
|
86
|
-
-
|
|
87
|
-
|
|
87
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
88
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
89
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
90
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
88
91
|
continue-on-error: true
|
|
89
92
|
with:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- name: CIRISCache restore (edge layer)
|
|
97
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
98
|
-
continue-on-error: true
|
|
99
|
-
with:
|
|
100
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
101
|
-
- name: CIRISCache restore (server layer)
|
|
102
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
103
|
-
continue-on-error: true
|
|
104
|
-
with:
|
|
105
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
93
|
+
keys: |
|
|
94
|
+
${{ steps.cachekey.outputs.key }}
|
|
95
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
96
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
97
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
98
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
106
99
|
- uses: actions/setup-python@v5
|
|
107
100
|
with:
|
|
108
101
|
python-version: "3.12"
|
|
@@ -9,13 +9,16 @@ name: build-wheels
|
|
|
9
9
|
# or the cache they share never hits. Keeping the steps in one place guarantees
|
|
10
10
|
# that — there is no second copy to drift.
|
|
11
11
|
#
|
|
12
|
-
# Cache model (
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
12
|
+
# Cache model (two tiers):
|
|
13
|
+
# • Swatinem rust-cache (GHA L1) — GitHub scopes GHA caches by ref, and a tag
|
|
14
|
+
# run can only READ the default branch's caches, so it SAVES only on main
|
|
15
|
+
# (`save-if: main`) and restores everywhere.
|
|
16
|
+
# • CIRISCache (GHCR L2, restore@v2) — a GHCR package is NOT ref-scoped, so the
|
|
17
|
+
# SERVER `-s<version>` blob is saved on main AND on the v* tag publish (this
|
|
18
|
+
# workflow's only caller now that warm-release-cache is retired). That keeps a
|
|
19
|
+
# per-version `-s` blob so the next release's restore@v2 `-s*` prefix fallback
|
|
20
|
+
# pulls the latest lean ~1 GB server blob instead of the larger edge layer.
|
|
21
|
+
# The maturin-action legs (macOS/Windows) use the action's built-in `sccache`.
|
|
19
22
|
|
|
20
23
|
on:
|
|
21
24
|
workflow_call:
|
|
@@ -77,32 +80,25 @@ jobs:
|
|
|
77
80
|
echo "key-persist=${KEY_PERSIST}"
|
|
78
81
|
echo "key-edge=${KEY_EDGE}"
|
|
79
82
|
echo "key=${KEY_SERVER}"
|
|
83
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
80
84
|
} >> "$GITHUB_OUTPUT"
|
|
81
85
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
82
86
|
echo "::notice::${KEY_VERIFY}"
|
|
83
87
|
echo "::notice::${KEY_PERSIST}"
|
|
84
88
|
echo "::notice::${KEY_EDGE}"
|
|
85
89
|
echo "::notice::${KEY_SERVER}"
|
|
86
|
-
-
|
|
87
|
-
|
|
90
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
91
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
92
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
93
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
88
94
|
continue-on-error: true
|
|
89
95
|
with:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
- name: CIRISCache restore (edge layer)
|
|
97
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
98
|
-
continue-on-error: true
|
|
99
|
-
with:
|
|
100
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
101
|
-
- name: CIRISCache restore (server layer)
|
|
102
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
103
|
-
continue-on-error: true
|
|
104
|
-
with:
|
|
105
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
96
|
+
keys: |
|
|
97
|
+
${{ steps.cachekey.outputs.key }}
|
|
98
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
99
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
100
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
101
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
106
102
|
- name: Install build deps
|
|
107
103
|
run: |
|
|
108
104
|
# Drop the preinstalled Microsoft/azure-cli apt repo: it intermittently
|
|
@@ -155,7 +151,7 @@ jobs:
|
|
|
155
151
|
# GITHUB_TOKEN, no external secret).
|
|
156
152
|
- name: CIRISCache save (server layer, main only)
|
|
157
153
|
uses: CIRISAI/CIRISCache/save@v1
|
|
158
|
-
if: github.ref == 'refs/heads/main'
|
|
154
|
+
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
|
159
155
|
continue-on-error: true
|
|
160
156
|
with:
|
|
161
157
|
key: ${{ steps.cachekey.outputs.key }}
|
|
@@ -230,32 +226,25 @@ jobs:
|
|
|
230
226
|
echo "key-persist=${KEY_PERSIST}"
|
|
231
227
|
echo "key-edge=${KEY_EDGE}"
|
|
232
228
|
echo "key=${KEY_SERVER}"
|
|
229
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
233
230
|
} >> "$GITHUB_OUTPUT"
|
|
234
231
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
235
232
|
echo "::notice::${KEY_VERIFY}"
|
|
236
233
|
echo "::notice::${KEY_PERSIST}"
|
|
237
234
|
echo "::notice::${KEY_EDGE}"
|
|
238
235
|
echo "::notice::${KEY_SERVER}"
|
|
239
|
-
-
|
|
240
|
-
|
|
236
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
237
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
238
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
239
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
241
240
|
continue-on-error: true
|
|
242
241
|
with:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
- name: CIRISCache restore (edge layer)
|
|
250
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
251
|
-
continue-on-error: true
|
|
252
|
-
with:
|
|
253
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
254
|
-
- name: CIRISCache restore (server layer)
|
|
255
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
256
|
-
continue-on-error: true
|
|
257
|
-
with:
|
|
258
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
242
|
+
keys: |
|
|
243
|
+
${{ steps.cachekey.outputs.key }}
|
|
244
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
245
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
246
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
247
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
259
248
|
- name: Build wheel (maturin)
|
|
260
249
|
uses: PyO3/maturin-action@v1
|
|
261
250
|
with:
|
|
@@ -274,7 +263,7 @@ jobs:
|
|
|
274
263
|
# Populate the cross-repo CIRISCache blob on main under the SERVER key.
|
|
275
264
|
- name: CIRISCache save (server layer, main only)
|
|
276
265
|
uses: CIRISAI/CIRISCache/save@v1
|
|
277
|
-
if: github.ref == 'refs/heads/main'
|
|
266
|
+
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
|
278
267
|
continue-on-error: true
|
|
279
268
|
with:
|
|
280
269
|
key: ${{ steps.cachekey.outputs.key }}
|
|
@@ -336,32 +325,25 @@ jobs:
|
|
|
336
325
|
echo "key-persist=${KEY_PERSIST}"
|
|
337
326
|
echo "key-edge=${KEY_EDGE}"
|
|
338
327
|
echo "key=${KEY_SERVER}"
|
|
328
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
339
329
|
} >> "$GITHUB_OUTPUT"
|
|
340
330
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
341
331
|
echo "::notice::${KEY_VERIFY}"
|
|
342
332
|
echo "::notice::${KEY_PERSIST}"
|
|
343
333
|
echo "::notice::${KEY_EDGE}"
|
|
344
334
|
echo "::notice::${KEY_SERVER}"
|
|
345
|
-
-
|
|
346
|
-
|
|
335
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
336
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
337
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
338
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
347
339
|
continue-on-error: true
|
|
348
340
|
with:
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
- name: CIRISCache restore (edge layer)
|
|
356
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
357
|
-
continue-on-error: true
|
|
358
|
-
with:
|
|
359
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
360
|
-
- name: CIRISCache restore (server layer)
|
|
361
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
362
|
-
continue-on-error: true
|
|
363
|
-
with:
|
|
364
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
341
|
+
keys: |
|
|
342
|
+
${{ steps.cachekey.outputs.key }}
|
|
343
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
344
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
345
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
346
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
365
347
|
- name: Build wheel (maturin)
|
|
366
348
|
uses: PyO3/maturin-action@v1
|
|
367
349
|
with:
|
|
@@ -379,7 +361,7 @@ jobs:
|
|
|
379
361
|
# Populate the cross-repo CIRISCache blob on main under the SERVER key.
|
|
380
362
|
- name: CIRISCache save (server layer, main only)
|
|
381
363
|
uses: CIRISAI/CIRISCache/save@v1
|
|
382
|
-
if: github.ref == 'refs/heads/main'
|
|
364
|
+
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
|
383
365
|
continue-on-error: true
|
|
384
366
|
with:
|
|
385
367
|
key: ${{ steps.cachekey.outputs.key }}
|
|
@@ -437,32 +419,25 @@ jobs:
|
|
|
437
419
|
echo "key-persist=${KEY_PERSIST}"
|
|
438
420
|
echo "key-edge=${KEY_EDGE}"
|
|
439
421
|
echo "key=${KEY_SERVER}"
|
|
422
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
440
423
|
} >> "$GITHUB_OUTPUT"
|
|
441
424
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
442
425
|
echo "::notice::${KEY_VERIFY}"
|
|
443
426
|
echo "::notice::${KEY_PERSIST}"
|
|
444
427
|
echo "::notice::${KEY_EDGE}"
|
|
445
428
|
echo "::notice::${KEY_SERVER}"
|
|
446
|
-
-
|
|
447
|
-
|
|
429
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
430
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
431
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
432
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
448
433
|
continue-on-error: true
|
|
449
434
|
with:
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
- name: CIRISCache restore (edge layer)
|
|
457
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
458
|
-
continue-on-error: true
|
|
459
|
-
with:
|
|
460
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
461
|
-
- name: CIRISCache restore (server layer)
|
|
462
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
463
|
-
continue-on-error: true
|
|
464
|
-
with:
|
|
465
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
435
|
+
keys: |
|
|
436
|
+
${{ steps.cachekey.outputs.key }}
|
|
437
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
438
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
439
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
440
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
466
441
|
- uses: actions/setup-python@v5
|
|
467
442
|
with:
|
|
468
443
|
python-version: "3.12"
|
|
@@ -526,7 +501,7 @@ jobs:
|
|
|
526
501
|
# Populate the cross-repo CIRISCache blob on main under the SERVER key.
|
|
527
502
|
- name: CIRISCache save (server layer, main only)
|
|
528
503
|
uses: CIRISAI/CIRISCache/save@v1
|
|
529
|
-
if: github.ref == 'refs/heads/main'
|
|
504
|
+
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
|
530
505
|
continue-on-error: true
|
|
531
506
|
with:
|
|
532
507
|
key: ${{ steps.cachekey.outputs.key }}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
# Docs-only commits don't change the Rust build — skip the full compile.
|
|
7
|
+
paths-ignore:
|
|
8
|
+
- "**/*.md"
|
|
9
|
+
- "FSD/**"
|
|
10
|
+
- "docs/**"
|
|
11
|
+
pull_request:
|
|
12
|
+
paths-ignore:
|
|
13
|
+
- "**/*.md"
|
|
14
|
+
- "FSD/**"
|
|
15
|
+
- "docs/**"
|
|
16
|
+
|
|
17
|
+
# Cancel a superseded run on the same ref (PR re-push / newer main commit). A tag
|
|
18
|
+
# ref is distinct, so this never cancels a release pipeline.
|
|
19
|
+
concurrency:
|
|
20
|
+
group: ci-${{ github.ref }}
|
|
21
|
+
cancel-in-progress: true
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: read
|
|
25
|
+
packages: write # CIRISCache save (GHCR) on main — CIRISServer#99
|
|
26
|
+
|
|
27
|
+
env:
|
|
28
|
+
CARGO_TERM_COLOR: always
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
fmt:
|
|
32
|
+
name: rustfmt
|
|
33
|
+
runs-on: ubuntu-latest
|
|
34
|
+
steps:
|
|
35
|
+
- uses: actions/checkout@v4
|
|
36
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
37
|
+
with:
|
|
38
|
+
components: rustfmt
|
|
39
|
+
- run: cargo fmt --all --check
|
|
40
|
+
|
|
41
|
+
clippy-test:
|
|
42
|
+
name: clippy + test (${{ matrix.os }})
|
|
43
|
+
runs-on: ${{ matrix.os }}
|
|
44
|
+
strategy:
|
|
45
|
+
fail-fast: false
|
|
46
|
+
matrix:
|
|
47
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
51
|
+
with:
|
|
52
|
+
components: clippy
|
|
53
|
+
- name: Install build deps (Linux)
|
|
54
|
+
if: runner.os == 'Linux'
|
|
55
|
+
# libtss2-dev: the Linux-only keyring/tpm backend (cfg(target_os=linux)).
|
|
56
|
+
# libsqlite3-dev: persist's sqlite. macOS/Windows pull NEITHER tss-esapi
|
|
57
|
+
# nor openssl (postgres+tpm are Linux-only per Cargo.toml [target.linux]).
|
|
58
|
+
run: |
|
|
59
|
+
# Drop the preinstalled Microsoft/azure-cli apt repo: it intermittently
|
|
60
|
+
# 403s and tanks apt-get update (its packages are not needed here).
|
|
61
|
+
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list /etc/apt/sources.list.d/azure-cli.list /etc/apt/sources.list.d/azure-cli.sources
|
|
62
|
+
sudo apt-get update
|
|
63
|
+
sudo apt-get install -y libtss2-dev libsqlite3-dev libudev-dev
|
|
64
|
+
- uses: Swatinem/rust-cache@v2
|
|
65
|
+
continue-on-error: true
|
|
66
|
+
with:
|
|
67
|
+
cache-bin: false
|
|
68
|
+
# CIRISCache (CIRISServer#99) — 4-layer centipede over the Swatinem GHA L1.
|
|
69
|
+
# PLAT from the NATIVE target of each runner (macos-latest = arm64). Restore
|
|
70
|
+
# verify→persist→edge→server; SAVE under the server-specific -s key on main.
|
|
71
|
+
- name: Compute CIRISCache keys (4-layer centipede, CIRISServer#99)
|
|
72
|
+
id: cachekey
|
|
73
|
+
shell: bash
|
|
74
|
+
run: |
|
|
75
|
+
case "${{ matrix.os }}" in
|
|
76
|
+
ubuntu-latest) PLAT=linux-x86_64 ;;
|
|
77
|
+
macos-latest) PLAT=macos-aarch64 ;;
|
|
78
|
+
windows-latest) PLAT=windows-x64 ;;
|
|
79
|
+
*) PLAT=unknown ;;
|
|
80
|
+
esac
|
|
81
|
+
RUSTC=$(rustc -V | awk '{print $2}')
|
|
82
|
+
S=$(grep -m1 '^version = ' Cargo.toml | sed -E 's/^version = "([^"]+)".*/\1/')
|
|
83
|
+
P=$(grep -m1 'CIRISPersist.*tag = "v' Cargo.toml | sed -E 's/.*tag = "v([0-9.]+)".*/\1/')
|
|
84
|
+
V=$(grep -m1 'CIRISVerify.*tag = "v' Cargo.toml | sed -E 's/.*tag = "v([0-9.]+)".*/\1/')
|
|
85
|
+
EDGE=$(grep -m1 'CIRISEdge.*tag = "v' Cargo.toml | sed -E 's/.*tag = "v([0-9.]+)".*/\1/')
|
|
86
|
+
BASE="ciris-substrate-v1-${PLAT}-release-rustc${RUSTC}"
|
|
87
|
+
KEY_VERIFY="${BASE}-pnone-enone-v${V:-none}"
|
|
88
|
+
KEY_PERSIST="${BASE}-p${P:-none}-enone-v${V:-none}"
|
|
89
|
+
KEY_EDGE="${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}"
|
|
90
|
+
KEY_SERVER="${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s${S:-none}"
|
|
91
|
+
{
|
|
92
|
+
echo "key-verify=${KEY_VERIFY}"
|
|
93
|
+
echo "key-persist=${KEY_PERSIST}"
|
|
94
|
+
echo "key-edge=${KEY_EDGE}"
|
|
95
|
+
echo "key=${KEY_SERVER}"
|
|
96
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
97
|
+
} >> "$GITHUB_OUTPUT"
|
|
98
|
+
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
99
|
+
echo "::notice::${KEY_VERIFY}"
|
|
100
|
+
echo "::notice::${KEY_PERSIST}"
|
|
101
|
+
echo "::notice::${KEY_EDGE}"
|
|
102
|
+
echo "::notice::${KEY_SERVER}"
|
|
103
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): the layers are
|
|
104
|
+
# cumulative supersets, so one restore of the deepest available blob beats
|
|
105
|
+
# extracting verify→persist→edge→server in sequence (the edge layer alone
|
|
106
|
+
# measured 452s/7.5min on v1 — redundant overwrite I/O).
|
|
107
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
108
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
109
|
+
continue-on-error: true
|
|
110
|
+
with:
|
|
111
|
+
keys: |
|
|
112
|
+
${{ steps.cachekey.outputs.key }}
|
|
113
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
114
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
115
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
116
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
117
|
+
# Default features build everywhere (sqlite + the binary path); postgres +
|
|
118
|
+
# tpm are Linux-only (per-target). NOT --all-features: that drags
|
|
119
|
+
# `extension-module` (libpython-no-link) into the test binary.
|
|
120
|
+
- run: cargo clippy --all-targets -- -D warnings
|
|
121
|
+
- run: cargo test
|
|
122
|
+
# The NOISE FLOOR proof (CIRISServer#14, CEG §19.7 / §19.3 N5) — provable
|
|
123
|
+
# individual-unrecoverability for erasure compliance, run explicitly so the
|
|
124
|
+
# MEASURED residual-fidelity numbers land in the CI log (Linux only — one
|
|
125
|
+
# canonical record; the test also runs on every OS via `cargo test` above).
|
|
126
|
+
# The three gated cases: (a) revocation ⇒ EjectHardDelete leaves NO
|
|
127
|
+
# recoverable tier, (b) the measured noise floor below n_source symbols,
|
|
128
|
+
# (c) N→1 aggregation erases the individual below the 1/N gist bound.
|
|
129
|
+
- name: Noise floor proof (MEASURED, Linux)
|
|
130
|
+
if: runner.os == 'Linux'
|
|
131
|
+
run: cargo test --test noise_floor -- --nocapture
|
|
132
|
+
# The PyO3 wheel surface (Linux only; libpython linked, no extension-module).
|
|
133
|
+
- name: clippy (python surface, Linux)
|
|
134
|
+
if: runner.os == 'Linux'
|
|
135
|
+
run: cargo clippy --all-targets --features python -- -D warnings
|
|
136
|
+
# NB: CI does NOT save a cache blob. It builds DEBUG (clippy+test); saving a
|
|
137
|
+
# debug `target/` measured ~586s (10 min) on main to spare only the ~30s
|
|
138
|
+
# debug ciris-server recompile next run — a net loss — and it collided with
|
|
139
|
+
# conformance's RELEASE `-s<version>` blob (same key). The release `-s` is
|
|
140
|
+
# populated by conformance (on main) + build-wheels (on tags); CI only
|
|
141
|
+
# RESTORES (the centipede above) and lets cargo do the cheap debug delta.
|
|
@@ -146,25 +146,25 @@ jobs:
|
|
|
146
146
|
echo "key-persist=${BASE}-p${P:-none}-enone-v${V:-none}"
|
|
147
147
|
echo "key-edge=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}"
|
|
148
148
|
echo "key=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s${S:-none}"
|
|
149
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
149
150
|
} >> "$GITHUB_OUTPUT"
|
|
150
151
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
151
|
-
-
|
|
152
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction.
|
|
153
|
+
- uses: CIRISAI/CIRISCache/restore@v2
|
|
152
154
|
continue-on-error: true
|
|
153
|
-
with:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
- uses: CIRISAI/CIRISCache/restore@v1
|
|
161
|
-
continue-on-error: true
|
|
162
|
-
with: { key: "${{ steps.cachekey.outputs.key }}" }
|
|
155
|
+
with:
|
|
156
|
+
keys: |
|
|
157
|
+
${{ steps.cachekey.outputs.key }}
|
|
158
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
159
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
160
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
161
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
163
162
|
|
|
164
|
-
- name: Set up Java 17 (Liberica
|
|
165
|
-
# Liberica
|
|
166
|
-
#
|
|
167
|
-
#
|
|
163
|
+
- name: Set up Java 17 (Liberica)
|
|
164
|
+
# Liberica 17 provides the trimmed jlink runtime bundled into the
|
|
165
|
+
# installer. Modern Windows floor (Win10+/Server 2016+) since 0.5.65 —
|
|
166
|
+
# the Win7 support that drove this distro choice is no longer a
|
|
167
|
+
# requirement, but Liberica stays (stable jlink source).
|
|
168
168
|
uses: actions/setup-java@v4
|
|
169
169
|
with:
|
|
170
170
|
distribution: 'liberica'
|
|
@@ -246,16 +246,8 @@ jobs:
|
|
|
246
246
|
if (-not $jar) { Write-Error "No CIRIS-windows-*.jar found"; exit 1 }
|
|
247
247
|
.\installers\windows\bundle-jre.ps1 -JarPath $jar.FullName -OutputDir dist\runtime
|
|
248
248
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
shell: pwsh
|
|
252
|
-
run: |
|
|
253
|
-
$dst = "installers/windows/redist"
|
|
254
|
-
New-Item -ItemType Directory -Force -Path $dst | Out-Null
|
|
255
|
-
$url = "https://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/Windows6.1-KB2999226-x64.msu"
|
|
256
|
-
try {
|
|
257
|
-
Invoke-WebRequest -Uri $url -OutFile "$dst/Windows6.1-KB2999226-x64.msu" -UseBasicParsing -TimeoutSec 120
|
|
258
|
-
} catch { Write-Warning "UCRT fetch failed ($_); Win7 users hand-provision." }
|
|
249
|
+
# (Removed in 0.5.65: the Universal CRT redist fetch was a Win7 SP1
|
|
250
|
+
# prerequisite — Win10+/Server 2016+ ship the UCRT in-box.)
|
|
259
251
|
|
|
260
252
|
- name: Install Inno Setup
|
|
261
253
|
uses: nick-fields/retry@v4
|
|
@@ -79,32 +79,25 @@ jobs:
|
|
|
79
79
|
echo "key-persist=${KEY_PERSIST}"
|
|
80
80
|
echo "key-edge=${KEY_EDGE}"
|
|
81
81
|
echo "key=${KEY_SERVER}"
|
|
82
|
+
echo "key-server-prefix=${BASE}-p${P:-none}-e${EDGE:-none}-v${V:-none}-s"
|
|
82
83
|
} >> "$GITHUB_OUTPUT"
|
|
83
84
|
echo "::notice::CIRISCache (${PLAT}): S=${S:-NONE} P=${P:-NONE} V=${V:-NONE} EDGE=${EDGE:-NONE} RUSTC=${RUSTC}"
|
|
84
85
|
echo "::notice::${KEY_VERIFY}"
|
|
85
86
|
echo "::notice::${KEY_PERSIST}"
|
|
86
87
|
echo "::notice::${KEY_EDGE}"
|
|
87
88
|
echo "::notice::${KEY_SERVER}"
|
|
88
|
-
-
|
|
89
|
-
|
|
89
|
+
# Deepest-first, first-hit-wins (CIRISCache restore@v2): one extraction of
|
|
90
|
+
# the deepest available blob (cumulative supersets) instead of N redundant.
|
|
91
|
+
- name: CIRISCache restore (server→edge→persist→verify, first hit)
|
|
92
|
+
uses: CIRISAI/CIRISCache/restore@v2
|
|
90
93
|
continue-on-error: true
|
|
91
94
|
with:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
- name: CIRISCache restore (edge layer)
|
|
99
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
100
|
-
continue-on-error: true
|
|
101
|
-
with:
|
|
102
|
-
key: ${{ steps.cachekey.outputs.key-edge }}
|
|
103
|
-
- name: CIRISCache restore (server layer)
|
|
104
|
-
uses: CIRISAI/CIRISCache/restore@v1
|
|
105
|
-
continue-on-error: true
|
|
106
|
-
with:
|
|
107
|
-
key: ${{ steps.cachekey.outputs.key }}
|
|
95
|
+
keys: |
|
|
96
|
+
${{ steps.cachekey.outputs.key }}
|
|
97
|
+
${{ steps.cachekey.outputs.key-server-prefix }}*
|
|
98
|
+
${{ steps.cachekey.outputs.key-edge }}
|
|
99
|
+
${{ steps.cachekey.outputs.key-persist }}
|
|
100
|
+
${{ steps.cachekey.outputs.key-verify }}
|
|
108
101
|
- name: Install build deps
|
|
109
102
|
#: the family links the TPM keyring backend on Linux.
|
|
110
103
|
# libsqlite3-dev: persist's sqlite backend.
|