ciris-server 0.4.4__tar.gz → 0.4.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. {ciris_server-0.4.4 → ciris_server-0.4.6}/Cargo.lock +88 -17
  2. {ciris_server-0.4.4 → ciris_server-0.4.6}/Cargo.toml +21 -10
  3. {ciris_server-0.4.4 → ciris_server-0.4.6}/PKG-INFO +27 -12
  4. {ciris_server-0.4.4 → ciris_server-0.4.6}/README.md +26 -11
  5. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/Cargo.toml +3 -3
  6. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/ownership.rs +105 -51
  7. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/compose.rs +90 -24
  8. ciris_server-0.4.6/src/identity.rs +781 -0
  9. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/lib.rs +48 -0
  10. ciris_server-0.4.6/src/main.rs +154 -0
  11. ciris_server-0.4.6/src/safety/age.rs +501 -0
  12. ciris_server-0.4.6/src/safety/mod.rs +112 -0
  13. ciris_server-0.4.6/src/safety/moderation.rs +367 -0
  14. ciris_server-0.4.6/src/safety/named.rs +337 -0
  15. ciris_server-0.4.6/src/safety/watchlist.rs +485 -0
  16. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/scorer.rs +11 -5
  17. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/capacity_scorer.rs +37 -9
  18. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/federation_admin.rs +42 -5
  19. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/ownership.rs +82 -22
  20. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/peer_replication.rs +13 -7
  21. ciris_server-0.4.6/tests/safety.rs +848 -0
  22. ciris_server-0.4.4/src/main.rs +0 -51
  23. {ciris_server-0.4.4 → ciris_server-0.4.6}/.cargo/config.toml +0 -0
  24. {ciris_server-0.4.4 → ciris_server-0.4.6}/.github/workflows/bench.yml +0 -0
  25. {ciris_server-0.4.4 → ciris_server-0.4.6}/.github/workflows/ci.yml +0 -0
  26. {ciris_server-0.4.4 → ciris_server-0.4.6}/.github/workflows/conformance.yml +0 -0
  27. {ciris_server-0.4.4 → ciris_server-0.4.6}/.github/workflows/publish-pypi.yml +0 -0
  28. {ciris_server-0.4.4 → ciris_server-0.4.6}/.github/workflows/release.yml +0 -0
  29. {ciris_server-0.4.4 → ciris_server-0.4.6}/.gitignore +0 -0
  30. {ciris_server-0.4.4 → ciris_server-0.4.6}/CHANGELOG.md +0 -0
  31. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/LENS_TO_SERVER_MIGRATION.md +0 -0
  32. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/MESH_ANIMATION_BRIEF.md +0 -0
  33. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/MODERATION_CHILD_SAFETY.md +0 -0
  34. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/ONE_WHEEL_REEXPORT.md +0 -0
  35. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/PQC_AV_STREAMING_BENCH.md +0 -0
  36. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/QA_AGAINST_RUST.md +0 -0
  37. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/REGISTRY_FOLD_DERISK.md +0 -0
  38. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/SAFETY_LANDSCAPE.md +0 -0
  39. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/SERVER_1.0_PLAN.md +0 -0
  40. {ciris_server-0.4.4 → ciris_server-0.4.6}/FSD/WATCHLIST_DETECTION.md +0 -0
  41. {ciris_server-0.4.4 → ciris_server-0.4.6}/LICENSE +0 -0
  42. {ciris_server-0.4.4 → ciris_server-0.4.6}/MISSION.md +0 -0
  43. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/.gitignore +0 -0
  44. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/README.md +0 -0
  45. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/build.gradle.kts +0 -0
  46. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/build.gradle.kts +0 -0
  47. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/auth/FederationSigner.kt +0 -0
  48. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/Erasure.kt +0 -0
  49. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationContent.kt +0 -0
  50. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationMetrics.kt +0 -0
  51. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationPeer.kt +0 -0
  52. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/NodeCode.kt +0 -0
  53. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/identity/LocalIdentityAggregate.kt +0 -0
  54. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/net/FabricClient.kt +0 -0
  55. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/net/FabricEndpoints.kt +0 -0
  56. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/platform/PlatformLogger.kt +0 -0
  57. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/ui/screens/ErasureScreen.kt +0 -0
  58. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/ui/screens/IdentityScreen.kt +0 -0
  59. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/viewmodel/ErasureViewModel.kt +0 -0
  60. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/viewmodel/IdentityViewModel.kt +0 -0
  61. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/fabric-client/src/commonTest/kotlin/ai/ciris/fabric/IdentitySliceTest.kt +0 -0
  62. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/gradle/wrapper/gradle-wrapper.jar +0 -0
  63. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/gradle/wrapper/gradle-wrapper.properties +0 -0
  64. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/gradle.properties +0 -0
  65. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/gradlew +0 -0
  66. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/gradlew.bat +0 -0
  67. {ciris_server-0.4.4 → ciris_server-0.4.6}/app/settings.gradle.kts +0 -0
  68. {ciris_server-0.4.4 → ciris_server-0.4.6}/bench-site/data.json +0 -0
  69. {ciris_server-0.4.4 → ciris_server-0.4.6}/bench-site/index.html +0 -0
  70. {ciris_server-0.4.4 → ciris_server-0.4.6}/benches/alm_chain.rs +0 -0
  71. {ciris_server-0.4.4 → ciris_server-0.4.6}/benches/pqc_av_streaming.rs +0 -0
  72. {ciris_server-0.4.4 → ciris_server-0.4.6}/benches/replication_ingest.rs +0 -0
  73. {ciris_server-0.4.4 → ciris_server-0.4.6}/benches/stream_fanout.rs +0 -0
  74. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/.github/workflows/bench.yml +0 -0
  75. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/.github/workflows/ci.yml +0 -0
  76. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/.gitignore +0 -0
  77. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/.pre-commit-config.yaml +0 -0
  78. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/FSD/CIRIS_LENS_CORE.md +0 -0
  79. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/FSD/LENS_CORE_V0_5.md +0 -0
  80. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/FSD/OPEN_QUESTIONS.md +0 -0
  81. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/LICENSE +0 -0
  82. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/MISSION.md +0 -0
  83. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/README.md +0 -0
  84. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/benches/aggregate.rs +0 -0
  85. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/benches/canonicalize.rs +0 -0
  86. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/benches/project.rs +0 -0
  87. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/deny.toml +0 -0
  88. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/BENCHMARKS.md +0 -0
  89. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/COHABITATION.md +0 -0
  90. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/PRE_COMMIT.md +0 -0
  91. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/PUBLIC_SCHEMA_CONTRACT.md +0 -0
  92. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/PYPI_PUBLISH.md +0 -0
  93. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/RELEASE_NOTES.md +0 -0
  94. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/STANDARDS_COMPARISON.md +0 -0
  95. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/docs/THREAT_MODEL.md +0 -0
  96. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/json_path.rs +0 -0
  97. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/metadata.rs +0 -0
  98. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/mod.rs +0 -0
  99. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/distilbert_loader.rs +0 -0
  100. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/fields.rs +0 -0
  101. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/mod.rs +0 -0
  102. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ner.rs +0 -0
  103. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ort_loader.rs +0 -0
  104. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/proptests.rs +0 -0
  105. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/regex.rs +0 -0
  106. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/walker.rs +0 -0
  107. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/xlm_r_loader.rs +0 -0
  108. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/pyproject.toml +0 -0
  109. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/python/ciris_lens_core/__init__.py +0 -0
  110. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/audit/api.rs +0 -0
  111. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/audit/delegate.rs +0 -0
  112. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/audit/mod.rs +0 -0
  113. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/audit/pyo3.rs +0 -0
  114. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/canonical/ceg_egress.rs +0 -0
  115. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/canonical/mod.rs +0 -0
  116. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capacity/attestation.rs +0 -0
  117. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capacity/mod.rs +0 -0
  118. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capacity/score.rs +0 -0
  119. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/batch.rs +0 -0
  120. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/client.rs +0 -0
  121. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/consent.rs +0 -0
  122. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/correlation.rs +0 -0
  123. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/event.rs +0 -0
  124. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/mod.rs +0 -0
  125. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/partial.rs +0 -0
  126. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/py_engine.rs +0 -0
  127. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/capture/seal.rs +0 -0
  128. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/cohort/declared.rs +0 -0
  129. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/cohort/mod.rs +0 -0
  130. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/cohort/resourcing.rs +0 -0
  131. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/config/egress.rs +0 -0
  132. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/config/mod.rs +0 -0
  133. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/config/node.rs +0 -0
  134. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/config/retention.rs +0 -0
  135. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/config/upstream.rs +0 -0
  136. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/axis_metrics.rs +0 -0
  137. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/coherence_ratchet.rs +0 -0
  138. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/correlated_action.rs +0 -0
  139. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/distributive_access.rs +0 -0
  140. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/manifold.rs +0 -0
  141. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/detector/mod.rs +0 -0
  142. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/extract/mod.rs +0 -0
  143. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/extract/projection.rs +0 -0
  144. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/ffi/mod.rs +0 -0
  145. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/ffi/pyo3.rs +0 -0
  146. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/lib.rs +0 -0
  147. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/observability/mod.rs +0 -0
  148. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/pipeline/lifecycle.rs +0 -0
  149. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/pipeline/mod.rs +0 -0
  150. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/retention/eviction.rs +0 -0
  151. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/retention/mod.rs +0 -0
  152. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/retention/summary.rs +0 -0
  153. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/role/handler.rs +0 -0
  154. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/role/mod.rs +0 -0
  155. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/role/node.rs +0 -0
  156. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/role/relay.rs +0 -0
  157. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/role/ret_relay.rs +0 -0
  158. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scores/aggregate.rs +0 -0
  159. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scores/mod.rs +0 -0
  160. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scores/oracle.rs +0 -0
  161. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/assembly.rs +0 -0
  162. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/axis_calibration.rs +0 -0
  163. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/calibration.rs +0 -0
  164. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/capacity.rs +0 -0
  165. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/mod.rs +0 -0
  166. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/n_eff.rs +0 -0
  167. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/scoring/result.rs +0 -0
  168. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/signing/event.rs +0 -0
  169. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/signing/mod.rs +0 -0
  170. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/wire/mod.rs +0 -0
  171. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/src/wire/signer.rs +0 -0
  172. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/tests/parity/README.md +0 -0
  173. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/tests/parity/canonical_fixtures.json +0 -0
  174. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/tests/parity/generate_canonical_fixtures.py +0 -0
  175. {ciris_server-0.4.4 → ciris_server-0.4.6}/crates/ciris-lens-core/tests/sovereign_rlib.rs +0 -0
  176. {ciris_server-0.4.4 → ciris_server-0.4.6}/pyproject.toml +0 -0
  177. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/README.md +0 -0
  178. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/README.md +0 -0
  179. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/REFACTORING_SUMMARY.md +0 -0
  180. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/__init__.py +0 -0
  181. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/auth_store.py +0 -0
  182. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/client.py +0 -0
  183. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/examples/__init__.py +0 -0
  184. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/examples/agent_interaction.py +0 -0
  185. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/examples/unified_telemetry_examples.py +0 -0
  186. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/examples/wa_example.py +0 -0
  187. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/exceptions.py +0 -0
  188. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/model_types.py +0 -0
  189. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/models.py +0 -0
  190. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/pagination.py +0 -0
  191. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/rate_limiter.py +0 -0
  192. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/CONFIG_CLIENT.md +0 -0
  193. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/WA_CLIENT_GUIDE.md +0 -0
  194. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/__init__.py +0 -0
  195. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/agent.py +0 -0
  196. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/audit.py +0 -0
  197. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/auth.py +0 -0
  198. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/billing.py +0 -0
  199. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/config.py +0 -0
  200. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/consent.py +0 -0
  201. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/emergency.py +0 -0
  202. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/jobs.py +0 -0
  203. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/memory.py +0 -0
  204. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/setup.py +0 -0
  205. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/system.py +0 -0
  206. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/telemetry.py +0 -0
  207. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/wa.py +0 -0
  208. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/resources/websocket.py +0 -0
  209. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/setup.py +0 -0
  210. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/telemetry_models.py +0 -0
  211. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/telemetry_responses.py +0 -0
  212. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/transport.py +0 -0
  213. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/ciris_sdk/websocket.py +0 -0
  214. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/fabric_results.json +0 -0
  215. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/BILLING_QA_README.md +0 -0
  216. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/CLAUDE.md +0 -0
  217. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/README.md +0 -0
  218. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/SDK_MODULE_INTEGRATION.md +0 -0
  219. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/__init__.py +0 -0
  220. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/__main__.py +0 -0
  221. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/config.py +0 -0
  222. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/mcp_test_server.py +0 -0
  223. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/CLAUDE.md +0 -0
  224. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/MULTI_OCCURRENCE_README.md +0 -0
  225. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/__init__.py +0 -0
  226. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/_module_metadata.py +0 -0
  227. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/accord_metrics_tests.py +0 -0
  228. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/accord_tests.py +0 -0
  229. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/adapter_autoload_tests.py +0 -0
  230. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/adapter_availability_tests.py +0 -0
  231. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/adapter_config_tests.py +0 -0
  232. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/adapter_manifest_tests.py +0 -0
  233. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/agent_mode_tests.py +0 -0
  234. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/air_tests.py +0 -0
  235. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/api_tests.py +0 -0
  236. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/base_test_module.py +0 -0
  237. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/billing_integration_tests.py +0 -0
  238. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/billing_tests.py +0 -0
  239. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/cirisnode_tests.py +0 -0
  240. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/cognitive_state_api_tests.py +0 -0
  241. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/comprehensive_api_tests.py +0 -0
  242. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/comprehensive_single_step_tests.py +0 -0
  243. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/consent_tests.py +0 -0
  244. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/context_enrichment_tests.py +0 -0
  245. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/deferral_taxonomy_tests.py +0 -0
  246. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/deferral_tests.py +0 -0
  247. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/degraded_mode_tests.py +0 -0
  248. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/desktop_viz.py +0 -0
  249. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/dream_live_tests.py +0 -0
  250. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/dsar_multi_source_tests.py +0 -0
  251. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/dsar_tests.py +0 -0
  252. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/dsar_ticket_workflow_tests.py +0 -0
  253. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/filter_test_helper.py +0 -0
  254. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/filter_tests.py +0 -0
  255. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/handler_tests.py +0 -0
  256. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/he300_benchmark_tests.py +0 -0
  257. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/homeassistant_agentic_tests.py +0 -0
  258. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/hosted_tools_tests.py +0 -0
  259. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/identity_update_tests.py +0 -0
  260. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/l4_attestation_tests.py +0 -0
  261. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/licensed_agent_tests.py +0 -0
  262. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mcp_tests.py +0 -0
  263. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/memory_benchmark_tests.py +0 -0
  264. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/message_id_debug_test.py +0 -0
  265. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/__init__.py +0 -0
  266. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/__main__.py +0 -0
  267. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/adb_helper.py +0 -0
  268. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/device_helper.py +0 -0
  269. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/first_time_licensed_agent.py +0 -0
  270. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/__init__.py +0 -0
  271. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/build_helper.py +0 -0
  272. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/idevice_helper.py +0 -0
  273. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/ios_ui_automator.py +0 -0
  274. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/vision_helper.py +0 -0
  275. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios/xcrun_helper.py +0 -0
  276. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios_physical_test_cases.py +0 -0
  277. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ios_test_cases.py +0 -0
  278. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/portal_registration.py +0 -0
  279. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/test_cases.py +0 -0
  280. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/test_runner.py +0 -0
  281. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/ui_automator.py +0 -0
  282. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/mobile/verify_trust_tests.py +0 -0
  283. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/model_eval_tests.py +0 -0
  284. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/multi_occurrence_tests.py +0 -0
  285. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/parallel_locales_tests.py +0 -0
  286. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/partnership_tests.py +0 -0
  287. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/play_live_tests.py +0 -0
  288. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/reddit_tests.py +0 -0
  289. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/safety_battery.py +0 -0
  290. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/safety_interpret.py +0 -0
  291. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/sdk_tests.py +0 -0
  292. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/secrets_encryption_tests.py +0 -0
  293. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/setup_e2e_tests.py +0 -0
  294. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/setup_tests.py +0 -0
  295. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/simple_single_step_tests.py +0 -0
  296. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/solitude_live_tests.py +0 -0
  297. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/sql_external_data_tests.py +0 -0
  298. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/state_transition_tests.py +0 -0
  299. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/streaming_verification.py +0 -0
  300. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/system_messages_tests.py +0 -0
  301. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/utility_adapters_tests.py +0 -0
  302. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/vision_tests.py +0 -0
  303. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/wallet_tests.py +0 -0
  304. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/CLAUDE.md +0 -0
  305. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/__init__.py +0 -0
  306. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/__main__.py +0 -0
  307. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/browser_helper.py +0 -0
  308. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/desktop_app_helper.py +0 -0
  309. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/desktop_test.py +0 -0
  310. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/federation_screen_tags.py +0 -0
  311. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/federation_walk_report.py +0 -0
  312. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/federation_walk_test.py +0 -0
  313. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/licensed_agent_flow.py +0 -0
  314. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/server_manager.py +0 -0
  315. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/test_cases.py +0 -0
  316. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/test_federation_walk_unit.py +0 -0
  317. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/modules/web_ui/test_runner.py +0 -0
  318. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_api_test.py +0 -0
  319. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports/qa_report_20250825_073205.json +0 -0
  320. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports/qa_report_20250825_153259.json +0 -0
  321. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports/qa_report_20250825_154628.json +0 -0
  322. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports/qa_report_20250825_154817.json +0 -0
  323. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports/qa_report_20250825_155917.json +0 -0
  324. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports_comprehensive/qa_report_20250825_075504.json +0 -0
  325. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports_final/qa_report_20250825_092420.json +0 -0
  326. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_reports_test/qa_report_20250825_092452.json +0 -0
  327. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_scripts/README.md +0 -0
  328. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_scripts/qa_api_test.py +0 -0
  329. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_scripts/qa_v1.0_sdk_comprehensive.py +0 -0
  330. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_scripts/qa_v1.0_unhealthy_services_check.py +0 -0
  331. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_test.py +0 -0
  332. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/qa_test_sdk.py +0 -0
  333. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/requirements.txt +0 -0
  334. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/runner.py +0 -0
  335. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/scripts/__init__.py +0 -0
  336. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/scripts/he300_stream_debug.py +0 -0
  337. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/server.py +0 -0
  338. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/staged_env.py +0 -0
  339. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/status_tracker.py +0 -0
  340. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/test_data/dsar_multi_source_privacy_schema.yaml +0 -0
  341. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/test_data/qa_test.db +0 -0
  342. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/test_data/qa_test_privacy_schema.yaml +0 -0
  343. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/qa_runner/test_data/sql_config.json +0 -0
  344. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/run_fabric.py +0 -0
  345. {ciris_server-0.4.4 → ciris_server-0.4.6}/qa/seed_wa_cert.py +0 -0
  346. {ciris_server-0.4.4 → ciris_server-0.4.6}/rust-toolchain.toml +0 -0
  347. {ciris_server-0.4.4 → ciris_server-0.4.6}/scripts/bench_report.py +0 -0
  348. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/ABSORPTION.md +0 -0
  349. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/api_keys.rs +0 -0
  350. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/attestation.rs +0 -0
  351. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/bootstrap.rs +0 -0
  352. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/consent.rs +0 -0
  353. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/device_auth.rs +0 -0
  354. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/erasure.rs +0 -0
  355. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/gate.rs +0 -0
  356. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/mod.rs +0 -0
  357. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/oauth.rs +0 -0
  358. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/roles.rs +0 -0
  359. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/self_login.rs +0 -0
  360. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/session.rs +0 -0
  361. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/store.rs +0 -0
  362. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/auth/verify.rs +0 -0
  363. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/benchmarks/mod.rs +0 -0
  364. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/benchmarks/scoreboard.rs +0 -0
  365. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/claim_remote.rs +0 -0
  366. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/config.rs +0 -0
  367. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/federation_admin.rs +0 -0
  368. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/federation_nodecode.rs +0 -0
  369. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/import.rs +0 -0
  370. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/nodecode.rs +0 -0
  371. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/peer.rs +0 -0
  372. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/quorum.rs +0 -0
  373. {ciris_server-0.4.4 → ciris_server-0.4.6}/src/scorer/n_eff.rs +0 -0
  374. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/alm_chain.rs +0 -0
  375. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/chaos_mesh.rs +0 -0
  376. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/claim_remote.rs +0 -0
  377. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/nodecode.rs +0 -0
  378. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/noise_floor.rs +0 -0
  379. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/replication.rs +0 -0
  380. {ciris_server-0.4.4 → ciris_server-0.4.6}/tests/root_bootstrap.rs +0 -0
