engineering-platform 2.3.76__tar.gz → 2.3.77__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.76 → engineering_platform-2.3.77}/PKG-INFO +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/pyproject.toml +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/ENGINEERING_PLATFORM_CONFIG.json +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/ENGINEERING_PLATFORM_VERSION.json +4 -4
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/dashboard.js +29 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/platform_version.py +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/server.py +44 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/templates/workspace-config.json +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform.egg-info/PKG-INFO +1 -1
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/README.md +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/setup.cfg +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/__init__.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/__main__.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/agent_state.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/agent_trust.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/dashboard.css +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/dashboard_locales.mjs +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/dashboard_status_store.mjs +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/dashboard_translation.mjs +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/apple-touch-icon-dark.png +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/apple-touch-icon-light.png +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/icon-dark.png +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/icon-light.png +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/icon-transparent.png +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/assets/operations-console/manifest.webmanifest +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/capability_preflight.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/capability_review.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/central_data_transfer.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/central_database.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/central_store_migration.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/codex_capacity.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/codex_chat.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/codex_observability.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/component_lock.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/component_logging.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/console_presentation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/console_route_ownership.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/contracts/__init__.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/contracts/ep_consumer.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/contracts/models.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/contracts/projection.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/dashboard_browser_validation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/dashboard_state.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/dashboard_supervisor.swift +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/dashboard_translation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/dependabot_producer.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/development_profile.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/drift_diagnostics.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/emergency_recovery.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/engineering_memory.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/ep_consumer_credentials.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/evidence_projection.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_activity.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_context.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_errors.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_evidence.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_executor.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_finalization.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_host.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_host_evidence.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_lease.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_lifecycle.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_models.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_readiness.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_reporting.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_repository.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_timeout_policy.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_timing.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/execution_transaction.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/external_producer_binding.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/file_inbox.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/forensic_attribution.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/forensic_attribution_v2.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/forensic_delta.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/golden_scenario.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/historical_dashboard_configuration.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/host_admin.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/host_preflight.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_relocation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_activation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_admission.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_backup.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_composition.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_executor.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_migration.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_operation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_plan.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/installation_update_preparation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/investigation_ledger.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/legacy_inbox_migration.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/legacy_installation_adoption.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/lifecycle_worker.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/live_status.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/local_api.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/local_api_keychain.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/local_repository_binding.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/managed_autonomy.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/managed_codex_runtime.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/operational_installation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/operational_installation_lock.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/operational_installation_record.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/owner_credential_recovery.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/parity_context.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/parity_lifecycle_dispatcher.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/platform_admin.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/platform_api.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/platform_bootstrap.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/platform_components.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/pr_check_repair.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/pr_evidence_backfill.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/producer.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/product_installation_readback.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/project_agent.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/project_agent_service.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/project_topology.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/prompt_history.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_context.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_context_benchmark.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_context_scope.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_interruption.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_process_identity.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_readiness.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_recovery.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/provider_usage.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/providers.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/qualification.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/qualification_runtime.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/recommendation_handoff.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/reconciliation_adoption.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/release_operation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/report_analysis.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/repository_attachment.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/repository_handoff.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/resources.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/reviewer_evidence.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/revision_binding.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/schemas/producer-readback-v1.2.schema.json +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/schemas/producer-readback-v1.schema.json +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/schemas/repository-attachment.schema.json +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/server_console_services.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/server_relay.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/server_service.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/status_model.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/status_reconciliation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/storage.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/submission_cli.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/submission_intake.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/submission_service.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/system_installation_topology.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/system_server_service.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/telemetry.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/terminal_evidence_reconciliation.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/validation_identity.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/validation_profile.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/version_preparation_delivery.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/workspace_preflight.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/worktree_provenance.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/worktree_tooling.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform.egg-info/SOURCES.txt +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform.egg-info/dependency_links.txt +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform.egg-info/entry_points.txt +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform.egg-info/top_level.txt +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/tests/test_adaptive_action_sizing_design.py +0 -0
- {engineering_platform-2.3.76 → engineering_platform-2.3.77}/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.77",
|
|
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.77",
|
|
10
10
|
"report_format": 2,
|
|
11
|
-
"runner_version": "2.3.
|
|
11
|
+
"runner_version": "2.3.77",
|
|
12
12
|
"status_model": 1,
|
|
13
13
|
"storage_schema": 45,
|
|
14
|
-
"watcher_version": "2.3.
|
|
14
|
+
"watcher_version": "2.3.77"
|
|
15
15
|
}
|
|
@@ -8209,6 +8209,29 @@ function promptDetailReviewersSection(reviewers, { wide = true } = {}) {
|
|
|
8209
8209
|
);
|
|
8210
8210
|
return promptDetailCard(t("detail.specialist_reviews"), fields, wide, "prompt-detail-card--reviewers");
|
|
8211
8211
|
}
|
|
8212
|
+
function promptDetailAssuranceReviewsSection(reviews) {
|
|
8213
|
+
if (!reviews.length) return null;
|
|
8214
|
+
const fields = reviews.map((review) => {
|
|
8215
|
+
const findings = Array.isArray(review.findings) ? review.findings : [];
|
|
8216
|
+
const candidate = String(review.candidate_sha || "").trim();
|
|
8217
|
+
const lines = [
|
|
8218
|
+
assuranceStatusLabel(review.status || "UNRESOLVED"),
|
|
8219
|
+
candidate ? t("detail.candidate_sha") + ": " + candidate : null,
|
|
8220
|
+
...(findings.length
|
|
8221
|
+
? findings.map((finding) => String(finding?.observation || "").trim()).filter(Boolean)
|
|
8222
|
+
: [t("lifecycle.assurance_no_findings")]),
|
|
8223
|
+
].filter(Boolean);
|
|
8224
|
+
return detailField(
|
|
8225
|
+
reviewerLabel(review.reviewer, t("detail.specialist_review")),
|
|
8226
|
+
lines.join("\n"),
|
|
8227
|
+
true,
|
|
8228
|
+
);
|
|
8229
|
+
});
|
|
8230
|
+
return promptDetailCard(
|
|
8231
|
+
t("lifecycle.detail_assurance"), fields, true,
|
|
8232
|
+
"prompt-detail-card--assurance-reviews",
|
|
8233
|
+
);
|
|
8234
|
+
}
|
|
8212
8235
|
function promptDetailProviderReviewSections(usage, reviewers, commitTimeline) {
|
|
8213
8236
|
const usageCard = promptDetailUsageSection(usage);
|
|
8214
8237
|
const reviewerCard = promptDetailReviewersSection(reviewers, { wide: false });
|
|
@@ -8242,6 +8265,11 @@ function renderPromptHistoryDetail(payload) {
|
|
|
8242
8265
|
commitTimeline = payload?.commit_timeline || [],
|
|
8243
8266
|
evidence = Array.isArray(payload?.evidence) ? payload.evidence : [],
|
|
8244
8267
|
reviewers = Array.isArray(payload?.reviewers) ? payload.reviewers : [],
|
|
8268
|
+
assuranceReviews = Array.isArray(payload?.assurance_reviews)
|
|
8269
|
+
? payload.assurance_reviews
|
|
8270
|
+
: (Array.isArray(payload?.lifecycle?.steps)
|
|
8271
|
+
? payload.lifecycle.steps.find((step) => step?.id === "QUALITY_CONTROL_AGENT")?.assurance_reviews || []
|
|
8272
|
+
: []),
|
|
8245
8273
|
activity = history.execution_activity_summary,
|
|
8246
8274
|
recommendationHandoff = payload?.recommendation_handoff;
|
|
8247
8275
|
const [executionSummary, executionContext] = promptDetailExecutionSections(history);
|
|
@@ -8266,6 +8294,7 @@ function renderPromptHistoryDetail(payload) {
|
|
|
8266
8294
|
lifecycleFlow(payload?.lifecycle, { historical: true }),
|
|
8267
8295
|
statusReconciliationCard(payload?.lifecycle?.recovery),
|
|
8268
8296
|
promptDetailProviderReviewSections(usage, reviewers, commitTimeline),
|
|
8297
|
+
promptDetailAssuranceReviewsSection(assuranceReviews),
|
|
8269
8298
|
promptDetailRecommendationHandoff(recommendationHandoff),
|
|
8270
8299
|
].filter(Boolean),
|
|
8271
8300
|
);
|
|
@@ -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.77"
|
|
16
16
|
MANIFEST_FIELDS = frozenset(
|
|
17
17
|
{
|
|
18
18
|
"platform_version",
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/server.py
RENAMED
|
@@ -3670,6 +3670,48 @@ def _central_console_reviewer_agents(
|
|
|
3670
3670
|
return from_report or _central_console_invocation_reviewers(data_root, run_id)
|
|
3671
3671
|
|
|
3672
3672
|
|
|
3673
|
+
def _central_console_assurance_reviews(
|
|
3674
|
+
lifecycle: Mapping[str, object],
|
|
3675
|
+
) -> list[dict[str, object]]:
|
|
3676
|
+
"""Project the candidate-bound Quality/Security evidence separately.
|
|
3677
|
+
|
|
3678
|
+
Capability reviewers explain why a specialist was selected. Mandatory
|
|
3679
|
+
post-implementation assurance instead proves Quality and Security against
|
|
3680
|
+
one exact candidate. Keeping these contracts separate prevents terminal
|
|
3681
|
+
detail from hiding assurance or presenting a PASS as a recommendation.
|
|
3682
|
+
"""
|
|
3683
|
+
steps = lifecycle.get("steps")
|
|
3684
|
+
if not isinstance(steps, list):
|
|
3685
|
+
return []
|
|
3686
|
+
quality_step = next((
|
|
3687
|
+
step for step in steps
|
|
3688
|
+
if isinstance(step, Mapping) and step.get("id") == "QUALITY_CONTROL_AGENT"
|
|
3689
|
+
), None)
|
|
3690
|
+
reviews = quality_step.get("assurance_reviews") if isinstance(quality_step, Mapping) else None
|
|
3691
|
+
if not isinstance(reviews, list) or len(reviews) > 16:
|
|
3692
|
+
return []
|
|
3693
|
+
projected: list[dict[str, object]] = []
|
|
3694
|
+
for review in reviews:
|
|
3695
|
+
if not isinstance(review, Mapping):
|
|
3696
|
+
continue
|
|
3697
|
+
reviewer = review.get("reviewer")
|
|
3698
|
+
status = review.get("status")
|
|
3699
|
+
candidate_sha = review.get("candidate_sha")
|
|
3700
|
+
findings = review.get("findings")
|
|
3701
|
+
if (
|
|
3702
|
+
reviewer not in {"quality", "security"}
|
|
3703
|
+
or status not in {"PASS", "FAIL", "UNRESOLVED"}
|
|
3704
|
+
or not isinstance(candidate_sha, str)
|
|
3705
|
+
or re.fullmatch(r"[0-9a-f]{40}", candidate_sha) is None
|
|
3706
|
+
or not isinstance(findings, list)
|
|
3707
|
+
or len(findings) > 12
|
|
3708
|
+
or any(not isinstance(finding, Mapping) for finding in findings)
|
|
3709
|
+
):
|
|
3710
|
+
continue
|
|
3711
|
+
projected.append(dict(review))
|
|
3712
|
+
return projected
|
|
3713
|
+
|
|
3714
|
+
|
|
3673
3715
|
def _central_console_project_snapshot(data_root: Path, project_id: str) -> dict[str, object]:
|
|
3674
3716
|
"""Return the project status and terminal-history projections from CENTRAL.
|
|
3675
3717
|
|
|
@@ -3813,6 +3855,7 @@ def _central_console_run_detail(data_root: Path, project_id: str, run_id: str) -
|
|
|
3813
3855
|
"runtime": runtime,
|
|
3814
3856
|
"usage": _central_console_provider_usage(data_root, run_id),
|
|
3815
3857
|
"reviewers": _central_console_reviewer_agents(data_root, project_id, run_id),
|
|
3858
|
+
"assurance_reviews": _central_console_assurance_reviews(lifecycle),
|
|
3816
3859
|
"evidence": _central_console_validation_evidence(data_root, project_id, run_id),
|
|
3817
3860
|
# The historical detail dialog uses the same read-only bubble flow as
|
|
3818
3861
|
# the active card. Terminal history remains separate in the table,
|
|
@@ -5736,6 +5779,7 @@ class _HealthHandler(http.server.BaseHTTPRequestHandler):
|
|
|
5736
5779
|
"execution": detail.get("execution", {}),
|
|
5737
5780
|
"runtime": detail.get("runtime", {}),
|
|
5738
5781
|
"reviewers": detail.get("reviewers", []),
|
|
5782
|
+
"assurance_reviews": detail.get("assurance_reviews", []),
|
|
5739
5783
|
"commits": {},
|
|
5740
5784
|
"commit_timeline": detail.get("commit_timeline", []),
|
|
5741
5785
|
"pull_requests": [],
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/__init__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/__main__.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/agent_state.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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
|
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/src/engineering_platform/live_status.py
RENAMED
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/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
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/src/engineering_platform/server_relay.py
RENAMED
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/src/engineering_platform/status_model.py
RENAMED
|
File without changes
|
|
File without changes
|
{engineering_platform-2.3.76 → engineering_platform-2.3.77}/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.76 → engineering_platform-2.3.77}/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
|