feat(investigations): add event impact and work-order feedback flows

Add isolated burst and pollution impact evidence, parallel work-order workflows, persisted notifications and graph updates.

Checkpoint current code. Known follow-ups remain for large pollution result previews and graceful geometry failure.
This commit is contained in:
2026-11-14 15:14:02 +08:00
parent 471ad92a47
commit 2e4f6cb93b
49 changed files with 1826 additions and 93 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
"contracts": {
"server": {
"file": "server-v1.openapi.json",
"sha256": "d96df154b86b797d0db913d1e69cf335d92d34dd119f800c9346b90c6119c9bb"
"sha256": "aeff2c644006bf7eddd6cfe1c8aa0bad7f38c4632a456b5d3be1bb8201efc0db"
}
}
}
+84 -7
View File
@@ -3739,9 +3739,17 @@
"type": "array"
},
"label": {
"minLength": 1,
"title": "Label",
"type": "string"
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"description": "Required for a new node. Omit or use null to retain an existing node's label. Use the same node_id to revise status or detail without adding another step.",
"title": "Label"
},
"map_targets": {
"items": {
@@ -3777,8 +3785,7 @@
}
},
"required": [
"node_id",
"label"
"node_id"
],
"title": "InvestigationGraphNodeUpdate",
"type": "object"
@@ -5160,7 +5167,8 @@
"access_approval_pending",
"action_approval_pending",
"human_input_required",
"external_coordination_failed"
"external_coordination_failed",
"work_order_feedback"
],
"title": "Kind",
"type": "string"
@@ -5295,6 +5303,26 @@
"minimum": 1.0,
"title": "Version",
"type": "integer"
},
"work_order_action": {
"anyOf": [
{
"$ref": "#/components/schemas/HumanApprovalAction"
},
{
"type": "null"
}
]
},
"work_order_reference": {
"anyOf": [
{
"$ref": "#/components/schemas/WorkOrderNotificationReference"
},
{
"type": "null"
}
]
}
},
"required": [
@@ -7431,7 +7459,8 @@
"metric": {
"enum": [
"pressure",
"flow"
"flow",
"quality"
],
"title": "Metric",
"type": "string"
@@ -9712,6 +9741,7 @@
"cancel_task_run",
"run_simulation",
"run_contaminant_simulation",
"run_contaminant_source_trace",
"analyze_valve_closure",
"analyze_flushing",
"analyze_pressure_regulation",
@@ -11130,6 +11160,53 @@
"title": "WorkOrderDraftUpdateCommand",
"type": "object"
},
"WorkOrderNotificationReference": {
"additionalProperties": false,
"properties": {
"evidence_id": {
"anyOf": [
{
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"title": "Evidence Id"
},
"source_event_id": {
"minLength": 1,
"title": "Source Event Id",
"type": "string"
},
"source_revision": {
"minimum": 1.0,
"title": "Source Revision",
"type": "integer"
},
"status": {
"enum": [
"scheduled",
"assigned",
"in_progress",
"awaiting_feedback",
"completed",
"cancelled",
"failed"
],
"title": "Status",
"type": "string"
}
},
"required": [
"source_event_id",
"source_revision",
"status"
],
"title": "WorkOrderNotificationReference",
"type": "object"
},
"WorkbenchAlertSource": {
"additionalProperties": false,
"properties": {
+2 -1
View File
@@ -221,7 +221,8 @@
"type": "string",
"enum": [
"pressure",
"flow"
"flow",
"quality"
]
},
"unit": {