- auth.ok: add chat_id to project list (JOIN with Chat where kind=project)
- message.new broadcast: include author_name field
- chat_listen: add support for 'none' mode in manager.py
- task events: add broadcast for task.created, task.updated, task.assigned via REST
- heartbeat: implement 90s timeout → status=offline + agent.status broadcast
- tokens: use tb-{hex} format instead of urlsafe encoding
- models: support 'none' mode for chat_listen and task_listen
- fix Dockerfile: remove missing alembic files