From 92fbfd15b6bcf2f77209fc26d27480373858db6c Mon Sep 17 00:00:00 2001 From: Cam Date: Sat, 15 Aug 2026 14:37:12 -0400 Subject: [PATCH] fix(site): put transfer-set and posted totals back on the card #122 dropped ReceiptArtifact from the verified page. The replacement card printed "transfer-set root" and its meaning without the digest or the pair list (receipt-card.tsx:223-228 on a153f261), and it never rendered postedUsertokens or roundingAdjustment. The display annex still says those chain-committed fields are above. Render the root through HashValue, the pairs when present, and both posted and rounding on the paper slip. Co-Authored-By: Grok 4.6 Signed-off-by: Cam --- site/app/r/components/receipt-card.tsx | 24 +++++++++++++++++++++--- site/app/r/rendering.test.tsx | 9 +++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/site/app/r/components/receipt-card.tsx b/site/app/r/components/receipt-card.tsx index 1f01697a..d75e5220 100644 --- a/site/app/r/components/receipt-card.tsx +++ b/site/app/r/components/receipt-card.tsx @@ -219,13 +219,31 @@ export default function ReceiptCard({ custom — {CUSTOM_MODEL_MEANING}

) : null} -

+

+ posted {claims.projection.spend.postedUsertokens.toLocaleString("en-US")} ut +

+

+ rounding {claims.projection.spend.roundingAdjustment.toLocaleString("en-US")} ut +

+
- transfer-set root + {" — "} {transfers.rootMeaning} -

+
+ {transfers.pairs !== undefined ? ( +
    + {transfers.pairs.map((pair) => ( +
  • + {pair.authorizationTransferId} → {pair.settlementTransferId} +
  • + ))} +
+ ) : null}
diff --git a/site/app/r/rendering.test.tsx b/site/app/r/rendering.test.tsx index edec71c4..7cfe1c34 100644 --- a/site/app/r/rendering.test.tsx +++ b/site/app/r/rendering.test.tsx @@ -789,6 +789,15 @@ test("C1 commit-checkpoint.json — floor rung, provider posture, attested workl // transferSet PRESENT → the root is a recomputable digest, not a commitment. assert.ok(html.includes('data-transfer-set="list"')); + assertContains( + text, + "4da354006b3b4df1950f88bda7ff3dc2f97ce252b1356ed609f571f3a7e5e6bc", + "the committed transfer-set root is on the card", + ); + assert.ok(html.includes('data-testid="transfer-pairs"'), "the pair list is mounted"); + assertContains(text, "8e0acd4a11f889633970583fad76a040", "a pair from the list renders"); + assert.ok(html.includes('data-testid="posted-usertokens"'), "posted total is on the card"); + assertContains(text, "rounding 14 ut", "roundingAdjustment is on the card"); assertOmits(text, TRANSFER_SET_ROOT_COMMITMENT, "R25: a present list is not a commitment"); // R9 — trustSnapshotId rendered.