@@ -530,9 +530,9 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7"
530
530
 
531
531
  [[package]]
532
532
  name = "bitcoin_hashes"
533
- version = "0.14.100"
533
+ version = "0.14.2"
534
534
  source = "registry+https://github.com/rust-lang/crates.io-index"
535
- checksum = "0c9901a56e133a1fc86eeb1113e2591f45f4682451ca893bff494d2f88918e3f"
535
+ checksum = "4ed83caece3afc59919481b33b472e1432d1abc4641ed9100be142ef5110b406"
536
536
  dependencies = [
537
537
  "hex-conservative",
538
538
  ]
@@ -644,15 +644,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
644
644
 
645
645
  [[package]]
646
646
  name = "bytes"
647
- version = "1.11.1"
647
+ version = "1.12.0"
648
648
  source = "registry+https://github.com/rust-lang/crates.io-index"
649
- checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
649
+ checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
650
650
 
651
651
  [[package]]
652
652
  name = "camino"
653
- version = "1.2.2"
653
+ version = "1.2.3"
654
654
  source = "registry+https://github.com/rust-lang/crates.io-index"
655
- checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48"
655
+ checksum = "b4ce8d3bd5823c7504d3f579f13e7b2f3da252fcb938c594d5680ee508bf846f"
656
656
  dependencies = [
657
657
  "serde_core",
658
658
  ]
