Add server-side event handling framework for apps
Apps can now define events.py with @on_event decorated handlers that
react to Callosum events. Handlers are discovered at Convey startup
and dispatched via thread pool with serialized processing.
- apps/events.py: Framework with decorator, discovery, dispatch
- apps/dev/events.py: Example debug handler logging all events
- convey/bridge.py: Dispatch to handlers after WebSocket broadcast
- convey/cli.py: Lifecycle management (discover, start, stop)
- Wildcard support: @on_event("*", "*") matches all events
- 30s timeout per handler, errors isolated
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>