Skip to main content
← Back to list
01Issue
FeatureOpenSwamp CLIPublic
AssigneesNone

Relationships

#4676 workflow history get: show the username for who decided an approval, not just user:<id>

Opened by skunk-ape · 11/12/2026

Problem

swamp workflow history get prints approval decisions as Approved by user: via . Under OAuth the id is the provider's opaque subject, so the line names nobody a reader recognises. The dashboard's Activity view names the same person by username, because audit events carry principalUsername.

The run record only stores decidedBy (and initiatedBy) as the principal id. The username is known only to serve, in memory, at the moment the run is started or decided. So an offline CLI reading the local run record cannot recover it.

Proposal

Record the username, when serve knows it, on the run record next to initiatedBy and on each approval decision next to decidedBy, as new optional fields. Then history get (and the dashboard run detail) print the username when it is recorded, and fall back to user: when it is not, for example on old runs or under token auth, where the id already is the username.

Notes

  • This changes the run record and the --json view, so swamp-uat's strict schemas for the run view and the approval decision need the new optional fields in the same change.
  • swamp-uat tests/cli/serve/token/client_test.ts asserts the exact line Approved by user:stack72 via direct:token at. Under token auth that line should not change.
  • Split out of #4674, which adds the client to the dashboard's Activity and run detail views.
02Bog Flow
◉OPEN○TRIAGED○IN PROGRESS○SHIPPED

Open

11/12/2026, 3:20:31 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.