Smeldr now says who did it, from the first entry

Creation, events, tokens and item history now all name the actor, so "who did this" has an answer at every step.

Smeldr records who did what. Over a few weeks we closed five places where that answer was missing or hard to reach.

Creation. Every Decision, Task, Amendment and Goal recorded who last touched it, but only from its first change of state. A Decision still sitting at proposed had no record of who proposed it. A relation between two items remembered when it was made, but not by whom. Both now record the caller's own verified identity at the moment of creation. A request cannot set it.

Names. Those records hold an opaque identity string. There was no way back to a name a person would recognize. A token now stores its own identity, and a lookup turns a list of identities into names in one call. An identity that matches nothing is simply absent, with no guess. The lookup only needs the Author role, because it shows a name and nothing else about the token. A token created before this shipped has no recorded identity and stays unnamed unless you reissue it.

Events. Every state change sends an event. It said what moved and between which states, but not who moved it. Listeners had to make a second read, which can race with the next change. The event now carries the actor and its kind, taken from the same place as the history entry, so the two always agree.

History. The history of one item could be read only from Go code. It can now be asked for over MCP and from the command line, newest first, with the actor, the door the request came through and the reason. When no history is recorded, the answer says so. It does not return an empty page, because "no history" and "not recorded here" are different statements.

Released in steps: creation in core v1.97.0, names in core v1.104.0 and mcp v1.43.0, events in core v1.122.0, history in core v1.123.0, mcp v1.49.0 and cli v0.20.0.