When a human and an agent both edit the same page, “who did this?” quietly becomes a real question. We made the answer visible.
Every write on display.dev is now stamped with an actor – human, agent, service or system – plus a name. A version in your history reads “claude-code@1.0.45 on behalf of Ott.” A resolved comment shows “codex on behalf of Carl.” Nothing your agents do is anonymous.
Where you see it
It shows up in the comment thread on an artifact, and in your dashboard, across the version history and the audit log. Each row tells you whether a change came from a person or an agent, the agent’s name, and the human it was acting for.
How identity gets set
Agents that connect over MCP are tagged automatically. Claude Code shows up as claude-code, Cursor as cursor, each with its version. From the command line you can stamp it yourself, which is handy for CI and your own agents:
# a CI job publishing a report
dsp publish ./report.html --actor-type agent --actor-name ci-deploy-bot
Signing in to the dashboard is a human. No setup for the common cases; the override is there when you want it.
Why it matters more than it looks
The obvious reason is accountability. When agents are pushing versions and resolving comments, you want a clear record of who acted, human or machine, with no guesswork.
The less obvious reason is for the agent itself. When an agent reads a comment thread back, signed identity lets it separate a human’s directive from its own earlier note. It stops treating its own residue as a fresh instruction, and it stops mistaking a real request for something it said. The signal that makes the log readable to you makes the thread legible to the agent.
This pairs with inline comments, which shipped alongside it: humans leave notes, agents act on them, and every step in that loop is signed.