Track Chatto v0.5.0-beta.12
No public wire changes: the only proto delta between v0.5.0-beta.11 and
v0.5.0-beta.12 is a comment-only edit to the internal
chatto.core.cache_state.v1 neighborhood.proto (NEIGHBORHOOD_IMAGES ->
ASSET_CACHE object store wording), a package chattolib does not vendor.
All public API/admin/auth/discovery/realtime proto files are byte-identical,
so the regenerated proto/ tree and _pb bindings are unchanged and the client
code needs no adaptation. The release notes' breaking changes (messages read
state, event projector consolidation) are server-internal.
Verification: ruff format+check clean (27 files, 0 pending); mypy zero new
errors vs pre-change baseline; pytest 92 passed, 2 skipped; live GetServer
against https://chat.chatto.run returns server version 0.5.0-beta.12; live
bot integration: test_bot_receives_its_own_message passed, public server
metadata passed (second-bot test skipped, no 2nd key).
Bumped version 0.5.0b11 -> 0.5.0b12.