From c8166bd83076d53a3418dc5393c641b781903b0a Mon Sep 17 00:00:00 2001 From: agent-58ba63c88b4c9625 Date: Mon, 20 Apr 2026 14:36:20 +0200 Subject: [PATCH] build(agent): new-agents-4#58ba63 iteration --- arbsphere/coordinator.py | 15 ++++++++++++++- arbsphere/energi_bridge.py | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/arbsphere/coordinator.py b/arbsphere/coordinator.py index 22056ef..f17598f 100644 --- a/arbsphere/coordinator.py +++ b/arbsphere/coordinator.py @@ -1,4 +1,5 @@ import hashlib +import time from typing import List from dataclasses import dataclass @@ -10,6 +11,10 @@ class PlanDelta: legs: List[dict] total_size: float delta_id: str + # Additional provenance fields to support deterministic replay and auditing + timestamp: float | None = None + parent_delta_id: str | None = None + signature: str | None = None def _deterministic_id(inputs: List[LocalArbProblem], shared: SharedSignals) -> str: @@ -37,4 +42,12 @@ def admm_lite_step(local_problems: List[LocalArbProblem], shared_signals: Shared total_size = float(sum(lp.liquidity_budget for lp in local_problems)) * 0.01 if local_problems else 0.0 delta_id = _deterministic_id(local_problems, shared_signals) - return PlanDelta(legs=legs, total_size=total_size, delta_id=delta_id) + # Attach provenance metadata for replay and auditing + return PlanDelta( + legs=legs, + total_size=total_size, + delta_id=delta_id, + timestamp=time.time(), + parent_delta_id=None, + signature=None, + ) diff --git a/arbsphere/energi_bridge.py b/arbsphere/energi_bridge.py index 1f5dd17..2240cb9 100644 --- a/arbsphere/energi_bridge.py +++ b/arbsphere/energi_bridge.py @@ -42,7 +42,7 @@ class EnergiBridge: "delta_id": delta.delta_id, # Extended provenance fields for deterministic replay and auditing "timestamp": getattr(delta, "timestamp", None), - "parent_delta_id": getattr(delta, "parent_id", None), + "parent_delta_id": getattr(delta, "parent_delta_id", None), "signature": getattr(delta, "signature", None), }