{
  "planPath": "docs/plans/2026-07-18-secrets-0.2.0-upgrade-and-clustering.md",
  "tasks": [
    {
      "id": 1,
      "nativeId": "7",
      "subject": "Task 1: HistorianGateway bump 0.1.2 -> 0.2.0",
      "status": "completed",
      "classification": "trivial",
      "parallelizableWith": [
        2,
        3,
        4
      ]
    },
    {
      "id": 2,
      "nativeId": "8",
      "subject": "Task 2: MxAccessGateway bump 0.1.2 -> 0.2.0",
      "status": "completed",
      "classification": "trivial",
      "parallelizableWith": [
        1,
        3,
        4
      ]
    },
    {
      "id": 3,
      "nativeId": "9",
      "subject": "Task 3: OtOpcUa bump 0.1.2 -> 0.2.0 (CPM)",
      "status": "completed",
      "classification": "trivial",
      "parallelizableWith": [
        1,
        2,
        4
      ]
    },
    {
      "id": 4,
      "nativeId": "10",
      "subject": "Task 4: ScadaBridge bump 0.1.2 -> 0.2.0 (CPM)",
      "status": "completed",
      "classification": "trivial",
      "parallelizableWith": [
        1,
        2,
        3
      ]
    },
    {
      "id": 5,
      "nativeId": "11",
      "subject": "Task 5: OtOpcUa add Akka replicator package",
      "status": "completed",
      "classification": "small",
      "blockedBy": [
        3
      ],
      "parallelizableWith": [
        7
      ]
    },
    {
      "id": 6,
      "nativeId": "12",
      "subject": "Task 6: OtOpcUa wire Akka replication + shared KEK",
      "status": "completed",
      "classification": "high-risk",
      "blockedBy": [
        5
      ]
    },
    {
      "id": 7,
      "nativeId": "13",
      "subject": "Task 7: ScadaBridge add SqlServer replicator package",
      "status": "completed",
      "classification": "standard",
      "blockedBy": [
        4
      ],
      "parallelizableWith": [
        5
      ]
    },
    {
      "id": 8,
      "nativeId": "14",
      "subject": "Task 8: ScadaBridge wire hub replication + per-node config",
      "status": "completed",
      "classification": "high-risk",
      "blockedBy": [
        7
      ]
    },
    {
      "id": 9,
      "nativeId": "15",
      "subject": "Task 9: Live convergence gate (both clustered apps)",
      "status": "completed",
      "classification": "high-risk",
      "blockedBy": [
        6,
        8
      ]
    },
    {
      "id": 10,
      "nativeId": "16",
      "subject": "Task 10: Docs reconcile",
      "status": "completed",
      "classification": "small",
      "blockedBy": [
        9
      ]
    }
  ],
  "checkpoints": [
    {
      "afterTask": 4,
      "note": "All four apps on 0.2.0, advisory closed family-wide. Independently shippable \u2014 FF-merge and push each repo before Task 5."
    }
  ],
  "lastUpdated": "2026-07-18",
  "notes": "Tasks 1-10 complete. Live gate RUN 2026-07-18 with a SPLIT result: SQL-Server hub (ScadaBridge) PASSED 6/6 against a real SQL Server 2022 incl. partition survival and wrong-KEK fail-closed. Akka peer-to-peer (OtOpcUa) FAILED - resolving ISecretReplicator deadlocks in a real clustered process at ActorOf. Replication remains default-OFF everywhere; do NOT enable it in OtOpcUa until the deadlock is fixed."
}