v0.5.0

WebSocket delivery is now global by default. A client can build and switch
conversation tabs from live event metadata while one connection remains open.

- Breaking: connect to `GET /v1/ws` and put the client-generated canonical
  session UUID in `metadata.sessionId` on every `message.send`. The old
  `?sessionId=` parameter no longer selects the session for a message. It is
  now an optional outbound filter for one connection.
- Global sockets receive accepted events for every session. Clients that want
  only one conversation may use the optional `?sessionId=` filter or filter
  events locally by `metadata.sessionId`.
- Fixes durable sequence allocation after database error mapping, so a
  session's first notice, job-output line, and child-agent event persist and
  replay correctly.
- Updates the README and guides with the complete WebSocket frame, global-feed
  model, durable model-call records, and known-session REST reads.