Task · SKT-0211

Make causal span timestamps identical on amd64 and arm64

Description

Landing-13 review C1 (codex/loop58/rv13 notes in DECISIONS D190): the Go compiler fuses multiply-add expressions in internal/workload/app/causal_mint.go (about :621, :647, :680, :694, :716, :718) on arm64 but not amd64, so acme-ai-platform’s shipped digest differs by 1 ns between architectures and CI (x86_64) fails while arm64 gate hosts pass. Wrap products in explicit float64() conversions, regenerate the acme digest and pins, and prove the digest test under GOARCH=amd64 in the landing proof.

Acceptance Criteria

Definition of Done

Implementation Plan

Restore the accepted archived landing stack in an isolated candidate; reproduce architecture-dependent causal timestamps, prevent fused multiply-add at digest-sensitive arithmetic, and retain arm64 plus amd64 digest evidence. Root composes, reviews and gates before landing.

Loop60: senior composes only charter-listed accepted engine/app/Lambda/AgentCore stack over current main without replacing landed database files.

Implementation Notes

Owner closeout: Accepted timestamp/engine split unlanded. Compose with accepted resend parity, retaining engine-only split and excluding held reference migration.

Loop60 closeout: Accepted causal stack through fe995479 retains architecture proof and the repaired shared-exchange identity; not published because integrated app race still exceeds the unchanged 600-second budget. Resume only after owner-authorized evaluator resolution, current-main composition, exact final generation/review/full gate and dual-architecture facts.

Final loop closeout: retained unlanded causal candidateaf34 has native/component review and final CodeRabbit passes, but the exact integrated full gate fails app-race600.139s. No candidate source was pushed or deployed. Preserve task-specific earlier evidence/limits; resume only after the aggregate owner stop and relevant dependency/owner decisions are resolved, with no timeout/assertion/case/isolation reduction or unchanged full-gate retry.

View the source file on GitHub