ciris-server 0.2.6__tar.gz → 0.4.0__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.2.6 → ciris_server-0.4.0}/.github/workflows/bench.yml +6 -2
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.github/workflows/ci.yml +10 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.github/workflows/publish-pypi.yml +4 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.github/workflows/release.yml +17 -3
- {ciris_server-0.2.6 → ciris_server-0.4.0}/CHANGELOG.md +69 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/Cargo.lock +116 -251
- {ciris_server-0.2.6 → ciris_server-0.4.0}/Cargo.toml +76 -12
- {ciris_server-0.2.6 → ciris_server-0.4.0}/FSD/LENS_TO_SERVER_MIGRATION.md +80 -13
- ciris_server-0.4.0/FSD/MESH_ANIMATION_BRIEF.md +228 -0
- ciris_server-0.4.0/FSD/MODERATION_CHILD_SAFETY.md +512 -0
- ciris_server-0.4.0/FSD/ONE_WHEEL_REEXPORT.md +171 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/FSD/PQC_AV_STREAMING_BENCH.md +53 -25
- ciris_server-0.4.0/FSD/QA_AGAINST_RUST.md +180 -0
- ciris_server-0.4.0/FSD/SAFETY_LANDSCAPE.md +121 -0
- ciris_server-0.4.0/FSD/WATCHLIST_DETECTION.md +344 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/PKG-INFO +17 -9
- {ciris_server-0.2.6 → ciris_server-0.4.0}/README.md +16 -8
- ciris_server-0.4.0/app/.gitignore +7 -0
- ciris_server-0.4.0/app/README.md +88 -0
- ciris_server-0.4.0/app/build.gradle.kts +20 -0
- ciris_server-0.4.0/app/fabric-client/build.gradle.kts +122 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/auth/FederationSigner.kt +90 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/Erasure.kt +51 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationContent.kt +28 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationMetrics.kt +30 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/FederationPeer.kt +95 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/federation/NodeCode.kt +28 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/model/identity/LocalIdentityAggregate.kt +78 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/net/FabricClient.kt +126 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/net/FabricEndpoints.kt +112 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/platform/PlatformLogger.kt +16 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/ui/screens/ErasureScreen.kt +94 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/ui/screens/IdentityScreen.kt +105 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/viewmodel/ErasureViewModel.kt +73 -0
- ciris_server-0.4.0/app/fabric-client/src/commonMain/kotlin/ai/ciris/fabric/viewmodel/IdentityViewModel.kt +52 -0
- ciris_server-0.4.0/app/fabric-client/src/commonTest/kotlin/ai/ciris/fabric/IdentitySliceTest.kt +84 -0
- ciris_server-0.4.0/app/gradle/wrapper/gradle-wrapper.jar +0 -0
- ciris_server-0.4.0/app/gradle/wrapper/gradle-wrapper.properties +7 -0
- ciris_server-0.4.0/app/gradle.properties +13 -0
- ciris_server-0.4.0/app/gradlew +248 -0
- ciris_server-0.4.0/app/gradlew.bat +92 -0
- ciris_server-0.4.0/app/settings.gradle.kts +29 -0
- ciris_server-0.4.0/benches/stream_fanout.rs +75 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/Cargo.toml +3 -3
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/role/node.rs +318 -26
- ciris_server-0.4.0/qa/README.md +70 -0
- ciris_server-0.4.0/qa/ciris_sdk/README.md +275 -0
- ciris_server-0.4.0/qa/ciris_sdk/REFACTORING_SUMMARY.md +115 -0
- ciris_server-0.4.0/qa/ciris_sdk/__init__.py +124 -0
- ciris_server-0.4.0/qa/ciris_sdk/auth_store.py +283 -0
- ciris_server-0.4.0/qa/ciris_sdk/client.py +261 -0
- ciris_server-0.4.0/qa/ciris_sdk/examples/__init__.py +0 -0
- ciris_server-0.4.0/qa/ciris_sdk/examples/agent_interaction.py +116 -0
- ciris_server-0.4.0/qa/ciris_sdk/examples/unified_telemetry_examples.py +223 -0
- ciris_server-0.4.0/qa/ciris_sdk/examples/wa_example.py +72 -0
- ciris_server-0.4.0/qa/ciris_sdk/exceptions.py +73 -0
- ciris_server-0.4.0/qa/ciris_sdk/model_types.py +258 -0
- ciris_server-0.4.0/qa/ciris_sdk/models.py +349 -0
- ciris_server-0.4.0/qa/ciris_sdk/pagination.py +214 -0
- ciris_server-0.4.0/qa/ciris_sdk/rate_limiter.py +188 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/CONFIG_CLIENT.md +196 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/WA_CLIENT_GUIDE.md +157 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/__init__.py +0 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/agent.py +298 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/audit.py +210 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/auth.py +194 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/billing.py +189 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/config.py +317 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/consent.py +619 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/emergency.py +245 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/jobs.py +349 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/memory.py +595 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/setup.py +265 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/system.py +324 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/telemetry.py +747 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/wa.py +150 -0
- ciris_server-0.4.0/qa/ciris_sdk/resources/websocket.py +395 -0
- ciris_server-0.4.0/qa/ciris_sdk/setup.py +67 -0
- ciris_server-0.4.0/qa/ciris_sdk/telemetry_models.py +257 -0
- ciris_server-0.4.0/qa/ciris_sdk/telemetry_responses.py +199 -0
- ciris_server-0.4.0/qa/ciris_sdk/transport.py +177 -0
- ciris_server-0.4.0/qa/ciris_sdk/websocket.py +400 -0
- ciris_server-0.4.0/qa/fabric_results.json +627 -0
- ciris_server-0.4.0/qa/qa_runner/BILLING_QA_README.md +321 -0
- ciris_server-0.4.0/qa/qa_runner/CLAUDE.md +331 -0
- ciris_server-0.4.0/qa/qa_runner/README.md +240 -0
- ciris_server-0.4.0/qa/qa_runner/SDK_MODULE_INTEGRATION.md +443 -0
- ciris_server-0.4.0/qa/qa_runner/__init__.py +11 -0
- ciris_server-0.4.0/qa/qa_runner/__main__.py +666 -0
- ciris_server-0.4.0/qa/qa_runner/config.py +529 -0
- ciris_server-0.4.0/qa/qa_runner/mcp_test_server.py +138 -0
- ciris_server-0.4.0/qa/qa_runner/modules/CLAUDE.md +110 -0
- ciris_server-0.4.0/qa/qa_runner/modules/MULTI_OCCURRENCE_README.md +122 -0
- ciris_server-0.4.0/qa/qa_runner/modules/__init__.py +79 -0
- ciris_server-0.4.0/qa/qa_runner/modules/_module_metadata.py +121 -0
- ciris_server-0.4.0/qa/qa_runner/modules/accord_metrics_tests.py +1340 -0
- ciris_server-0.4.0/qa/qa_runner/modules/accord_tests.py +853 -0
- ciris_server-0.4.0/qa/qa_runner/modules/adapter_autoload_tests.py +504 -0
- ciris_server-0.4.0/qa/qa_runner/modules/adapter_availability_tests.py +410 -0
- ciris_server-0.4.0/qa/qa_runner/modules/adapter_config_tests.py +790 -0
- ciris_server-0.4.0/qa/qa_runner/modules/adapter_manifest_tests.py +360 -0
- ciris_server-0.4.0/qa/qa_runner/modules/agent_mode_tests.py +252 -0
- ciris_server-0.4.0/qa/qa_runner/modules/air_tests.py +280 -0
- ciris_server-0.4.0/qa/qa_runner/modules/api_tests.py +365 -0
- ciris_server-0.4.0/qa/qa_runner/modules/base_test_module.py +454 -0
- ciris_server-0.4.0/qa/qa_runner/modules/billing_integration_tests.py +406 -0
- ciris_server-0.4.0/qa/qa_runner/modules/billing_tests.py +272 -0
- ciris_server-0.4.0/qa/qa_runner/modules/cirisnode_tests.py +554 -0
- ciris_server-0.4.0/qa/qa_runner/modules/cognitive_state_api_tests.py +346 -0
- ciris_server-0.4.0/qa/qa_runner/modules/comprehensive_api_tests.py +311 -0
- ciris_server-0.4.0/qa/qa_runner/modules/comprehensive_single_step_tests.py +172 -0
- ciris_server-0.4.0/qa/qa_runner/modules/consent_tests.py +216 -0
- ciris_server-0.4.0/qa/qa_runner/modules/context_enrichment_tests.py +451 -0
- ciris_server-0.4.0/qa/qa_runner/modules/deferral_taxonomy_tests.py +121 -0
- ciris_server-0.4.0/qa/qa_runner/modules/deferral_tests.py +265 -0
- ciris_server-0.4.0/qa/qa_runner/modules/degraded_mode_tests.py +455 -0
- ciris_server-0.4.0/qa/qa_runner/modules/desktop_viz.py +304 -0
- ciris_server-0.4.0/qa/qa_runner/modules/dream_live_tests.py +439 -0
- ciris_server-0.4.0/qa/qa_runner/modules/dsar_multi_source_tests.py +609 -0
- ciris_server-0.4.0/qa/qa_runner/modules/dsar_tests.py +177 -0
- ciris_server-0.4.0/qa/qa_runner/modules/dsar_ticket_workflow_tests.py +431 -0
- ciris_server-0.4.0/qa/qa_runner/modules/filter_test_helper.py +269 -0
- ciris_server-0.4.0/qa/qa_runner/modules/filter_tests.py +550 -0
- ciris_server-0.4.0/qa/qa_runner/modules/handler_tests.py +545 -0
- ciris_server-0.4.0/qa/qa_runner/modules/he300_benchmark_tests.py +647 -0
- ciris_server-0.4.0/qa/qa_runner/modules/homeassistant_agentic_tests.py +687 -0
- ciris_server-0.4.0/qa/qa_runner/modules/hosted_tools_tests.py +484 -0
- ciris_server-0.4.0/qa/qa_runner/modules/identity_update_tests.py +497 -0
- ciris_server-0.4.0/qa/qa_runner/modules/l4_attestation_tests.py +278 -0
- ciris_server-0.4.0/qa/qa_runner/modules/licensed_agent_tests.py +489 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mcp_tests.py +1370 -0
- ciris_server-0.4.0/qa/qa_runner/modules/memory_benchmark_tests.py +413 -0
- ciris_server-0.4.0/qa/qa_runner/modules/message_id_debug_test.py +146 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/__init__.py +92 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/__main__.py +1562 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/adb_helper.py +691 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/device_helper.py +364 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/first_time_licensed_agent.py +703 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/__init__.py +8 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/build_helper.py +659 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/idevice_helper.py +867 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/ios_ui_automator.py +186 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/vision_helper.py +208 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios/xcrun_helper.py +639 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios_physical_test_cases.py +1016 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ios_test_cases.py +891 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/portal_registration.py +586 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/test_cases.py +1823 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/test_runner.py +595 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/ui_automator.py +370 -0
- ciris_server-0.4.0/qa/qa_runner/modules/mobile/verify_trust_tests.py +491 -0
- ciris_server-0.4.0/qa/qa_runner/modules/model_eval_tests.py +770 -0
- ciris_server-0.4.0/qa/qa_runner/modules/multi_occurrence_tests.py +410 -0
- ciris_server-0.4.0/qa/qa_runner/modules/parallel_locales_tests.py +448 -0
- ciris_server-0.4.0/qa/qa_runner/modules/partnership_tests.py +165 -0
- ciris_server-0.4.0/qa/qa_runner/modules/play_live_tests.py +329 -0
- ciris_server-0.4.0/qa/qa_runner/modules/reddit_tests.py +374 -0
- ciris_server-0.4.0/qa/qa_runner/modules/safety_battery.py +903 -0
- ciris_server-0.4.0/qa/qa_runner/modules/safety_interpret.py +1132 -0
- ciris_server-0.4.0/qa/qa_runner/modules/sdk_tests.py +114 -0
- ciris_server-0.4.0/qa/qa_runner/modules/secrets_encryption_tests.py +236 -0
- ciris_server-0.4.0/qa/qa_runner/modules/setup_e2e_tests.py +681 -0
- ciris_server-0.4.0/qa/qa_runner/modules/setup_tests.py +331 -0
- ciris_server-0.4.0/qa/qa_runner/modules/simple_single_step_tests.py +78 -0
- ciris_server-0.4.0/qa/qa_runner/modules/solitude_live_tests.py +395 -0
- ciris_server-0.4.0/qa/qa_runner/modules/sql_external_data_tests.py +858 -0
- ciris_server-0.4.0/qa/qa_runner/modules/state_transition_tests.py +425 -0
- ciris_server-0.4.0/qa/qa_runner/modules/streaming_verification.py +2053 -0
- ciris_server-0.4.0/qa/qa_runner/modules/system_messages_tests.py +225 -0
- ciris_server-0.4.0/qa/qa_runner/modules/utility_adapters_tests.py +333 -0
- ciris_server-0.4.0/qa/qa_runner/modules/vision_tests.py +382 -0
- ciris_server-0.4.0/qa/qa_runner/modules/wallet_tests.py +507 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/CLAUDE.md +174 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/__init__.py +89 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/__main__.py +1676 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/browser_helper.py +476 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/desktop_app_helper.py +734 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/desktop_test.py +152 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/federation_screen_tags.py +272 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/federation_walk_report.py +281 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/federation_walk_test.py +942 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/licensed_agent_flow.py +687 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/server_manager.py +496 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/test_cases.py +1146 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/test_federation_walk_unit.py +299 -0
- ciris_server-0.4.0/qa/qa_runner/modules/web_ui/test_runner.py +515 -0
- ciris_server-0.4.0/qa/qa_runner/qa_api_test.py +204 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports/qa_report_20250825_073205.json +113 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports/qa_report_20250825_153259.json +221 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports/qa_report_20250825_154628.json +174 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports/qa_report_20250825_154817.json +170 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports/qa_report_20250825_155917.json +373 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports_comprehensive/qa_report_20250825_075504.json +149 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports_final/qa_report_20250825_092420.json +123 -0
- ciris_server-0.4.0/qa/qa_runner/qa_reports_test/qa_report_20250825_092452.json +35 -0
- ciris_server-0.4.0/qa/qa_runner/qa_scripts/README.md +118 -0
- ciris_server-0.4.0/qa/qa_runner/qa_scripts/qa_api_test.py +262 -0
- ciris_server-0.4.0/qa/qa_runner/qa_scripts/qa_v1.0_sdk_comprehensive.py +243 -0
- ciris_server-0.4.0/qa/qa_runner/qa_scripts/qa_v1.0_unhealthy_services_check.py +89 -0
- ciris_server-0.4.0/qa/qa_runner/qa_test.py +272 -0
- ciris_server-0.4.0/qa/qa_runner/qa_test_sdk.py +434 -0
- ciris_server-0.4.0/qa/qa_runner/requirements.txt +5 -0
- ciris_server-0.4.0/qa/qa_runner/runner.py +2717 -0
- ciris_server-0.4.0/qa/qa_runner/scripts/__init__.py +0 -0
- ciris_server-0.4.0/qa/qa_runner/scripts/he300_stream_debug.py +70 -0
- ciris_server-0.4.0/qa/qa_runner/server.py +1682 -0
- ciris_server-0.4.0/qa/qa_runner/staged_env.py +269 -0
- ciris_server-0.4.0/qa/qa_runner/status_tracker.py +244 -0
- ciris_server-0.4.0/qa/qa_runner/test_data/dsar_multi_source_privacy_schema.yaml +28 -0
- ciris_server-0.4.0/qa/qa_runner/test_data/qa_test.db +0 -0
- ciris_server-0.4.0/qa/qa_runner/test_data/qa_test_privacy_schema.yaml +40 -0
- ciris_server-0.4.0/qa/qa_runner/test_data/sql_config.json +9 -0
- ciris_server-0.4.0/qa/run_fabric.py +313 -0
- ciris_server-0.4.0/qa/seed_wa_cert.py +65 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/scripts/bench_report.py +65 -20
- ciris_server-0.4.0/src/auth/ABSORPTION.md +163 -0
- ciris_server-0.4.0/src/auth/api_keys.rs +313 -0
- ciris_server-0.4.0/src/auth/attestation.rs +153 -0
- ciris_server-0.4.0/src/auth/bootstrap.rs +751 -0
- ciris_server-0.4.0/src/auth/consent.rs +155 -0
- ciris_server-0.4.0/src/auth/device_auth.rs +408 -0
- ciris_server-0.4.0/src/auth/erasure.rs +120 -0
- ciris_server-0.4.0/src/auth/gate.rs +47 -0
- ciris_server-0.4.0/src/auth/mod.rs +46 -0
- ciris_server-0.4.0/src/auth/oauth.rs +1043 -0
- ciris_server-0.4.0/src/auth/roles.rs +523 -0
- ciris_server-0.4.0/src/auth/self_login.rs +188 -0
- ciris_server-0.4.0/src/auth/session.rs +460 -0
- ciris_server-0.4.0/src/auth/store.rs +123 -0
- ciris_server-0.4.0/src/auth/verify.rs +106 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/src/benchmarks/mod.rs +17 -5
- ciris_server-0.4.0/src/benchmarks/scoreboard.rs +780 -0
- ciris_server-0.4.0/src/compose.rs +753 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/src/config.rs +92 -0
- ciris_server-0.4.0/src/federation_admin.rs +236 -0
- ciris_server-0.4.0/src/federation_nodecode.rs +140 -0
- ciris_server-0.4.0/src/lib.rs +283 -0
- ciris_server-0.4.0/src/main.rs +51 -0
- ciris_server-0.4.0/src/nodecode.rs +645 -0
- ciris_server-0.4.0/src/peer.rs +327 -0
- ciris_server-0.4.0/src/scorer/n_eff.rs +437 -0
- ciris_server-0.4.0/src/scorer.rs +349 -0
- ciris_server-0.4.0/tests/capacity_scorer.rs +332 -0
- ciris_server-0.4.0/tests/chaos_mesh.rs +234 -0
- ciris_server-0.4.0/tests/federation_admin.rs +444 -0
- ciris_server-0.4.0/tests/nodecode.rs +99 -0
- ciris_server-0.4.0/tests/noise_floor.rs +587 -0
- ciris_server-0.4.0/tests/peer_replication.rs +495 -0
- ciris_server-0.4.0/tests/root_bootstrap.rs +440 -0
- ciris_server-0.2.6/src/benchmarks/scoreboard.rs +0 -374
- ciris_server-0.2.6/src/compose.rs +0 -369
- ciris_server-0.2.6/src/lib.rs +0 -136
- ciris_server-0.2.6/src/main.rs +0 -32
- ciris_server-0.2.6/tests/chaos_mesh.rs +0 -111
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.cargo/config.toml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.github/workflows/conformance.yml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/.gitignore +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/FSD/REGISTRY_FOLD_DERISK.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/FSD/SERVER_1.0_PLAN.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/LICENSE +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/MISSION.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/bench-site/data.json +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/bench-site/index.html +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/benches/alm_chain.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/benches/pqc_av_streaming.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/benches/replication_ingest.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/.github/workflows/bench.yml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/.github/workflows/ci.yml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/.gitignore +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/.pre-commit-config.yaml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/FSD/CIRIS_LENS_CORE.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/FSD/LENS_CORE_V0_5.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/FSD/OPEN_QUESTIONS.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/LICENSE +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/MISSION.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/README.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/benches/aggregate.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/benches/canonicalize.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/benches/project.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/deny.toml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/BENCHMARKS.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/COHABITATION.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/PRE_COMMIT.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/PUBLIC_SCHEMA_CONTRACT.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/PYPI_PUBLISH.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/RELEASE_NOTES.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/STANDARDS_COMPARISON.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/docs/THREAT_MODEL.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/json_path.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/metadata.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/extraction/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/distilbert_loader.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/fields.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ner.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/ort_loader.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/proptests.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/regex.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/walker.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/patterns_from_cirislens_core/scrubber/xlm_r_loader.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/pyproject.toml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/python/ciris_lens_core/__init__.py +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/audit/api.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/audit/delegate.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/audit/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/audit/pyo3.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/canonical/ceg_egress.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/canonical/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capacity/attestation.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capacity/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capacity/score.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/batch.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/client.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/consent.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/correlation.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/event.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/partial.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/py_engine.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/capture/seal.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/cohort/declared.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/cohort/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/cohort/resourcing.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/config/egress.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/config/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/config/node.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/config/retention.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/config/upstream.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/axis_metrics.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/coherence_ratchet.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/correlated_action.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/distributive_access.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/manifold.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/detector/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/extract/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/extract/projection.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/ffi/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/ffi/pyo3.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/lib.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/observability/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/pipeline/lifecycle.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/pipeline/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/retention/eviction.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/retention/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/retention/summary.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/role/handler.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/role/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/role/relay.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/role/ret_relay.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scores/aggregate.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scores/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scores/oracle.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/assembly.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/axis_calibration.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/calibration.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/capacity.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/n_eff.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/scoring/result.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/signing/event.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/signing/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/wire/mod.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/src/wire/signer.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/tests/parity/README.md +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/tests/parity/canonical_fixtures.json +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/tests/parity/generate_canonical_fixtures.py +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/crates/ciris-lens-core/tests/sovereign_rlib.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/pyproject.toml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/rust-toolchain.toml +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/src/import.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/src/quorum.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/tests/alm_chain.rs +0 -0
- {ciris_server-0.2.6 → ciris_server-0.4.0}/tests/replication.rs +0 -0
|
@@ -52,9 +52,13 @@ jobs:
|
|
|
52
52
|
with:
|
|
53
53
|
python-version: "3.12"
|
|
54
54
|
- name: Run benches (criterion)
|
|
55
|
-
run: cargo bench --bench pqc_av_streaming --bench replication_ingest --bench alm_chain
|
|
55
|
+
run: cargo bench --bench pqc_av_streaming --bench replication_ingest --bench alm_chain --bench stream_fanout
|
|
56
56
|
- name: Generate holonomic scoreboard (CIRISServer#12/#13)
|
|
57
|
-
|
|
57
|
+
# Pass the criterion dir so the substrate tier is promoted to MEASURED from
|
|
58
|
+
# the real bench numbers above ("numbers through the fabric"); metrics with
|
|
59
|
+
# no bench (mls_commit/cold-join, the holonomic tier) stay honestly gated.
|
|
60
|
+
# Publish-only — not a pass/fail gate (shared runners are noisy).
|
|
61
|
+
run: cargo run --release --quiet -- scoreboard --criterion-dir target/criterion > scoreboard.json
|
|
58
62
|
- name: Generate interpreted page
|
|
59
63
|
run: |
|
|
60
64
|
BENCH_DATE="$(date -u +%Y-%m-%d)" \
|
|
@@ -46,6 +46,16 @@ jobs:
|
|
|
46
46
|
# `extension-module` (libpython-no-link) into the test binary.
|
|
47
47
|
- run: cargo clippy --all-targets -- -D warnings
|
|
48
48
|
- run: cargo test
|
|
49
|
+
# The NOISE FLOOR proof (CIRISServer#14, CEG §19.7 / §19.3 N5) — provable
|
|
50
|
+
# individual-unrecoverability for erasure compliance, run explicitly so the
|
|
51
|
+
# MEASURED residual-fidelity numbers land in the CI log (Linux only — one
|
|
52
|
+
# canonical record; the test also runs on every OS via `cargo test` above).
|
|
53
|
+
# The three gated cases: (a) revocation ⇒ EjectHardDelete leaves NO
|
|
54
|
+
# recoverable tier, (b) the measured noise floor below n_source symbols,
|
|
55
|
+
# (c) N→1 aggregation erases the individual below the 1/N gist bound.
|
|
56
|
+
- name: Noise floor proof (MEASURED, Linux)
|
|
57
|
+
if: runner.os == 'Linux'
|
|
58
|
+
run: cargo test --test noise_floor -- --nocapture
|
|
49
59
|
# The PyO3 wheel surface (Linux only; libpython linked, no extension-module).
|
|
50
60
|
- name: clippy (python surface, Linux)
|
|
51
61
|
if: runner.os == 'Linux'
|
|
@@ -243,3 +243,7 @@ jobs:
|
|
|
243
243
|
packages-dir: dist/
|
|
244
244
|
# Trusted Publishing: no `password:` — the OIDC identity is verified
|
|
245
245
|
# against the publisher registered on PyPI.
|
|
246
|
+
# Idempotent re-cuts: if a tag is re-cut onto a new commit, the wheels
|
|
247
|
+
# for any platform already on PyPI are skipped instead of 400-ing the
|
|
248
|
+
# whole upload — a clean re-cut publishes only the newly-built files.
|
|
249
|
+
skip-existing: true
|
|
@@ -38,19 +38,26 @@ jobs:
|
|
|
38
38
|
build-native:
|
|
39
39
|
name: Build (${{ matrix.target }})
|
|
40
40
|
runs-on: ${{ matrix.os }}
|
|
41
|
+
# Allowed-to-fail lanes (the TPM backend can't cross-compile) never block the
|
|
42
|
+
# release; see the armv7 entry + the build-musl job.
|
|
43
|
+
continue-on-error: ${{ matrix.allow_fail || false }}
|
|
41
44
|
strategy:
|
|
42
45
|
fail-fast: false
|
|
43
46
|
matrix:
|
|
44
47
|
include:
|
|
45
48
|
- os: ubuntu-latest
|
|
46
49
|
target: x86_64-unknown-linux-gnu
|
|
47
|
-
-
|
|
50
|
+
# ARM64 builds NATIVELY on an ARM runner (apt libtss2-dev applies) —
|
|
51
|
+
# cross-compiling tss-esapi from x86 has no target libtss2.
|
|
52
|
+
- os: ubuntu-24.04-arm
|
|
48
53
|
target: aarch64-unknown-linux-gnu
|
|
49
|
-
|
|
50
|
-
#
|
|
54
|
+
# ARM32 — Raspberry Pi / embedded mesh nodes. Cross-builds the TPM
|
|
55
|
+
# backend with no target libtss2 → allowed-to-fail (CIRISServer#7);
|
|
56
|
+
# never blocks the release.
|
|
51
57
|
- os: ubuntu-latest
|
|
52
58
|
target: armv7-unknown-linux-gnueabihf
|
|
53
59
|
cross: true
|
|
60
|
+
allow_fail: true
|
|
54
61
|
- os: macos-latest
|
|
55
62
|
target: x86_64-apple-darwin
|
|
56
63
|
- os: macos-latest
|
|
@@ -134,6 +141,9 @@ jobs:
|
|
|
134
141
|
build-musl:
|
|
135
142
|
name: Build (aarch64 musl)
|
|
136
143
|
runs-on: ubuntu-latest
|
|
144
|
+
# zigbuild cross can't satisfy the TPM backend's target libtss2 — allowed to
|
|
145
|
+
# fail so it never blocks the release (aarch64-gnu native covers ARM64 Linux).
|
|
146
|
+
continue-on-error: true
|
|
137
147
|
steps:
|
|
138
148
|
- uses: actions/checkout@v4
|
|
139
149
|
- uses: dtolnay/rust-toolchain@stable
|
|
@@ -170,6 +180,10 @@ jobs:
|
|
|
170
180
|
create-release:
|
|
171
181
|
name: Create Release
|
|
172
182
|
needs: [build-native, build-musl]
|
|
183
|
+
# Run as long as the build stage finished (not cancelled) — the allowed-to-fail
|
|
184
|
+
# ARM lanes (armv7 cross, aarch64 musl) must not skip the release; it ships
|
|
185
|
+
# whatever built (x86_64 linux/mac/win + aarch64-linux-gnu native).
|
|
186
|
+
if: ${{ !cancelled() }}
|
|
173
187
|
runs-on: ubuntu-latest
|
|
174
188
|
steps:
|
|
175
189
|
- uses: actions/checkout@v4
|
|
@@ -4,6 +4,75 @@ All notable changes to CIRISServer. Format follows [Keep a Changelog](https://ke
|
|
|
4
4
|
this project uses [Semantic Versioning](https://semver.org/). The minor line tracks
|
|
5
5
|
the fabric-node scope (0.1 lens · 0.5 +registry · 1.0 +node), paced by the CIRISAgent train.
|
|
6
6
|
|
|
7
|
+
## [0.3.1] — 2026-06-17
|
|
8
|
+
|
|
9
|
+
Substrate floor → **persist v8.6.0 / edge v4.5.0 / verify-family v5.11.0** —
|
|
10
|
+
the §19.7 forever-memory cross-impl loop closed: `EjectAggregatedTierOnly`
|
|
11
|
+
tier-granular eviction + the unified `EjectionVerdict` surface (edge v4.5.0 ↔
|
|
12
|
+
verify v5.11.0 ↔ persist v8.6.0). Additive; build + full test suite green
|
|
13
|
+
(25 lib + lens-core 352 + integration), no composition-root change.
|
|
14
|
+
|
|
15
|
+
## [0.3.0] — 2026-06-16
|
|
16
|
+
|
|
17
|
+
The integrated fabric node: the **auth subsystem** absorbed, the **one-wheel**
|
|
18
|
+
re-export surface, and the substrate on the **v8.4.0 / v4.3.0 / v5.10.0** floor.
|
|
19
|
+
This is the node we replace the deployed CIRISLens with (and the wheel CIRISAgent
|
|
20
|
+
adopts to drop its lens-core + its own auth).
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
- **Auth subsystem (`src/auth/`, CIRISServer#9) — the fabric is the single auth
|
|
24
|
+
authority.** The agent's entire user/WA/OAuth/api-key/service-token surface
|
|
25
|
+
already lived in one persist table (`wa_cert`), so this is a Python→Rust port
|
|
26
|
+
over the same rows — **no schema fork, 0 conflicts** (`src/auth/ABSORPTION.md`:
|
|
27
|
+
33 capabilities mapped). One `x-ciris-*` hybrid request verifier (accepts the
|
|
28
|
+
identity **or** any admitted occurrence — the consenting user *and* the
|
|
29
|
+
generating agent are both valid signers); **self-at-login** (§8.1.12.7) as the
|
|
30
|
+
login ceremony; OAuth front-door (providers/login/callback + native
|
|
31
|
+
google/apple); sessions/token issuer (replaces OAuth→WA→JWT); the CEG role-set
|
|
32
|
+
**plus** the agent's `UserRole`/`Permission` model verbatim; api-keys +
|
|
33
|
+
service-token revocation; attestation; user-signed **consent**; and CEG-native
|
|
34
|
+
**erasure** (GDPR Art. 17 in-app path → `Engine::evict_actor`). Password KDF,
|
|
35
|
+
native-token JWKS, and root-signature verification are byte-compatible with the
|
|
36
|
+
agent's own crypto (verified against agent-produced vectors).
|
|
37
|
+
- **One-wheel re-export (CIRISServer#4):** `ciris_server` re-hosts the persist /
|
|
38
|
+
edge / lens Python surfaces under one `.so` (one PyO3 type registry —
|
|
39
|
+
`ciris_server.Engine is ciris_server.persist.Engine`), so CIRISAgent consumes a
|
|
40
|
+
single wheel and the cross-wheel type-identity bug class (CIRISPersist#109)
|
|
41
|
+
cannot occur. (`reset_engine` / `init_edge_runtime` re-export hooks pending
|
|
42
|
+
upstream: CIRISPersist#231, CIRISEdge#156; `ciris-verify` stays a standalone
|
|
43
|
+
ctypes wheel.)
|
|
44
|
+
- **Noise-floor compliance bench (CIRISServer#14, `tests/noise_floor.rs`):**
|
|
45
|
+
measured individual-unrecoverability — revocation → hard-delete, the
|
|
46
|
+
reconstruction cliff at the fountain floor, aggregation-is-erasure.
|
|
47
|
+
- **The fabric app (`app/`, CIRISServer#15):** the CIRISAgent KMP mesh app minus
|
|
48
|
+
agent cards (identity slice proven; governance/safety surfaces).
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
- Substrate floor → **persist v8.4.0 / edge v4.3.0 / verify-family v5.10.0** (the
|
|
52
|
+
§19.7 erasure primitives + `wa_cert` auth substrate).
|
|
53
|
+
|
|
54
|
+
### Validated
|
|
55
|
+
- **Behavior-correct drop-in proof (`qa/`, `FSD/QA_AGAINST_RUST.md`).** The agent's
|
|
56
|
+
own Python QA-runner module definitions are run unmodified against a live Rust
|
|
57
|
+
`ciris-server`: **12/12 fabric-route tests pass, 0 gaps** — including the
|
|
58
|
+
load-bearing byte-compat proof that a password hash produced by the agent's own
|
|
59
|
+
`cryptography.PBKDF2HMAC` authenticates against the Rust `verify_password`. The
|
|
60
|
+
~30 agent-brain modules are correctly N/A on a headless fabric node. The QA
|
|
61
|
+
runner stays Python (it is HTTP-driving conformance, not ported).
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
- **api-keys / service-token routes are now authz-gated.** `POST/GET/DELETE
|
|
65
|
+
/v1/auth/api-keys*` and `/v1/auth/service-token/revoke` now require a live
|
|
66
|
+
session bearer whose role carries `manage_user_permissions` (matching the
|
|
67
|
+
agent's gate) — the one residual the conformance run surfaced.
|
|
68
|
+
|
|
69
|
+
### Notes
|
|
70
|
+
- Companion: **CIRISStatus** becomes a fabric monitoring node (Flows A/B +
|
|
71
|
+
`health:liveness` `scores` + website sockets).
|
|
72
|
+
- GDPR erasure is **both** entry points: the DSAR endpoint on the monitor node
|
|
73
|
+
**and** the in-app CEG-native `withdraws`. Full lens decommission stays gated on
|
|
74
|
+
the DSAR-via-status endpoint landing (keep the Python DSAR reachable until then).
|
|
75
|
+
|
|
7
76
|
## [0.2.6] — 2026-06-16
|
|
8
77
|
|
|
9
78
|
Substrate floor → **v4.2.0 family** + the **multi-tier ALM relay chain** test
|