engineering-platform 2.3.91__tar.gz → 2.3.92__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.91 → engineering_platform-2.3.92}/PKG-INFO +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/pyproject.toml +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/ENGINEERING_PLATFORM_CONFIG.json +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/ENGINEERING_PLATFORM_VERSION.json +4 -4
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/dashboard.css +3 -3
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_host.py +41 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_timing.py +23 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_version.py +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server.py +33 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/templates/workspace-config.json +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform.egg-info/PKG-INFO +1 -1
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/README.md +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/setup.cfg +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/__init__.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/__main__.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/agent_state.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/agent_trust.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/dashboard.js +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/dashboard_locales.mjs +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/dashboard_status_store.mjs +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/dashboard_translation.mjs +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/apple-touch-icon-dark.png +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/apple-touch-icon-light.png +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/icon-dark.png +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/icon-light.png +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/icon-transparent.png +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assets/operations-console/manifest.webmanifest +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/assurance_scope.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/capability_preflight.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/capability_review.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/central_data_transfer.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/central_database.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/central_operational_reset.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/central_store_migration.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/codex_capacity.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/codex_chat.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/codex_observability.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/component_lock.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/component_logging.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/console_presentation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/console_route_ownership.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/contracts/__init__.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/contracts/ep_consumer.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/contracts/models.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/contracts/projection.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/dashboard_browser_validation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/dashboard_state.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/dashboard_supervisor.swift +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/dashboard_translation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/dependabot_producer.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/development_profile.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/drift_diagnostics.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/emergency_recovery.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/engineering_memory.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/ep_consumer_credentials.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/evidence_projection.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_activity.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_context.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_errors.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_evidence.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_executor.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_finalization.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_host_evidence.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_lease.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_lifecycle.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_models.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_readiness.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_reporting.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_repository.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_timeout_policy.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/execution_transaction.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/external_producer_binding.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/file_inbox.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/forensic_attribution.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/forensic_attribution_v2.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/forensic_delta.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/golden_scenario.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/historical_dashboard_configuration.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/host_admin.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/host_preflight.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_relocation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_activation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_admission.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_backup.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_composition.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_executor.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_migration.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_operation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_plan.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/installation_update_preparation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/investigation_ledger.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/legacy_inbox_migration.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/legacy_installation_adoption.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/lifecycle_worker.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/live_status.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/local_api.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/local_api_keychain.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/local_repository_binding.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/managed_autonomy.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/managed_codex_runtime.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/managed_workspace_readiness.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/merge_delegation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/operational_installation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/operational_installation_lock.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/operational_installation_record.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/owner_credential_recovery.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/parity_context.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/parity_lifecycle_dispatcher.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_admin.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_api.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_bootstrap.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_components.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/pr_check_repair.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/pr_evidence_backfill.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/producer.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/product_installation_readback.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/project_agent.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/project_agent_service.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/project_topology.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/prompt_history.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_context.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_context_benchmark.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_context_scope.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_interruption.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_process_identity.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_readiness.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_recovery.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/provider_usage.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/providers.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/qualification.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/qualification_runtime.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/recommendation_handoff.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/reconciliation_adoption.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/release_operation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/report_analysis.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/repository_attachment.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/repository_handoff.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/resources.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/reviewer_evidence.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/revision_binding.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/schemas/producer-readback-v1.2.schema.json +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/schemas/producer-readback-v1.3.schema.json +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/schemas/producer-readback-v1.schema.json +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/schemas/repository-attachment.schema.json +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server_console_services.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server_relay.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server_service.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/status_model.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/status_reconciliation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/storage.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/submission_cli.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/submission_intake.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/submission_service.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/system_installation_topology.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/system_server_service.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/telemetry.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/telemetry_contract.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/telemetry_export.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/telemetry_metrics.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/terminal_evidence_reconciliation.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/validation_identity.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/validation_profile.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/version_preparation_delivery.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/workspace_preflight.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/worktree_provenance.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/worktree_tooling.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform.egg-info/SOURCES.txt +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform.egg-info/dependency_links.txt +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform.egg-info/entry_points.txt +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform.egg-info/top_level.txt +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/tests/test_adaptive_action_sizing_design.py +0 -0
- {engineering_platform-2.3.91 → engineering_platform-2.3.92}/tests/test_role_task_model_policy_design.py +0 -0
|
@@ -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.92",
|
|
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.92",
|
|
10
10
|
"report_format": 2,
|
|
11
|
-
"runner_version": "2.3.
|
|
11
|
+
"runner_version": "2.3.92",
|
|
12
12
|
"status_model": 1,
|
|
13
13
|
"storage_schema": 45,
|
|
14
|
-
"watcher_version": "2.3.
|
|
14
|
+
"watcher_version": "2.3.92"
|
|
15
15
|
}
|
|
@@ -1144,9 +1144,9 @@ html[data-theme="light"] .dashboard-status-banner--provider-auth_required .provi
|
|
|
1144
1144
|
the other operational banners rather than as a scrolling dashboard card. */
|
|
1145
1145
|
.dashboard-sticky-header:has(#noProjectSelected:not([hidden])){padding-bottom:7px}.dashboard-status-banner--no-project{align-items:center;background:#163b59;border-bottom:1px solid #62bdf0;color:#e7f5ff;font:600 13px/1.45 system-ui}.dashboard-status-banner--no-project strong{color:#9bd7ff}.no-project-selected__dismiss{align-items:center;background:transparent!important;border:1px solid currentColor!important;border-radius:50%;color:inherit!important;cursor:pointer;display:inline-flex;flex:none;font:22px/1 system-ui;height:30px;justify-content:center;margin-left:auto;min-height:30px;min-width:30px;padding:0;width:30px}.no-project-selected__dismiss:hover,.no-project-selected__dismiss:focus-visible{background:#9bd7ff!important;border-color:#9bd7ff!important;color:#123a58!important}.no-project-selected__dismiss:focus-visible{box-shadow:0 0 0 4px #9bd7ff55!important;outline:2px solid #9bd7ff!important;outline-offset:2px!important}html[data-theme="light"] .dashboard-status-banner--no-project{background:#e2f3ff;color:#12466b}html[data-theme="light"] .dashboard-status-banner--no-project strong{color:#075985}html[data-theme="light"] .no-project-selected__dismiss:hover,html[data-theme="light"] .no-project-selected__dismiss:focus-visible{background:#075985!important;border-color:#075985!important;color:#fff!important}
|
|
1146
1146
|
|
|
1147
|
-
/*
|
|
1148
|
-
|
|
1149
|
-
.prompt-detail-card--pull-requests
|
|
1147
|
+
/* Active PR evidence starts in the left column directly below the lifecycle.
|
|
1148
|
+
Historical Mission details keep PR evidence in their right context column. */
|
|
1149
|
+
.prompt-detail-card--pull-requests{grid-column:2}.active-run-pull-requests{grid-column:1}.prompt-detail-pr-link{border-bottom:1px solid currentColor;color:var(--category-color);font-weight:400;text-decoration:none}.prompt-detail-pr-link:hover{background:transparent;color:var(--category-color);outline:0}.prompt-detail-pr-link:focus-visible{background:transparent;color:var(--category-color);outline:2px solid var(--category-color);outline-offset:2px}.prompt-detail-pr-metrics{color:var(--dashboard-modal-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:5px 12px;margin-top:7px}.prompt-detail-pr-metric{white-space:nowrap}@media (max-width:620px){.prompt-detail-card--pull-requests,.active-run-pull-requests{grid-column:1;grid-row:auto}}
|
|
1150
1150
|
|
|
1151
1151
|
/* Authentication is a recoverable warning, not a destructive provider failure. */
|
|
1152
1152
|
.dashboard-status-banner--provider-auth_required .provider-readiness-banner__action{background:transparent!important;border-color:#ffd768!important;color:#fff4d6!important}.dashboard-status-banner--provider-auth_required .provider-readiness-banner__action:hover:not(:disabled),.dashboard-status-banner--provider-auth_required .provider-readiness-banner__action:focus-visible{background:#f4c34f!important;border-color:#ffd768!important;color:#2a2415!important}.dashboard-status-banner--provider-auth_required .provider-readiness-banner__action:focus-visible{box-shadow:0 0 0 4px #f4c34f88;outline-color:#ffd768}
|
|
@@ -119,6 +119,7 @@ from .execution_timing import complete_active_phase as _complete_active_phase
|
|
|
119
119
|
from .execution_timing import complete_phase as _complete_phase
|
|
120
120
|
from .execution_timing import start_or_resume_phase as _start_or_resume_phase
|
|
121
121
|
from .execution_timing import start_phase as _start_phase
|
|
122
|
+
from .execution_timing import update_active_phase_metadata as _update_active_phase_metadata
|
|
122
123
|
from .managed_autonomy import (
|
|
123
124
|
append_action as record_managed_action,
|
|
124
125
|
append_pr_check_observation as record_managed_pr_check,
|
|
@@ -194,6 +195,20 @@ def complete_phase(root: Path, active: ActivePhase | None, **kwargs: object) ->
|
|
|
194
195
|
)
|
|
195
196
|
|
|
196
197
|
|
|
198
|
+
def update_phase_metadata(
|
|
199
|
+
root: Path, active: ActivePhase | None, metadata: dict[str, object],
|
|
200
|
+
) -> None:
|
|
201
|
+
"""Publish optional bounded live phase data without affecting the run."""
|
|
202
|
+
if active is None:
|
|
203
|
+
return
|
|
204
|
+
try:
|
|
205
|
+
_update_active_phase_metadata(root, active, metadata)
|
|
206
|
+
except EngineeringStorageError as error:
|
|
207
|
+
_timing_unavailable(
|
|
208
|
+
root, active.run_id, error, central_database=active.central_database,
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
|
|
197
212
|
def complete_active_phase(root: Path, run_id: str, phase_name: str, **kwargs: object) -> bool:
|
|
198
213
|
try:
|
|
199
214
|
return _complete_active_phase(root, run_id, phase_name, **kwargs)
|
|
@@ -700,6 +715,7 @@ class EngineeringRunner:
|
|
|
700
715
|
selection: ReviewerSelection,
|
|
701
716
|
event: str,
|
|
702
717
|
result: ReviewerResult | None = None,
|
|
718
|
+
phase: ActivePhase | None = None,
|
|
703
719
|
) -> None:
|
|
704
720
|
"""Publish bounded reviewer lifecycle status without granting reviewer authority."""
|
|
705
721
|
self._heartbeat()
|
|
@@ -725,6 +741,18 @@ class EngineeringRunner:
|
|
|
725
741
|
else 0
|
|
726
742
|
)
|
|
727
743
|
break
|
|
744
|
+
update_phase_metadata(
|
|
745
|
+
self.root,
|
|
746
|
+
phase,
|
|
747
|
+
{"reviewer_agents": [
|
|
748
|
+
{
|
|
749
|
+
"reviewer": str(item.get("reviewer", ""))[:80],
|
|
750
|
+
"capability": str(item.get("capability", "engineering"))[:80],
|
|
751
|
+
"status": str(item.get("status", "selected"))[:16],
|
|
752
|
+
}
|
|
753
|
+
for item in self.reviewer_runtime[:12]
|
|
754
|
+
]},
|
|
755
|
+
)
|
|
728
756
|
write_live_status(self.root, state, "Capability review: " + selection.reviewer, self.reviewer_runtime)
|
|
729
757
|
|
|
730
758
|
def _persist_agent_usage(self, run_id: str) -> None:
|
|
@@ -3366,6 +3394,18 @@ First implementation pull-request publication gate:
|
|
|
3366
3394
|
}
|
|
3367
3395
|
for item in selections
|
|
3368
3396
|
]
|
|
3397
|
+
update_phase_metadata(
|
|
3398
|
+
self.root,
|
|
3399
|
+
capability_review,
|
|
3400
|
+
{"reviewer_agents": [
|
|
3401
|
+
{
|
|
3402
|
+
"reviewer": str(item["reviewer"])[:80],
|
|
3403
|
+
"capability": str(item["capability"])[:80],
|
|
3404
|
+
"status": "selected",
|
|
3405
|
+
}
|
|
3406
|
+
for item in self.reviewer_runtime[:12]
|
|
3407
|
+
]},
|
|
3408
|
+
)
|
|
3369
3409
|
write_live_status(
|
|
3370
3410
|
self.root,
|
|
3371
3411
|
state
|
|
@@ -3399,7 +3439,7 @@ First implementation pull-request publication gate:
|
|
|
3399
3439
|
objective,
|
|
3400
3440
|
self.agent if hasattr(self.agent, "review") else None,
|
|
3401
3441
|
progress=lambda selection, event, result: self._publish_reviewer_progress(
|
|
3402
|
-
state, selection, event, result
|
|
3442
|
+
state, selection, event, result, capability_review
|
|
3403
3443
|
),
|
|
3404
3444
|
evidence=reviewer_evidence,
|
|
3405
3445
|
)
|
|
@@ -132,6 +132,29 @@ def complete_phase(root: Path, active: ActivePhase, *, outcome: str = "COMPLETE"
|
|
|
132
132
|
connection.close()
|
|
133
133
|
|
|
134
134
|
|
|
135
|
+
def update_active_phase_metadata(
|
|
136
|
+
root: Path, active: ActivePhase, metadata: Mapping[str, object],
|
|
137
|
+
) -> None:
|
|
138
|
+
"""Replace bounded metadata for one exact active phase.
|
|
139
|
+
|
|
140
|
+
Live projections can change while the measured phase is active. The phase
|
|
141
|
+
identity and timing remain immutable; only its bounded presentation data is
|
|
142
|
+
replaced, and a terminal phase cannot be rewritten.
|
|
143
|
+
"""
|
|
144
|
+
encoded = _metadata(metadata)
|
|
145
|
+
connection = _connection(root, active.central_database)
|
|
146
|
+
try:
|
|
147
|
+
changed = connection.execute(
|
|
148
|
+
"""UPDATE execution_phase_spans SET metadata=?
|
|
149
|
+
WHERE phase_id=? AND run_id=? AND outcome='ACTIVE'""",
|
|
150
|
+
(encoded, active.phase_id, active.run_id),
|
|
151
|
+
).rowcount
|
|
152
|
+
if changed != 1:
|
|
153
|
+
raise EngineeringStorageError("Execution phase is not active.")
|
|
154
|
+
finally:
|
|
155
|
+
connection.close()
|
|
156
|
+
|
|
157
|
+
|
|
135
158
|
def start_or_resume_phase(root: Path, run_id: str, phase_name: str, **kwargs: object) -> ActivePhase:
|
|
136
159
|
"""Start one envelope or resume its observed active database boundary.
|
|
137
160
|
|
|
@@ -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.92"
|
|
16
16
|
MANIFEST_FIELDS = frozenset(
|
|
17
17
|
{
|
|
18
18
|
"platform_version",
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server.py
RENAMED
|
@@ -3788,6 +3788,12 @@ def _central_console_invocation_reviewers(data_root: Path, run_id: str) -> list[
|
|
|
3788
3788
|
"""
|
|
3789
3789
|
try:
|
|
3790
3790
|
with storage.sqlite_connection(data_root / SERVER_DATABASE_FILENAME) as connection:
|
|
3791
|
+
active_phase = connection.execute(
|
|
3792
|
+
"""SELECT metadata FROM execution_phase_spans
|
|
3793
|
+
WHERE run_id=? AND phase_name='CAPABILITY_REVIEW' AND outcome='ACTIVE'
|
|
3794
|
+
ORDER BY ordinal DESC LIMIT 1""",
|
|
3795
|
+
(run_id,),
|
|
3796
|
+
).fetchone()
|
|
3791
3797
|
rows = connection.execute(
|
|
3792
3798
|
"""SELECT role,completed_at FROM provider_invocations
|
|
3793
3799
|
WHERE run_id=? AND phase='CAPABILITY_REVIEW'
|
|
@@ -3797,6 +3803,33 @@ def _central_console_invocation_reviewers(data_root: Path, run_id: str) -> list[
|
|
|
3797
3803
|
).fetchall()
|
|
3798
3804
|
except (sqlite3.DatabaseError, storage.EngineeringStorageError):
|
|
3799
3805
|
return []
|
|
3806
|
+
if active_phase is not None:
|
|
3807
|
+
try:
|
|
3808
|
+
metadata = json.loads(str(active_phase[0]))
|
|
3809
|
+
except (TypeError, ValueError, json.JSONDecodeError):
|
|
3810
|
+
metadata = {}
|
|
3811
|
+
live = metadata.get("reviewer_agents") if isinstance(metadata, dict) else None
|
|
3812
|
+
if isinstance(live, list) and 0 < len(live) <= 12:
|
|
3813
|
+
projected: list[dict[str, object]] = []
|
|
3814
|
+
for item in live:
|
|
3815
|
+
if not isinstance(item, Mapping):
|
|
3816
|
+
projected = []
|
|
3817
|
+
break
|
|
3818
|
+
reviewer = str(item.get("reviewer") or "").strip()
|
|
3819
|
+
capability = str(item.get("capability") or "engineering").strip()
|
|
3820
|
+
status = str(item.get("status") or "").strip().lower()
|
|
3821
|
+
if (
|
|
3822
|
+
re.fullmatch(r"[a-z0-9][a-z0-9_-]{0,79}", reviewer) is None
|
|
3823
|
+
or re.fullmatch(r"[a-z0-9][a-z0-9_-]{0,79}", capability) is None
|
|
3824
|
+
or status not in {"selected", "running", "completed", "failed"}
|
|
3825
|
+
):
|
|
3826
|
+
projected = []
|
|
3827
|
+
break
|
|
3828
|
+
projected.append({
|
|
3829
|
+
"reviewer": reviewer, "capability": capability, "status": status,
|
|
3830
|
+
})
|
|
3831
|
+
if len(projected) == len(live):
|
|
3832
|
+
return projected
|
|
3800
3833
|
reviewers: list[dict[str, object]] = []
|
|
3801
3834
|
for role, completed_at in rows:
|
|
3802
3835
|
name = str(role).removeprefix("reviewer:").strip()
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/__init__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/__main__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/agent_state.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/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
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/src/engineering_platform/live_status.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/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
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/platform_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/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
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/server_relay.py
RENAMED
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/src/engineering_platform/status_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.91 → engineering_platform-2.3.92}/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.91 → engineering_platform-2.3.92}/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
|