@@ -812,8 +812,8 @@ dependencies = [
812
812
 
813
813
  [[package]]
814
814
  name = "ciris-crypto"
815
- version = "5.11.0"
816
- source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v5.11.0#4495706b4d7d1c28c7143df6e571b95f38512251"
815
+ version = "6.0.0"
816
+ source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v6.0.0#1e894008352a480594adc53c21e6d4a0290862a3"
817
817
  dependencies = [
818
818
  "ed25519-dalek",
819
819
  "hex",
@@ -838,8 +838,8 @@ dependencies = [
838
838
 
839
839
  [[package]]
840
840
  name = "ciris-edge"
841
- version = "4.5.1"
842
- source = "git+https://github.com/CIRISAI/CIRISEdge?tag=v4.5.1#0a5db46da97b07a3b41b483f9793eff16bb72ce7"
841
+ version = "4.6.0"
842
+ source = "git+https://github.com/CIRISAI/CIRISEdge?tag=v4.6.0#630d2c7330716927979a4400fc19d86607ecd2f5"
843
843
  dependencies = [
844
844
  "async-trait",
845
845
  "axum",
@@ -890,8 +890,8 @@ dependencies = [
890
890
 
891
891
  [[package]]
892
892
  name = "ciris-keyring"
893
- version = "5.11.0"
894
- source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v5.11.0#4495706b4d7d1c28c7143df6e571b95f38512251"
893
+ version = "6.0.0"
894
+ source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v6.0.0#1e894008352a480594adc53c21e6d4a0290862a3"
895
895
  dependencies = [
896
896
  "aes-gcm",
897
897
  "async-trait",
@@ -899,6 +899,7 @@ dependencies = [
899
899
  "ciris-crypto",
900
900
  "core-foundation 0.9.4",
901
901
  "core-foundation-sys",
902
+ "cryptoki",
902
903
  "dirs",
903
904
  "ed25519-dalek",
904
905
  "hex",
@@ -954,8 +955,8 @@ dependencies = [
954
955
 
955
956
  [[package]]
956
957
  name = "ciris-persist"
957
- version = "8.8.0"
958
- source = "git+https://github.com/CIRISAI/CIRISPersist?tag=v8.8.0#7af98862097bd4efc79e67af1991ec52c464db46"
958
+ version = "9.0.0"
959
+ source = "git+https://github.com/CIRISAI/CIRISPersist?tag=v9.0.0#c2ee16518698aeccea6c13b622b5aae22b8967ec"
959
960
  dependencies = [
960
961
  "async-trait",
961
962
  "base64 0.22.1",
@@ -994,7 +995,7 @@ dependencies = [
994
995
 
995
996
  [[package]]
996
997
  name = "ciris-server"
997
- version = "0.4.4"
998
+ version = "0.4.6"
998
999
  dependencies = [
999
1000
  "anyhow",
1000
1001
  "async-trait",
@@ -1031,8 +1032,8 @@ dependencies = [
1031
1032
 
1032
1033
  [[package]]
1033
1034
  name = "ciris-verify-core"
1034
- version = "5.11.0"
1035
- source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v5.11.0#4495706b4d7d1c28c7143df6e571b95f38512251"
1035
+ version = "6.0.0"
1036
+ source = "git+https://github.com/CIRISAI/CIRISVerify?tag=v6.0.0#1e894008352a480594adc53c21e6d4a0290862a3"
1036
1037
  dependencies = [
1037
1038
  "android_system_properties",
1038
1039
  "anyhow",
@@ -1052,8 +1053,10 @@ dependencies = [
1052
1053
  "libc",
1053
1054
  "prost",
1054
1055
  "prost-build",
1056
+ "qrcode",
1055
1057
  "rand 0.8.6",
1056
1058
  "reqwest",
1059
+ "rpassword",
1057
1060
  "rusqlite",
1058
1061
  "rustls 0.21.12",
1059
1062
  "rustls 0.23.40",
@@ -1342,6 +1345,28 @@ dependencies = [
1342
1345
  "rand_core 0.10.1",
1343
1346
  ]
1344
1347
 
1348
+ [[package]]
1349
+ name = "cryptoki"
1350
+ version = "0.12.0"
1351
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1352
+ checksum = "ff765b99fc49f3116c9a908484486a2b92fd73c48da45c3a69716471c6cc56c6"
1353
+ dependencies = [
1354
+ "bitflags 2.13.0",
1355
+ "cryptoki-sys",
1356
+ "libloading",
1357
+ "log",
1358
+ "secrecy",
1359
+ ]
1360
+
1361
+ [[package]]
1362
+ name = "cryptoki-sys"
1363
+ version = "0.5.0"
1364
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1365
+ checksum = "f1fd850498411e4057f1cba79e6e2bc7cbe960544c1046ab46d4685c403a1121"
1366
+ dependencies = [
1367
+ "libloading",
1368
+ ]
1369
+
1345
1370
  [[package]]
1346
1371
  name = "ctr"
1347
1372
  version = "0.9.2"
@@ -3261,6 +3286,16 @@ dependencies = [
3261
3286
  "rand 0.9.4",
3262
3287
  ]
3263
3288
 
3289
+ [[package]]
3290
+ name = "libloading"
3291
+ version = "0.8.9"
3292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
3293
+ checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
3294
+ dependencies = [
3295
+ "cfg-if",
3296
+ "windows-link",
3297
+ ]
3298
+
3264
3299
  [[package]]
3265
3300
  name = "libm"
3266
3301
  version = "0.2.16"
@@ -4481,6 +4516,12 @@ dependencies = [
4481
4516
  "syn 2.0.118",
4482
4517
  ]
4483
4518
 
4519
+ [[package]]
4520
+ name = "qrcode"
4521
+ version = "0.14.1"
4522
+ source = "registry+https://github.com/rust-lang/crates.io-index"
4523
+ checksum = "d68782463e408eb1e668cf6152704bd856c78c5b6417adaee3203d8f4c1fc9ec"
4524
+
4484
4525
  [[package]]
4485
4526
  name = "qrcodegen"
4486
4527
  version = "1.8.0"
@@ -4984,6 +5025,27 @@ dependencies = [
4984
5025
  "rmp",
4985
5026
  ]
4986
5027
 
5028
+ [[package]]
5029
+ name = "rpassword"
5030
+ version = "7.5.4"
5031
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5032
+ checksum = "2da316a15f47e3d053de9cb2c439650bd8fa4aaeb9365f2e5f27f492ff73c196"
5033
+ dependencies = [
5034
+ "libc",
5035
+ "rtoolbox",
5036
+ "windows-sys 0.61.2",
5037
+ ]
5038
+
5039
+ [[package]]
5040
+ name = "rtoolbox"
5041
+ version = "0.0.5"
5042
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5043
+ checksum = "50a0e551c1e27e1731aba276dbeaeac73f53c7cd34d1bda485d02bd1e0f36844"
5044
+ dependencies = [
5045
+ "libc",
5046
+ "windows-sys 0.59.0",
5047
+ ]
5048
+
4987
5049
  [[package]]
4988
5050
  name = "rusqlite"
4989
5051
  version = "0.31.0"
@@ -5250,6 +5312,15 @@ dependencies = [
5250
5312
  "zeroize",
5251
5313
  ]
5252
5314
 
5315
+ [[package]]
5316
+ name = "secrecy"
5317
+ version = "0.10.3"
5318
+ source = "registry+https://github.com/rust-lang/crates.io-index"
5319
+ checksum = "e891af845473308773346dc847b2c23ee78fe442e0472ac50e22a18a93d3ae5a"
5320
+ dependencies = [
5321
+ "zeroize",
5322
+ ]
5323
+
5253
5324
  [[package]]
5254
5325
  name = "secret-service"
5255
5326
  version = "3.1.0"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "ciris-server"
3
- version = "0.4.4" # 0.1 = lens-only (agent ~2.9.7); 0.3 = +auth subsystem / one-wheel; 0.4 = +federation peering/identity (capacity scoring, consent:replication, register_federation_key gate, root-bootstrap, NodeCode); 0.4.1 = self-attested first-run root claim (#887); 0.4.2 = one-time claim PIN; 0.4.3 = CC-compliant ownership (infra:* responsible-party owner-binding, no agency, serve-only-until-owned); 0.4.4 = substrate-native user-signed owner-binding — 1-phase /v1/setup/root + the local node's /v1/setup/claim-remote (client is a node; crypto only in the substrate); 0.5 = +registry (~2.9.8); 1.0 = +node (~2.9.10). Patch forward on breakage.
3
+ version = "0.4.6" # 0.1 = lens-only (agent ~2.9.7); 0.3 = +auth subsystem / one-wheel; 0.4 = +federation peering/identity (capacity scoring, consent:replication, register_federation_key gate, root-bootstrap, NodeCode); 0.4.1 = self-attested first-run root claim (#887); 0.4.2 = one-time claim PIN; 0.4.3 = CC-compliant ownership (infra:* responsible-party owner-binding, no agency, serve-only-until-owned); 0.4.4 = substrate-native user-signed owner-binding — 1-phase /v1/setup/root + the local node's /v1/setup/claim-remote (client is a node; crypto only in the substrate); 0.5 = +registry (~2.9.8); 1.0 = +node (~2.9.10). Patch forward on breakage.
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.
@@ -63,6 +63,15 @@ extension-module = [
63
63
  "ciris-persist/extension-module",
64
64
  "ciris-edge/extension-module",
65
65
  ]
66
+ # `pkcs11` turns on the YubiKey (PKCS#11 / PIV) custody backend for the USER
67
+ # federation identity (`ciris-server identity create --backend pkcs11`). OFF by
68
+ # default: a plain `cargo build` never links `cryptoki`, and the Pkcs11 backend
69
+ # honestly returns NotSupported without it. It flips `ciris-keyring/pkcs11` on
70
+ # (operator hardware; Linux). The YubiKey path is hardware-validated by the
71
+ # operator — there is no token in CI, so it is gated + flagged, not unit-tested.
72
+ # Like the per-target `tpm` posture, it is NOT in `default`; build it explicitly
73
+ # (`--features pkcs11`) on a Linux box with a token attached.
74
+ pkcs11 = ["ciris-keyring/pkcs11"]
66
75
  # NOTE: hardware key custody (TPM/SE/StrongBox) is wired per-TARGET below, not as
67
76
  # a cargo feature — TPM (tss-esapi) is Linux-only, so a top-level `tpm` feature
68
77
  # made `--all-features` drag tss-esapi onto Windows/macOS (where it can't build).
@@ -101,16 +110,18 @@ ciris-lens-core = { path = "crates/ciris-lens-core" } # ABSORBED in-tree (wo
101
110
  # `cirislens_wa_cert` + `cirislens_service_token_revocation` expose the auth
102
111
  # substrate the fabric absorbs (CIRISServer#9, src/auth): the agent's `wa_cert`
103
112
  # table (users/WA/OAuth/api-keys) + the `revoked_service_tokens` table.
104
- ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v8.8.0", features = ["sqlite", "cirislens_wa_cert", "cirislens_service_token_revocation"] }
105
- ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.5.1", features = ["transport-reticulum", "transport-http"] }
113
+ ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v9.0.0", features = ["sqlite", "cirislens_wa_cert", "cirislens_service_token_revocation"] }
114
+ ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.6.0", features = ["transport-reticulum", "transport-http"] }
106
115
  # Founder-quorum verification + key-id fingerprint at the composition root
107
116
  # (threshold:: module path — NOT re-exported at the crate root).
108
- ciris-verify-core = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0" }
117
+ # v6.0.0 (NOT v6.1.0): persist v9.0.0 transitively pins verify v6.0.0; pinning
118
+ # v6.1.0 produces two ciris_verify_core crates with incompatible ThresholdMember.
119
+ ciris-verify-core = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0" }
109
120
  # Hardware-backed transport-identity keystore (verify v5.2.0 #68 / edge #99).
110
121
  # Base = software keystore + byte-identical migration of an existing .rid (works
111
122
  # everywhere, no libtss2). The real TPM-2.0 / SE / StrongBox backend rides the
112
123
  # `tpm` feature; runtime auto-detects hardware and falls back to software.
113
- ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0", version = "5", features = ["software", "pqc-ml-dsa"] }
124
+ ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0", version = "6", features = ["software", "pqc-ml-dsa"] }
114
125
 
115
126
  # PyO3 bindings for the abi3 wheel — optional, gated behind the `python` feature
116
127
  # so the binary never links them. 0.29 matches the persist/edge family floor.
@@ -162,13 +173,13 @@ tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
162
173
  # - keyring `tpm` (tss-esapi / TPM 2.0) — the real hardware backend; needs
163
174
  # libtss2 (Linux build dep). Other targets keep the software keystore.
164
175
  [target.'cfg(target_os = "linux")'.dependencies]
165
- ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v8.8.0", features = ["postgres", "cirislens_wa_cert", "cirislens_service_token_revocation"] }
166
- ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0", version = "5", features = ["tpm"] }
176
+ ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v9.0.0", features = ["postgres", "cirislens_wa_cert", "cirislens_service_token_revocation"] }
177
+ ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0", version = "6", features = ["tpm"] }
167
178
 
168
179
  # Android (arm64/arm32/x86_64): the keyring `android` backend (JNI → Android
169
180
  # Keystore/StrongBox); sqlite bundles, no postgres/tpm. Mirrors persist/edge.
170
181
  [target.'cfg(target_os = "android")'.dependencies]
171
- ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0", version = "5", features = ["android"] }
182
+ ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0", version = "6", features = ["android"] }
172
183
 
173
184
  # Test-only — the two-node replication integration test (tests/replication.rs)
174
185
  # builds + signs CEG batches with the same primitives persist verifies against.
@@ -183,14 +194,14 @@ criterion = { version = "0.5", features = ["async_tokio"] }
183
194
  # The PQC primitives the realtime-A/V E2E bench drives directly: hybrid KEX
184
195
  # (X25519 + ML-KEM-768) for the per-Link transit key, AES-256-GCM for the
185
196
  # two-layer chunk seal. Same pin/features edge composes (tag parity).
186
- ciris-crypto = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0", version = "5", features = ["hybrid-kex", "aes-gcm", "pqc-ml-dsa"] }
197
+ ciris-crypto = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0", version = "6", features = ["hybrid-kex", "aes-gcm", "pqc-ml-dsa"] }
187
198
  # Enable edge's OWN fountain codec (`codec-fountain`, L1-A) for the survival-floor
188
199
  # proof — dev/test ONLY (feature unification applies to test/bench builds; the
189
200
  # shipped wheel stays codec-free, since a relay forwards sealed symbols opaquely
190
201
  # and never encodes/decodes). This lets tests/chaos_mesh.rs exercise the SUBSTRATE
191
202
  # codec (`fountain_encode`/`fountain_decode`) directly — a real MEASURED proof,
192
203
  # not a reference stand-in.
193
- ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.5.1", features = ["codec-fountain"] }
204
+ ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.6.0", features = ["codec-fountain"] }
194
205
 
195
206
  # PQC realtime-A/V streaming E2E benchmark (CIRISEdge#62 realtime_av profile).
196
207
  [[bench]]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ciris-server
3
- Version: 0.4.4
3
+ Version: 0.4.6
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>
@@ -57,18 +57,28 @@ them. The handles (MISSION §3.4):
57
57
 
58
58
  - **Substrate handles** — the node's federation identity (`/v1/identity`),
59
59
  federation-directory reads, content fetch, replication / health.
60
- - **Fabric handles** — the per-role × per-axis **trust/consent toggles**,
60
+ - **Fabric handles** — **federation-identity minting** (a hardware-rooted, YubiKey-
61
+ or TPM/SE-sealed user identity → a `CIRIS-V2-` *fedcode*), **node ownership**
62
+ (claim a node with its **NodeCode** + one-time PIN; the responsible owner-binding
63
+ is `infra:*`, never agency), the per-role × per-axis **trust/consent toggles**,
61
64
  **trust-graph management** (untrust, re-root, create/join groups),
62
- **canonical-group membership + voting**, **self/family occurrence
63
- attachment**, and the **NodeCode** QR-able peer-bootstrap shorthand.
64
-
65
- Those handles are consumed by **rich clients** — [CIRISPortal](https://github.com/CIRISAI/CIRISPortal)
66
- and [CIRISNode](https://github.com/CIRISAI/CIRISNode), and **chiefly the
67
- [CIRISAgent](https://github.com/CIRISAI/CIRISAgent) client**, the Kotlin
68
- Multiplatform (KMP) UI through which most people meet the fabric. The
69
- infrastructure that *holds* the audit corpus is the surface that *publishes* it
70
- (redacted PDMA logs / WBD tickets / attestation reads, per the Accord's
71
- transparency requirement).
65
+ **canonical-group membership + voting**, **self/family occurrence attachment**,
66
+ and **consent-object** setup between peers (`consent:replication`).
67
+
68
+ Those handles are consumed by **rich clients**. Just like CIRISAgent, CIRISServer
69
+ can run **fully headless** (the `ciris-server` binary + a CLI: e.g. `ciris-server
70
+ identity create --backend pkcs11` mints a YubiKey-backed federation ID) **and** it
71
+ exposes a **rich client** — **the same [CIRISAgent](https://github.com/CIRISAI/CIRISAgent)
72
+ Kotlin-Multiplatform app, minus the agent (brain) cards.** The app *is a node*: it
73
+ runs a local fabric node and drives it (all crypto stays in the substrate, never
74
+ in the UI). It surfaces the **fabric cards** — create-your-federation-ID (mint the
75
+ hardware-rooted ID from the desktop app), claim-a-node (NodeCode + PIN), the
76
+ consent-objects card, the node switcher, and the holonomic scoreboard — **without**
77
+ the reasoning/chat cards an agent adds. (Other rich clients:
78
+ [CIRISPortal](https://github.com/CIRISAI/CIRISPortal),
79
+ [CIRISNode](https://github.com/CIRISAI/CIRISNode).) The infrastructure that *holds*
80
+ the audit corpus is the surface that *publishes* it (redacted PDMA logs / WBD
81
+ tickets / attestation reads, per the Accord's transparency requirement).
72
82
 
73
83
  ## What it replaces
74
84
 
@@ -93,6 +103,11 @@ CIRISAgent.
93
103
  ```sh
94
104
  pip install ciris-server # the PyO3 abi3 wheel (or build the binary: cargo build --release)
95
105
  ciris-server # boots a zero-setup node — mode=server, trusts ciris-canonical, no wizard
106
+ # on a fresh (unclaimed) node it prints its NodeCode + one-time claim PIN
107
+
108
+ # Headless: mint a hardware-rooted federation ID (or do it from the desktop app)
109
+ ciris-server identity create --backend pkcs11 # YubiKey-backed; --backend platform-sealed (TPM/SE) | software (dev)
110
+ # prints your CIRIS-V2- fedcode + key_id
96
111
  ```
97
112
 
98
113
  Defaults need no setup: data under `$CIRIS_HOME`, SQLite corpus (Postgres via
@@ -46,18 +46,28 @@ them. The handles (MISSION §3.4):
46
46
 
47
47
  - **Substrate handles** — the node's federation identity (`/v1/identity`),
48
48
  federation-directory reads, content fetch, replication / health.
49
- - **Fabric handles** — the per-role × per-axis **trust/consent toggles**,
49
+ - **Fabric handles** — **federation-identity minting** (a hardware-rooted, YubiKey-
50
+ or TPM/SE-sealed user identity → a `CIRIS-V2-` *fedcode*), **node ownership**
51
+ (claim a node with its **NodeCode** + one-time PIN; the responsible owner-binding
52
+ is `infra:*`, never agency), the per-role × per-axis **trust/consent toggles**,
50
53
  **trust-graph management** (untrust, re-root, create/join groups),
51
- **canonical-group membership + voting**, **self/family occurrence
52
- attachment**, and the **NodeCode** QR-able peer-bootstrap shorthand.
53
-
54
- Those handles are consumed by **rich clients** — [CIRISPortal](https://github.com/CIRISAI/CIRISPortal)
55
- and [CIRISNode](https://github.com/CIRISAI/CIRISNode), and **chiefly the
56
- [CIRISAgent](https://github.com/CIRISAI/CIRISAgent) client**, the Kotlin
57
- Multiplatform (KMP) UI through which most people meet the fabric. The
58
- infrastructure that *holds* the audit corpus is the surface that *publishes* it
59
- (redacted PDMA logs / WBD tickets / attestation reads, per the Accord's
60
- transparency requirement).
54
+ **canonical-group membership + voting**, **self/family occurrence attachment**,
55
+ and **consent-object** setup between peers (`consent:replication`).
56
+
57
+ Those handles are consumed by **rich clients**. Just like CIRISAgent, CIRISServer
58
+ can run **fully headless** (the `ciris-server` binary + a CLI: e.g. `ciris-server
59
+ identity create --backend pkcs11` mints a YubiKey-backed federation ID) **and** it
60
+ exposes a **rich client** — **the same [CIRISAgent](https://github.com/CIRISAI/CIRISAgent)
61
+ Kotlin-Multiplatform app, minus the agent (brain) cards.** The app *is a node*: it
62
+ runs a local fabric node and drives it (all crypto stays in the substrate, never
63
+ in the UI). It surfaces the **fabric cards** — create-your-federation-ID (mint the
64
+ hardware-rooted ID from the desktop app), claim-a-node (NodeCode + PIN), the
65
+ consent-objects card, the node switcher, and the holonomic scoreboard — **without**
66
+ the reasoning/chat cards an agent adds. (Other rich clients:
67
+ [CIRISPortal](https://github.com/CIRISAI/CIRISPortal),
68
+ [CIRISNode](https://github.com/CIRISAI/CIRISNode).) The infrastructure that *holds*
69
+ the audit corpus is the surface that *publishes* it (redacted PDMA logs / WBD
70
+ tickets / attestation reads, per the Accord's transparency requirement).
61
71
 
62
72
  ## What it replaces
63
73
 
@@ -82,6 +92,11 @@ CIRISAgent.
82
92
  ```sh
83
93
  pip install ciris-server # the PyO3 abi3 wheel (or build the binary: cargo build --release)
84
94
  ciris-server # boots a zero-setup node — mode=server, trusts ciris-canonical, no wizard
95
+ # on a fresh (unclaimed) node it prints its NodeCode + one-time claim PIN
96
+
97
+ # Headless: mint a hardware-rooted federation ID (or do it from the desktop app)
98
+ ciris-server identity create --backend pkcs11 # YubiKey-backed; --backend platform-sealed (TPM/SE) | software (dev)
99
+ # prints your CIRIS-V2- fedcode + key_id
85
100
  ```
86
101
 
87
102
  Defaults need no setup: data under `$CIRIS_HOME`, SQLite corpus (Postgres via
@@ -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 = "v8.8.0", version = "8", features = ["extract", "sqlite"] }
30
- ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.5.1", version = "4", features = ["transport-http", "transport-reticulum"] }
29
+ ciris-persist = { git = "https://github.com/CIRISAI/CIRISPersist", tag = "v9.0.0", version = "9", features = ["extract", "sqlite"] }
30
+ ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.6.0", version = "4", 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
@@ -37,7 +37,7 @@ ciris-edge = { git = "https://github.com/CIRISAI/CIRISEdge", tag = "v4.5.1
37
37
  # CIRISVerify tag persist + edge pin (v5.0.0 — CEG 1.0 / Agent 3.0 substrate
38
38
  # release; MAJOR 4→5 but additive for lens-core) — single verify version.
39
39
  # features mirror edge's keyring pin exactly.
40
- ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v5.11.0", version = "5", features = ["software", "pqc-ml-dsa"] }
40
+ ciris-keyring = { git = "https://github.com/CIRISAI/CIRISVerify", tag = "v6.0.0", version = "6", features = ["software", "pqc-ml-dsa"] }
41
41
 
42
42
  # persist's `sqlite` feature: relay mode persists inbound batches via
43
43
  # `Engine::receive_and_persist` + reads `Engine::sqlite_backend()` for