engineering-platform 2.3.97__tar.gz → 2.3.100__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.
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/PKG-INFO +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/pyproject.toml +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/ENGINEERING_PLATFORM_CONFIG.json +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/ENGINEERING_PLATFORM_VERSION.json +4 -4
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/agent_state.py +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/dashboard.css +4 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/dashboard.js +45 -17
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/capability_review.py +8 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_executor.py +47 -26
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_host.py +12 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/platform_version.py +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/templates/workspace-config.json +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform.egg-info/PKG-INFO +1 -1
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/README.md +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/setup.cfg +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/__init__.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/__main__.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/agent_trust.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/dashboard_locales.mjs +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/dashboard_status_store.mjs +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/dashboard_translation.mjs +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/apple-touch-icon-dark.png +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/apple-touch-icon-light.png +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/icon-dark.png +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/icon-light.png +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/icon-transparent.png +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assets/operations-console/manifest.webmanifest +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/assurance_scope.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/capability_preflight.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/central_data_transfer.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/central_database.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/central_operational_reset.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/central_store_migration.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/codex_capacity.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/codex_chat.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/codex_observability.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/component_lock.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/component_logging.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/console_presentation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/console_route_ownership.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/contracts/__init__.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/contracts/ep_consumer.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/contracts/models.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/contracts/projection.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/dashboard_browser_validation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/dashboard_state.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/dashboard_supervisor.swift +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/dashboard_translation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/dependabot_producer.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/development_profile.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/drift_diagnostics.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/emergency_recovery.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/engineering_memory.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/ep_consumer_credentials.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/evidence_projection.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_activity.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_context.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_errors.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_evidence.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_finalization.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_host_evidence.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_lease.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_lifecycle.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_models.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_readiness.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_reporting.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_repository.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_timeout_policy.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_timing.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/execution_transaction.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/external_producer_binding.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/file_inbox.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/forensic_attribution.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/forensic_attribution_v2.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/forensic_delta.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/golden_scenario.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/historical_dashboard_configuration.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/host_admin.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/host_preflight.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_relocation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_activation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_admission.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_backup.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_composition.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_executor.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_migration.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_operation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_plan.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/installation_update_preparation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/investigation_ledger.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/legacy_inbox_migration.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/legacy_installation_adoption.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/lifecycle_worker.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/live_status.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/local_api.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/local_api_keychain.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/local_repository_binding.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/managed_autonomy.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/managed_codex_runtime.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/managed_workspace_readiness.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/managed_workspace_recovery.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/merge_delegation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/operational_installation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/operational_installation_lock.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/operational_installation_record.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/owner_credential_recovery.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/parity_context.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/parity_lifecycle_dispatcher.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/platform_admin.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/platform_api.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/platform_bootstrap.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/platform_components.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/pr_check_repair.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/pr_evidence_backfill.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/producer.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/product_installation_readback.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/project_agent.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/project_agent_service.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/project_topology.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/prompt_history.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_context.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_context_benchmark.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_context_scope.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_interruption.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_process_identity.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_readiness.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_recovery.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/provider_usage.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/providers.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/qualification.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/qualification_runtime.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/recommendation_handoff.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/reconciliation_adoption.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/release_operation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/report_analysis.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/repository_attachment.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/repository_handoff.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/resources.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/reviewer_evidence.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/revision_binding.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/schemas/producer-readback-v1.2.schema.json +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/schemas/producer-readback-v1.3.schema.json +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/schemas/producer-readback-v1.schema.json +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/schemas/repository-attachment.schema.json +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/server.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/server_console_services.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/server_relay.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/server_service.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/status_model.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/status_reconciliation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/storage.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/submission_cli.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/submission_intake.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/submission_service.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/system_installation_topology.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/system_server_service.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/telemetry.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/telemetry_contract.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/telemetry_export.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/telemetry_metrics.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/terminal_evidence_reconciliation.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/validation_identity.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/validation_profile.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/version_preparation_delivery.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/workspace_preflight.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/worktree_provenance.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/worktree_tooling.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform.egg-info/SOURCES.txt +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform.egg-info/dependency_links.txt +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform.egg-info/entry_points.txt +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform.egg-info/top_level.txt +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/tests/test_adaptive_action_sizing_design.py +0 -0
- {engineering_platform-2.3.97 → engineering_platform-2.3.100}/tests/test_role_task_model_policy_design.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "engineering-platform"
|
|
7
|
-
version = "2.3.
|
|
7
|
+
version = "2.3.100"
|
|
8
8
|
description = "Local-first Engineering Platform execution operations runtime"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.14,<3.15"
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bootstrap_contract": "2026.12",
|
|
3
3
|
"checkpoint_format": 1,
|
|
4
|
-
"dashboard_version": "2.3.
|
|
4
|
+
"dashboard_version": "2.3.100",
|
|
5
5
|
"handoff_protocol": 1,
|
|
6
6
|
"memory_format": 2,
|
|
7
7
|
"minimum_codex_cli": "0.146.0",
|
|
8
8
|
"inbox_protocol": 1,
|
|
9
|
-
"platform_version": "2.3.
|
|
9
|
+
"platform_version": "2.3.100",
|
|
10
10
|
"report_format": 2,
|
|
11
|
-
"runner_version": "2.3.
|
|
11
|
+
"runner_version": "2.3.100",
|
|
12
12
|
"status_model": 1,
|
|
13
13
|
"storage_schema": 45,
|
|
14
|
-
"watcher_version": "2.3.
|
|
14
|
+
"watcher_version": "2.3.100"
|
|
15
15
|
}
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/agent_state.py
RENAMED
|
@@ -490,7 +490,7 @@ class TransactionState:
|
|
|
490
490
|
or not isinstance(review.get("completed_at"), str)
|
|
491
491
|
))
|
|
492
492
|
or (set(review) == integral_review_fields and (
|
|
493
|
-
review.get("contract_version")
|
|
493
|
+
review.get("contract_version") not in {"2.0", "3.0"}
|
|
494
494
|
or not isinstance(review.get("started_at"), str)
|
|
495
495
|
or not isinstance(review.get("completed_at"), str)
|
|
496
496
|
or not isinstance(review.get("coverage"), list)
|
|
@@ -280,6 +280,7 @@ html[data-theme="light"] :is(#rateLimitReset,#codexCliUpdate){background:#e8fff5
|
|
|
280
280
|
.prompt-detail-provider-review{display:grid;gap:18px;grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr)}@media (max-width:760px){.prompt-detail-provider-review{grid-template-columns:1fr}}
|
|
281
281
|
.prompt-detail-provider-review-stack{display:grid;gap:18px;grid-column:1/-1}.prompt-detail-provider-review>.prompt-detail-card{align-self:stretch;box-sizing:border-box}.prompt-detail-card--commit-timeline{display:flex;flex-direction:column;min-height:0}.prompt-detail-commit-timeline__list{align-content:start;display:grid;flex:1;gap:10px;list-style:none;margin:0;max-height:none;min-height:0;overflow:auto;padding:0 8px 0 0;scrollbar-gutter:stable}.prompt-detail-commit-timeline__item{border-top:1px solid color-mix(in srgb,var(--category-color) 38%,transparent);display:grid;gap:3px;padding-top:10px}.prompt-detail-commit-timeline__item:first-child{border-top:0;padding-top:0}.prompt-detail-commit-timeline__meta{color:var(--dashboard-modal-muted);font-size:12px;line-height:1.35}.prompt-detail-commit-timeline__item code{font-size:12px;overflow-wrap:normal;white-space:nowrap}.prompt-detail-commit-timeline__item>span{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
|
|
282
282
|
.prompt-detail-card--evidence pre,.prompt-detail-card--reviewers pre,.prompt-detail-card--assurance-reviews pre{font-family:inherit}
|
|
283
|
+
.prompt-detail-assurance-review__content{display:grid;gap:5px;margin:0;white-space:normal}.prompt-detail-assurance-review__line{display:block;overflow-wrap:anywhere;white-space:pre-wrap}.assurance-review-status{align-items:center;display:inline-flex;gap:8px;width:max-content}.assurance-review-status__text{line-height:18px}
|
|
283
284
|
.reviewer-agent__status--failed{background:#ff6b6b;box-shadow:0 0 8px #ff6b6b66;color:#351313;font:800 14px/1 system-ui;height:16px;width:16px}
|
|
284
285
|
.prompt-detail-reviewer{border-top:1px solid color-mix(in srgb,var(--category-color) 45%,transparent);display:grid;gap:7px;padding-top:14px}.prompt-detail-reviewer:first-of-type{border-top:0;padding-top:0}.prompt-detail-reviewer h4{color:var(--category-color);font-size:16px;margin:0 0 4px}.prompt-detail-reviewer>.field{margin:2px 0 0}.prompt-detail-reviewer__status{align-items:center;display:inline-flex;gap:8px}.prompt-detail-reviewer__status-icon{align-items:center;border-radius:50%;display:inline-flex;flex:0 0 18px;font:800 12px/1 system-ui;height:18px;justify-content:center}.prompt-detail-reviewer__status-icon--completed{background:#51d88a;box-shadow:0 0 8px #51d88a66;color:#11261d}.prompt-detail-reviewer__status-icon--failed{background:#ff6b6b;box-shadow:0 0 8px #ff6b6b66;color:#351313}.prompt-detail-reviewer__status-icon--neutral{background:#9a9aa3;color:#202027}
|
|
285
286
|
.prompt-detail-commit-timeline__phase{border-top:1px solid color-mix(in srgb,var(--category-color) 52%,transparent);list-style:none;padding:13px 0 0}.prompt-detail-commit-timeline__phase:first-child{border-top:0;padding-top:0}.prompt-detail-commit-timeline__phase h4{color:var(--category-color);font-size:12px;letter-spacing:.04em;margin:0 0 9px;text-transform:uppercase}.prompt-detail-commit-timeline__phase-entries{display:grid;gap:10px;list-style:none;margin:0;padding:0 0 2px}.prompt-detail-commit-timeline__phase-entries .prompt-detail-commit-timeline__item{border-top:0;padding-top:0}
|
|
@@ -886,6 +887,8 @@ html:not([data-theme="light"]) .dashboard-modal-shell{--modal-header-surface:col
|
|
|
886
887
|
.dashboard-action--download:hover:not(:disabled){background:#f0b66a!important;border-color:#f0b66a!important;color:#201812!important}
|
|
887
888
|
.dashboard-action--copy{background:#34283f!important;border-color:#d0a4ff!important;color:#eadcff!important}
|
|
888
889
|
.dashboard-action--copy:hover:not(:disabled){background:#d0a4ff!important;border-color:#d0a4ff!important;color:#17151a!important}
|
|
890
|
+
.report-view-modal__reload{background:#3b281b!important;border-color:#f0b66a!important;color:#fff0dc!important;font-size:21px!important}
|
|
891
|
+
.report-view-modal__reload:hover:not(:disabled){background:#f0b66a!important;border-color:#f0b66a!important;color:#201812!important}
|
|
889
892
|
.dashboard-action--destructive{background:#3a2028!important;border-color:#ff718f!important;color:#ffd9e1!important}
|
|
890
893
|
.dashboard-action--destructive:hover:not(:disabled){background:#ff718f!important;border-color:#ff718f!important;color:#23131a!important}
|
|
891
894
|
.operator-merge-wait{grid-column:1/-1}.operator-merge-wait__actions{align-items:stretch;display:flex;flex-wrap:wrap;gap:10px}.operator-merge-wait__actions .dashboard-action{border-radius:10px;flex:1 1 15rem;font:700 15px/1.25 system-ui;height:auto;justify-content:center;min-height:40px;min-width:0;padding:8px 14px;text-align:center;text-decoration:none;width:auto}.operator-merge-wait__actions .dashboard-action--primary{background:#3b281b!important;border-color:#f0b66a!important;color:#fff0dc!important}.operator-merge-wait__actions .dashboard-action--primary:hover:not(:disabled){background:#f0b66a!important;border-color:#f0b66a!important;color:#201812!important}
|
|
@@ -900,6 +903,7 @@ html[data-theme="light"] .operator-merge-wait__actions .dashboard-action--primar
|
|
|
900
903
|
.operator-merge-wait__actions .dashboard-action--destructive::before,#operatorMergeWaitModal .dashboard-modal-shell__action--destructive::before{text-shadow:.35px 0 currentColor,-.35px 0 currentColor}
|
|
901
904
|
html[data-theme="light"] .dashboard-action--copy{background:#fff7ff!important;border-color:#b99ae5!important;color:#68498a!important}
|
|
902
905
|
html[data-theme="light"] .dashboard-action--copy:hover:not(:disabled){background:#d0a4ff!important;border-color:#d0a4ff!important;color:#17151a!important}
|
|
906
|
+
html[data-theme="light"] .report-view-modal__reload{background:#fff8ef!important;border-color:#d68b23!important;color:#643a13!important}
|
|
903
907
|
html[data-theme="light"] .dashboard-action--destructive{background:#fff1f4!important;border-color:#ff718f!important;color:#b32649!important}
|
|
904
908
|
|
|
905
909
|
/* Keep late modal-family rules from drifting the shared title scale. */
|
|
@@ -144,6 +144,32 @@ function assuranceStatusLabel(value, fallback = t("format.not_available")) {
|
|
|
144
144
|
if (!raw) return fallback;
|
|
145
145
|
return t(`lifecycle.assurance_status.${reviewerKey(raw)}`, {}, raw);
|
|
146
146
|
}
|
|
147
|
+
function assuranceStatusPresentation(value) {
|
|
148
|
+
const status = String(value || "UNRESOLVED").toUpperCase();
|
|
149
|
+
const passed = status === "PASS", failed = ["FAIL", "FAILED", "UNRESOLVED"].includes(status);
|
|
150
|
+
return {
|
|
151
|
+
glyph: passed ? "✓" : failed ? "×" : "•",
|
|
152
|
+
label: assuranceStatusLabel(status, status),
|
|
153
|
+
tone: passed ? "passed" : failed ? "failed" : "neutral",
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function assuranceStatusIcon(presentation) {
|
|
157
|
+
const icon = document.createElement("span");
|
|
158
|
+
icon.className = "assurance-review-status__icon assurance-review-status__icon--" + presentation.tone
|
|
159
|
+
+ " lifecycle-detail-modal__assurance-status lifecycle-detail-modal__assurance-status--" + presentation.tone;
|
|
160
|
+
icon.setAttribute("aria-hidden", "true");
|
|
161
|
+
icon.textContent = presentation.glyph;
|
|
162
|
+
return icon;
|
|
163
|
+
}
|
|
164
|
+
function assuranceStatusRow(value) {
|
|
165
|
+
const presentation = assuranceStatusPresentation(value), row = document.createElement("span"),
|
|
166
|
+
text = document.createElement("span");
|
|
167
|
+
row.className = "assurance-review-status";
|
|
168
|
+
text.className = "assurance-review-status__text";
|
|
169
|
+
text.textContent = presentation.label;
|
|
170
|
+
row.append(assuranceStatusIcon(presentation), text);
|
|
171
|
+
return row;
|
|
172
|
+
}
|
|
147
173
|
function reviewerCapabilityLabel(value, fallback = t("format.not_available")) {
|
|
148
174
|
const raw = String(value || "").trim();
|
|
149
175
|
return raw ? enumLabel(raw.toUpperCase(), raw) : fallback;
|
|
@@ -2166,17 +2192,11 @@ function lifecycleAssuranceEvidence(step) {
|
|
|
2166
2192
|
if (!review || typeof review !== "object") continue;
|
|
2167
2193
|
const findings = Array.isArray(review.findings) ? review.findings : [];
|
|
2168
2194
|
const item = document.createElement("li"), heading = document.createElement("strong"),
|
|
2169
|
-
|
|
2170
|
-
normalizedStatus = status.toUpperCase();
|
|
2195
|
+
status = String(review.status || "UNRESOLVED"), statusPresentation = assuranceStatusPresentation(status);
|
|
2171
2196
|
const role = String(review.reviewer || "");
|
|
2172
|
-
const passed = normalizedStatus === "PASS", failed = ["FAIL", "FAILED", "UNRESOLVED"].includes(normalizedStatus);
|
|
2173
2197
|
heading.className = "lifecycle-detail-modal__assurance-heading";
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
statusIcon.setAttribute("aria-hidden", "true");
|
|
2177
|
-
statusIcon.textContent = passed ? "✓" : failed ? "×" : "•";
|
|
2178
|
-
heading.append(statusIcon, Object.assign(document.createElement("span"), {
|
|
2179
|
-
textContent: `${reviewerLabel(role, role)} · ${assuranceStatusLabel(status, status)}`,
|
|
2198
|
+
heading.append(assuranceStatusIcon(statusPresentation), Object.assign(document.createElement("span"), {
|
|
2199
|
+
textContent: `${reviewerLabel(role, role)} · ${statusPresentation.label}`,
|
|
2180
2200
|
}));
|
|
2181
2201
|
item.append(heading);
|
|
2182
2202
|
const summary = findings.map((finding) => String(finding?.observation || "").trim()).filter(Boolean).join("; ");
|
|
@@ -8021,11 +8041,13 @@ function promptHistoryReportReloadButton() {
|
|
|
8021
8041
|
let button = $("promptHistoryReportReload");
|
|
8022
8042
|
if (button) return button;
|
|
8023
8043
|
button = document.createElement("button");
|
|
8024
|
-
button.className = "dashboard-action
|
|
8044
|
+
button.className = "dashboard-action report-view-modal__reload report-analysis-retry";
|
|
8025
8045
|
button.id = "promptHistoryReportReload";
|
|
8026
8046
|
button.type = "button";
|
|
8027
8047
|
button.hidden = true;
|
|
8028
|
-
button.textContent =
|
|
8048
|
+
button.textContent = "↻";
|
|
8049
|
+
button.setAttribute("aria-label", t("history.retry_report_load"));
|
|
8050
|
+
button.title = t("history.retry_report_load");
|
|
8029
8051
|
button.addEventListener("click", () => { void reloadPromptHistoryReport(); });
|
|
8030
8052
|
$("promptHistoryReportDownload").before(button);
|
|
8031
8053
|
return button;
|
|
@@ -8643,18 +8665,24 @@ function promptDetailAssuranceReviewsSection(reviews) {
|
|
|
8643
8665
|
const fields = reviews.map((review) => {
|
|
8644
8666
|
const findings = Array.isArray(review.findings) ? review.findings : [];
|
|
8645
8667
|
const candidate = String(review.candidate_sha || "").trim();
|
|
8668
|
+
const field = detailField(
|
|
8669
|
+
reviewerLabel(review.reviewer, t("detail.specialist_review")),
|
|
8670
|
+
"",
|
|
8671
|
+
true,
|
|
8672
|
+
);
|
|
8673
|
+
const content = field.lastElementChild;
|
|
8674
|
+
content.className = "prompt-detail-assurance-review__content";
|
|
8675
|
+
content.replaceChildren(assuranceStatusRow(review.status || "UNRESOLVED"));
|
|
8646
8676
|
const lines = [
|
|
8647
|
-
assuranceStatusLabel(review.status || "UNRESOLVED"),
|
|
8648
8677
|
candidate ? t("detail.candidate_sha") + ": " + candidate : null,
|
|
8649
8678
|
...(findings.length
|
|
8650
8679
|
? findings.map((finding) => String(finding?.observation || "").trim()).filter(Boolean)
|
|
8651
8680
|
: [t("lifecycle.assurance_no_findings")]),
|
|
8652
8681
|
].filter(Boolean);
|
|
8653
|
-
|
|
8654
|
-
|
|
8655
|
-
|
|
8656
|
-
|
|
8657
|
-
);
|
|
8682
|
+
for (const line of lines) content.append(Object.assign(document.createElement("span"), {
|
|
8683
|
+
className: "prompt-detail-assurance-review__line", textContent: line,
|
|
8684
|
+
}));
|
|
8685
|
+
return field;
|
|
8658
8686
|
});
|
|
8659
8687
|
return promptDetailCard(
|
|
8660
8688
|
t("lifecycle.detail_assurance"), fields, true,
|
|
@@ -45,7 +45,7 @@ REVIEWER_LABELS = {
|
|
|
45
45
|
"finalization": "Finalization Reviewer",
|
|
46
46
|
}
|
|
47
47
|
ADVISORY_REVIEW_OUTPUT_CONTRACT_VERSION = "1.0"
|
|
48
|
-
MANDATORY_REVIEW_OUTPUT_CONTRACT_VERSION = "
|
|
48
|
+
MANDATORY_REVIEW_OUTPUT_CONTRACT_VERSION = "3.0"
|
|
49
49
|
MANDATORY_FINDING_FIELDS = frozenset({
|
|
50
50
|
"id", "observation", "category", "criterion", "severity", "confidence", "evidence_ref",
|
|
51
51
|
})
|
|
@@ -103,6 +103,13 @@ class ReviewerSelection:
|
|
|
103
103
|
selected_because: str
|
|
104
104
|
confidence: float
|
|
105
105
|
capability: str = "engineering"
|
|
106
|
+
# Mandatory assurance is selected by the host for one immutable delivery
|
|
107
|
+
# role and one exact set of still-open findings. Carry that host-owned
|
|
108
|
+
# contract across the provider boundary so the structured-output schema
|
|
109
|
+
# cannot admit a broader, incomplete response that the deterministic
|
|
110
|
+
# validator must subsequently reject.
|
|
111
|
+
required_coverage_surfaces: tuple[str, ...] = ()
|
|
112
|
+
required_finding_ids: tuple[str, ...] = ()
|
|
106
113
|
|
|
107
114
|
|
|
108
115
|
@dataclass(frozen=True)
|
|
@@ -22,7 +22,6 @@ from .capability_review import (
|
|
|
22
22
|
MANDATORY_REVIEW_OUTPUT_CONTRACT_VERSION,
|
|
23
23
|
ReviewerResult,
|
|
24
24
|
ReviewerSelection,
|
|
25
|
-
mandatory_coverage_surfaces,
|
|
26
25
|
reviewer_prompt,
|
|
27
26
|
)
|
|
28
27
|
from .codex_observability import codex_final_message as _codex_final_message, extract_codex_runtime_metadata, extract_codex_usage
|
|
@@ -544,34 +543,39 @@ class CodexCliClient:
|
|
|
544
543
|
}
|
|
545
544
|
if mandatory:
|
|
546
545
|
required.extend(("coverage", "finding_dispositions"))
|
|
547
|
-
surfaces =
|
|
548
|
-
|
|
549
|
-
for role in ("IMPLEMENTATION", "FINALIZATION", "RECONCILIATION")
|
|
550
|
-
for surface in mandatory_coverage_surfaces(selection.reviewer, role)
|
|
551
|
-
})
|
|
546
|
+
surfaces = selection.required_coverage_surfaces
|
|
547
|
+
prior_finding_ids = selection.required_finding_ids
|
|
552
548
|
properties.update({
|
|
553
549
|
"coverage": {
|
|
554
|
-
"type": "
|
|
555
|
-
"
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
"
|
|
560
|
-
"
|
|
561
|
-
"
|
|
562
|
-
|
|
550
|
+
"type": "object",
|
|
551
|
+
"additionalProperties": False,
|
|
552
|
+
"required": list(surfaces),
|
|
553
|
+
"properties": {
|
|
554
|
+
surface: {
|
|
555
|
+
"type": "object", "additionalProperties": False,
|
|
556
|
+
"required": ["status", "evidence_ref"],
|
|
557
|
+
"properties": {
|
|
558
|
+
"status": {"type": "string", "enum": ["REVIEWED", "NOT_APPLICABLE"]},
|
|
559
|
+
"evidence_ref": {"type": "string", "maxLength": 240},
|
|
560
|
+
},
|
|
561
|
+
}
|
|
562
|
+
for surface in surfaces
|
|
563
563
|
},
|
|
564
564
|
},
|
|
565
565
|
"finding_dispositions": {
|
|
566
|
-
"type": "
|
|
567
|
-
"
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
"
|
|
572
|
-
"
|
|
573
|
-
"
|
|
574
|
-
|
|
566
|
+
"type": "object",
|
|
567
|
+
"additionalProperties": False,
|
|
568
|
+
"required": list(prior_finding_ids),
|
|
569
|
+
"properties": {
|
|
570
|
+
finding_id: {
|
|
571
|
+
"type": "object", "additionalProperties": False,
|
|
572
|
+
"required": ["disposition", "evidence_ref"],
|
|
573
|
+
"properties": {
|
|
574
|
+
"disposition": {"type": "string", "enum": ["RESOLVED", "OPEN"]},
|
|
575
|
+
"evidence_ref": {"type": "string", "maxLength": 240},
|
|
576
|
+
},
|
|
577
|
+
}
|
|
578
|
+
for finding_id in prior_finding_ids
|
|
575
579
|
},
|
|
576
580
|
},
|
|
577
581
|
})
|
|
@@ -632,6 +636,23 @@ class CodexCliClient:
|
|
|
632
636
|
)
|
|
633
637
|
try:
|
|
634
638
|
raw = json.loads(_codex_final_message(completed.stdout))
|
|
639
|
+
raw_coverage = raw.get("coverage", {})
|
|
640
|
+
raw_dispositions = raw.get("finding_dispositions", {})
|
|
641
|
+
if mandatory and (
|
|
642
|
+
not isinstance(raw_coverage, dict)
|
|
643
|
+
or set(raw_coverage) != set(selection.required_coverage_surfaces)
|
|
644
|
+
or not isinstance(raw_dispositions, dict)
|
|
645
|
+
or set(raw_dispositions) != set(selection.required_finding_ids)
|
|
646
|
+
):
|
|
647
|
+
raise TypeError("mandatory assurance response does not match the host-owned contract")
|
|
648
|
+
coverage = tuple(
|
|
649
|
+
{"surface": surface, **dict(raw_coverage[surface])}
|
|
650
|
+
for surface in selection.required_coverage_surfaces
|
|
651
|
+
) if mandatory else ()
|
|
652
|
+
finding_dispositions = tuple(
|
|
653
|
+
{"finding_id": finding_id, **dict(raw_dispositions[finding_id])}
|
|
654
|
+
for finding_id in selection.required_finding_ids
|
|
655
|
+
) if mandatory else ()
|
|
635
656
|
return ReviewerResult(
|
|
636
657
|
selection.reviewer,
|
|
637
658
|
str(raw["contribution"]),
|
|
@@ -641,8 +662,8 @@ class CodexCliClient:
|
|
|
641
662
|
usage=dict(self.last_usage), runtime_metadata=dict(self.last_runtime_metadata),
|
|
642
663
|
churn=dict(self.last_churn), duration_seconds=self.last_execution_seconds,
|
|
643
664
|
usage_snapshots=self.last_usage_snapshots,
|
|
644
|
-
coverage=
|
|
645
|
-
finding_dispositions=
|
|
665
|
+
coverage=coverage,
|
|
666
|
+
finding_dispositions=finding_dispositions,
|
|
646
667
|
)
|
|
647
668
|
except (IndexError, KeyError, TypeError, json.JSONDecodeError):
|
|
648
669
|
return ReviewerResult(
|
|
@@ -2530,6 +2530,11 @@ Host-owned validation evidence (candidate-bound, command-terminal receipts):
|
|
|
2530
2530
|
prior_findings = self._unresolved_assurance_findings(quality, reviewer=selection.reviewer)
|
|
2531
2531
|
prior_finding_ids = tuple(str(finding["id"]) for finding in prior_findings)
|
|
2532
2532
|
required_surfaces = mandatory_coverage_surfaces(selection.reviewer, role)
|
|
2533
|
+
contracted_selection = replace(
|
|
2534
|
+
selection,
|
|
2535
|
+
required_coverage_surfaces=required_surfaces,
|
|
2536
|
+
required_finding_ids=prior_finding_ids,
|
|
2537
|
+
)
|
|
2533
2538
|
assurance_objective = (
|
|
2534
2539
|
f"Mandatory {selection.reviewer} assurance. Profile {profile_version} ({profile_digest}); "
|
|
2535
2540
|
f"candidate {candidate.head_sha}. This is an integral candidate review, not a review of only the latest repair. "
|
|
@@ -2542,7 +2547,13 @@ Host-owned validation evidence (candidate-bound, command-terminal receipts):
|
|
|
2542
2547
|
+ criteria
|
|
2543
2548
|
)
|
|
2544
2549
|
started_at = datetime.now(timezone.utc).isoformat()
|
|
2545
|
-
result = run_reviews(
|
|
2550
|
+
result = run_reviews(
|
|
2551
|
+
assurance_root or self.root,
|
|
2552
|
+
(contracted_selection,),
|
|
2553
|
+
assurance_objective,
|
|
2554
|
+
self.agent if hasattr(self.agent, "review") else None,
|
|
2555
|
+
evidence=evidence,
|
|
2556
|
+
)[0]
|
|
2546
2557
|
completed_at = datetime.now(timezone.utc).isoformat()
|
|
2547
2558
|
try:
|
|
2548
2559
|
unchanged = self._inspect_assurance_candidate(candidate_root, state.execution_mode)
|
|
@@ -12,7 +12,7 @@ from .storage import ENGINEERING_STORAGE_SCHEMA_VERSION
|
|
|
12
12
|
|
|
13
13
|
SEMVER = re.compile(r"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$")
|
|
14
14
|
CONTRACT = re.compile(r"^(\d{4})\.(0[1-9]|1[0-2])$")
|
|
15
|
-
CURRENT_PLATFORM_VERSION = "2.3.
|
|
15
|
+
CURRENT_PLATFORM_VERSION = "2.3.100"
|
|
16
16
|
MANIFEST_FIELDS = frozenset(
|
|
17
17
|
{
|
|
18
18
|
"platform_version",
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/__init__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/__main__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/agent_trust.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/codex_chat.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/file_inbox.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/host_admin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/live_status.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/local_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/producer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/providers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/resources.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/storage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.97 → engineering_platform-2.3.100}/src/engineering_platform/telemetry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|