Skip to Content
Components

Run summary

What the agent did, what changed and what needs you.

A run summary closes out an agent run: a title glyph and a quiet subtitle, a line on what the run did, and stats that count up from zero. Under them, changes list the files the run touched and needs carry what is still on the person, each with an optional action button. "Undo all" greys out the changes and swaps the glyph; leave undone out to let the button toggle it, or control it.

Preview
Run complete
Finished in 12m 40s

Pricing cards now use spacing tokens

0 files0 steps0 tokens0 cost
What changed
PricingCard.tsx+24 −18
tokens.css+9 −2
Pricing.test.tsx+31 −0
Needs you
The yearly badge overlaps the price on mobile

Usage

<!-- include core.css + run-summary.css -->
<div class="dm-rsu dm-panel">
  <div class="dm-rsu-h">
    <span class="dm-rsu-g"><!-- check icon --></span>
    <div>
      <div class="dm-rsu-t">Run complete</div>
      <div class="dm-rsu-s dm-muted">Finished in 12m 40s</div>
    </div>
  </div>
  <p class="dm-rsu-title">Pricing cards now use spacing tokens</p>
  <div class="dm-rsu-stats">
    <span><b class="dm-num">6</b> files</span>
    <span><b class="dm-num">14</b> steps</span>
  </div>
  <div class="dm-rsu-acts">
    <button class="dm-pill dm-primary dm-sm">Open changes</button>
    <button class="dm-pill dm-ghost dm-sm">Undo all</button>
  </div>
</div>

Properties

NameTypeDescription
titlestringThe title while the changes stand. Defaults to Run complete.
undoneTitlestringThe title once the changes are undone. Defaults to Changes undone.
subtitlestringThe quiet line under the title, like Finished in 12m 40s.
summaryReactNodeOne line on what the run did.
statsRunStat[]{ label; value; prefix?; suffix?; decimals? } — each counts up from zero.
changesRunChange[]{ file; added; removed } — the files the run changed, under "What changed".
needsRunNeed[]{ key; text; action?: { label; onClick; busy? } } — what is left for the person.
undonebooleanWhether the changes are undone. Leave it out to let "Undo all" toggle it.
onUndoneChange(undone) => voidFires when "Undo all" / "Redo" toggles the state.
onDetails() => voidAdds a button in the corner that opens the run's details.
onOpenChanges() => voidThe main button, "Open changes".
barebooleanSits flat in a chat thread (the default). Set false to give it a card of its own.

Theming

Works in light and dark (data-theme="dark") and in the Soft style (data-style="soft"). The glyph, the +/− diffs and the "Needs you" dot all take their colour from the theme tokens (--dm-ok, --dm-add, --dm-del, --dm-warn-mark), so the summary reads the same against any surface; in Soft the card and its pills are rounder.

On this page